From 1ef023a810c46ff128b6db53e1735d9608655d23 Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Wed, 17 Jan 2024 08:46:43 +0000 Subject: [PATCH 01/29] PMM-12811 fix a typo --- build/docker/server/entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/docker/server/entrypoint.sh b/build/docker/server/entrypoint.sh index 51f79746dd..df1e5b755e 100755 --- a/build/docker/server/entrypoint.sh +++ b/build/docker/server/entrypoint.sh @@ -2,7 +2,7 @@ set -o errexit if [ ! -w /srv ]; then - echo "FATAL: /srv is not writable by $(whoami) user." >&2 + echo "FATAL: /srv is not writable for $(whoami) user." >&2 echo "Please make sure that /srv is owned by uid $(id -u) and gid $(id -g) and try again." >&2 echo "You can change ownership by running: sudo chown -R $(id -u):$(id -g) /srv" >&2 exit 1 From 970b9c6104790edf846ee275297dd73031afa83d Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Wed, 17 Jan 2024 08:47:03 +0000 Subject: [PATCH 02/29] PMM-12811 fix tests --- api-tests/management/action/explain_test.go | 2 +- api-tests/server/advisors_test.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/api-tests/management/action/explain_test.go b/api-tests/management/action/explain_test.go index 2049d8f0ad..e1cee0c477 100644 --- a/api-tests/management/action/explain_test.go +++ b/api-tests/management/action/explain_test.go @@ -37,7 +37,7 @@ func TestRunExplain(t *testing.T) { Body: actions.StartMySQLExplainActionBody{ // PMMAgentID: "/agent_id/f235005b-9cca-4b73-bbbd-1251067c3138", ServiceID: "/service_id/5a9a7aa6-7af4-47be-817c-6d88e955bff2", - Query: "SELECT `t` . * FROM `test` . `key_value` `t`", + QueryID: "3923dace316a86643fcf87cb45e0558a", }, }) require.NoError(t, err) diff --git a/api-tests/server/advisors_test.go b/api-tests/server/advisors_test.go index 7d2f044e1a..4b354cd9a9 100644 --- a/api-tests/server/advisors_test.go +++ b/api-tests/server/advisors_test.go @@ -60,7 +60,7 @@ func TestGetSecurityCheckResults(t *testing.T) { toggleAdvisorChecks(t, true) t.Cleanup(func() { restoreSettingsDefaults(t) }) - results, err := managementClient.Default.SecurityChecksService.GetSecurityCheckResults(nil) + results, err := managementClient.Default.SecurityChecksService.GetFailedChecks(nil) pmmapitests.AssertAPIErrorf(t, err, 400, codes.FailedPrecondition, `Advisor checks are disabled.`) assert.Nil(t, results) }) @@ -73,7 +73,7 @@ func TestGetSecurityCheckResults(t *testing.T) { require.NoError(t, err) assert.NotNil(t, resp) - results, err := managementClient.Default.SecurityChecksService.GetSecurityCheckResults(nil) + results, err := managementClient.Default.SecurityChecksService.GetFailedChecks(nil) require.NoError(t, err) assert.NotNil(t, results) }) From 5973853e73485248aad180c952ff129d7add57d4 Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Thu, 18 Jan 2024 13:48:11 +0000 Subject: [PATCH 03/29] PMM-12811 modify agents.proto --- api/inventory/v1/agents.proto | 299 ++++++++++------------------------ 1 file changed, 85 insertions(+), 214 deletions(-) diff --git a/api/inventory/v1/agents.proto b/api/inventory/v1/agents.proto index e32e8d21c0..7ddccddd63 100644 --- a/api/inventory/v1/agents.proto +++ b/api/inventory/v1/agents.proto @@ -666,23 +666,12 @@ message GetAgentLogsResponse { uint32 agent_config_log_lines_count = 2; } -// Add PMMAgent - -message AddPMMAgentParams { - // Node identifier where this instance runs. - string runs_on_node_id = 1 [(validate.rules).string.min_len = 1]; - // Custom user-assigned labels. - map custom_labels = 2; -} - // TODO Change PMMAgent? // TODO Add VMAgent? // TODO Change VMAgent? -// Add/Change NodeExporter - message AddAgentRequest { oneof exporter { AddPMMAgentParams pmm_agent = 1; @@ -723,6 +712,57 @@ message AddAgentResponse { int32 table_count = 20; } +message ChangeAgentRequest { + oneof agent { + // ChangePMMAgentParams pmm_agent = 1; + ChangeNodeExporterParams node_exporter = 2; + ChangeMySQLdExporterParams mysqld_exporter = 3; + ChangeMongoDBExporterParams mongodb_exporter = 4; + ChangePostgresExporterParams postgres_exporter = 5; + ChangeProxySQLExporterParams proxysql_exporter = 6; + ChangeExternalExporterParams external_exporter = 7; + ChangeRDSExporterParams rds_exporter = 8; + ChangeAzureDatabaseExporterParams azure_database_exporter = 9; + ChangeQANMySQLPerfSchemaAgentParams qan_mysql_perfschema_agent = 10; + ChangeQANMySQLSlowlogAgentParams qan_mysql_slowlog_agent = 11; + ChangeQANMongoDBProfilerAgentParams qan_mongodb_profiler_agent = 12; + ChangeQANPostgreSQLPgStatementsAgentParams qan_postgresql_pgstatements_agent = 13; + ChangeQANPostgreSQLPgStatMonitorAgentParams qan_postgresql_pgstatmonitor_agent = 14; + } +} + +message ChangeAgentResponse { + oneof agent { + // PMMAgent pmm_agent = 1; + NodeExporter node_exporter = 2; + MySQLdExporter mysqld_exporter = 3; + MongoDBExporter mongodb_exporter = 4; + PostgresExporter postgres_exporter = 5; + ProxySQLExporter proxysql_exporter = 6; + ExternalExporter external_exporter = 7; + RDSExporter rds_exporter = 8; + AzureDatabaseExporter azure_database_exporter = 9; + QANMySQLPerfSchemaAgent qan_mysql_perfschema_agent = 10; + QANMySQLSlowlogAgent qan_mysql_slowlog_agent = 11; + QANMongoDBProfilerAgent qan_mongodb_profiler_agent = 12; + QANPostgreSQLPgStatementsAgent qan_postgresql_pgstatements_agent = 13; + QANPostgreSQLPgStatMonitorAgent qan_postgresql_pgstatmonitor_agent = 14; + } + // Actual table count for SQL databases at the moment of adding. + int32 table_count = 20; +} + +// Add PMMAgent + +message AddPMMAgentParams { + // Node identifier where this instance runs. + string runs_on_node_id = 1 [(validate.rules).string.min_len = 1]; + // Custom user-assigned labels. + map custom_labels = 2; +} + +// Add/Change NodeExporter + message AddNodeExporterParams { // The pmm-agent identifier which runs this instance. string pmm_agent_id = 1 [(validate.rules).string.min_len = 1]; @@ -738,15 +778,11 @@ message AddNodeExporterParams { bool expose_exporter = 6; } -message ChangeNodeExporterRequest { +message ChangeNodeExporterParams { string agent_id = 1 [(validate.rules).string.min_len = 1]; ChangeCommonAgentParams common = 2; } -message ChangeNodeExporterResponse { - NodeExporter node_exporter = 1; -} - // Add/Change MySQLdExporter message AddMySQLdExporterParams { @@ -788,15 +824,11 @@ message AddMySQLdExporterParams { bool expose_exporter = 17; } -message ChangeMySQLdExporterRequest { +message ChangeMySQLdExporterParams { string agent_id = 1 [(validate.rules).string.min_len = 1]; ChangeCommonAgentParams common = 2; } -message ChangeMySQLdExporterResponse { - MySQLdExporter mysqld_exporter = 1; -} - // Add/Change MongoDBExporter message AddMongoDBExporterParams { @@ -845,15 +877,11 @@ message AddMongoDBExporterParams { bool expose_exporter = 20; } -message ChangeMongoDBExporterRequest { +message ChangeMongoDBExporterParams { string agent_id = 1 [(validate.rules).string.min_len = 1]; ChangeCommonAgentParams common = 2; } -message ChangeMongoDBExporterResponse { - MongoDBExporter mongodb_exporter = 1; -} - // Add/Change PostgresExporter message AddPostgresExporterParams { @@ -893,15 +921,11 @@ message AddPostgresExporterParams { bool expose_exporter = 17; } -message ChangePostgresExporterRequest { +message ChangePostgresExporterParams { string agent_id = 1 [(validate.rules).string.min_len = 1]; ChangeCommonAgentParams common = 2; } -message ChangePostgresExporterResponse { - PostgresExporter postgres_exporter = 1; -} - // Add/Change ProxySQLExporter message AddProxySQLExporterParams { @@ -933,15 +957,11 @@ message AddProxySQLExporterParams { bool expose_exporter = 13; } -message ChangeProxySQLExporterRequest { +message ChangeProxySQLExporterParams { string agent_id = 1 [(validate.rules).string.min_len = 1]; ChangeCommonAgentParams common = 2; } -message ChangeProxySQLExporterResponse { - ProxySQLExporter proxysql_exporter = 1; -} - // Add/Change QANMySQLPerfSchemaAgent message AddQANMySQLPerfSchemaAgentParams { @@ -977,15 +997,11 @@ message AddQANMySQLPerfSchemaAgentParams { LogLevel log_level = 15; } -message ChangeQANMySQLPerfSchemaAgentRequest { +message ChangeQANMySQLPerfSchemaAgentParams { string agent_id = 1 [(validate.rules).string.min_len = 1]; ChangeCommonAgentParams common = 2; } -message ChangeQANMySQLPerfSchemaAgentResponse { - QANMySQLPerfSchemaAgent qan_mysql_perfschema_agent = 1; -} - // Add/Change QANMySQLSlowlogAgent message AddQANMySQLSlowlogAgentParams { @@ -1024,15 +1040,11 @@ message AddQANMySQLSlowlogAgentParams { LogLevel log_level = 16; } -message ChangeQANMySQLSlowlogAgentRequest { +message ChangeQANMySQLSlowlogAgentParams { string agent_id = 1 [(validate.rules).string.min_len = 1]; ChangeCommonAgentParams common = 2; } -message ChangeQANMySQLSlowlogAgentResponse { - QANMySQLSlowlogAgent qan_mysql_slowlog_agent = 1; -} - // Add/Change QANMongoDBProfilerAgent message AddQANMongoDBProfilerAgentParams { @@ -1070,15 +1082,11 @@ message AddQANMongoDBProfilerAgentParams { LogLevel log_level = 15; } -message ChangeQANMongoDBProfilerAgentRequest { +message ChangeQANMongoDBProfilerAgentParams { string agent_id = 1 [(validate.rules).string.min_len = 1]; ChangeCommonAgentParams common = 2; } -message ChangeQANMongoDBProfilerAgentResponse { - QANMongoDBProfilerAgent qan_mongodb_profiler_agent = 1; -} - // Add/Change QANPostgreSQLPgStatementsAgent message AddQANPostgreSQLPgStatementsAgentParams { @@ -1112,15 +1120,11 @@ message AddQANPostgreSQLPgStatementsAgentParams { LogLevel log_level = 14; } -message ChangeQANPostgreSQLPgStatementsAgentRequest { +message ChangeQANPostgreSQLPgStatementsAgentParams { string agent_id = 1 [(validate.rules).string.min_len = 1]; ChangeCommonAgentParams common = 2; } -message ChangeQANPostgreSQLPgStatementsAgentResponse { - QANPostgreSQLPgStatementsAgent qan_postgresql_pgstatements_agent = 1; -} - // Add/Change QANPostgreSQLPgStatMonitorAgent message AddQANPostgreSQLPgStatMonitorAgentParams { @@ -1156,15 +1160,11 @@ message AddQANPostgreSQLPgStatMonitorAgentParams { LogLevel log_level = 15; } -message ChangeQANPostgreSQLPgStatMonitorAgentRequest { +message ChangeQANPostgreSQLPgStatMonitorAgentParams { string agent_id = 1 [(validate.rules).string.min_len = 1]; ChangeCommonAgentParams common = 2; } -message ChangeQANPostgreSQLPgStatMonitorAgentResponse { - QANPostgreSQLPgStatMonitorAgent qan_postgresql_pgstatmonitor_agent = 1; -} - // Add/Change RDSExporter message AddRDSExporterParams { @@ -1190,15 +1190,11 @@ message AddRDSExporterParams { LogLevel log_level = 10; } -message ChangeRDSExporterRequest { +message ChangeRDSExporterParams { string agent_id = 1 [(validate.rules).string.min_len = 1]; ChangeCommonAgentParams common = 2; } -message ChangeRDSExporterResponse { - RDSExporter rds_exporter = 1; -} - // Add/Change ExternalExporter message AddExternalExporterParams { @@ -1225,15 +1221,11 @@ message AddExternalExporterParams { bool push_metrics = 11; } -message ChangeExternalExporterRequest { +message ChangeExternalExporterParams { string agent_id = 1 [(validate.rules).string.min_len = 1]; ChangeCommonAgentParams common = 2; } -message ChangeExternalExporterResponse { - ExternalExporter external_exporter = 1; -} - // Add/Change AzureDatabaseExporter message AddAzureDatabaseExporterParams { @@ -1263,15 +1255,11 @@ message AddAzureDatabaseExporterParams { LogLevel log_level = 12; } -message ChangeAzureDatabaseExporterRequest { +message ChangeAzureDatabaseExporterParams { string agent_id = 1 [(validate.rules).string.min_len = 1]; ChangeCommonAgentParams common = 2; } -message ChangeAzureDatabaseExporterResponse { - AzureDatabaseExporter azure_database_exporter = 1; -} - // Remove message RemoveAgentRequest { @@ -1326,152 +1314,35 @@ service AgentsService { }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "Add an Agent to Inventory" - description: "Adds an Agent from Inventory." + description: "Adds an Agent to Inventory." }; } - // ChangeNodeExporter changes node_exporter Agent. - rpc ChangeNodeExporter(ChangeNodeExporterRequest) returns (ChangeNodeExporterResponse) { + // ChangeAgent changes any type of Agent record in Inventory. + rpc ChangeAgent(ChangeAgentRequest) returns (ChangeAgentResponse) { option (google.api.http) = { - post: "/v1/inventory/Agents/ChangeNodeExporter" + post: "/v1/inventory/Agents/Change" body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "Change Node Exporter" - description: "Changes node_exporter Agent." - }; - } - // ChangeMySQLdExporter changes mysqld_exporter Agent. - rpc ChangeMySQLdExporter(ChangeMySQLdExporterRequest) returns (ChangeMySQLdExporterResponse) { - option (google.api.http) = { - post: "/v1/inventory/Agents/ChangeMySQLdExporter" - body: "*" - }; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "Change mysqld Exporter" - description: "Changes mysqld_exporter Agent." - }; - } - // ChangeMongoDBExporter changes mongodb_exporter Agent. - rpc ChangeMongoDBExporter(ChangeMongoDBExporterRequest) returns (ChangeMongoDBExporterResponse) { - option (google.api.http) = { - post: "/v1/inventory/Agents/ChangeMongoDBExporter" - body: "*" - }; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "Change MongoDB Exporter" - description: "Changes mongodb_exporter Agent." - }; - } - // ChangePostgresExporter changes postgres_exporter Agent. - rpc ChangePostgresExporter(ChangePostgresExporterRequest) returns (ChangePostgresExporterResponse) { - option (google.api.http) = { - post: "/v1/inventory/Agents/ChangePostgresExporter" - body: "*" - }; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "Change Postgres Exporter" - description: "Changes postgres_exporter Agent." - }; - } - // ChangeProxySQLExporter changes proxysql_exporter Agent. - rpc ChangeProxySQLExporter(ChangeProxySQLExporterRequest) returns (ChangeProxySQLExporterResponse) { - option (google.api.http) = { - post: "/v1/inventory/Agents/ChangeProxySQLExporter" - body: "*" - }; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "Change ProxySQL Exporter" - description: "Changes proxysql_exporter Agent." - }; - } - // ChangeQANMySQLPerfSchemaAgent changes QAN MySQL PerfSchema Agent. - rpc ChangeQANMySQLPerfSchemaAgent(ChangeQANMySQLPerfSchemaAgentRequest) returns (ChangeQANMySQLPerfSchemaAgentResponse) { - option (google.api.http) = { - post: "/v1/inventory/Agents/ChangeQANMySQLPerfSchemaAgent" - body: "*" - }; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "Change 'QAN MySQL PerfSchema' Agent" - description: "Changes 'Query Analytics MySQL PerfSchema' Agent." - }; - } - // ChangeQANMySQLSlowlogAgent changes QAN MySQL Slowlog Agent. - rpc ChangeQANMySQLSlowlogAgent(ChangeQANMySQLSlowlogAgentRequest) returns (ChangeQANMySQLSlowlogAgentResponse) { - option (google.api.http) = { - post: "/v1/inventory/Agents/ChangeQANMySQLSlowlogAgent" - body: "*" - }; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "Change 'QAN MySQL Slowlog' Agent" - description: "Changes 'Query Analytics MySQL Slowlog' Agent." - }; - } - // ChangeQANMongoDBProfilerAgent changes QAN MongoDB Profiler Agent. - rpc ChangeQANMongoDBProfilerAgent(ChangeQANMongoDBProfilerAgentRequest) returns (ChangeQANMongoDBProfilerAgentResponse) { - option (google.api.http) = { - post: "/v1/inventory/Agents/ChangeQANMongoDBProfilerAgent" - body: "*" - }; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "Change 'QAN MongoDB Profiler' Agent" - description: "Changes 'Query Analytics MongoDB Profiler' Agent." - }; - } - // ChangeQANPostgreSQLPgStatementsAgent changes QAN PostgreSQL PgStat Statements Agent. - rpc ChangeQANPostgreSQLPgStatementsAgent(ChangeQANPostgreSQLPgStatementsAgentRequest) returns (ChangeQANPostgreSQLPgStatementsAgentResponse) { - option (google.api.http) = { - post: "/v1/inventory/Agents/ChangeQANPostgreSQLPgStatementsAgent" - body: "*" - }; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "Change 'QAN PostgreSQL pg_stat_statements' Agent" - description: "Changes 'Query Analytics PostgreSQL pg_stat_statements' Agent." - }; - } - // ChangeQANPostgreSQLPgStatMonitorAgent changes QAN PostgreSQL PgStat Monitor Agent. - rpc ChangeQANPostgreSQLPgStatMonitorAgent(ChangeQANPostgreSQLPgStatMonitorAgentRequest) returns (ChangeQANPostgreSQLPgStatMonitorAgentResponse) { - option (google.api.http) = { - post: "/v1/inventory/Agents/ChangeQANPostgreSQLPgStatMonitorAgent" - body: "*" - }; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "Change 'QAN PostgreSQL pg_stat_monitor' Agent" - description: "Changes 'Query Analytics PostgreSQL pg_stat_monitor' Agent." - }; - } - // ChangeRDSExporter changes rds_exporter Agent. - rpc ChangeRDSExporter(ChangeRDSExporterRequest) returns (ChangeRDSExporterResponse) { - option (google.api.http) = { - post: "/v1/inventory/Agents/ChangeRDSExporter" - body: "*" - }; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "Change RDS Exporter" - description: "Changes rds_exporter Agent." - }; - } - // ChangeExternalExporter changes external_exporter Agent. - rpc ChangeExternalExporter(ChangeExternalExporterRequest) returns (ChangeExternalExporterResponse) { - option (google.api.http) = { - post: "/v1/inventory/Agents/ChangeExternalExporter" - body: "*" - }; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "Change External Exporter" - description: "Changes external_exporter Agent." - }; - } - // ChangeAzureDatabaseExporter changes azure_database_exporter Agent. - rpc ChangeAzureDatabaseExporter(ChangeAzureDatabaseExporterRequest) returns (ChangeAzureDatabaseExporterResponse) { - option (google.api.http) = { - post: "/v1/inventory/Agents/ChangeAzureDatabaseExporter" - body: "*" - }; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "Change Azure Database Exporter" - description: "Changes azure_database_exporter Agent." + summary: "Update an Agent in Inventory" + description: "Updates an Agent in Inventory." }; } + + // rpc ChangeNodeExporter(ChangeNodeExporterRequest) returns (ChangeNodeExporterResponse) { + // rpc ChangeMySQLdExporter(ChangeMySQLdExporterRequest) returns (ChangeMySQLdExporterResponse) { + // rpc ChangeMongoDBExporter(ChangeMongoDBExporterRequest) returns (ChangeMongoDBExporterResponse) { + // rpc ChangePostgresExporter(ChangePostgresExporterRequest) returns (ChangePostgresExporterResponse) { + // rpc ChangeProxySQLExporter(ChangeProxySQLExporterRequest) returns (ChangeProxySQLExporterResponse) { + // rpc ChangeQANMySQLPerfSchemaAgent(ChangeQANMySQLPerfSchemaAgentRequest) returns (ChangeQANMySQLPerfSchemaAgentResponse) { + // rpc ChangeQANMySQLSlowlogAgent(ChangeQANMySQLSlowlogAgentRequest) returns (ChangeQANMySQLSlowlogAgentResponse) { + // rpc ChangeQANMongoDBProfilerAgent(ChangeQANMongoDBProfilerAgentRequest) returns (ChangeQANMongoDBProfilerAgentResponse) { + // rpc ChangeQANPostgreSQLPgStatementsAgent(ChangeQANPostgreSQLPgStatementsAgentRequest) returns (ChangeQANPostgreSQLPgStatementsAgentResponse) { + // rpc ChangeQANPostgreSQLPgStatMonitorAgent(ChangeQANPostgreSQLPgStatMonitorAgentRequest) returns (ChangeQANPostgreSQLPgStatMonitorAgentResponse) { + // rpc ChangeRDSExporter(ChangeRDSExporterRequest) returns (ChangeRDSExporterResponse) { + // rpc ChangeExternalExporter(ChangeExternalExporterRequest) returns (ChangeExternalExporterResponse) { + // rpc ChangeAzureDatabaseExporter(ChangeAzureDatabaseExporterRequest) returns (ChangeAzureDatabaseExporterResponse) { + // RemoveAgent removes an Agent. rpc RemoveAgent(RemoveAgentRequest) returns (RemoveAgentResponse) { option (google.api.http) = { From 177260f714cfcfb164dbd34010b60b5516d5b98a Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Thu, 18 Jan 2024 18:33:36 +0000 Subject: [PATCH 04/29] PMM-12811 modify agents_server and tests --- api/inventory/v1/agents.pb.go | 5054 +++++++------- api/inventory/v1/agents.pb.gw.go | 1068 +-- api/inventory/v1/agents.pb.validate.go | 4236 ++++++------ api/inventory/v1/agents.proto | 1 - api/inventory/v1/agents_grpc.pb.go | 524 +- .../agents_service/agents_service_client.go | 514 +- .../agents_service/change_agent_parameters.go | 144 + .../agents_service/change_agent_responses.go | 6033 +++++++++++++++++ ...ange_azure_database_exporter_parameters.go | 144 - ...hange_azure_database_exporter_responses.go | 701 -- .../change_external_exporter_parameters.go | 144 - .../change_external_exporter_responses.go | 561 -- .../change_mongo_db_exporter_parameters.go | 144 - .../change_mongo_db_exporter_responses.go | 720 -- .../change_my_s_q_ld_exporter_parameters.go | 144 - .../change_my_s_q_ld_exporter_responses.go | 727 -- .../change_node_exporter_parameters.go | 144 - .../change_node_exporter_responses.go | 698 -- .../change_postgres_exporter_parameters.go | 144 - .../change_postgres_exporter_responses.go | 713 -- .../change_proxy_sql_exporter_parameters.go | 144 - .../change_proxy_sql_exporter_responses.go | 710 -- ..._qan_mongo_db_profiler_agent_parameters.go | 144 - ...e_qan_mongo_db_profiler_agent_responses.go | 701 -- ...qan_my_sql_perf_schema_agent_parameters.go | 144 - ..._qan_my_sql_perf_schema_agent_responses.go | 716 -- ...nge_qan_my_sql_slowlog_agent_parameters.go | 144 - ...ange_qan_my_sql_slowlog_agent_responses.go | 719 -- ...re_sql_pg_stat_monitor_agent_parameters.go | 144 - ...gre_sql_pg_stat_monitor_agent_responses.go | 707 -- ...tgre_sql_pg_statements_agent_parameters.go | 144 - ...stgre_sql_pg_statements_agent_responses.go | 704 -- .../change_rds_exporter_parameters.go | 144 - .../change_rds_exporter_responses.go | 707 -- api/inventory/v1/json/v1.json | 2618 +++---- api/swagger/swagger-dev.json | 2758 +++----- descriptor.bin | Bin 684968 -> 682458 bytes managed/services/inventory/agents.go | 26 +- managed/services/inventory/agents_test.go | 2 +- .../services/inventory/grpc/agents_server.go | 172 +- 40 files changed, 12624 insertions(+), 21482 deletions(-) create mode 100644 api/inventory/v1/json/client/agents_service/change_agent_parameters.go create mode 100644 api/inventory/v1/json/client/agents_service/change_agent_responses.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_azure_database_exporter_parameters.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_azure_database_exporter_responses.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_external_exporter_parameters.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_external_exporter_responses.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_mongo_db_exporter_parameters.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_mongo_db_exporter_responses.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_my_s_q_ld_exporter_parameters.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_my_s_q_ld_exporter_responses.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_node_exporter_parameters.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_node_exporter_responses.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_postgres_exporter_parameters.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_postgres_exporter_responses.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_proxy_sql_exporter_parameters.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_proxy_sql_exporter_responses.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_qan_mongo_db_profiler_agent_parameters.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_qan_mongo_db_profiler_agent_responses.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_qan_my_sql_perf_schema_agent_parameters.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_qan_my_sql_perf_schema_agent_responses.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_qan_my_sql_slowlog_agent_parameters.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_qan_my_sql_slowlog_agent_responses.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_qan_postgre_sql_pg_stat_monitor_agent_parameters.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_qan_postgre_sql_pg_stat_monitor_agent_responses.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_qan_postgre_sql_pg_statements_agent_parameters.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_qan_postgre_sql_pg_statements_agent_responses.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_rds_exporter_parameters.go delete mode 100644 api/inventory/v1/json/client/agents_service/change_rds_exporter_responses.go diff --git a/api/inventory/v1/agents.pb.go b/api/inventory/v1/agents.pb.go index 7d232fbe85..6b661eada6 100644 --- a/api/inventory/v1/agents.pb.go +++ b/api/inventory/v1/agents.pb.go @@ -2542,7 +2542,6 @@ type ChangeCommonAgentParams struct { // Remove all custom user-assigned labels. RemoveCustomLabels bool `protobuf:"varint,4,opt,name=remove_custom_labels,json=removeCustomLabels,proto3" json:"remove_custom_labels,omitempty"` // Enables push metrics with vmagent, can't be used with disable_push_metrics. - // Can't be used with agent version lower then 2.12 and unsupported agents. EnablePushMetrics bool `protobuf:"varint,5,opt,name=enable_push_metrics,json=enablePushMetrics,proto3" json:"enable_push_metrics,omitempty"` // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. DisablePushMetrics bool `protobuf:"varint,6,opt,name=disable_push_metrics,json=disablePushMetrics,proto3" json:"disable_push_metrics,omitempty"` @@ -3282,63 +3281,6 @@ func (x *GetAgentLogsResponse) GetAgentConfigLogLinesCount() uint32 { return 0 } -type AddPMMAgentParams struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Node identifier where this instance runs. - RunsOnNodeId string `protobuf:"bytes,1,opt,name=runs_on_node_id,json=runsOnNodeId,proto3" json:"runs_on_node_id,omitempty"` - // Custom user-assigned labels. - CustomLabels map[string]string `protobuf:"bytes,2,rep,name=custom_labels,json=customLabels,proto3" json:"custom_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` -} - -func (x *AddPMMAgentParams) Reset() { - *x = AddPMMAgentParams{} - if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AddPMMAgentParams) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AddPMMAgentParams) ProtoMessage() {} - -func (x *AddPMMAgentParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AddPMMAgentParams.ProtoReflect.Descriptor instead. -func (*AddPMMAgentParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{22} -} - -func (x *AddPMMAgentParams) GetRunsOnNodeId() string { - if x != nil { - return x.RunsOnNodeId - } - return "" -} - -func (x *AddPMMAgentParams) GetCustomLabels() map[string]string { - if x != nil { - return x.CustomLabels - } - return nil -} - type AddAgentRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3366,7 +3308,7 @@ type AddAgentRequest struct { func (x *AddAgentRequest) Reset() { *x = AddAgentRequest{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[23] + mi := &file_inventory_v1_agents_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3379,7 +3321,7 @@ func (x *AddAgentRequest) String() string { func (*AddAgentRequest) ProtoMessage() {} func (x *AddAgentRequest) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[23] + mi := &file_inventory_v1_agents_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3392,7 +3334,7 @@ func (x *AddAgentRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AddAgentRequest.ProtoReflect.Descriptor instead. func (*AddAgentRequest) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{23} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{22} } func (m *AddAgentRequest) GetExporter() isAddAgentRequest_Exporter { @@ -3617,7 +3559,7 @@ type AddAgentResponse struct { func (x *AddAgentResponse) Reset() { *x = AddAgentResponse{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[24] + mi := &file_inventory_v1_agents_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3630,7 +3572,7 @@ func (x *AddAgentResponse) String() string { func (*AddAgentResponse) ProtoMessage() {} func (x *AddAgentResponse) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[24] + mi := &file_inventory_v1_agents_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3643,7 +3585,7 @@ func (x *AddAgentResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AddAgentResponse.ProtoReflect.Descriptor instead. func (*AddAgentResponse) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{24} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{23} } func (m *AddAgentResponse) GetExporter() isAddAgentResponse_Exporter { @@ -3846,42 +3788,46 @@ func (*AddAgentResponse_QanPostgresqlPgstatementsAgent) isAddAgentResponse_Expor func (*AddAgentResponse_QanPostgresqlPgstatmonitorAgent) isAddAgentResponse_Exporter() {} -type AddNodeExporterParams struct { +type ChangeAgentRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The pmm-agent identifier which runs this instance. - PmmAgentId string `protobuf:"bytes,1,opt,name=pmm_agent_id,json=pmmAgentId,proto3" json:"pmm_agent_id,omitempty"` - // Custom user-assigned labels. - CustomLabels map[string]string `protobuf:"bytes,2,rep,name=custom_labels,json=customLabels,proto3" json:"custom_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // Enables push metrics mode for exporter. - PushMetrics bool `protobuf:"varint,3,opt,name=push_metrics,json=pushMetrics,proto3" json:"push_metrics,omitempty"` - // List of collector names to disable in this exporter. - DisableCollectors []string `protobuf:"bytes,4,rep,name=disable_collectors,json=disableCollectors,proto3" json:"disable_collectors,omitempty"` - // Log level for exporter. - LogLevel LogLevel `protobuf:"varint,5,opt,name=log_level,json=logLevel,proto3,enum=inventory.v1.LogLevel" json:"log_level,omitempty"` - // Expose the node_exporter process on all public interfaces - ExposeExporter bool `protobuf:"varint,6,opt,name=expose_exporter,json=exposeExporter,proto3" json:"expose_exporter,omitempty"` -} - -func (x *AddNodeExporterParams) Reset() { - *x = AddNodeExporterParams{} + // Types that are assignable to Agent: + // + // *ChangeAgentRequest_NodeExporter + // *ChangeAgentRequest_MysqldExporter + // *ChangeAgentRequest_MongodbExporter + // *ChangeAgentRequest_PostgresExporter + // *ChangeAgentRequest_ProxysqlExporter + // *ChangeAgentRequest_ExternalExporter + // *ChangeAgentRequest_RdsExporter + // *ChangeAgentRequest_AzureDatabaseExporter + // *ChangeAgentRequest_QanMysqlPerfschemaAgent + // *ChangeAgentRequest_QanMysqlSlowlogAgent + // *ChangeAgentRequest_QanMongodbProfilerAgent + // *ChangeAgentRequest_QanPostgresqlPgstatementsAgent + // *ChangeAgentRequest_QanPostgresqlPgstatmonitorAgent + Agent isChangeAgentRequest_Agent `protobuf_oneof:"agent"` +} + +func (x *ChangeAgentRequest) Reset() { + *x = ChangeAgentRequest{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[25] + mi := &file_inventory_v1_agents_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AddNodeExporterParams) String() string { +func (x *ChangeAgentRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AddNodeExporterParams) ProtoMessage() {} +func (*ChangeAgentRequest) ProtoMessage() {} -func (x *AddNodeExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[25] +func (x *ChangeAgentRequest) ProtoReflect() protoreflect.Message { + mi := &file_inventory_v1_agents_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3892,133 +3838,234 @@ func (x *AddNodeExporterParams) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AddNodeExporterParams.ProtoReflect.Descriptor instead. -func (*AddNodeExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{25} +// Deprecated: Use ChangeAgentRequest.ProtoReflect.Descriptor instead. +func (*ChangeAgentRequest) Descriptor() ([]byte, []int) { + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{24} } -func (x *AddNodeExporterParams) GetPmmAgentId() string { - if x != nil { - return x.PmmAgentId +func (m *ChangeAgentRequest) GetAgent() isChangeAgentRequest_Agent { + if m != nil { + return m.Agent } - return "" + return nil } -func (x *AddNodeExporterParams) GetCustomLabels() map[string]string { - if x != nil { - return x.CustomLabels +func (x *ChangeAgentRequest) GetNodeExporter() *ChangeNodeExporterParams { + if x, ok := x.GetAgent().(*ChangeAgentRequest_NodeExporter); ok { + return x.NodeExporter } return nil } -func (x *AddNodeExporterParams) GetPushMetrics() bool { - if x != nil { - return x.PushMetrics +func (x *ChangeAgentRequest) GetMysqldExporter() *ChangeMySQLdExporterParams { + if x, ok := x.GetAgent().(*ChangeAgentRequest_MysqldExporter); ok { + return x.MysqldExporter } - return false + return nil } -func (x *AddNodeExporterParams) GetDisableCollectors() []string { - if x != nil { - return x.DisableCollectors +func (x *ChangeAgentRequest) GetMongodbExporter() *ChangeMongoDBExporterParams { + if x, ok := x.GetAgent().(*ChangeAgentRequest_MongodbExporter); ok { + return x.MongodbExporter } return nil } -func (x *AddNodeExporterParams) GetLogLevel() LogLevel { - if x != nil { - return x.LogLevel +func (x *ChangeAgentRequest) GetPostgresExporter() *ChangePostgresExporterParams { + if x, ok := x.GetAgent().(*ChangeAgentRequest_PostgresExporter); ok { + return x.PostgresExporter } - return LogLevel_LOG_LEVEL_UNSPECIFIED + return nil } -func (x *AddNodeExporterParams) GetExposeExporter() bool { - if x != nil { - return x.ExposeExporter +func (x *ChangeAgentRequest) GetProxysqlExporter() *ChangeProxySQLExporterParams { + if x, ok := x.GetAgent().(*ChangeAgentRequest_ProxysqlExporter); ok { + return x.ProxysqlExporter } - return false + return nil } -type ChangeNodeExporterRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - AgentId string `protobuf:"bytes,1,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` - Common *ChangeCommonAgentParams `protobuf:"bytes,2,opt,name=common,proto3" json:"common,omitempty"` +func (x *ChangeAgentRequest) GetExternalExporter() *ChangeExternalExporterParams { + if x, ok := x.GetAgent().(*ChangeAgentRequest_ExternalExporter); ok { + return x.ExternalExporter + } + return nil } -func (x *ChangeNodeExporterRequest) Reset() { - *x = ChangeNodeExporterRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ChangeAgentRequest) GetRdsExporter() *ChangeRDSExporterParams { + if x, ok := x.GetAgent().(*ChangeAgentRequest_RdsExporter); ok { + return x.RdsExporter } + return nil } -func (x *ChangeNodeExporterRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *ChangeAgentRequest) GetAzureDatabaseExporter() *ChangeAzureDatabaseExporterParams { + if x, ok := x.GetAgent().(*ChangeAgentRequest_AzureDatabaseExporter); ok { + return x.AzureDatabaseExporter + } + return nil } -func (*ChangeNodeExporterRequest) ProtoMessage() {} +func (x *ChangeAgentRequest) GetQanMysqlPerfschemaAgent() *ChangeQANMySQLPerfSchemaAgentParams { + if x, ok := x.GetAgent().(*ChangeAgentRequest_QanMysqlPerfschemaAgent); ok { + return x.QanMysqlPerfschemaAgent + } + return nil +} -func (x *ChangeNodeExporterRequest) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ChangeAgentRequest) GetQanMysqlSlowlogAgent() *ChangeQANMySQLSlowlogAgentParams { + if x, ok := x.GetAgent().(*ChangeAgentRequest_QanMysqlSlowlogAgent); ok { + return x.QanMysqlSlowlogAgent } - return mi.MessageOf(x) + return nil } -// Deprecated: Use ChangeNodeExporterRequest.ProtoReflect.Descriptor instead. -func (*ChangeNodeExporterRequest) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{26} +func (x *ChangeAgentRequest) GetQanMongodbProfilerAgent() *ChangeQANMongoDBProfilerAgentParams { + if x, ok := x.GetAgent().(*ChangeAgentRequest_QanMongodbProfilerAgent); ok { + return x.QanMongodbProfilerAgent + } + return nil } -func (x *ChangeNodeExporterRequest) GetAgentId() string { - if x != nil { - return x.AgentId +func (x *ChangeAgentRequest) GetQanPostgresqlPgstatementsAgent() *ChangeQANPostgreSQLPgStatementsAgentParams { + if x, ok := x.GetAgent().(*ChangeAgentRequest_QanPostgresqlPgstatementsAgent); ok { + return x.QanPostgresqlPgstatementsAgent } - return "" + return nil } -func (x *ChangeNodeExporterRequest) GetCommon() *ChangeCommonAgentParams { - if x != nil { - return x.Common +func (x *ChangeAgentRequest) GetQanPostgresqlPgstatmonitorAgent() *ChangeQANPostgreSQLPgStatMonitorAgentParams { + if x, ok := x.GetAgent().(*ChangeAgentRequest_QanPostgresqlPgstatmonitorAgent); ok { + return x.QanPostgresqlPgstatmonitorAgent } return nil } -type ChangeNodeExporterResponse struct { +type isChangeAgentRequest_Agent interface { + isChangeAgentRequest_Agent() +} + +type ChangeAgentRequest_NodeExporter struct { + // ChangePMMAgentParams pmm_agent = 1; + NodeExporter *ChangeNodeExporterParams `protobuf:"bytes,2,opt,name=node_exporter,json=nodeExporter,proto3,oneof"` +} + +type ChangeAgentRequest_MysqldExporter struct { + MysqldExporter *ChangeMySQLdExporterParams `protobuf:"bytes,3,opt,name=mysqld_exporter,json=mysqldExporter,proto3,oneof"` +} + +type ChangeAgentRequest_MongodbExporter struct { + MongodbExporter *ChangeMongoDBExporterParams `protobuf:"bytes,4,opt,name=mongodb_exporter,json=mongodbExporter,proto3,oneof"` +} + +type ChangeAgentRequest_PostgresExporter struct { + PostgresExporter *ChangePostgresExporterParams `protobuf:"bytes,5,opt,name=postgres_exporter,json=postgresExporter,proto3,oneof"` +} + +type ChangeAgentRequest_ProxysqlExporter struct { + ProxysqlExporter *ChangeProxySQLExporterParams `protobuf:"bytes,6,opt,name=proxysql_exporter,json=proxysqlExporter,proto3,oneof"` +} + +type ChangeAgentRequest_ExternalExporter struct { + ExternalExporter *ChangeExternalExporterParams `protobuf:"bytes,7,opt,name=external_exporter,json=externalExporter,proto3,oneof"` +} + +type ChangeAgentRequest_RdsExporter struct { + RdsExporter *ChangeRDSExporterParams `protobuf:"bytes,8,opt,name=rds_exporter,json=rdsExporter,proto3,oneof"` +} + +type ChangeAgentRequest_AzureDatabaseExporter struct { + AzureDatabaseExporter *ChangeAzureDatabaseExporterParams `protobuf:"bytes,9,opt,name=azure_database_exporter,json=azureDatabaseExporter,proto3,oneof"` +} + +type ChangeAgentRequest_QanMysqlPerfschemaAgent struct { + QanMysqlPerfschemaAgent *ChangeQANMySQLPerfSchemaAgentParams `protobuf:"bytes,10,opt,name=qan_mysql_perfschema_agent,json=qanMysqlPerfschemaAgent,proto3,oneof"` +} + +type ChangeAgentRequest_QanMysqlSlowlogAgent struct { + QanMysqlSlowlogAgent *ChangeQANMySQLSlowlogAgentParams `protobuf:"bytes,11,opt,name=qan_mysql_slowlog_agent,json=qanMysqlSlowlogAgent,proto3,oneof"` +} + +type ChangeAgentRequest_QanMongodbProfilerAgent struct { + QanMongodbProfilerAgent *ChangeQANMongoDBProfilerAgentParams `protobuf:"bytes,12,opt,name=qan_mongodb_profiler_agent,json=qanMongodbProfilerAgent,proto3,oneof"` +} + +type ChangeAgentRequest_QanPostgresqlPgstatementsAgent struct { + QanPostgresqlPgstatementsAgent *ChangeQANPostgreSQLPgStatementsAgentParams `protobuf:"bytes,13,opt,name=qan_postgresql_pgstatements_agent,json=qanPostgresqlPgstatementsAgent,proto3,oneof"` +} + +type ChangeAgentRequest_QanPostgresqlPgstatmonitorAgent struct { + QanPostgresqlPgstatmonitorAgent *ChangeQANPostgreSQLPgStatMonitorAgentParams `protobuf:"bytes,14,opt,name=qan_postgresql_pgstatmonitor_agent,json=qanPostgresqlPgstatmonitorAgent,proto3,oneof"` +} + +func (*ChangeAgentRequest_NodeExporter) isChangeAgentRequest_Agent() {} + +func (*ChangeAgentRequest_MysqldExporter) isChangeAgentRequest_Agent() {} + +func (*ChangeAgentRequest_MongodbExporter) isChangeAgentRequest_Agent() {} + +func (*ChangeAgentRequest_PostgresExporter) isChangeAgentRequest_Agent() {} + +func (*ChangeAgentRequest_ProxysqlExporter) isChangeAgentRequest_Agent() {} + +func (*ChangeAgentRequest_ExternalExporter) isChangeAgentRequest_Agent() {} + +func (*ChangeAgentRequest_RdsExporter) isChangeAgentRequest_Agent() {} + +func (*ChangeAgentRequest_AzureDatabaseExporter) isChangeAgentRequest_Agent() {} + +func (*ChangeAgentRequest_QanMysqlPerfschemaAgent) isChangeAgentRequest_Agent() {} + +func (*ChangeAgentRequest_QanMysqlSlowlogAgent) isChangeAgentRequest_Agent() {} + +func (*ChangeAgentRequest_QanMongodbProfilerAgent) isChangeAgentRequest_Agent() {} + +func (*ChangeAgentRequest_QanPostgresqlPgstatementsAgent) isChangeAgentRequest_Agent() {} + +func (*ChangeAgentRequest_QanPostgresqlPgstatmonitorAgent) isChangeAgentRequest_Agent() {} + +type ChangeAgentResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - NodeExporter *NodeExporter `protobuf:"bytes,1,opt,name=node_exporter,json=nodeExporter,proto3" json:"node_exporter,omitempty"` + // Types that are assignable to Agent: + // + // *ChangeAgentResponse_NodeExporter + // *ChangeAgentResponse_MysqldExporter + // *ChangeAgentResponse_MongodbExporter + // *ChangeAgentResponse_PostgresExporter + // *ChangeAgentResponse_ProxysqlExporter + // *ChangeAgentResponse_ExternalExporter + // *ChangeAgentResponse_RdsExporter + // *ChangeAgentResponse_AzureDatabaseExporter + // *ChangeAgentResponse_QanMysqlPerfschemaAgent + // *ChangeAgentResponse_QanMysqlSlowlogAgent + // *ChangeAgentResponse_QanMongodbProfilerAgent + // *ChangeAgentResponse_QanPostgresqlPgstatementsAgent + // *ChangeAgentResponse_QanPostgresqlPgstatmonitorAgent + Agent isChangeAgentResponse_Agent `protobuf_oneof:"agent"` + // Actual table count for SQL databases at the moment of adding. + TableCount int32 `protobuf:"varint,20,opt,name=table_count,json=tableCount,proto3" json:"table_count,omitempty"` } -func (x *ChangeNodeExporterResponse) Reset() { - *x = ChangeNodeExporterResponse{} +func (x *ChangeAgentResponse) Reset() { + *x = ChangeAgentResponse{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[27] + mi := &file_inventory_v1_agents_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ChangeNodeExporterResponse) String() string { +func (x *ChangeAgentResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ChangeNodeExporterResponse) ProtoMessage() {} +func (*ChangeAgentResponse) ProtoMessage() {} -func (x *ChangeNodeExporterResponse) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[27] +func (x *ChangeAgentResponse) ProtoReflect() protoreflect.Message { + mi := &file_inventory_v1_agents_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4029,238 +4076,227 @@ func (x *ChangeNodeExporterResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ChangeNodeExporterResponse.ProtoReflect.Descriptor instead. -func (*ChangeNodeExporterResponse) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{27} +// Deprecated: Use ChangeAgentResponse.ProtoReflect.Descriptor instead. +func (*ChangeAgentResponse) Descriptor() ([]byte, []int) { + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{25} } -func (x *ChangeNodeExporterResponse) GetNodeExporter() *NodeExporter { - if x != nil { +func (m *ChangeAgentResponse) GetAgent() isChangeAgentResponse_Agent { + if m != nil { + return m.Agent + } + return nil +} + +func (x *ChangeAgentResponse) GetNodeExporter() *NodeExporter { + if x, ok := x.GetAgent().(*ChangeAgentResponse_NodeExporter); ok { return x.NodeExporter } return nil } -type AddMySQLdExporterParams struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *ChangeAgentResponse) GetMysqldExporter() *MySQLdExporter { + if x, ok := x.GetAgent().(*ChangeAgentResponse_MysqldExporter); ok { + return x.MysqldExporter + } + return nil +} - // The pmm-agent identifier which runs this instance. - PmmAgentId string `protobuf:"bytes,1,opt,name=pmm_agent_id,json=pmmAgentId,proto3" json:"pmm_agent_id,omitempty"` - // Service identifier. - ServiceId string `protobuf:"bytes,2,opt,name=service_id,json=serviceId,proto3" json:"service_id,omitempty"` - // MySQL username for scraping metrics. - Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"` - // MySQL password for scraping metrics. - Password string `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty"` - // Use TLS for database connections. - Tls bool `protobuf:"varint,5,opt,name=tls,proto3" json:"tls,omitempty"` - // Skip TLS certificate and hostname validation. - TlsSkipVerify bool `protobuf:"varint,6,opt,name=tls_skip_verify,json=tlsSkipVerify,proto3" json:"tls_skip_verify,omitempty"` - // Certificate Authority certificate chain. - TlsCa string `protobuf:"bytes,7,opt,name=tls_ca,json=tlsCa,proto3" json:"tls_ca,omitempty"` - // Client certificate. - TlsCert string `protobuf:"bytes,8,opt,name=tls_cert,json=tlsCert,proto3" json:"tls_cert,omitempty"` - // Password for decrypting tls_cert. - TlsKey string `protobuf:"bytes,9,opt,name=tls_key,json=tlsKey,proto3" json:"tls_key,omitempty"` - // Tablestats group collectors will be disabled if there are more than that number of tables. - // 0 means tablestats group collectors are always enabled (no limit). - // Negative value means tablestats group collectors are always disabled. - TablestatsGroupTableLimit int32 `protobuf:"varint,10,opt,name=tablestats_group_table_limit,json=tablestatsGroupTableLimit,proto3" json:"tablestats_group_table_limit,omitempty"` - // Custom user-assigned labels. - CustomLabels map[string]string `protobuf:"bytes,11,rep,name=custom_labels,json=customLabels,proto3" json:"custom_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // Skip connection check. - SkipConnectionCheck bool `protobuf:"varint,12,opt,name=skip_connection_check,json=skipConnectionCheck,proto3" json:"skip_connection_check,omitempty"` - // Enables push metrics mode for exporter. - PushMetrics bool `protobuf:"varint,13,opt,name=push_metrics,json=pushMetrics,proto3" json:"push_metrics,omitempty"` - // List of collector names to disable in this exporter. - DisableCollectors []string `protobuf:"bytes,14,rep,name=disable_collectors,json=disableCollectors,proto3" json:"disable_collectors,omitempty"` - // Custom password for exporter endpoint /metrics. - AgentPassword string `protobuf:"bytes,15,opt,name=agent_password,json=agentPassword,proto3" json:"agent_password,omitempty"` - // Log level for exporter. - LogLevel LogLevel `protobuf:"varint,16,opt,name=log_level,json=logLevel,proto3,enum=inventory.v1.LogLevel" json:"log_level,omitempty"` - // Optionally expose the exporter process on all public interfaces - ExposeExporter bool `protobuf:"varint,17,opt,name=expose_exporter,json=exposeExporter,proto3" json:"expose_exporter,omitempty"` +func (x *ChangeAgentResponse) GetMongodbExporter() *MongoDBExporter { + if x, ok := x.GetAgent().(*ChangeAgentResponse_MongodbExporter); ok { + return x.MongodbExporter + } + return nil } -func (x *AddMySQLdExporterParams) Reset() { - *x = AddMySQLdExporterParams{} - if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ChangeAgentResponse) GetPostgresExporter() *PostgresExporter { + if x, ok := x.GetAgent().(*ChangeAgentResponse_PostgresExporter); ok { + return x.PostgresExporter } + return nil } -func (x *AddMySQLdExporterParams) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *ChangeAgentResponse) GetProxysqlExporter() *ProxySQLExporter { + if x, ok := x.GetAgent().(*ChangeAgentResponse_ProxysqlExporter); ok { + return x.ProxysqlExporter + } + return nil } -func (*AddMySQLdExporterParams) ProtoMessage() {} - -func (x *AddMySQLdExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ChangeAgentResponse) GetExternalExporter() *ExternalExporter { + if x, ok := x.GetAgent().(*ChangeAgentResponse_ExternalExporter); ok { + return x.ExternalExporter } - return mi.MessageOf(x) + return nil } -// Deprecated: Use AddMySQLdExporterParams.ProtoReflect.Descriptor instead. -func (*AddMySQLdExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{28} +func (x *ChangeAgentResponse) GetRdsExporter() *RDSExporter { + if x, ok := x.GetAgent().(*ChangeAgentResponse_RdsExporter); ok { + return x.RdsExporter + } + return nil } -func (x *AddMySQLdExporterParams) GetPmmAgentId() string { - if x != nil { - return x.PmmAgentId +func (x *ChangeAgentResponse) GetAzureDatabaseExporter() *AzureDatabaseExporter { + if x, ok := x.GetAgent().(*ChangeAgentResponse_AzureDatabaseExporter); ok { + return x.AzureDatabaseExporter } - return "" + return nil } -func (x *AddMySQLdExporterParams) GetServiceId() string { - if x != nil { - return x.ServiceId +func (x *ChangeAgentResponse) GetQanMysqlPerfschemaAgent() *QANMySQLPerfSchemaAgent { + if x, ok := x.GetAgent().(*ChangeAgentResponse_QanMysqlPerfschemaAgent); ok { + return x.QanMysqlPerfschemaAgent } - return "" + return nil } -func (x *AddMySQLdExporterParams) GetUsername() string { - if x != nil { - return x.Username +func (x *ChangeAgentResponse) GetQanMysqlSlowlogAgent() *QANMySQLSlowlogAgent { + if x, ok := x.GetAgent().(*ChangeAgentResponse_QanMysqlSlowlogAgent); ok { + return x.QanMysqlSlowlogAgent } - return "" + return nil } -func (x *AddMySQLdExporterParams) GetPassword() string { - if x != nil { - return x.Password +func (x *ChangeAgentResponse) GetQanMongodbProfilerAgent() *QANMongoDBProfilerAgent { + if x, ok := x.GetAgent().(*ChangeAgentResponse_QanMongodbProfilerAgent); ok { + return x.QanMongodbProfilerAgent } - return "" + return nil } -func (x *AddMySQLdExporterParams) GetTls() bool { - if x != nil { - return x.Tls +func (x *ChangeAgentResponse) GetQanPostgresqlPgstatementsAgent() *QANPostgreSQLPgStatementsAgent { + if x, ok := x.GetAgent().(*ChangeAgentResponse_QanPostgresqlPgstatementsAgent); ok { + return x.QanPostgresqlPgstatementsAgent } - return false + return nil } -func (x *AddMySQLdExporterParams) GetTlsSkipVerify() bool { - if x != nil { - return x.TlsSkipVerify +func (x *ChangeAgentResponse) GetQanPostgresqlPgstatmonitorAgent() *QANPostgreSQLPgStatMonitorAgent { + if x, ok := x.GetAgent().(*ChangeAgentResponse_QanPostgresqlPgstatmonitorAgent); ok { + return x.QanPostgresqlPgstatmonitorAgent } - return false + return nil } -func (x *AddMySQLdExporterParams) GetTlsCa() string { +func (x *ChangeAgentResponse) GetTableCount() int32 { if x != nil { - return x.TlsCa + return x.TableCount } - return "" + return 0 } -func (x *AddMySQLdExporterParams) GetTlsCert() string { - if x != nil { - return x.TlsCert - } - return "" +type isChangeAgentResponse_Agent interface { + isChangeAgentResponse_Agent() } -func (x *AddMySQLdExporterParams) GetTlsKey() string { - if x != nil { - return x.TlsKey - } - return "" +type ChangeAgentResponse_NodeExporter struct { + // PMMAgent pmm_agent = 1; + NodeExporter *NodeExporter `protobuf:"bytes,2,opt,name=node_exporter,json=nodeExporter,proto3,oneof"` } -func (x *AddMySQLdExporterParams) GetTablestatsGroupTableLimit() int32 { - if x != nil { - return x.TablestatsGroupTableLimit - } - return 0 +type ChangeAgentResponse_MysqldExporter struct { + MysqldExporter *MySQLdExporter `protobuf:"bytes,3,opt,name=mysqld_exporter,json=mysqldExporter,proto3,oneof"` } -func (x *AddMySQLdExporterParams) GetCustomLabels() map[string]string { - if x != nil { - return x.CustomLabels - } - return nil +type ChangeAgentResponse_MongodbExporter struct { + MongodbExporter *MongoDBExporter `protobuf:"bytes,4,opt,name=mongodb_exporter,json=mongodbExporter,proto3,oneof"` } -func (x *AddMySQLdExporterParams) GetSkipConnectionCheck() bool { - if x != nil { - return x.SkipConnectionCheck - } - return false +type ChangeAgentResponse_PostgresExporter struct { + PostgresExporter *PostgresExporter `protobuf:"bytes,5,opt,name=postgres_exporter,json=postgresExporter,proto3,oneof"` } -func (x *AddMySQLdExporterParams) GetPushMetrics() bool { - if x != nil { - return x.PushMetrics - } - return false +type ChangeAgentResponse_ProxysqlExporter struct { + ProxysqlExporter *ProxySQLExporter `protobuf:"bytes,6,opt,name=proxysql_exporter,json=proxysqlExporter,proto3,oneof"` } -func (x *AddMySQLdExporterParams) GetDisableCollectors() []string { - if x != nil { - return x.DisableCollectors - } - return nil +type ChangeAgentResponse_ExternalExporter struct { + ExternalExporter *ExternalExporter `protobuf:"bytes,7,opt,name=external_exporter,json=externalExporter,proto3,oneof"` } -func (x *AddMySQLdExporterParams) GetAgentPassword() string { - if x != nil { - return x.AgentPassword - } - return "" +type ChangeAgentResponse_RdsExporter struct { + RdsExporter *RDSExporter `protobuf:"bytes,8,opt,name=rds_exporter,json=rdsExporter,proto3,oneof"` } -func (x *AddMySQLdExporterParams) GetLogLevel() LogLevel { - if x != nil { - return x.LogLevel - } - return LogLevel_LOG_LEVEL_UNSPECIFIED +type ChangeAgentResponse_AzureDatabaseExporter struct { + AzureDatabaseExporter *AzureDatabaseExporter `protobuf:"bytes,9,opt,name=azure_database_exporter,json=azureDatabaseExporter,proto3,oneof"` } -func (x *AddMySQLdExporterParams) GetExposeExporter() bool { - if x != nil { - return x.ExposeExporter - } - return false +type ChangeAgentResponse_QanMysqlPerfschemaAgent struct { + QanMysqlPerfschemaAgent *QANMySQLPerfSchemaAgent `protobuf:"bytes,10,opt,name=qan_mysql_perfschema_agent,json=qanMysqlPerfschemaAgent,proto3,oneof"` +} + +type ChangeAgentResponse_QanMysqlSlowlogAgent struct { + QanMysqlSlowlogAgent *QANMySQLSlowlogAgent `protobuf:"bytes,11,opt,name=qan_mysql_slowlog_agent,json=qanMysqlSlowlogAgent,proto3,oneof"` +} + +type ChangeAgentResponse_QanMongodbProfilerAgent struct { + QanMongodbProfilerAgent *QANMongoDBProfilerAgent `protobuf:"bytes,12,opt,name=qan_mongodb_profiler_agent,json=qanMongodbProfilerAgent,proto3,oneof"` +} + +type ChangeAgentResponse_QanPostgresqlPgstatementsAgent struct { + QanPostgresqlPgstatementsAgent *QANPostgreSQLPgStatementsAgent `protobuf:"bytes,13,opt,name=qan_postgresql_pgstatements_agent,json=qanPostgresqlPgstatementsAgent,proto3,oneof"` +} + +type ChangeAgentResponse_QanPostgresqlPgstatmonitorAgent struct { + QanPostgresqlPgstatmonitorAgent *QANPostgreSQLPgStatMonitorAgent `protobuf:"bytes,14,opt,name=qan_postgresql_pgstatmonitor_agent,json=qanPostgresqlPgstatmonitorAgent,proto3,oneof"` } -type ChangeMySQLdExporterRequest struct { +func (*ChangeAgentResponse_NodeExporter) isChangeAgentResponse_Agent() {} + +func (*ChangeAgentResponse_MysqldExporter) isChangeAgentResponse_Agent() {} + +func (*ChangeAgentResponse_MongodbExporter) isChangeAgentResponse_Agent() {} + +func (*ChangeAgentResponse_PostgresExporter) isChangeAgentResponse_Agent() {} + +func (*ChangeAgentResponse_ProxysqlExporter) isChangeAgentResponse_Agent() {} + +func (*ChangeAgentResponse_ExternalExporter) isChangeAgentResponse_Agent() {} + +func (*ChangeAgentResponse_RdsExporter) isChangeAgentResponse_Agent() {} + +func (*ChangeAgentResponse_AzureDatabaseExporter) isChangeAgentResponse_Agent() {} + +func (*ChangeAgentResponse_QanMysqlPerfschemaAgent) isChangeAgentResponse_Agent() {} + +func (*ChangeAgentResponse_QanMysqlSlowlogAgent) isChangeAgentResponse_Agent() {} + +func (*ChangeAgentResponse_QanMongodbProfilerAgent) isChangeAgentResponse_Agent() {} + +func (*ChangeAgentResponse_QanPostgresqlPgstatementsAgent) isChangeAgentResponse_Agent() {} + +func (*ChangeAgentResponse_QanPostgresqlPgstatmonitorAgent) isChangeAgentResponse_Agent() {} + +type AddPMMAgentParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AgentId string `protobuf:"bytes,1,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` - Common *ChangeCommonAgentParams `protobuf:"bytes,2,opt,name=common,proto3" json:"common,omitempty"` + // Node identifier where this instance runs. + RunsOnNodeId string `protobuf:"bytes,1,opt,name=runs_on_node_id,json=runsOnNodeId,proto3" json:"runs_on_node_id,omitempty"` + // Custom user-assigned labels. + CustomLabels map[string]string `protobuf:"bytes,2,rep,name=custom_labels,json=customLabels,proto3" json:"custom_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } -func (x *ChangeMySQLdExporterRequest) Reset() { - *x = ChangeMySQLdExporterRequest{} +func (x *AddPMMAgentParams) Reset() { + *x = AddPMMAgentParams{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[29] + mi := &file_inventory_v1_agents_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ChangeMySQLdExporterRequest) String() string { +func (x *AddPMMAgentParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ChangeMySQLdExporterRequest) ProtoMessage() {} +func (*AddPMMAgentParams) ProtoMessage() {} -func (x *ChangeMySQLdExporterRequest) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[29] +func (x *AddPMMAgentParams) ProtoReflect() protoreflect.Message { + mi := &file_inventory_v1_agents_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4271,50 +4307,61 @@ func (x *ChangeMySQLdExporterRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ChangeMySQLdExporterRequest.ProtoReflect.Descriptor instead. -func (*ChangeMySQLdExporterRequest) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{29} +// Deprecated: Use AddPMMAgentParams.ProtoReflect.Descriptor instead. +func (*AddPMMAgentParams) Descriptor() ([]byte, []int) { + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{26} } -func (x *ChangeMySQLdExporterRequest) GetAgentId() string { +func (x *AddPMMAgentParams) GetRunsOnNodeId() string { if x != nil { - return x.AgentId + return x.RunsOnNodeId } return "" } -func (x *ChangeMySQLdExporterRequest) GetCommon() *ChangeCommonAgentParams { +func (x *AddPMMAgentParams) GetCustomLabels() map[string]string { if x != nil { - return x.Common + return x.CustomLabels } return nil } -type ChangeMySQLdExporterResponse struct { +type AddNodeExporterParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MysqldExporter *MySQLdExporter `protobuf:"bytes,1,opt,name=mysqld_exporter,json=mysqldExporter,proto3" json:"mysqld_exporter,omitempty"` + // The pmm-agent identifier which runs this instance. + PmmAgentId string `protobuf:"bytes,1,opt,name=pmm_agent_id,json=pmmAgentId,proto3" json:"pmm_agent_id,omitempty"` + // Custom user-assigned labels. + CustomLabels map[string]string `protobuf:"bytes,2,rep,name=custom_labels,json=customLabels,proto3" json:"custom_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Enables push metrics mode for exporter. + PushMetrics bool `protobuf:"varint,3,opt,name=push_metrics,json=pushMetrics,proto3" json:"push_metrics,omitempty"` + // List of collector names to disable in this exporter. + DisableCollectors []string `protobuf:"bytes,4,rep,name=disable_collectors,json=disableCollectors,proto3" json:"disable_collectors,omitempty"` + // Log level for exporter. + LogLevel LogLevel `protobuf:"varint,5,opt,name=log_level,json=logLevel,proto3,enum=inventory.v1.LogLevel" json:"log_level,omitempty"` + // Expose the node_exporter process on all public interfaces + ExposeExporter bool `protobuf:"varint,6,opt,name=expose_exporter,json=exposeExporter,proto3" json:"expose_exporter,omitempty"` } -func (x *ChangeMySQLdExporterResponse) Reset() { - *x = ChangeMySQLdExporterResponse{} +func (x *AddNodeExporterParams) Reset() { + *x = AddNodeExporterParams{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[30] + mi := &file_inventory_v1_agents_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ChangeMySQLdExporterResponse) String() string { +func (x *AddNodeExporterParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ChangeMySQLdExporterResponse) ProtoMessage() {} +func (*AddNodeExporterParams) ProtoMessage() {} -func (x *ChangeMySQLdExporterResponse) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[30] +func (x *AddNodeExporterParams) ProtoReflect() protoreflect.Message { + mi := &file_inventory_v1_agents_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4325,85 +4372,168 @@ func (x *ChangeMySQLdExporterResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ChangeMySQLdExporterResponse.ProtoReflect.Descriptor instead. -func (*ChangeMySQLdExporterResponse) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{30} +// Deprecated: Use AddNodeExporterParams.ProtoReflect.Descriptor instead. +func (*AddNodeExporterParams) Descriptor() ([]byte, []int) { + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{27} } -func (x *ChangeMySQLdExporterResponse) GetMysqldExporter() *MySQLdExporter { +func (x *AddNodeExporterParams) GetPmmAgentId() string { if x != nil { - return x.MysqldExporter + return x.PmmAgentId + } + return "" +} + +func (x *AddNodeExporterParams) GetCustomLabels() map[string]string { + if x != nil { + return x.CustomLabels } return nil } -type AddMongoDBExporterParams struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *AddNodeExporterParams) GetPushMetrics() bool { + if x != nil { + return x.PushMetrics + } + return false +} - // The pmm-agent identifier which runs this instance. +func (x *AddNodeExporterParams) GetDisableCollectors() []string { + if x != nil { + return x.DisableCollectors + } + return nil +} + +func (x *AddNodeExporterParams) GetLogLevel() LogLevel { + if x != nil { + return x.LogLevel + } + return LogLevel_LOG_LEVEL_UNSPECIFIED +} + +func (x *AddNodeExporterParams) GetExposeExporter() bool { + if x != nil { + return x.ExposeExporter + } + return false +} + +type ChangeNodeExporterParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AgentId string `protobuf:"bytes,1,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` + Common *ChangeCommonAgentParams `protobuf:"bytes,2,opt,name=common,proto3" json:"common,omitempty"` +} + +func (x *ChangeNodeExporterParams) Reset() { + *x = ChangeNodeExporterParams{} + if protoimpl.UnsafeEnabled { + mi := &file_inventory_v1_agents_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangeNodeExporterParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangeNodeExporterParams) ProtoMessage() {} + +func (x *ChangeNodeExporterParams) ProtoReflect() protoreflect.Message { + mi := &file_inventory_v1_agents_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChangeNodeExporterParams.ProtoReflect.Descriptor instead. +func (*ChangeNodeExporterParams) Descriptor() ([]byte, []int) { + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{28} +} + +func (x *ChangeNodeExporterParams) GetAgentId() string { + if x != nil { + return x.AgentId + } + return "" +} + +func (x *ChangeNodeExporterParams) GetCommon() *ChangeCommonAgentParams { + if x != nil { + return x.Common + } + return nil +} + +type AddMySQLdExporterParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The pmm-agent identifier which runs this instance. PmmAgentId string `protobuf:"bytes,1,opt,name=pmm_agent_id,json=pmmAgentId,proto3" json:"pmm_agent_id,omitempty"` // Service identifier. ServiceId string `protobuf:"bytes,2,opt,name=service_id,json=serviceId,proto3" json:"service_id,omitempty"` - // MongoDB username for scraping metrics. + // MySQL username for scraping metrics. Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"` - // MongoDB password for scraping metrics. + // MySQL password for scraping metrics. Password string `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty"` // Use TLS for database connections. Tls bool `protobuf:"varint,5,opt,name=tls,proto3" json:"tls,omitempty"` // Skip TLS certificate and hostname validation. TlsSkipVerify bool `protobuf:"varint,6,opt,name=tls_skip_verify,json=tlsSkipVerify,proto3" json:"tls_skip_verify,omitempty"` - // Client certificate and key. - TlsCertificateKey string `protobuf:"bytes,7,opt,name=tls_certificate_key,json=tlsCertificateKey,proto3" json:"tls_certificate_key,omitempty"` - // Password for decrypting tls_certificate_key. - TlsCertificateKeyFilePassword string `protobuf:"bytes,8,opt,name=tls_certificate_key_file_password,json=tlsCertificateKeyFilePassword,proto3" json:"tls_certificate_key_file_password,omitempty"` // Certificate Authority certificate chain. - TlsCa string `protobuf:"bytes,9,opt,name=tls_ca,json=tlsCa,proto3" json:"tls_ca,omitempty"` + TlsCa string `protobuf:"bytes,7,opt,name=tls_ca,json=tlsCa,proto3" json:"tls_ca,omitempty"` + // Client certificate. + TlsCert string `protobuf:"bytes,8,opt,name=tls_cert,json=tlsCert,proto3" json:"tls_cert,omitempty"` + // Password for decrypting tls_cert. + TlsKey string `protobuf:"bytes,9,opt,name=tls_key,json=tlsKey,proto3" json:"tls_key,omitempty"` + // Tablestats group collectors will be disabled if there are more than that number of tables. + // 0 means tablestats group collectors are always enabled (no limit). + // Negative value means tablestats group collectors are always disabled. + TablestatsGroupTableLimit int32 `protobuf:"varint,10,opt,name=tablestats_group_table_limit,json=tablestatsGroupTableLimit,proto3" json:"tablestats_group_table_limit,omitempty"` // Custom user-assigned labels. - CustomLabels map[string]string `protobuf:"bytes,10,rep,name=custom_labels,json=customLabels,proto3" json:"custom_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + CustomLabels map[string]string `protobuf:"bytes,11,rep,name=custom_labels,json=customLabels,proto3" json:"custom_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Skip connection check. - SkipConnectionCheck bool `protobuf:"varint,11,opt,name=skip_connection_check,json=skipConnectionCheck,proto3" json:"skip_connection_check,omitempty"` + SkipConnectionCheck bool `protobuf:"varint,12,opt,name=skip_connection_check,json=skipConnectionCheck,proto3" json:"skip_connection_check,omitempty"` // Enables push metrics mode for exporter. - PushMetrics bool `protobuf:"varint,12,opt,name=push_metrics,json=pushMetrics,proto3" json:"push_metrics,omitempty"` + PushMetrics bool `protobuf:"varint,13,opt,name=push_metrics,json=pushMetrics,proto3" json:"push_metrics,omitempty"` // List of collector names to disable in this exporter. - DisableCollectors []string `protobuf:"bytes,13,rep,name=disable_collectors,json=disableCollectors,proto3" json:"disable_collectors,omitempty"` - // Authentication mechanism. - // See https://docs.mongodb.com/manual/reference/connection-string/#mongodb-urioption-urioption.authMechanism - // for details. - AuthenticationMechanism string `protobuf:"bytes,14,opt,name=authentication_mechanism,json=authenticationMechanism,proto3" json:"authentication_mechanism,omitempty"` - // Authentication database. - AuthenticationDatabase string `protobuf:"bytes,15,opt,name=authentication_database,json=authenticationDatabase,proto3" json:"authentication_database,omitempty"` + DisableCollectors []string `protobuf:"bytes,14,rep,name=disable_collectors,json=disableCollectors,proto3" json:"disable_collectors,omitempty"` // Custom password for exporter endpoint /metrics. - AgentPassword string `protobuf:"bytes,16,opt,name=agent_password,json=agentPassword,proto3" json:"agent_password,omitempty"` - // List of colletions to get stats from. Can use * - StatsCollections []string `protobuf:"bytes,17,rep,name=stats_collections,json=statsCollections,proto3" json:"stats_collections,omitempty"` - // Collections limit. Only get Databases and collection stats if the total number of collections in the server - // is less than this value. 0: no limit - CollectionsLimit int32 `protobuf:"varint,18,opt,name=collections_limit,json=collectionsLimit,proto3" json:"collections_limit,omitempty"` + AgentPassword string `protobuf:"bytes,15,opt,name=agent_password,json=agentPassword,proto3" json:"agent_password,omitempty"` // Log level for exporter. - LogLevel LogLevel `protobuf:"varint,19,opt,name=log_level,json=logLevel,proto3,enum=inventory.v1.LogLevel" json:"log_level,omitempty"` + LogLevel LogLevel `protobuf:"varint,16,opt,name=log_level,json=logLevel,proto3,enum=inventory.v1.LogLevel" json:"log_level,omitempty"` // Optionally expose the exporter process on all public interfaces - ExposeExporter bool `protobuf:"varint,20,opt,name=expose_exporter,json=exposeExporter,proto3" json:"expose_exporter,omitempty"` + ExposeExporter bool `protobuf:"varint,17,opt,name=expose_exporter,json=exposeExporter,proto3" json:"expose_exporter,omitempty"` } -func (x *AddMongoDBExporterParams) Reset() { - *x = AddMongoDBExporterParams{} +func (x *AddMySQLdExporterParams) Reset() { + *x = AddMySQLdExporterParams{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[31] + mi := &file_inventory_v1_agents_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AddMongoDBExporterParams) String() string { +func (x *AddMySQLdExporterParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AddMongoDBExporterParams) ProtoMessage() {} +func (*AddMySQLdExporterParams) ProtoMessage() {} -func (x *AddMongoDBExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[31] +func (x *AddMySQLdExporterParams) ProtoReflect() protoreflect.Message { + mi := &file_inventory_v1_agents_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4414,152 +4544,131 @@ func (x *AddMongoDBExporterParams) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AddMongoDBExporterParams.ProtoReflect.Descriptor instead. -func (*AddMongoDBExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{31} +// Deprecated: Use AddMySQLdExporterParams.ProtoReflect.Descriptor instead. +func (*AddMySQLdExporterParams) Descriptor() ([]byte, []int) { + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{29} } -func (x *AddMongoDBExporterParams) GetPmmAgentId() string { +func (x *AddMySQLdExporterParams) GetPmmAgentId() string { if x != nil { return x.PmmAgentId } return "" } -func (x *AddMongoDBExporterParams) GetServiceId() string { +func (x *AddMySQLdExporterParams) GetServiceId() string { if x != nil { return x.ServiceId } return "" } -func (x *AddMongoDBExporterParams) GetUsername() string { +func (x *AddMySQLdExporterParams) GetUsername() string { if x != nil { return x.Username } return "" } -func (x *AddMongoDBExporterParams) GetPassword() string { +func (x *AddMySQLdExporterParams) GetPassword() string { if x != nil { return x.Password } return "" } -func (x *AddMongoDBExporterParams) GetTls() bool { +func (x *AddMySQLdExporterParams) GetTls() bool { if x != nil { return x.Tls } return false } -func (x *AddMongoDBExporterParams) GetTlsSkipVerify() bool { +func (x *AddMySQLdExporterParams) GetTlsSkipVerify() bool { if x != nil { return x.TlsSkipVerify } return false } -func (x *AddMongoDBExporterParams) GetTlsCertificateKey() string { +func (x *AddMySQLdExporterParams) GetTlsCa() string { if x != nil { - return x.TlsCertificateKey + return x.TlsCa } return "" } -func (x *AddMongoDBExporterParams) GetTlsCertificateKeyFilePassword() string { +func (x *AddMySQLdExporterParams) GetTlsCert() string { if x != nil { - return x.TlsCertificateKeyFilePassword + return x.TlsCert } return "" } -func (x *AddMongoDBExporterParams) GetTlsCa() string { +func (x *AddMySQLdExporterParams) GetTlsKey() string { if x != nil { - return x.TlsCa + return x.TlsKey } return "" } -func (x *AddMongoDBExporterParams) GetCustomLabels() map[string]string { +func (x *AddMySQLdExporterParams) GetTablestatsGroupTableLimit() int32 { + if x != nil { + return x.TablestatsGroupTableLimit + } + return 0 +} + +func (x *AddMySQLdExporterParams) GetCustomLabels() map[string]string { if x != nil { return x.CustomLabels } return nil } -func (x *AddMongoDBExporterParams) GetSkipConnectionCheck() bool { +func (x *AddMySQLdExporterParams) GetSkipConnectionCheck() bool { if x != nil { return x.SkipConnectionCheck } return false } -func (x *AddMongoDBExporterParams) GetPushMetrics() bool { +func (x *AddMySQLdExporterParams) GetPushMetrics() bool { if x != nil { return x.PushMetrics } return false } -func (x *AddMongoDBExporterParams) GetDisableCollectors() []string { +func (x *AddMySQLdExporterParams) GetDisableCollectors() []string { if x != nil { return x.DisableCollectors } return nil } -func (x *AddMongoDBExporterParams) GetAuthenticationMechanism() string { - if x != nil { - return x.AuthenticationMechanism - } - return "" -} - -func (x *AddMongoDBExporterParams) GetAuthenticationDatabase() string { - if x != nil { - return x.AuthenticationDatabase - } - return "" -} - -func (x *AddMongoDBExporterParams) GetAgentPassword() string { +func (x *AddMySQLdExporterParams) GetAgentPassword() string { if x != nil { return x.AgentPassword } return "" } -func (x *AddMongoDBExporterParams) GetStatsCollections() []string { - if x != nil { - return x.StatsCollections - } - return nil -} - -func (x *AddMongoDBExporterParams) GetCollectionsLimit() int32 { - if x != nil { - return x.CollectionsLimit - } - return 0 -} - -func (x *AddMongoDBExporterParams) GetLogLevel() LogLevel { +func (x *AddMySQLdExporterParams) GetLogLevel() LogLevel { if x != nil { return x.LogLevel } return LogLevel_LOG_LEVEL_UNSPECIFIED } -func (x *AddMongoDBExporterParams) GetExposeExporter() bool { +func (x *AddMySQLdExporterParams) GetExposeExporter() bool { if x != nil { return x.ExposeExporter } return false } -type ChangeMongoDBExporterRequest struct { +type ChangeMySQLdExporterParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -4568,23 +4677,23 @@ type ChangeMongoDBExporterRequest struct { Common *ChangeCommonAgentParams `protobuf:"bytes,2,opt,name=common,proto3" json:"common,omitempty"` } -func (x *ChangeMongoDBExporterRequest) Reset() { - *x = ChangeMongoDBExporterRequest{} +func (x *ChangeMySQLdExporterParams) Reset() { + *x = ChangeMySQLdExporterParams{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[32] + mi := &file_inventory_v1_agents_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ChangeMongoDBExporterRequest) String() string { +func (x *ChangeMySQLdExporterParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ChangeMongoDBExporterRequest) ProtoMessage() {} +func (*ChangeMySQLdExporterParams) ProtoMessage() {} -func (x *ChangeMongoDBExporterRequest) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[32] +func (x *ChangeMySQLdExporterParams) ProtoReflect() protoreflect.Message { + mi := &file_inventory_v1_agents_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4595,73 +4704,26 @@ func (x *ChangeMongoDBExporterRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ChangeMongoDBExporterRequest.ProtoReflect.Descriptor instead. -func (*ChangeMongoDBExporterRequest) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{32} +// Deprecated: Use ChangeMySQLdExporterParams.ProtoReflect.Descriptor instead. +func (*ChangeMySQLdExporterParams) Descriptor() ([]byte, []int) { + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{30} } -func (x *ChangeMongoDBExporterRequest) GetAgentId() string { +func (x *ChangeMySQLdExporterParams) GetAgentId() string { if x != nil { return x.AgentId } return "" } -func (x *ChangeMongoDBExporterRequest) GetCommon() *ChangeCommonAgentParams { +func (x *ChangeMySQLdExporterParams) GetCommon() *ChangeCommonAgentParams { if x != nil { return x.Common } return nil } -type ChangeMongoDBExporterResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - MongodbExporter *MongoDBExporter `protobuf:"bytes,1,opt,name=mongodb_exporter,json=mongodbExporter,proto3" json:"mongodb_exporter,omitempty"` -} - -func (x *ChangeMongoDBExporterResponse) Reset() { - *x = ChangeMongoDBExporterResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ChangeMongoDBExporterResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ChangeMongoDBExporterResponse) ProtoMessage() {} - -func (x *ChangeMongoDBExporterResponse) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[33] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ChangeMongoDBExporterResponse.ProtoReflect.Descriptor instead. -func (*ChangeMongoDBExporterResponse) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{33} -} - -func (x *ChangeMongoDBExporterResponse) GetMongodbExporter() *MongoDBExporter { - if x != nil { - return x.MongodbExporter - } - return nil -} - -type AddPostgresExporterParams struct { +type AddMongoDBExporterParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -4670,55 +4732,64 @@ type AddPostgresExporterParams struct { PmmAgentId string `protobuf:"bytes,1,opt,name=pmm_agent_id,json=pmmAgentId,proto3" json:"pmm_agent_id,omitempty"` // Service identifier. ServiceId string `protobuf:"bytes,2,opt,name=service_id,json=serviceId,proto3" json:"service_id,omitempty"` - // PostgreSQL username for scraping metrics. + // MongoDB username for scraping metrics. Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"` - // PostgreSQL password for scraping metrics. + // MongoDB password for scraping metrics. Password string `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty"` // Use TLS for database connections. Tls bool `protobuf:"varint,5,opt,name=tls,proto3" json:"tls,omitempty"` - // Skip TLS certificate and hostname validation. Uses sslmode=required instead of verify-full. + // Skip TLS certificate and hostname validation. TlsSkipVerify bool `protobuf:"varint,6,opt,name=tls_skip_verify,json=tlsSkipVerify,proto3" json:"tls_skip_verify,omitempty"` + // Client certificate and key. + TlsCertificateKey string `protobuf:"bytes,7,opt,name=tls_certificate_key,json=tlsCertificateKey,proto3" json:"tls_certificate_key,omitempty"` + // Password for decrypting tls_certificate_key. + TlsCertificateKeyFilePassword string `protobuf:"bytes,8,opt,name=tls_certificate_key_file_password,json=tlsCertificateKeyFilePassword,proto3" json:"tls_certificate_key_file_password,omitempty"` + // Certificate Authority certificate chain. + TlsCa string `protobuf:"bytes,9,opt,name=tls_ca,json=tlsCa,proto3" json:"tls_ca,omitempty"` // Custom user-assigned labels. - CustomLabels map[string]string `protobuf:"bytes,7,rep,name=custom_labels,json=customLabels,proto3" json:"custom_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + CustomLabels map[string]string `protobuf:"bytes,10,rep,name=custom_labels,json=customLabels,proto3" json:"custom_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Skip connection check. - SkipConnectionCheck bool `protobuf:"varint,8,opt,name=skip_connection_check,json=skipConnectionCheck,proto3" json:"skip_connection_check,omitempty"` + SkipConnectionCheck bool `protobuf:"varint,11,opt,name=skip_connection_check,json=skipConnectionCheck,proto3" json:"skip_connection_check,omitempty"` // Enables push metrics mode for exporter. - PushMetrics bool `protobuf:"varint,9,opt,name=push_metrics,json=pushMetrics,proto3" json:"push_metrics,omitempty"` + PushMetrics bool `protobuf:"varint,12,opt,name=push_metrics,json=pushMetrics,proto3" json:"push_metrics,omitempty"` // List of collector names to disable in this exporter. - DisableCollectors []string `protobuf:"bytes,10,rep,name=disable_collectors,json=disableCollectors,proto3" json:"disable_collectors,omitempty"` - // TLS CA certificate. - TlsCa string `protobuf:"bytes,11,opt,name=tls_ca,json=tlsCa,proto3" json:"tls_ca,omitempty"` - // TLS Certifcate. - TlsCert string `protobuf:"bytes,12,opt,name=tls_cert,json=tlsCert,proto3" json:"tls_cert,omitempty"` - // TLS Certificate Key. - TlsKey string `protobuf:"bytes,13,opt,name=tls_key,json=tlsKey,proto3" json:"tls_key,omitempty"` + DisableCollectors []string `protobuf:"bytes,13,rep,name=disable_collectors,json=disableCollectors,proto3" json:"disable_collectors,omitempty"` + // Authentication mechanism. + // See https://docs.mongodb.com/manual/reference/connection-string/#mongodb-urioption-urioption.authMechanism + // for details. + AuthenticationMechanism string `protobuf:"bytes,14,opt,name=authentication_mechanism,json=authenticationMechanism,proto3" json:"authentication_mechanism,omitempty"` + // Authentication database. + AuthenticationDatabase string `protobuf:"bytes,15,opt,name=authentication_database,json=authenticationDatabase,proto3" json:"authentication_database,omitempty"` // Custom password for exporter endpoint /metrics. - AgentPassword string `protobuf:"bytes,14,opt,name=agent_password,json=agentPassword,proto3" json:"agent_password,omitempty"` + AgentPassword string `protobuf:"bytes,16,opt,name=agent_password,json=agentPassword,proto3" json:"agent_password,omitempty"` + // List of colletions to get stats from. Can use * + StatsCollections []string `protobuf:"bytes,17,rep,name=stats_collections,json=statsCollections,proto3" json:"stats_collections,omitempty"` + // Collections limit. Only get Databases and collection stats if the total number of collections in the server + // is less than this value. 0: no limit + CollectionsLimit int32 `protobuf:"varint,18,opt,name=collections_limit,json=collectionsLimit,proto3" json:"collections_limit,omitempty"` // Log level for exporter. - LogLevel LogLevel `protobuf:"varint,15,opt,name=log_level,json=logLevel,proto3,enum=inventory.v1.LogLevel" json:"log_level,omitempty"` - // Limit of databases for auto-discovery. - AutoDiscoveryLimit int32 `protobuf:"varint,16,opt,name=auto_discovery_limit,json=autoDiscoveryLimit,proto3" json:"auto_discovery_limit,omitempty"` + LogLevel LogLevel `protobuf:"varint,19,opt,name=log_level,json=logLevel,proto3,enum=inventory.v1.LogLevel" json:"log_level,omitempty"` // Optionally expose the exporter process on all public interfaces - ExposeExporter bool `protobuf:"varint,17,opt,name=expose_exporter,json=exposeExporter,proto3" json:"expose_exporter,omitempty"` + ExposeExporter bool `protobuf:"varint,20,opt,name=expose_exporter,json=exposeExporter,proto3" json:"expose_exporter,omitempty"` } -func (x *AddPostgresExporterParams) Reset() { - *x = AddPostgresExporterParams{} +func (x *AddMongoDBExporterParams) Reset() { + *x = AddMongoDBExporterParams{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[34] + mi := &file_inventory_v1_agents_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AddPostgresExporterParams) String() string { +func (x *AddMongoDBExporterParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AddPostgresExporterParams) ProtoMessage() {} +func (*AddMongoDBExporterParams) ProtoMessage() {} -func (x *AddPostgresExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[34] +func (x *AddMongoDBExporterParams) ProtoReflect() protoreflect.Message { + mi := &file_inventory_v1_agents_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4729,131 +4800,152 @@ func (x *AddPostgresExporterParams) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AddPostgresExporterParams.ProtoReflect.Descriptor instead. -func (*AddPostgresExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{34} +// Deprecated: Use AddMongoDBExporterParams.ProtoReflect.Descriptor instead. +func (*AddMongoDBExporterParams) Descriptor() ([]byte, []int) { + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{31} } -func (x *AddPostgresExporterParams) GetPmmAgentId() string { +func (x *AddMongoDBExporterParams) GetPmmAgentId() string { if x != nil { return x.PmmAgentId } return "" } -func (x *AddPostgresExporterParams) GetServiceId() string { +func (x *AddMongoDBExporterParams) GetServiceId() string { if x != nil { return x.ServiceId } return "" } -func (x *AddPostgresExporterParams) GetUsername() string { +func (x *AddMongoDBExporterParams) GetUsername() string { if x != nil { return x.Username } return "" } -func (x *AddPostgresExporterParams) GetPassword() string { +func (x *AddMongoDBExporterParams) GetPassword() string { if x != nil { return x.Password } return "" } -func (x *AddPostgresExporterParams) GetTls() bool { +func (x *AddMongoDBExporterParams) GetTls() bool { if x != nil { return x.Tls } return false } -func (x *AddPostgresExporterParams) GetTlsSkipVerify() bool { +func (x *AddMongoDBExporterParams) GetTlsSkipVerify() bool { if x != nil { return x.TlsSkipVerify } return false } -func (x *AddPostgresExporterParams) GetCustomLabels() map[string]string { +func (x *AddMongoDBExporterParams) GetTlsCertificateKey() string { + if x != nil { + return x.TlsCertificateKey + } + return "" +} + +func (x *AddMongoDBExporterParams) GetTlsCertificateKeyFilePassword() string { + if x != nil { + return x.TlsCertificateKeyFilePassword + } + return "" +} + +func (x *AddMongoDBExporterParams) GetTlsCa() string { + if x != nil { + return x.TlsCa + } + return "" +} + +func (x *AddMongoDBExporterParams) GetCustomLabels() map[string]string { if x != nil { return x.CustomLabels } return nil } -func (x *AddPostgresExporterParams) GetSkipConnectionCheck() bool { +func (x *AddMongoDBExporterParams) GetSkipConnectionCheck() bool { if x != nil { return x.SkipConnectionCheck } return false } -func (x *AddPostgresExporterParams) GetPushMetrics() bool { +func (x *AddMongoDBExporterParams) GetPushMetrics() bool { if x != nil { return x.PushMetrics } return false } -func (x *AddPostgresExporterParams) GetDisableCollectors() []string { +func (x *AddMongoDBExporterParams) GetDisableCollectors() []string { if x != nil { return x.DisableCollectors } return nil } -func (x *AddPostgresExporterParams) GetTlsCa() string { +func (x *AddMongoDBExporterParams) GetAuthenticationMechanism() string { if x != nil { - return x.TlsCa + return x.AuthenticationMechanism } return "" } -func (x *AddPostgresExporterParams) GetTlsCert() string { +func (x *AddMongoDBExporterParams) GetAuthenticationDatabase() string { if x != nil { - return x.TlsCert + return x.AuthenticationDatabase } return "" } -func (x *AddPostgresExporterParams) GetTlsKey() string { +func (x *AddMongoDBExporterParams) GetAgentPassword() string { if x != nil { - return x.TlsKey + return x.AgentPassword } return "" } -func (x *AddPostgresExporterParams) GetAgentPassword() string { +func (x *AddMongoDBExporterParams) GetStatsCollections() []string { if x != nil { - return x.AgentPassword + return x.StatsCollections } - return "" + return nil } -func (x *AddPostgresExporterParams) GetLogLevel() LogLevel { +func (x *AddMongoDBExporterParams) GetCollectionsLimit() int32 { if x != nil { - return x.LogLevel + return x.CollectionsLimit } - return LogLevel_LOG_LEVEL_UNSPECIFIED + return 0 } -func (x *AddPostgresExporterParams) GetAutoDiscoveryLimit() int32 { +func (x *AddMongoDBExporterParams) GetLogLevel() LogLevel { if x != nil { - return x.AutoDiscoveryLimit + return x.LogLevel } - return 0 + return LogLevel_LOG_LEVEL_UNSPECIFIED } -func (x *AddPostgresExporterParams) GetExposeExporter() bool { +func (x *AddMongoDBExporterParams) GetExposeExporter() bool { if x != nil { return x.ExposeExporter } return false } -type ChangePostgresExporterRequest struct { +type ChangeMongoDBExporterParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -4862,23 +4954,23 @@ type ChangePostgresExporterRequest struct { Common *ChangeCommonAgentParams `protobuf:"bytes,2,opt,name=common,proto3" json:"common,omitempty"` } -func (x *ChangePostgresExporterRequest) Reset() { - *x = ChangePostgresExporterRequest{} +func (x *ChangeMongoDBExporterParams) Reset() { + *x = ChangeMongoDBExporterParams{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[35] + mi := &file_inventory_v1_agents_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ChangePostgresExporterRequest) String() string { +func (x *ChangeMongoDBExporterParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ChangePostgresExporterRequest) ProtoMessage() {} +func (*ChangeMongoDBExporterParams) ProtoMessage() {} -func (x *ChangePostgresExporterRequest) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[35] +func (x *ChangeMongoDBExporterParams) ProtoReflect() protoreflect.Message { + mi := &file_inventory_v1_agents_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4889,73 +4981,26 @@ func (x *ChangePostgresExporterRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ChangePostgresExporterRequest.ProtoReflect.Descriptor instead. -func (*ChangePostgresExporterRequest) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{35} +// Deprecated: Use ChangeMongoDBExporterParams.ProtoReflect.Descriptor instead. +func (*ChangeMongoDBExporterParams) Descriptor() ([]byte, []int) { + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{32} } -func (x *ChangePostgresExporterRequest) GetAgentId() string { +func (x *ChangeMongoDBExporterParams) GetAgentId() string { if x != nil { return x.AgentId } return "" } -func (x *ChangePostgresExporterRequest) GetCommon() *ChangeCommonAgentParams { +func (x *ChangeMongoDBExporterParams) GetCommon() *ChangeCommonAgentParams { if x != nil { return x.Common } return nil } -type ChangePostgresExporterResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - PostgresExporter *PostgresExporter `protobuf:"bytes,1,opt,name=postgres_exporter,json=postgresExporter,proto3" json:"postgres_exporter,omitempty"` -} - -func (x *ChangePostgresExporterResponse) Reset() { - *x = ChangePostgresExporterResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ChangePostgresExporterResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ChangePostgresExporterResponse) ProtoMessage() {} - -func (x *ChangePostgresExporterResponse) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[36] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ChangePostgresExporterResponse.ProtoReflect.Descriptor instead. -func (*ChangePostgresExporterResponse) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{36} -} - -func (x *ChangePostgresExporterResponse) GetPostgresExporter() *PostgresExporter { - if x != nil { - return x.PostgresExporter - } - return nil -} - -type AddProxySQLExporterParams struct { +type AddPostgresExporterParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -4964,13 +5009,13 @@ type AddProxySQLExporterParams struct { PmmAgentId string `protobuf:"bytes,1,opt,name=pmm_agent_id,json=pmmAgentId,proto3" json:"pmm_agent_id,omitempty"` // Service identifier. ServiceId string `protobuf:"bytes,2,opt,name=service_id,json=serviceId,proto3" json:"service_id,omitempty"` - // ProxySQL username for scraping metrics. + // PostgreSQL username for scraping metrics. Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"` - // ProxySQL password for scraping metrics. + // PostgreSQL password for scraping metrics. Password string `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty"` // Use TLS for database connections. Tls bool `protobuf:"varint,5,opt,name=tls,proto3" json:"tls,omitempty"` - // Skip TLS certificate and hostname validation. + // Skip TLS certificate and hostname validation. Uses sslmode=required instead of verify-full. TlsSkipVerify bool `protobuf:"varint,6,opt,name=tls_skip_verify,json=tlsSkipVerify,proto3" json:"tls_skip_verify,omitempty"` // Custom user-assigned labels. CustomLabels map[string]string `protobuf:"bytes,7,rep,name=custom_labels,json=customLabels,proto3" json:"custom_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` @@ -4980,31 +5025,39 @@ type AddProxySQLExporterParams struct { PushMetrics bool `protobuf:"varint,9,opt,name=push_metrics,json=pushMetrics,proto3" json:"push_metrics,omitempty"` // List of collector names to disable in this exporter. DisableCollectors []string `protobuf:"bytes,10,rep,name=disable_collectors,json=disableCollectors,proto3" json:"disable_collectors,omitempty"` + // TLS CA certificate. + TlsCa string `protobuf:"bytes,11,opt,name=tls_ca,json=tlsCa,proto3" json:"tls_ca,omitempty"` + // TLS Certifcate. + TlsCert string `protobuf:"bytes,12,opt,name=tls_cert,json=tlsCert,proto3" json:"tls_cert,omitempty"` + // TLS Certificate Key. + TlsKey string `protobuf:"bytes,13,opt,name=tls_key,json=tlsKey,proto3" json:"tls_key,omitempty"` // Custom password for exporter endpoint /metrics. - AgentPassword string `protobuf:"bytes,11,opt,name=agent_password,json=agentPassword,proto3" json:"agent_password,omitempty"` + AgentPassword string `protobuf:"bytes,14,opt,name=agent_password,json=agentPassword,proto3" json:"agent_password,omitempty"` // Log level for exporter. - LogLevel LogLevel `protobuf:"varint,12,opt,name=log_level,json=logLevel,proto3,enum=inventory.v1.LogLevel" json:"log_level,omitempty"` + LogLevel LogLevel `protobuf:"varint,15,opt,name=log_level,json=logLevel,proto3,enum=inventory.v1.LogLevel" json:"log_level,omitempty"` + // Limit of databases for auto-discovery. + AutoDiscoveryLimit int32 `protobuf:"varint,16,opt,name=auto_discovery_limit,json=autoDiscoveryLimit,proto3" json:"auto_discovery_limit,omitempty"` // Optionally expose the exporter process on all public interfaces - ExposeExporter bool `protobuf:"varint,13,opt,name=expose_exporter,json=exposeExporter,proto3" json:"expose_exporter,omitempty"` + ExposeExporter bool `protobuf:"varint,17,opt,name=expose_exporter,json=exposeExporter,proto3" json:"expose_exporter,omitempty"` } -func (x *AddProxySQLExporterParams) Reset() { - *x = AddProxySQLExporterParams{} +func (x *AddPostgresExporterParams) Reset() { + *x = AddPostgresExporterParams{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[37] + mi := &file_inventory_v1_agents_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AddProxySQLExporterParams) String() string { +func (x *AddPostgresExporterParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AddProxySQLExporterParams) ProtoMessage() {} +func (*AddPostgresExporterParams) ProtoMessage() {} -func (x *AddProxySQLExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[37] +func (x *AddPostgresExporterParams) ProtoReflect() protoreflect.Message { + mi := &file_inventory_v1_agents_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5015,103 +5068,131 @@ func (x *AddProxySQLExporterParams) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AddProxySQLExporterParams.ProtoReflect.Descriptor instead. -func (*AddProxySQLExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{37} +// Deprecated: Use AddPostgresExporterParams.ProtoReflect.Descriptor instead. +func (*AddPostgresExporterParams) Descriptor() ([]byte, []int) { + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{33} } -func (x *AddProxySQLExporterParams) GetPmmAgentId() string { +func (x *AddPostgresExporterParams) GetPmmAgentId() string { if x != nil { return x.PmmAgentId } return "" } -func (x *AddProxySQLExporterParams) GetServiceId() string { +func (x *AddPostgresExporterParams) GetServiceId() string { if x != nil { return x.ServiceId } return "" } -func (x *AddProxySQLExporterParams) GetUsername() string { +func (x *AddPostgresExporterParams) GetUsername() string { if x != nil { return x.Username } return "" } -func (x *AddProxySQLExporterParams) GetPassword() string { +func (x *AddPostgresExporterParams) GetPassword() string { if x != nil { return x.Password } return "" } -func (x *AddProxySQLExporterParams) GetTls() bool { +func (x *AddPostgresExporterParams) GetTls() bool { if x != nil { return x.Tls } return false } -func (x *AddProxySQLExporterParams) GetTlsSkipVerify() bool { +func (x *AddPostgresExporterParams) GetTlsSkipVerify() bool { if x != nil { return x.TlsSkipVerify } return false } -func (x *AddProxySQLExporterParams) GetCustomLabels() map[string]string { +func (x *AddPostgresExporterParams) GetCustomLabels() map[string]string { if x != nil { return x.CustomLabels } return nil } -func (x *AddProxySQLExporterParams) GetSkipConnectionCheck() bool { +func (x *AddPostgresExporterParams) GetSkipConnectionCheck() bool { if x != nil { return x.SkipConnectionCheck } return false } -func (x *AddProxySQLExporterParams) GetPushMetrics() bool { +func (x *AddPostgresExporterParams) GetPushMetrics() bool { if x != nil { return x.PushMetrics } return false } -func (x *AddProxySQLExporterParams) GetDisableCollectors() []string { +func (x *AddPostgresExporterParams) GetDisableCollectors() []string { if x != nil { return x.DisableCollectors } return nil } -func (x *AddProxySQLExporterParams) GetAgentPassword() string { +func (x *AddPostgresExporterParams) GetTlsCa() string { if x != nil { - return x.AgentPassword + return x.TlsCa } return "" } -func (x *AddProxySQLExporterParams) GetLogLevel() LogLevel { +func (x *AddPostgresExporterParams) GetTlsCert() string { if x != nil { - return x.LogLevel + return x.TlsCert } - return LogLevel_LOG_LEVEL_UNSPECIFIED + return "" } -func (x *AddProxySQLExporterParams) GetExposeExporter() bool { +func (x *AddPostgresExporterParams) GetTlsKey() string { if x != nil { - return x.ExposeExporter + return x.TlsKey } - return false + return "" } -type ChangeProxySQLExporterRequest struct { +func (x *AddPostgresExporterParams) GetAgentPassword() string { + if x != nil { + return x.AgentPassword + } + return "" +} + +func (x *AddPostgresExporterParams) GetLogLevel() LogLevel { + if x != nil { + return x.LogLevel + } + return LogLevel_LOG_LEVEL_UNSPECIFIED +} + +func (x *AddPostgresExporterParams) GetAutoDiscoveryLimit() int32 { + if x != nil { + return x.AutoDiscoveryLimit + } + return 0 +} + +func (x *AddPostgresExporterParams) GetExposeExporter() bool { + if x != nil { + return x.ExposeExporter + } + return false +} + +type ChangePostgresExporterParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -5120,23 +5201,23 @@ type ChangeProxySQLExporterRequest struct { Common *ChangeCommonAgentParams `protobuf:"bytes,2,opt,name=common,proto3" json:"common,omitempty"` } -func (x *ChangeProxySQLExporterRequest) Reset() { - *x = ChangeProxySQLExporterRequest{} +func (x *ChangePostgresExporterParams) Reset() { + *x = ChangePostgresExporterParams{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[38] + mi := &file_inventory_v1_agents_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ChangeProxySQLExporterRequest) String() string { +func (x *ChangePostgresExporterParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ChangeProxySQLExporterRequest) ProtoMessage() {} +func (*ChangePostgresExporterParams) ProtoMessage() {} -func (x *ChangeProxySQLExporterRequest) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[38] +func (x *ChangePostgresExporterParams) ProtoReflect() protoreflect.Message { + mi := &file_inventory_v1_agents_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5147,50 +5228,75 @@ func (x *ChangeProxySQLExporterRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ChangeProxySQLExporterRequest.ProtoReflect.Descriptor instead. -func (*ChangeProxySQLExporterRequest) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{38} +// Deprecated: Use ChangePostgresExporterParams.ProtoReflect.Descriptor instead. +func (*ChangePostgresExporterParams) Descriptor() ([]byte, []int) { + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{34} } -func (x *ChangeProxySQLExporterRequest) GetAgentId() string { +func (x *ChangePostgresExporterParams) GetAgentId() string { if x != nil { return x.AgentId } return "" } -func (x *ChangeProxySQLExporterRequest) GetCommon() *ChangeCommonAgentParams { +func (x *ChangePostgresExporterParams) GetCommon() *ChangeCommonAgentParams { if x != nil { return x.Common } return nil } -type ChangeProxySQLExporterResponse struct { +type AddProxySQLExporterParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ProxysqlExporter *ProxySQLExporter `protobuf:"bytes,1,opt,name=proxysql_exporter,json=proxysqlExporter,proto3" json:"proxysql_exporter,omitempty"` + // The pmm-agent identifier which runs this instance. + PmmAgentId string `protobuf:"bytes,1,opt,name=pmm_agent_id,json=pmmAgentId,proto3" json:"pmm_agent_id,omitempty"` + // Service identifier. + ServiceId string `protobuf:"bytes,2,opt,name=service_id,json=serviceId,proto3" json:"service_id,omitempty"` + // ProxySQL username for scraping metrics. + Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"` + // ProxySQL password for scraping metrics. + Password string `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty"` + // Use TLS for database connections. + Tls bool `protobuf:"varint,5,opt,name=tls,proto3" json:"tls,omitempty"` + // Skip TLS certificate and hostname validation. + TlsSkipVerify bool `protobuf:"varint,6,opt,name=tls_skip_verify,json=tlsSkipVerify,proto3" json:"tls_skip_verify,omitempty"` + // Custom user-assigned labels. + CustomLabels map[string]string `protobuf:"bytes,7,rep,name=custom_labels,json=customLabels,proto3" json:"custom_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Skip connection check. + SkipConnectionCheck bool `protobuf:"varint,8,opt,name=skip_connection_check,json=skipConnectionCheck,proto3" json:"skip_connection_check,omitempty"` + // Enables push metrics mode for exporter. + PushMetrics bool `protobuf:"varint,9,opt,name=push_metrics,json=pushMetrics,proto3" json:"push_metrics,omitempty"` + // List of collector names to disable in this exporter. + DisableCollectors []string `protobuf:"bytes,10,rep,name=disable_collectors,json=disableCollectors,proto3" json:"disable_collectors,omitempty"` + // Custom password for exporter endpoint /metrics. + AgentPassword string `protobuf:"bytes,11,opt,name=agent_password,json=agentPassword,proto3" json:"agent_password,omitempty"` + // Log level for exporter. + LogLevel LogLevel `protobuf:"varint,12,opt,name=log_level,json=logLevel,proto3,enum=inventory.v1.LogLevel" json:"log_level,omitempty"` + // Optionally expose the exporter process on all public interfaces + ExposeExporter bool `protobuf:"varint,13,opt,name=expose_exporter,json=exposeExporter,proto3" json:"expose_exporter,omitempty"` } -func (x *ChangeProxySQLExporterResponse) Reset() { - *x = ChangeProxySQLExporterResponse{} +func (x *AddProxySQLExporterParams) Reset() { + *x = AddProxySQLExporterParams{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[39] + mi := &file_inventory_v1_agents_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ChangeProxySQLExporterResponse) String() string { +func (x *AddProxySQLExporterParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ChangeProxySQLExporterResponse) ProtoMessage() {} +func (*AddProxySQLExporterParams) ProtoMessage() {} -func (x *ChangeProxySQLExporterResponse) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[39] +func (x *AddProxySQLExporterParams) ProtoReflect() protoreflect.Message { + mi := &file_inventory_v1_agents_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5201,14 +5307,153 @@ func (x *ChangeProxySQLExporterResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ChangeProxySQLExporterResponse.ProtoReflect.Descriptor instead. -func (*ChangeProxySQLExporterResponse) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{39} +// Deprecated: Use AddProxySQLExporterParams.ProtoReflect.Descriptor instead. +func (*AddProxySQLExporterParams) Descriptor() ([]byte, []int) { + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{35} } -func (x *ChangeProxySQLExporterResponse) GetProxysqlExporter() *ProxySQLExporter { +func (x *AddProxySQLExporterParams) GetPmmAgentId() string { if x != nil { - return x.ProxysqlExporter + return x.PmmAgentId + } + return "" +} + +func (x *AddProxySQLExporterParams) GetServiceId() string { + if x != nil { + return x.ServiceId + } + return "" +} + +func (x *AddProxySQLExporterParams) GetUsername() string { + if x != nil { + return x.Username + } + return "" +} + +func (x *AddProxySQLExporterParams) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +func (x *AddProxySQLExporterParams) GetTls() bool { + if x != nil { + return x.Tls + } + return false +} + +func (x *AddProxySQLExporterParams) GetTlsSkipVerify() bool { + if x != nil { + return x.TlsSkipVerify + } + return false +} + +func (x *AddProxySQLExporterParams) GetCustomLabels() map[string]string { + if x != nil { + return x.CustomLabels + } + return nil +} + +func (x *AddProxySQLExporterParams) GetSkipConnectionCheck() bool { + if x != nil { + return x.SkipConnectionCheck + } + return false +} + +func (x *AddProxySQLExporterParams) GetPushMetrics() bool { + if x != nil { + return x.PushMetrics + } + return false +} + +func (x *AddProxySQLExporterParams) GetDisableCollectors() []string { + if x != nil { + return x.DisableCollectors + } + return nil +} + +func (x *AddProxySQLExporterParams) GetAgentPassword() string { + if x != nil { + return x.AgentPassword + } + return "" +} + +func (x *AddProxySQLExporterParams) GetLogLevel() LogLevel { + if x != nil { + return x.LogLevel + } + return LogLevel_LOG_LEVEL_UNSPECIFIED +} + +func (x *AddProxySQLExporterParams) GetExposeExporter() bool { + if x != nil { + return x.ExposeExporter + } + return false +} + +type ChangeProxySQLExporterParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AgentId string `protobuf:"bytes,1,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` + Common *ChangeCommonAgentParams `protobuf:"bytes,2,opt,name=common,proto3" json:"common,omitempty"` +} + +func (x *ChangeProxySQLExporterParams) Reset() { + *x = ChangeProxySQLExporterParams{} + if protoimpl.UnsafeEnabled { + mi := &file_inventory_v1_agents_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangeProxySQLExporterParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangeProxySQLExporterParams) ProtoMessage() {} + +func (x *ChangeProxySQLExporterParams) ProtoReflect() protoreflect.Message { + mi := &file_inventory_v1_agents_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChangeProxySQLExporterParams.ProtoReflect.Descriptor instead. +func (*ChangeProxySQLExporterParams) Descriptor() ([]byte, []int) { + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{36} +} + +func (x *ChangeProxySQLExporterParams) GetAgentId() string { + if x != nil { + return x.AgentId + } + return "" +} + +func (x *ChangeProxySQLExporterParams) GetCommon() *ChangeCommonAgentParams { + if x != nil { + return x.Common } return nil } @@ -5253,7 +5498,7 @@ type AddQANMySQLPerfSchemaAgentParams struct { func (x *AddQANMySQLPerfSchemaAgentParams) Reset() { *x = AddQANMySQLPerfSchemaAgentParams{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[40] + mi := &file_inventory_v1_agents_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5266,7 +5511,7 @@ func (x *AddQANMySQLPerfSchemaAgentParams) String() string { func (*AddQANMySQLPerfSchemaAgentParams) ProtoMessage() {} func (x *AddQANMySQLPerfSchemaAgentParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[40] + mi := &file_inventory_v1_agents_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5279,7 +5524,7 @@ func (x *AddQANMySQLPerfSchemaAgentParams) ProtoReflect() protoreflect.Message { // Deprecated: Use AddQANMySQLPerfSchemaAgentParams.ProtoReflect.Descriptor instead. func (*AddQANMySQLPerfSchemaAgentParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{40} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{37} } func (x *AddQANMySQLPerfSchemaAgentParams) GetPmmAgentId() string { @@ -5387,7 +5632,7 @@ func (x *AddQANMySQLPerfSchemaAgentParams) GetLogLevel() LogLevel { return LogLevel_LOG_LEVEL_UNSPECIFIED } -type ChangeQANMySQLPerfSchemaAgentRequest struct { +type ChangeQANMySQLPerfSchemaAgentParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -5396,23 +5641,23 @@ type ChangeQANMySQLPerfSchemaAgentRequest struct { Common *ChangeCommonAgentParams `protobuf:"bytes,2,opt,name=common,proto3" json:"common,omitempty"` } -func (x *ChangeQANMySQLPerfSchemaAgentRequest) Reset() { - *x = ChangeQANMySQLPerfSchemaAgentRequest{} +func (x *ChangeQANMySQLPerfSchemaAgentParams) Reset() { + *x = ChangeQANMySQLPerfSchemaAgentParams{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[41] + mi := &file_inventory_v1_agents_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ChangeQANMySQLPerfSchemaAgentRequest) String() string { +func (x *ChangeQANMySQLPerfSchemaAgentParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ChangeQANMySQLPerfSchemaAgentRequest) ProtoMessage() {} +func (*ChangeQANMySQLPerfSchemaAgentParams) ProtoMessage() {} -func (x *ChangeQANMySQLPerfSchemaAgentRequest) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[41] +func (x *ChangeQANMySQLPerfSchemaAgentParams) ProtoReflect() protoreflect.Message { + mi := &file_inventory_v1_agents_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5423,72 +5668,25 @@ func (x *ChangeQANMySQLPerfSchemaAgentRequest) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use ChangeQANMySQLPerfSchemaAgentRequest.ProtoReflect.Descriptor instead. -func (*ChangeQANMySQLPerfSchemaAgentRequest) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{41} +// Deprecated: Use ChangeQANMySQLPerfSchemaAgentParams.ProtoReflect.Descriptor instead. +func (*ChangeQANMySQLPerfSchemaAgentParams) Descriptor() ([]byte, []int) { + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{38} } -func (x *ChangeQANMySQLPerfSchemaAgentRequest) GetAgentId() string { +func (x *ChangeQANMySQLPerfSchemaAgentParams) GetAgentId() string { if x != nil { return x.AgentId } return "" } -func (x *ChangeQANMySQLPerfSchemaAgentRequest) GetCommon() *ChangeCommonAgentParams { +func (x *ChangeQANMySQLPerfSchemaAgentParams) GetCommon() *ChangeCommonAgentParams { if x != nil { return x.Common } return nil } -type ChangeQANMySQLPerfSchemaAgentResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - QanMysqlPerfschemaAgent *QANMySQLPerfSchemaAgent `protobuf:"bytes,1,opt,name=qan_mysql_perfschema_agent,json=qanMysqlPerfschemaAgent,proto3" json:"qan_mysql_perfschema_agent,omitempty"` -} - -func (x *ChangeQANMySQLPerfSchemaAgentResponse) Reset() { - *x = ChangeQANMySQLPerfSchemaAgentResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ChangeQANMySQLPerfSchemaAgentResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ChangeQANMySQLPerfSchemaAgentResponse) ProtoMessage() {} - -func (x *ChangeQANMySQLPerfSchemaAgentResponse) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[42] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ChangeQANMySQLPerfSchemaAgentResponse.ProtoReflect.Descriptor instead. -func (*ChangeQANMySQLPerfSchemaAgentResponse) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{42} -} - -func (x *ChangeQANMySQLPerfSchemaAgentResponse) GetQanMysqlPerfschemaAgent() *QANMySQLPerfSchemaAgent { - if x != nil { - return x.QanMysqlPerfschemaAgent - } - return nil -} - type AddQANMySQLSlowlogAgentParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -5532,7 +5730,7 @@ type AddQANMySQLSlowlogAgentParams struct { func (x *AddQANMySQLSlowlogAgentParams) Reset() { *x = AddQANMySQLSlowlogAgentParams{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[43] + mi := &file_inventory_v1_agents_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5545,7 +5743,7 @@ func (x *AddQANMySQLSlowlogAgentParams) String() string { func (*AddQANMySQLSlowlogAgentParams) ProtoMessage() {} func (x *AddQANMySQLSlowlogAgentParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[43] + mi := &file_inventory_v1_agents_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5558,7 +5756,7 @@ func (x *AddQANMySQLSlowlogAgentParams) ProtoReflect() protoreflect.Message { // Deprecated: Use AddQANMySQLSlowlogAgentParams.ProtoReflect.Descriptor instead. func (*AddQANMySQLSlowlogAgentParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{43} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{39} } func (x *AddQANMySQLSlowlogAgentParams) GetPmmAgentId() string { @@ -5673,7 +5871,7 @@ func (x *AddQANMySQLSlowlogAgentParams) GetLogLevel() LogLevel { return LogLevel_LOG_LEVEL_UNSPECIFIED } -type ChangeQANMySQLSlowlogAgentRequest struct { +type ChangeQANMySQLSlowlogAgentParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -5682,23 +5880,23 @@ type ChangeQANMySQLSlowlogAgentRequest struct { Common *ChangeCommonAgentParams `protobuf:"bytes,2,opt,name=common,proto3" json:"common,omitempty"` } -func (x *ChangeQANMySQLSlowlogAgentRequest) Reset() { - *x = ChangeQANMySQLSlowlogAgentRequest{} +func (x *ChangeQANMySQLSlowlogAgentParams) Reset() { + *x = ChangeQANMySQLSlowlogAgentParams{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[44] + mi := &file_inventory_v1_agents_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ChangeQANMySQLSlowlogAgentRequest) String() string { +func (x *ChangeQANMySQLSlowlogAgentParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ChangeQANMySQLSlowlogAgentRequest) ProtoMessage() {} +func (*ChangeQANMySQLSlowlogAgentParams) ProtoMessage() {} -func (x *ChangeQANMySQLSlowlogAgentRequest) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[44] +func (x *ChangeQANMySQLSlowlogAgentParams) ProtoReflect() protoreflect.Message { + mi := &file_inventory_v1_agents_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5709,72 +5907,25 @@ func (x *ChangeQANMySQLSlowlogAgentRequest) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use ChangeQANMySQLSlowlogAgentRequest.ProtoReflect.Descriptor instead. -func (*ChangeQANMySQLSlowlogAgentRequest) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{44} +// Deprecated: Use ChangeQANMySQLSlowlogAgentParams.ProtoReflect.Descriptor instead. +func (*ChangeQANMySQLSlowlogAgentParams) Descriptor() ([]byte, []int) { + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{40} } -func (x *ChangeQANMySQLSlowlogAgentRequest) GetAgentId() string { +func (x *ChangeQANMySQLSlowlogAgentParams) GetAgentId() string { if x != nil { return x.AgentId } return "" } -func (x *ChangeQANMySQLSlowlogAgentRequest) GetCommon() *ChangeCommonAgentParams { +func (x *ChangeQANMySQLSlowlogAgentParams) GetCommon() *ChangeCommonAgentParams { if x != nil { return x.Common } return nil } -type ChangeQANMySQLSlowlogAgentResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - QanMysqlSlowlogAgent *QANMySQLSlowlogAgent `protobuf:"bytes,1,opt,name=qan_mysql_slowlog_agent,json=qanMysqlSlowlogAgent,proto3" json:"qan_mysql_slowlog_agent,omitempty"` -} - -func (x *ChangeQANMySQLSlowlogAgentResponse) Reset() { - *x = ChangeQANMySQLSlowlogAgentResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[45] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ChangeQANMySQLSlowlogAgentResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ChangeQANMySQLSlowlogAgentResponse) ProtoMessage() {} - -func (x *ChangeQANMySQLSlowlogAgentResponse) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[45] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ChangeQANMySQLSlowlogAgentResponse.ProtoReflect.Descriptor instead. -func (*ChangeQANMySQLSlowlogAgentResponse) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{45} -} - -func (x *ChangeQANMySQLSlowlogAgentResponse) GetQanMysqlSlowlogAgent() *QANMySQLSlowlogAgent { - if x != nil { - return x.QanMysqlSlowlogAgent - } - return nil -} - type AddQANMongoDBProfilerAgentParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -5817,7 +5968,7 @@ type AddQANMongoDBProfilerAgentParams struct { func (x *AddQANMongoDBProfilerAgentParams) Reset() { *x = AddQANMongoDBProfilerAgentParams{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[46] + mi := &file_inventory_v1_agents_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5830,7 +5981,7 @@ func (x *AddQANMongoDBProfilerAgentParams) String() string { func (*AddQANMongoDBProfilerAgentParams) ProtoMessage() {} func (x *AddQANMongoDBProfilerAgentParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[46] + mi := &file_inventory_v1_agents_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5843,7 +5994,7 @@ func (x *AddQANMongoDBProfilerAgentParams) ProtoReflect() protoreflect.Message { // Deprecated: Use AddQANMongoDBProfilerAgentParams.ProtoReflect.Descriptor instead. func (*AddQANMongoDBProfilerAgentParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{46} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{41} } func (x *AddQANMongoDBProfilerAgentParams) GetPmmAgentId() string { @@ -5951,7 +6102,7 @@ func (x *AddQANMongoDBProfilerAgentParams) GetLogLevel() LogLevel { return LogLevel_LOG_LEVEL_UNSPECIFIED } -type ChangeQANMongoDBProfilerAgentRequest struct { +type ChangeQANMongoDBProfilerAgentParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -5960,23 +6111,23 @@ type ChangeQANMongoDBProfilerAgentRequest struct { Common *ChangeCommonAgentParams `protobuf:"bytes,2,opt,name=common,proto3" json:"common,omitempty"` } -func (x *ChangeQANMongoDBProfilerAgentRequest) Reset() { - *x = ChangeQANMongoDBProfilerAgentRequest{} +func (x *ChangeQANMongoDBProfilerAgentParams) Reset() { + *x = ChangeQANMongoDBProfilerAgentParams{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[47] + mi := &file_inventory_v1_agents_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ChangeQANMongoDBProfilerAgentRequest) String() string { +func (x *ChangeQANMongoDBProfilerAgentParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ChangeQANMongoDBProfilerAgentRequest) ProtoMessage() {} +func (*ChangeQANMongoDBProfilerAgentParams) ProtoMessage() {} -func (x *ChangeQANMongoDBProfilerAgentRequest) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[47] +func (x *ChangeQANMongoDBProfilerAgentParams) ProtoReflect() protoreflect.Message { + mi := &file_inventory_v1_agents_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5987,72 +6138,25 @@ func (x *ChangeQANMongoDBProfilerAgentRequest) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use ChangeQANMongoDBProfilerAgentRequest.ProtoReflect.Descriptor instead. -func (*ChangeQANMongoDBProfilerAgentRequest) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{47} +// Deprecated: Use ChangeQANMongoDBProfilerAgentParams.ProtoReflect.Descriptor instead. +func (*ChangeQANMongoDBProfilerAgentParams) Descriptor() ([]byte, []int) { + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{42} } -func (x *ChangeQANMongoDBProfilerAgentRequest) GetAgentId() string { +func (x *ChangeQANMongoDBProfilerAgentParams) GetAgentId() string { if x != nil { return x.AgentId } return "" } -func (x *ChangeQANMongoDBProfilerAgentRequest) GetCommon() *ChangeCommonAgentParams { +func (x *ChangeQANMongoDBProfilerAgentParams) GetCommon() *ChangeCommonAgentParams { if x != nil { return x.Common } return nil } -type ChangeQANMongoDBProfilerAgentResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - QanMongodbProfilerAgent *QANMongoDBProfilerAgent `protobuf:"bytes,1,opt,name=qan_mongodb_profiler_agent,json=qanMongodbProfilerAgent,proto3" json:"qan_mongodb_profiler_agent,omitempty"` -} - -func (x *ChangeQANMongoDBProfilerAgentResponse) Reset() { - *x = ChangeQANMongoDBProfilerAgentResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[48] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ChangeQANMongoDBProfilerAgentResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ChangeQANMongoDBProfilerAgentResponse) ProtoMessage() {} - -func (x *ChangeQANMongoDBProfilerAgentResponse) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[48] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ChangeQANMongoDBProfilerAgentResponse.ProtoReflect.Descriptor instead. -func (*ChangeQANMongoDBProfilerAgentResponse) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{48} -} - -func (x *ChangeQANMongoDBProfilerAgentResponse) GetQanMongodbProfilerAgent() *QANMongoDBProfilerAgent { - if x != nil { - return x.QanMongodbProfilerAgent - } - return nil -} - type AddQANPostgreSQLPgStatementsAgentParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6091,7 +6195,7 @@ type AddQANPostgreSQLPgStatementsAgentParams struct { func (x *AddQANPostgreSQLPgStatementsAgentParams) Reset() { *x = AddQANPostgreSQLPgStatementsAgentParams{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[49] + mi := &file_inventory_v1_agents_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6104,7 +6208,7 @@ func (x *AddQANPostgreSQLPgStatementsAgentParams) String() string { func (*AddQANPostgreSQLPgStatementsAgentParams) ProtoMessage() {} func (x *AddQANPostgreSQLPgStatementsAgentParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[49] + mi := &file_inventory_v1_agents_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6117,7 +6221,7 @@ func (x *AddQANPostgreSQLPgStatementsAgentParams) ProtoReflect() protoreflect.Me // Deprecated: Use AddQANPostgreSQLPgStatementsAgentParams.ProtoReflect.Descriptor instead. func (*AddQANPostgreSQLPgStatementsAgentParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{49} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{43} } func (x *AddQANPostgreSQLPgStatementsAgentParams) GetPmmAgentId() string { @@ -6218,7 +6322,7 @@ func (x *AddQANPostgreSQLPgStatementsAgentParams) GetLogLevel() LogLevel { return LogLevel_LOG_LEVEL_UNSPECIFIED } -type ChangeQANPostgreSQLPgStatementsAgentRequest struct { +type ChangeQANPostgreSQLPgStatementsAgentParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -6227,23 +6331,23 @@ type ChangeQANPostgreSQLPgStatementsAgentRequest struct { Common *ChangeCommonAgentParams `protobuf:"bytes,2,opt,name=common,proto3" json:"common,omitempty"` } -func (x *ChangeQANPostgreSQLPgStatementsAgentRequest) Reset() { - *x = ChangeQANPostgreSQLPgStatementsAgentRequest{} +func (x *ChangeQANPostgreSQLPgStatementsAgentParams) Reset() { + *x = ChangeQANPostgreSQLPgStatementsAgentParams{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[50] + mi := &file_inventory_v1_agents_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ChangeQANPostgreSQLPgStatementsAgentRequest) String() string { +func (x *ChangeQANPostgreSQLPgStatementsAgentParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ChangeQANPostgreSQLPgStatementsAgentRequest) ProtoMessage() {} +func (*ChangeQANPostgreSQLPgStatementsAgentParams) ProtoMessage() {} -func (x *ChangeQANPostgreSQLPgStatementsAgentRequest) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[50] +func (x *ChangeQANPostgreSQLPgStatementsAgentParams) ProtoReflect() protoreflect.Message { + mi := &file_inventory_v1_agents_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6254,72 +6358,25 @@ func (x *ChangeQANPostgreSQLPgStatementsAgentRequest) ProtoReflect() protoreflec return mi.MessageOf(x) } -// Deprecated: Use ChangeQANPostgreSQLPgStatementsAgentRequest.ProtoReflect.Descriptor instead. -func (*ChangeQANPostgreSQLPgStatementsAgentRequest) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{50} +// Deprecated: Use ChangeQANPostgreSQLPgStatementsAgentParams.ProtoReflect.Descriptor instead. +func (*ChangeQANPostgreSQLPgStatementsAgentParams) Descriptor() ([]byte, []int) { + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{44} } -func (x *ChangeQANPostgreSQLPgStatementsAgentRequest) GetAgentId() string { +func (x *ChangeQANPostgreSQLPgStatementsAgentParams) GetAgentId() string { if x != nil { return x.AgentId } return "" } -func (x *ChangeQANPostgreSQLPgStatementsAgentRequest) GetCommon() *ChangeCommonAgentParams { +func (x *ChangeQANPostgreSQLPgStatementsAgentParams) GetCommon() *ChangeCommonAgentParams { if x != nil { return x.Common } return nil } -type ChangeQANPostgreSQLPgStatementsAgentResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - QanPostgresqlPgstatementsAgent *QANPostgreSQLPgStatementsAgent `protobuf:"bytes,1,opt,name=qan_postgresql_pgstatements_agent,json=qanPostgresqlPgstatementsAgent,proto3" json:"qan_postgresql_pgstatements_agent,omitempty"` -} - -func (x *ChangeQANPostgreSQLPgStatementsAgentResponse) Reset() { - *x = ChangeQANPostgreSQLPgStatementsAgentResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[51] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ChangeQANPostgreSQLPgStatementsAgentResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ChangeQANPostgreSQLPgStatementsAgentResponse) ProtoMessage() {} - -func (x *ChangeQANPostgreSQLPgStatementsAgentResponse) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[51] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ChangeQANPostgreSQLPgStatementsAgentResponse.ProtoReflect.Descriptor instead. -func (*ChangeQANPostgreSQLPgStatementsAgentResponse) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{51} -} - -func (x *ChangeQANPostgreSQLPgStatementsAgentResponse) GetQanPostgresqlPgstatementsAgent() *QANPostgreSQLPgStatementsAgent { - if x != nil { - return x.QanPostgresqlPgstatementsAgent - } - return nil -} - type AddQANPostgreSQLPgStatMonitorAgentParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6360,7 +6417,7 @@ type AddQANPostgreSQLPgStatMonitorAgentParams struct { func (x *AddQANPostgreSQLPgStatMonitorAgentParams) Reset() { *x = AddQANPostgreSQLPgStatMonitorAgentParams{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[52] + mi := &file_inventory_v1_agents_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6373,7 +6430,7 @@ func (x *AddQANPostgreSQLPgStatMonitorAgentParams) String() string { func (*AddQANPostgreSQLPgStatMonitorAgentParams) ProtoMessage() {} func (x *AddQANPostgreSQLPgStatMonitorAgentParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[52] + mi := &file_inventory_v1_agents_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6386,7 +6443,7 @@ func (x *AddQANPostgreSQLPgStatMonitorAgentParams) ProtoReflect() protoreflect.M // Deprecated: Use AddQANPostgreSQLPgStatMonitorAgentParams.ProtoReflect.Descriptor instead. func (*AddQANPostgreSQLPgStatMonitorAgentParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{52} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{45} } func (x *AddQANPostgreSQLPgStatMonitorAgentParams) GetPmmAgentId() string { @@ -6494,7 +6551,7 @@ func (x *AddQANPostgreSQLPgStatMonitorAgentParams) GetLogLevel() LogLevel { return LogLevel_LOG_LEVEL_UNSPECIFIED } -type ChangeQANPostgreSQLPgStatMonitorAgentRequest struct { +type ChangeQANPostgreSQLPgStatMonitorAgentParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -6503,23 +6560,23 @@ type ChangeQANPostgreSQLPgStatMonitorAgentRequest struct { Common *ChangeCommonAgentParams `protobuf:"bytes,2,opt,name=common,proto3" json:"common,omitempty"` } -func (x *ChangeQANPostgreSQLPgStatMonitorAgentRequest) Reset() { - *x = ChangeQANPostgreSQLPgStatMonitorAgentRequest{} +func (x *ChangeQANPostgreSQLPgStatMonitorAgentParams) Reset() { + *x = ChangeQANPostgreSQLPgStatMonitorAgentParams{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[53] + mi := &file_inventory_v1_agents_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ChangeQANPostgreSQLPgStatMonitorAgentRequest) String() string { +func (x *ChangeQANPostgreSQLPgStatMonitorAgentParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ChangeQANPostgreSQLPgStatMonitorAgentRequest) ProtoMessage() {} +func (*ChangeQANPostgreSQLPgStatMonitorAgentParams) ProtoMessage() {} -func (x *ChangeQANPostgreSQLPgStatMonitorAgentRequest) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[53] +func (x *ChangeQANPostgreSQLPgStatMonitorAgentParams) ProtoReflect() protoreflect.Message { + mi := &file_inventory_v1_agents_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6530,72 +6587,25 @@ func (x *ChangeQANPostgreSQLPgStatMonitorAgentRequest) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use ChangeQANPostgreSQLPgStatMonitorAgentRequest.ProtoReflect.Descriptor instead. -func (*ChangeQANPostgreSQLPgStatMonitorAgentRequest) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{53} +// Deprecated: Use ChangeQANPostgreSQLPgStatMonitorAgentParams.ProtoReflect.Descriptor instead. +func (*ChangeQANPostgreSQLPgStatMonitorAgentParams) Descriptor() ([]byte, []int) { + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{46} } -func (x *ChangeQANPostgreSQLPgStatMonitorAgentRequest) GetAgentId() string { +func (x *ChangeQANPostgreSQLPgStatMonitorAgentParams) GetAgentId() string { if x != nil { return x.AgentId } return "" } -func (x *ChangeQANPostgreSQLPgStatMonitorAgentRequest) GetCommon() *ChangeCommonAgentParams { +func (x *ChangeQANPostgreSQLPgStatMonitorAgentParams) GetCommon() *ChangeCommonAgentParams { if x != nil { return x.Common } return nil } -type ChangeQANPostgreSQLPgStatMonitorAgentResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - QanPostgresqlPgstatmonitorAgent *QANPostgreSQLPgStatMonitorAgent `protobuf:"bytes,1,opt,name=qan_postgresql_pgstatmonitor_agent,json=qanPostgresqlPgstatmonitorAgent,proto3" json:"qan_postgresql_pgstatmonitor_agent,omitempty"` -} - -func (x *ChangeQANPostgreSQLPgStatMonitorAgentResponse) Reset() { - *x = ChangeQANPostgreSQLPgStatMonitorAgentResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[54] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ChangeQANPostgreSQLPgStatMonitorAgentResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ChangeQANPostgreSQLPgStatMonitorAgentResponse) ProtoMessage() {} - -func (x *ChangeQANPostgreSQLPgStatMonitorAgentResponse) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[54] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ChangeQANPostgreSQLPgStatMonitorAgentResponse.ProtoReflect.Descriptor instead. -func (*ChangeQANPostgreSQLPgStatMonitorAgentResponse) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{54} -} - -func (x *ChangeQANPostgreSQLPgStatMonitorAgentResponse) GetQanPostgresqlPgstatmonitorAgent() *QANPostgreSQLPgStatMonitorAgent { - if x != nil { - return x.QanPostgresqlPgstatmonitorAgent - } - return nil -} - type AddRDSExporterParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6626,7 +6636,7 @@ type AddRDSExporterParams struct { func (x *AddRDSExporterParams) Reset() { *x = AddRDSExporterParams{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[55] + mi := &file_inventory_v1_agents_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6639,7 +6649,7 @@ func (x *AddRDSExporterParams) String() string { func (*AddRDSExporterParams) ProtoMessage() {} func (x *AddRDSExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[55] + mi := &file_inventory_v1_agents_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6652,7 +6662,7 @@ func (x *AddRDSExporterParams) ProtoReflect() protoreflect.Message { // Deprecated: Use AddRDSExporterParams.ProtoReflect.Descriptor instead. func (*AddRDSExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{55} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{47} } func (x *AddRDSExporterParams) GetPmmAgentId() string { @@ -6725,7 +6735,7 @@ func (x *AddRDSExporterParams) GetLogLevel() LogLevel { return LogLevel_LOG_LEVEL_UNSPECIFIED } -type ChangeRDSExporterRequest struct { +type ChangeRDSExporterParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -6734,23 +6744,23 @@ type ChangeRDSExporterRequest struct { Common *ChangeCommonAgentParams `protobuf:"bytes,2,opt,name=common,proto3" json:"common,omitempty"` } -func (x *ChangeRDSExporterRequest) Reset() { - *x = ChangeRDSExporterRequest{} +func (x *ChangeRDSExporterParams) Reset() { + *x = ChangeRDSExporterParams{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[56] + mi := &file_inventory_v1_agents_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ChangeRDSExporterRequest) String() string { +func (x *ChangeRDSExporterParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ChangeRDSExporterRequest) ProtoMessage() {} +func (*ChangeRDSExporterParams) ProtoMessage() {} -func (x *ChangeRDSExporterRequest) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[56] +func (x *ChangeRDSExporterParams) ProtoReflect() protoreflect.Message { + mi := &file_inventory_v1_agents_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6761,72 +6771,25 @@ func (x *ChangeRDSExporterRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ChangeRDSExporterRequest.ProtoReflect.Descriptor instead. -func (*ChangeRDSExporterRequest) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{56} +// Deprecated: Use ChangeRDSExporterParams.ProtoReflect.Descriptor instead. +func (*ChangeRDSExporterParams) Descriptor() ([]byte, []int) { + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{48} } -func (x *ChangeRDSExporterRequest) GetAgentId() string { +func (x *ChangeRDSExporterParams) GetAgentId() string { if x != nil { return x.AgentId } return "" } -func (x *ChangeRDSExporterRequest) GetCommon() *ChangeCommonAgentParams { +func (x *ChangeRDSExporterParams) GetCommon() *ChangeCommonAgentParams { if x != nil { return x.Common } return nil } -type ChangeRDSExporterResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - RdsExporter *RDSExporter `protobuf:"bytes,1,opt,name=rds_exporter,json=rdsExporter,proto3" json:"rds_exporter,omitempty"` -} - -func (x *ChangeRDSExporterResponse) Reset() { - *x = ChangeRDSExporterResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[57] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ChangeRDSExporterResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ChangeRDSExporterResponse) ProtoMessage() {} - -func (x *ChangeRDSExporterResponse) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[57] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ChangeRDSExporterResponse.ProtoReflect.Descriptor instead. -func (*ChangeRDSExporterResponse) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{57} -} - -func (x *ChangeRDSExporterResponse) GetRdsExporter() *RDSExporter { - if x != nil { - return x.RdsExporter - } - return nil -} - type AddExternalExporterParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6855,7 +6818,7 @@ type AddExternalExporterParams struct { func (x *AddExternalExporterParams) Reset() { *x = AddExternalExporterParams{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[58] + mi := &file_inventory_v1_agents_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6868,7 +6831,7 @@ func (x *AddExternalExporterParams) String() string { func (*AddExternalExporterParams) ProtoMessage() {} func (x *AddExternalExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[58] + mi := &file_inventory_v1_agents_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6881,7 +6844,7 @@ func (x *AddExternalExporterParams) ProtoReflect() protoreflect.Message { // Deprecated: Use AddExternalExporterParams.ProtoReflect.Descriptor instead. func (*AddExternalExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{58} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{49} } func (x *AddExternalExporterParams) GetRunsOnNodeId() string { @@ -6947,7 +6910,7 @@ func (x *AddExternalExporterParams) GetPushMetrics() bool { return false } -type ChangeExternalExporterRequest struct { +type ChangeExternalExporterParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -6956,23 +6919,23 @@ type ChangeExternalExporterRequest struct { Common *ChangeCommonAgentParams `protobuf:"bytes,2,opt,name=common,proto3" json:"common,omitempty"` } -func (x *ChangeExternalExporterRequest) Reset() { - *x = ChangeExternalExporterRequest{} +func (x *ChangeExternalExporterParams) Reset() { + *x = ChangeExternalExporterParams{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[59] + mi := &file_inventory_v1_agents_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ChangeExternalExporterRequest) String() string { +func (x *ChangeExternalExporterParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ChangeExternalExporterRequest) ProtoMessage() {} +func (*ChangeExternalExporterParams) ProtoMessage() {} -func (x *ChangeExternalExporterRequest) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[59] +func (x *ChangeExternalExporterParams) ProtoReflect() protoreflect.Message { + mi := &file_inventory_v1_agents_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6983,73 +6946,26 @@ func (x *ChangeExternalExporterRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ChangeExternalExporterRequest.ProtoReflect.Descriptor instead. -func (*ChangeExternalExporterRequest) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{59} +// Deprecated: Use ChangeExternalExporterParams.ProtoReflect.Descriptor instead. +func (*ChangeExternalExporterParams) Descriptor() ([]byte, []int) { + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{50} } -func (x *ChangeExternalExporterRequest) GetAgentId() string { +func (x *ChangeExternalExporterParams) GetAgentId() string { if x != nil { return x.AgentId } return "" } -func (x *ChangeExternalExporterRequest) GetCommon() *ChangeCommonAgentParams { +func (x *ChangeExternalExporterParams) GetCommon() *ChangeCommonAgentParams { if x != nil { return x.Common } return nil } -type ChangeExternalExporterResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ExternalExporter *ExternalExporter `protobuf:"bytes,1,opt,name=external_exporter,json=externalExporter,proto3" json:"external_exporter,omitempty"` -} - -func (x *ChangeExternalExporterResponse) Reset() { - *x = ChangeExternalExporterResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[60] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ChangeExternalExporterResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ChangeExternalExporterResponse) ProtoMessage() {} - -func (x *ChangeExternalExporterResponse) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[60] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ChangeExternalExporterResponse.ProtoReflect.Descriptor instead. -func (*ChangeExternalExporterResponse) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{60} -} - -func (x *ChangeExternalExporterResponse) GetExternalExporter() *ExternalExporter { - if x != nil { - return x.ExternalExporter - } - return nil -} - -type AddAzureDatabaseExporterParams struct { +type AddAzureDatabaseExporterParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -7083,7 +6999,7 @@ type AddAzureDatabaseExporterParams struct { func (x *AddAzureDatabaseExporterParams) Reset() { *x = AddAzureDatabaseExporterParams{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[61] + mi := &file_inventory_v1_agents_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7096,7 +7012,7 @@ func (x *AddAzureDatabaseExporterParams) String() string { func (*AddAzureDatabaseExporterParams) ProtoMessage() {} func (x *AddAzureDatabaseExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[61] + mi := &file_inventory_v1_agents_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7109,7 +7025,7 @@ func (x *AddAzureDatabaseExporterParams) ProtoReflect() protoreflect.Message { // Deprecated: Use AddAzureDatabaseExporterParams.ProtoReflect.Descriptor instead. func (*AddAzureDatabaseExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{61} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{51} } func (x *AddAzureDatabaseExporterParams) GetPmmAgentId() string { @@ -7196,7 +7112,7 @@ func (x *AddAzureDatabaseExporterParams) GetLogLevel() LogLevel { return LogLevel_LOG_LEVEL_UNSPECIFIED } -type ChangeAzureDatabaseExporterRequest struct { +type ChangeAzureDatabaseExporterParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -7205,23 +7121,23 @@ type ChangeAzureDatabaseExporterRequest struct { Common *ChangeCommonAgentParams `protobuf:"bytes,2,opt,name=common,proto3" json:"common,omitempty"` } -func (x *ChangeAzureDatabaseExporterRequest) Reset() { - *x = ChangeAzureDatabaseExporterRequest{} +func (x *ChangeAzureDatabaseExporterParams) Reset() { + *x = ChangeAzureDatabaseExporterParams{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[62] + mi := &file_inventory_v1_agents_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ChangeAzureDatabaseExporterRequest) String() string { +func (x *ChangeAzureDatabaseExporterParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ChangeAzureDatabaseExporterRequest) ProtoMessage() {} +func (*ChangeAzureDatabaseExporterParams) ProtoMessage() {} -func (x *ChangeAzureDatabaseExporterRequest) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[62] +func (x *ChangeAzureDatabaseExporterParams) ProtoReflect() protoreflect.Message { + mi := &file_inventory_v1_agents_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7232,72 +7148,25 @@ func (x *ChangeAzureDatabaseExporterRequest) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use ChangeAzureDatabaseExporterRequest.ProtoReflect.Descriptor instead. -func (*ChangeAzureDatabaseExporterRequest) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{62} +// Deprecated: Use ChangeAzureDatabaseExporterParams.ProtoReflect.Descriptor instead. +func (*ChangeAzureDatabaseExporterParams) Descriptor() ([]byte, []int) { + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{52} } -func (x *ChangeAzureDatabaseExporterRequest) GetAgentId() string { +func (x *ChangeAzureDatabaseExporterParams) GetAgentId() string { if x != nil { return x.AgentId } return "" } -func (x *ChangeAzureDatabaseExporterRequest) GetCommon() *ChangeCommonAgentParams { +func (x *ChangeAzureDatabaseExporterParams) GetCommon() *ChangeCommonAgentParams { if x != nil { return x.Common } return nil } -type ChangeAzureDatabaseExporterResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - AzureDatabaseExporter *AzureDatabaseExporter `protobuf:"bytes,1,opt,name=azure_database_exporter,json=azureDatabaseExporter,proto3" json:"azure_database_exporter,omitempty"` -} - -func (x *ChangeAzureDatabaseExporterResponse) Reset() { - *x = ChangeAzureDatabaseExporterResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[63] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ChangeAzureDatabaseExporterResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ChangeAzureDatabaseExporterResponse) ProtoMessage() {} - -func (x *ChangeAzureDatabaseExporterResponse) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[63] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ChangeAzureDatabaseExporterResponse.ProtoReflect.Descriptor instead. -func (*ChangeAzureDatabaseExporterResponse) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{63} -} - -func (x *ChangeAzureDatabaseExporterResponse) GetAzureDatabaseExporter() *AzureDatabaseExporter { - if x != nil { - return x.AzureDatabaseExporter - } - return nil -} - type RemoveAgentRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -7311,7 +7180,7 @@ type RemoveAgentRequest struct { func (x *RemoveAgentRequest) Reset() { *x = RemoveAgentRequest{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[64] + mi := &file_inventory_v1_agents_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7324,7 +7193,7 @@ func (x *RemoveAgentRequest) String() string { func (*RemoveAgentRequest) ProtoMessage() {} func (x *RemoveAgentRequest) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[64] + mi := &file_inventory_v1_agents_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7337,7 +7206,7 @@ func (x *RemoveAgentRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveAgentRequest.ProtoReflect.Descriptor instead. func (*RemoveAgentRequest) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{64} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{53} } func (x *RemoveAgentRequest) GetAgentId() string { @@ -7363,7 +7232,7 @@ type RemoveAgentResponse struct { func (x *RemoveAgentResponse) Reset() { *x = RemoveAgentResponse{} if protoimpl.UnsafeEnabled { - mi := &file_inventory_v1_agents_proto_msgTypes[65] + mi := &file_inventory_v1_agents_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7376,7 +7245,7 @@ func (x *RemoveAgentResponse) String() string { func (*RemoveAgentResponse) ProtoMessage() {} func (x *RemoveAgentResponse) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[65] + mi := &file_inventory_v1_agents_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7389,7 +7258,7 @@ func (x *RemoveAgentResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveAgentResponse.ProtoReflect.Descriptor instead. func (*RemoveAgentResponse) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{65} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{54} } var File_inventory_v1_agents_proto protoreflect.FileDescriptor @@ -8224,111 +8093,258 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x6f, 0x67, 0x4c, 0x69, 0x6e, 0x65, - 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xdc, 0x01, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x50, 0x4d, - 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x0f, - 0x72, 0x75, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c, - 0x72, 0x75, 0x6e, 0x73, 0x4f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x56, 0x0a, 0x0d, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 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, 0xda, 0x0a, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x70, 0x6d, 0x6d, - 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, - 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, - 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, - 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, - 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, - 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x11, - 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, - 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, - 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x64, 0x64, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x11, - 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xda, 0x0a, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x70, 0x6d, + 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, + 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, + 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0d, 0x6e, 0x6f, + 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, + 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x64, 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, + 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, + 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, + 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x67, + 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, + 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, + 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, + 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x44, + 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, + 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x66, + 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x64, 0x64, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, + 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x6d, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, + 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, + 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, + 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, + 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, + 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, + 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x6d, 0x0a, 0x1a, 0x71, + 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, + 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x82, 0x01, 0x0a, 0x21, 0x71, + 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, + 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, + 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, + 0x85, 0x01, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, + 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, + 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, + 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, + 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, + 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, + 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x22, 0xfc, 0x09, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, + 0x41, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, + 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, + 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x6d, + 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, + 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, + 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x44, 0x53, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, - 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x66, 0x0a, - 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, - 0x64, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x15, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x6d, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, - 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, - 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, - 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, - 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, - 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, - 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x6d, 0x0a, 0x1a, 0x71, 0x61, - 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, - 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, - 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x82, 0x01, 0x0a, 0x21, 0x71, 0x61, - 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, - 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1e, - 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x85, - 0x01, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, - 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, - 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, - 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, - 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, - 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x22, 0xfc, 0x09, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x41, + 0x72, 0x74, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x12, 0x5d, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, + 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, + 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, + 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, + 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x71, 0x61, 0x6e, + 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, + 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, + 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, + 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, + 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, + 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, 0x21, + 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, + 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, + 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, + 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, + 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, + 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, + 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x22, 0xc1, 0x0a, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, + 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x6d, + 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, + 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x6f, 0x6e, + 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, + 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x12, 0x59, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, + 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x11, 0x65, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x12, 0x69, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x70, 0x0a, + 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, + 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, + 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, + 0x67, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, + 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, + 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, + 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x70, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, + 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, + 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, + 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x85, 0x01, 0x0a, 0x21, 0x71, + 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, + 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, + 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x12, 0x88, 0x01, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, + 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, + 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, + 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, + 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, + 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xc5, 0x09, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, @@ -8403,190 +8419,242 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x22, 0x8f, 0x03, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, - 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x5a, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, - 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xdc, + 0x01, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x73, 0x4f, 0x6e, 0x4e, 0x6f, + 0x64, 0x65, 0x49, 0x64, 0x12, 0x56, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x4d, + 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x8f, 0x03, + 0x0a, 0x15, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x5a, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, + 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, + 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, + 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, + 0x7d, 0x0a, 0x18, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x9d, + 0x06, 0x0a, 0x17, 0x41, 0x64, 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, + 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, + 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, + 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, + 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, + 0x63, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, + 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, + 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, + 0x4b, 0x65, 0x79, 0x12, 0x3f, 0x0a, 0x1c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, + 0x73, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x73, 0x74, 0x61, 0x74, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x12, 0x5c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x79, + 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, - 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, - 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, + 0x6c, 0x73, 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, 0x0c, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, + 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, + 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, + 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, + 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x7f, + 0x0a, 0x1a, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, + 0xe9, 0x07, 0x0a, 0x18, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, + 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, + 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, + 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, + 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, + 0x79, 0x12, 0x48, 0x0a, 0x21, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x74, 0x6c, + 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x46, + 0x69, 0x6c, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x74, + 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, + 0x43, 0x61, 0x12, 0x5d, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, + 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 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, 0x0b, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, + 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0d, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, + 0x69, 0x73, 0x6d, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, + 0x73, 0x6d, 0x12, 0x37, 0x0a, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x73, + 0x74, 0x61, 0x74, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x33, 0x0a, 0x09, + 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, + 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x80, 0x01, 0x0a, 0x1b, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x92, + 0x06, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, + 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, + 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, + 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, + 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, + 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, + 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x5e, 0x0a, 0x0d, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x08, 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, 0x12, 0x21, + 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, + 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, + 0x65, 0x72, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, + 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, + 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, 0x5f, + 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x61, 0x75, 0x74, 0x6f, 0x44, 0x69, 0x73, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, + 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x7e, 0x0a, 0x19, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x64, - 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x22, 0x5d, 0x0a, 0x1a, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x64, - 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x22, 0x9d, 0x06, 0x0a, 0x17, 0x41, 0x64, 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, - 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, - 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, - 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, - 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, - 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, - 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, - 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, - 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x3f, 0x0a, 0x1c, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, - 0x62, 0x6c, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x5c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x37, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x64, 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, - 0x0c, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, - 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, - 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, - 0x6f, 0x72, 0x64, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, - 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, - 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 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, 0x80, 0x01, 0x0a, 0x1b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x79, 0x53, - 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x65, 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, - 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, - 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x0e, 0x6d, 0x79, - 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x22, 0xe9, 0x07, 0x0a, - 0x18, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, - 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, - 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x2e, - 0x0a, 0x13, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x6c, 0x73, - 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x48, - 0x0a, 0x21, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, - 0x6f, 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x74, 0x6c, 0x73, 0x43, 0x65, - 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6c, 0x65, - 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, - 0x63, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, - 0x5d, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0b, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x12, - 0x37, 0x0a, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x16, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, - 0x2b, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x61, 0x74, - 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x11, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, - 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, - 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x81, 0x01, 0x0a, 0x1c, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, - 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x69, 0x0a, 0x1d, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, - 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x22, 0x92, 0x06, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x50, - 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, + 0x02, 0x38, 0x01, 0x22, 0x81, 0x01, 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, + 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, + 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x95, 0x05, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x50, + 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, @@ -8602,8 +8670,8 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x5e, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, - 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, + 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, @@ -8614,886 +8682,544 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, - 0x5f, 0x63, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, - 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, - 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, - 0x73, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x33, 0x0a, 0x09, 0x6c, - 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, - 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x12, 0x30, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, - 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, - 0x61, 0x75, 0x74, 0x6f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, - 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x1a, 0x3f, 0x0a, 0x11, 0x43, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, + 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, + 0x81, 0x01, 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, + 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x22, 0xe6, 0x05, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, + 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, + 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, + 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, + 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, + 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, + 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, + 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, + 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, + 0x73, 0x12, 0x65, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, + 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0d, 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, 0x12, 0x38, 0x0a, 0x18, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, + 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x82, 0x01, 0x0a, - 0x1d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, - 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x22, 0x6d, 0x0a, 0x1e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x67, - 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, - 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x10, - 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x22, 0x95, 0x05, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, - 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, - 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, - 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, - 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, - 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x5e, 0x0a, 0x0d, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x08, 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, - 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, - 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, - 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x82, 0x01, 0x0a, 0x1d, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, - 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x6d, 0x0a, - 0x1e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x4b, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, - 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x22, 0xe6, 0x05, 0x0a, - 0x20, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, - 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, - 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, - 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, - 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, - 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, - 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, - 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x65, 0x0a, 0x0d, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x40, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, - 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 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, 0x0d, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, - 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, - 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 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, 0x89, 0x01, 0x0a, 0x24, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, - 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, - 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x1a, 0x71, - 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, - 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, - 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x22, - 0x93, 0x06, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, - 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, - 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, - 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, - 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, - 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, - 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, - 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x61, - 0x78, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x53, 0x6c, - 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x62, 0x0a, - 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0d, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, - 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 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, 0x0e, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, - 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, - 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 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, 0x86, 0x01, 0x0a, 0x21, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x7f, - 0x0a, 0x22, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, - 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, - 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, - 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, - 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x22, - 0xa7, 0x06, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, - 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, - 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, - 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, - 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, - 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, - 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x74, 0x6c, 0x73, - 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x48, 0x0a, 0x21, 0x74, 0x6c, 0x73, - 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, - 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, - 0x6f, 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, - 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x12, 0x65, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, - 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0c, 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, 0x12, - 0x39, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x12, 0x37, 0x0a, 0x17, 0x61, 0x75, - 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, 0x75, 0x74, - 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x62, - 0x61, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, - 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x89, 0x01, 0x0a, 0x24, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x62, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, - 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x22, 0xbe, 0x05, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, - 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, - 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, - 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, - 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, - 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x6c, 0x0a, - 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, - 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x08, 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, 0x12, - 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, - 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, - 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, - 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x33, - 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 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, 0x90, 0x01, 0x0a, 0x2b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, - 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x88, 0x01, 0x0a, + 0x23, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, + 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, - 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xa7, 0x01, 0x0a, 0x2c, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, - 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x21, 0x71, 0x61, 0x6e, 0x5f, - 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, - 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, - 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x22, 0xf6, 0x05, 0x0a, 0x28, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, - 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, - 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, - 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, - 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, - 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, - 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, - 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x28, 0x0a, 0x10, - 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x6d, 0x0a, 0x0d, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0a, 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, 0x12, - 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, - 0x5f, 0x63, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, - 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, - 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, - 0x73, 0x4b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, - 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x91, 0x01, 0x0a, 0x2c, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, - 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xab, - 0x01, 0x0a, 0x2d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, - 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, - 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x7a, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, - 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, - 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, - 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, - 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x1f, 0x71, 0x61, 0x6e, - 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, - 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xc5, 0x04, 0x0a, - 0x14, 0x41, 0x64, 0x64, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x20, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, - 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x77, 0x73, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, - 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x61, 0x77, 0x73, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x59, - 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x06, 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, 0x12, 0x32, 0x0a, - 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x73, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x68, - 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x68, 0x61, - 0x6e, 0x63, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, - 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x33, - 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 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, 0x7d, 0x0a, 0x18, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x44, - 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x22, 0x59, 0x0a, 0x19, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x44, 0x53, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3c, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x22, 0xcf, - 0x03, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x0f, - 0x72, 0x75, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c, - 0x72, 0x75, 0x6e, 0x73, 0x4f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2c, - 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0d, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x2a, 0x06, 0x10, 0x80, 0x80, 0x04, 0x20, 0x00, - 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x5e, 0x0a, 0x0d, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, - 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 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, 0x82, 0x01, 0x0a, 0x1d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x93, 0x06, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x51, + 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, + 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, + 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, + 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, + 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, + 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, + 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, + 0x65, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, + 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, + 0x65, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, + 0x67, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x46, 0x69, 0x6c, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x62, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, + 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0e, 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, 0x12, 0x38, 0x0a, + 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x85, 0x01, + 0x0a, 0x20, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, + 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x6d, 0x0a, 0x1e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, - 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 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, 0x22, 0xcf, 0x05, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, 0x72, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x6e, 0x6f, - 0x64, 0x65, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x0f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x54, 0x65, 0x6e, 0x61, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x13, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x48, 0x0a, 0x1c, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x19, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x63, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x7a, - 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0a, 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, 0x12, 0x21, 0x0a, - 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0c, 0x20, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xa7, 0x06, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, + 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, + 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, + 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, + 0x2e, 0x0a, 0x13, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x6c, + 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, + 0x48, 0x0a, 0x21, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x74, 0x6c, 0x73, 0x43, + 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6c, + 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, + 0x5f, 0x63, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, + 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x65, 0x0a, 0x0d, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x40, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 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, 0x0c, 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, 0x12, 0x39, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, + 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, + 0x12, 0x37, 0x0a, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x16, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, + 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, + 0x88, 0x01, 0x0a, 0x23, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, + 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xbe, 0x05, 0x0a, 0x27, 0x41, + 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, + 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, + 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, + 0x72, 0x69, 0x66, 0x79, 0x12, 0x6c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, + 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 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, 0x08, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, + 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, + 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, + 0x73, 0x5f, 0x63, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, + 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, + 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, + 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x8f, 0x01, 0x0a, 0x2a, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, + 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xf6, 0x05, + 0x0a, 0x28, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, + 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, + 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, + 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, + 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, + 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x6d, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x48, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, + 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0a, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, + 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, + 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, + 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, + 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x87, 0x01, 0x0a, 0x22, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x90, 0x01, 0x0a, 0x2b, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, + 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xc5, 0x04, 0x0a, 0x14, 0x41, 0x64, + 0x64, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, + 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, + 0x24, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x77, 0x73, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, + 0x77, 0x73, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x59, 0x0a, 0x0d, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, + 0x06, 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, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x42, 0x61, 0x73, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x38, + 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, + 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, + 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, + 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x6c, + 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, + 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 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, 0x7c, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x44, 0x53, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, + 0xcf, 0x03, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, + 0x0f, 0x72, 0x75, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x0c, 0x72, 0x75, 0x6e, 0x73, 0x4f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, + 0x2c, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x2a, 0x06, 0x10, 0x80, 0x80, 0x04, 0x20, + 0x00, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x5e, 0x0a, + 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, + 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 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, 0x81, 0x01, 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xcf, 0x05, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, + 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x6e, + 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x61, 0x7a, 0x75, 0x72, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, + 0x13, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x7a, 0x75, 0x72, + 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x26, 0x0a, + 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x54, 0x65, 0x6e, + 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x73, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x7a, 0x75, + 0x72, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x48, 0x0a, 0x1c, 0x61, + 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x19, 0x61, 0x7a, 0x75, 0x72, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x63, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, + 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0a, 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, 0x12, 0x21, + 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, + 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x86, 0x01, 0x0a, 0x21, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x22, 0x82, 0x01, 0x0a, 0x23, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x7a, 0x75, 0x72, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x15, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, - 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0xc7, 0x04, 0x0a, - 0x09, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x47, - 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4d, 0x4d, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x01, - 0x12, 0x17, 0x0a, 0x13, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, - 0x4d, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x47, 0x45, - 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x58, 0x50, - 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x47, 0x45, 0x4e, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x44, 0x5f, 0x45, 0x58, 0x50, - 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x47, 0x45, 0x4e, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x4f, 0x4e, 0x47, 0x4f, 0x44, 0x42, 0x5f, 0x45, 0x58, - 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, - 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x5f, - 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x06, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, - 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x53, 0x51, - 0x4c, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x07, 0x12, 0x29, 0x0a, 0x25, - 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, - 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x50, 0x45, 0x52, 0x46, 0x53, 0x43, 0x48, 0x45, 0x4d, 0x41, 0x5f, - 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x08, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x47, 0x45, 0x4e, 0x54, + 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, + 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, + 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0xc7, 0x04, 0x0a, 0x09, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x50, 0x4d, 0x4d, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x41, + 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4d, 0x5f, 0x41, 0x47, 0x45, + 0x4e, 0x54, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, + 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x44, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, + 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4d, 0x4f, 0x4e, 0x47, 0x4f, 0x44, 0x42, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, + 0x52, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, + 0x54, 0x45, 0x52, 0x10, 0x06, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x45, 0x58, 0x50, + 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x07, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, - 0x53, 0x4c, 0x4f, 0x57, 0x4c, 0x4f, 0x47, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x09, 0x12, - 0x29, 0x0a, 0x25, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, - 0x4e, 0x5f, 0x4d, 0x4f, 0x4e, 0x47, 0x4f, 0x44, 0x42, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, - 0x45, 0x52, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x0a, 0x12, 0x30, 0x0a, 0x2c, 0x41, 0x47, - 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x50, 0x4f, 0x53, - 0x54, 0x47, 0x52, 0x45, 0x53, 0x51, 0x4c, 0x5f, 0x50, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x4d, - 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x0b, 0x12, 0x31, 0x0a, 0x2d, - 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x50, - 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x51, 0x4c, 0x5f, 0x50, 0x47, 0x53, 0x54, 0x41, 0x54, - 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x0c, 0x12, - 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, - 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, - 0x0d, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x52, 0x44, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0e, 0x12, 0x26, - 0x0a, 0x22, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x5a, 0x55, - 0x52, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4f, - 0x52, 0x54, 0x45, 0x52, 0x10, 0x0f, 0x32, 0xca, 0x21, 0x0a, 0x0d, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xa4, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, - 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x53, 0x92, 0x41, 0x2c, 0x12, - 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x1d, 0x52, 0x65, - 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, - 0x61, 0x6c, 0x6c, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x9b, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0x92, 0x41, 0x2a, - 0x12, 0x09, 0x47, 0x65, 0x74, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x1a, 0x1d, 0x52, 0x65, 0x74, - 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x20, 0x62, 0x79, 0x20, 0x49, 0x44, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, - 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x47, 0x65, 0x74, 0x12, 0xac, 0x01, - 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x21, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x55, 0x92, 0x41, 0x2b, 0x12, 0x0e, 0x47, 0x65, 0x74, 0x20, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x6f, 0x67, 0x73, 0x1a, 0x19, 0x52, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x73, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x6f, 0x67, 0x73, 0x20, 0x62, - 0x79, 0x20, 0x49, 0x44, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, + 0x50, 0x45, 0x52, 0x46, 0x53, 0x43, 0x48, 0x45, 0x4d, 0x41, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, + 0x10, 0x08, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x53, 0x4c, 0x4f, 0x57, 0x4c, + 0x4f, 0x47, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x09, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x47, + 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x4f, 0x4e, + 0x47, 0x4f, 0x44, 0x42, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x52, 0x5f, 0x41, 0x47, + 0x45, 0x4e, 0x54, 0x10, 0x0a, 0x12, 0x30, 0x0a, 0x2c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, + 0x51, 0x4c, 0x5f, 0x50, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x53, 0x5f, + 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x0b, 0x12, 0x31, 0x0a, 0x2d, 0x41, 0x47, 0x45, 0x4e, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, + 0x45, 0x53, 0x51, 0x4c, 0x5f, 0x50, 0x47, 0x53, 0x54, 0x41, 0x54, 0x4d, 0x4f, 0x4e, 0x49, 0x54, + 0x4f, 0x52, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x0c, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, + 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, + 0x4c, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0d, 0x12, 0x1b, 0x0a, 0x17, + 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x44, 0x53, 0x5f, 0x45, + 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0e, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x47, 0x45, + 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x5a, 0x55, 0x52, 0x45, 0x5f, 0x44, 0x41, + 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, + 0x0f, 0x32, 0xaf, 0x08, 0x0a, 0x0d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0xa4, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x1f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x53, 0x92, 0x41, 0x2c, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, + 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x1d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, + 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, + 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x9b, 0x01, 0x0a, 0x08, 0x47, + 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0x92, 0x41, 0x2a, 0x12, 0x09, 0x47, 0x65, 0x74, + 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x1a, 0x1d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, + 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x62, + 0x79, 0x20, 0x49, 0x44, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0xab, 0x01, 0x0a, - 0x08, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x60, 0x92, 0x41, 0x3a, 0x12, 0x19, 0x41, - 0x64, 0x64, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x49, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x1d, 0x41, 0x64, 0x64, 0x73, 0x20, 0x61, - 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, - 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x41, 0x64, 0x64, 0x12, 0xd2, 0x01, 0x0a, 0x12, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x69, 0x92, 0x41, 0x34, 0x12, 0x14, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x20, 0x4e, 0x6f, 0x64, 0x65, 0x20, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x1a, - 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, - 0xde, 0x01, 0x0a, 0x14, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x29, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x79, - 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x6f, 0x92, 0x41, 0x38, 0x12, 0x16, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x6d, 0x79, 0x73, - 0x71, 0x6c, 0x64, 0x20, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x1a, 0x1e, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x73, 0x20, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x2e, 0x3a, 0x01, 0x2a, 0x22, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x12, 0xe4, 0x01, 0x0a, 0x15, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, - 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x6f, 0x6e, 0x67, - 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x72, 0x92, 0x41, 0x3a, 0x12, 0x17, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x20, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x20, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x1a, 0x1f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x20, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, - 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x20, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x3a, 0x01, 0x2a, 0x22, 0x2a, 0x2f, 0x76, 0x31, - 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x73, 0x2f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0xea, 0x01, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, 0x92, - 0x41, 0x3c, 0x12, 0x18, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x50, 0x6f, 0x73, 0x74, 0x67, - 0x72, 0x65, 0x73, 0x20, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x1a, 0x20, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x73, 0x20, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x30, 0x3a, 0x01, 0x2a, 0x22, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x12, 0xea, 0x01, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, - 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, - 0x2b, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, 0x92, 0x41, 0x3c, 0x12, - 0x18, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, - 0x20, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x1a, 0x20, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x30, 0x3a, 0x01, 0x2a, 0x22, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x47, 0x65, 0x74, 0x12, 0xac, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x55, 0x92, 0x41, 0x2b, 0x12, 0x0e, 0x47, 0x65, 0x74, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x20, 0x6c, 0x6f, 0x67, 0x73, 0x1a, 0x19, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x6f, 0x67, 0x73, 0x20, 0x62, 0x79, 0x20, 0x49, 0x44, 0x2e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, + 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0xa9, 0x01, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x5e, 0x92, 0x41, 0x38, 0x12, 0x19, 0x41, 0x64, 0x64, 0x20, 0x61, 0x6e, + 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x1a, 0x1b, 0x41, 0x64, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, + 0x41, 0x64, 0x64, 0x12, 0xbb, 0x01, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x92, 0x41, 0x3e, 0x12, 0x1c, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x69, + 0x6e, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x1e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, + 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x12, 0xa3, 0x02, 0x0a, 0x1d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, - 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x12, 0x32, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, - 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, - 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x98, 0x01, 0x92, - 0x41, 0x58, 0x12, 0x23, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x27, 0x51, 0x41, 0x4e, 0x20, - 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x20, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x27, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x1a, 0x31, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, - 0x20, 0x27, 0x51, 0x75, 0x65, 0x72, 0x79, 0x20, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, - 0x73, 0x20, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x20, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x27, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, - 0x3a, 0x01, 0x2a, 0x22, 0x32, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x91, 0x02, 0x0a, 0x1a, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, - 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, - 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, - 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8f, 0x01, 0x92, 0x41, 0x52, 0x12, - 0x20, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x27, 0x51, 0x41, 0x4e, 0x20, 0x4d, 0x79, 0x53, - 0x51, 0x4c, 0x20, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x27, 0x20, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x1a, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x20, 0x27, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x20, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x20, 0x4d, 0x79, 0x53, 0x51, - 0x4c, 0x20, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x27, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x3a, 0x01, 0x2a, 0x22, 0x2f, 0x2f, 0x76, 0x31, 0x2f, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, - 0x2f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, - 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0xa3, 0x02, 0x0a, 0x1d, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x33, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, - 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x98, 0x01, 0x92, 0x41, 0x58, 0x12, 0x23, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x20, 0x27, 0x51, 0x41, 0x4e, 0x20, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, - 0x42, 0x20, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x27, 0x20, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x1a, 0x31, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x20, 0x27, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x20, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x20, 0x4d, 0x6f, 0x6e, 0x67, - 0x6f, 0x44, 0x42, 0x20, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x27, 0x20, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x3a, 0x01, 0x2a, 0x22, 0x32, 0x2f, - 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x73, 0x2f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, - 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x12, 0xd9, 0x02, 0x0a, 0x24, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, - 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x39, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, - 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xb9, 0x01, 0x92, 0x41, 0x72, 0x12, 0x30, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x20, - 0x27, 0x51, 0x41, 0x4e, 0x20, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x20, - 0x70, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x27, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x1a, 0x3e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x20, 0x27, 0x51, 0x75, 0x65, 0x72, 0x79, 0x20, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, - 0x69, 0x63, 0x73, 0x20, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x20, 0x70, - 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x27, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x3a, - 0x01, 0x2a, 0x22, 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, - 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0xd7, 0x02, - 0x0a, 0x25, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, - 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, - 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x3a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, - 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, - 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, - 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, - 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0xb4, 0x01, 0x92, 0x41, 0x6c, 0x12, 0x2d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x27, - 0x51, 0x41, 0x4e, 0x20, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x20, 0x70, - 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x27, 0x20, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x1a, 0x3b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x20, 0x27, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x20, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x20, - 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x20, 0x70, 0x67, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x27, 0x20, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x3a, 0x01, 0x2a, 0x22, 0x3a, 0x2f, 0x76, 0x31, - 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x73, 0x2f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, - 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, - 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0xcc, 0x01, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x26, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x44, 0x53, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x66, - 0x92, 0x41, 0x32, 0x12, 0x13, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x52, 0x44, 0x53, 0x20, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x1a, 0x1b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x20, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x20, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x3a, 0x01, 0x2a, 0x22, 0x26, - 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x44, 0x53, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0xea, 0x01, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, 0x92, 0x41, - 0x3c, 0x12, 0x18, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x20, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x1a, 0x20, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x73, 0x20, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x30, 0x3a, 0x01, 0x2a, 0x22, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x12, 0x8b, 0x02, 0x0a, 0x1b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x7a, - 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x7a, 0x75, 0x72, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x86, 0x01, 0x92, 0x41, 0x48, 0x12, 0x1e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x20, 0x44, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x20, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x1a, 0x26, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x20, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x20, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x3a, 0x01, 0x2a, 0x22, - 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x7a, 0x75, 0x72, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x12, 0xbf, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, + 0x65, 0x12, 0xbf, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, @@ -9533,150 +9259,139 @@ func file_inventory_v1_agents_proto_rawDescGZIP() []byte { var ( file_inventory_v1_agents_proto_enumTypes = make([]protoimpl.EnumInfo, 1) - file_inventory_v1_agents_proto_msgTypes = make([]protoimpl.MessageInfo, 95) + file_inventory_v1_agents_proto_msgTypes = make([]protoimpl.MessageInfo, 84) file_inventory_v1_agents_proto_goTypes = []interface{}{ - (AgentType)(0), // 0: inventory.v1.AgentType - (*PMMAgent)(nil), // 1: inventory.v1.PMMAgent - (*VMAgent)(nil), // 2: inventory.v1.VMAgent - (*NodeExporter)(nil), // 3: inventory.v1.NodeExporter - (*MySQLdExporter)(nil), // 4: inventory.v1.MySQLdExporter - (*MongoDBExporter)(nil), // 5: inventory.v1.MongoDBExporter - (*PostgresExporter)(nil), // 6: inventory.v1.PostgresExporter - (*ProxySQLExporter)(nil), // 7: inventory.v1.ProxySQLExporter - (*QANMySQLPerfSchemaAgent)(nil), // 8: inventory.v1.QANMySQLPerfSchemaAgent - (*QANMySQLSlowlogAgent)(nil), // 9: inventory.v1.QANMySQLSlowlogAgent - (*QANMongoDBProfilerAgent)(nil), // 10: inventory.v1.QANMongoDBProfilerAgent - (*QANPostgreSQLPgStatementsAgent)(nil), // 11: inventory.v1.QANPostgreSQLPgStatementsAgent - (*QANPostgreSQLPgStatMonitorAgent)(nil), // 12: inventory.v1.QANPostgreSQLPgStatMonitorAgent - (*RDSExporter)(nil), // 13: inventory.v1.RDSExporter - (*ExternalExporter)(nil), // 14: inventory.v1.ExternalExporter - (*AzureDatabaseExporter)(nil), // 15: inventory.v1.AzureDatabaseExporter - (*ChangeCommonAgentParams)(nil), // 16: inventory.v1.ChangeCommonAgentParams - (*ListAgentsRequest)(nil), // 17: inventory.v1.ListAgentsRequest - (*ListAgentsResponse)(nil), // 18: inventory.v1.ListAgentsResponse - (*GetAgentRequest)(nil), // 19: inventory.v1.GetAgentRequest - (*GetAgentResponse)(nil), // 20: inventory.v1.GetAgentResponse - (*GetAgentLogsRequest)(nil), // 21: inventory.v1.GetAgentLogsRequest - (*GetAgentLogsResponse)(nil), // 22: inventory.v1.GetAgentLogsResponse - (*AddPMMAgentParams)(nil), // 23: inventory.v1.AddPMMAgentParams - (*AddAgentRequest)(nil), // 24: inventory.v1.AddAgentRequest - (*AddAgentResponse)(nil), // 25: inventory.v1.AddAgentResponse - (*AddNodeExporterParams)(nil), // 26: inventory.v1.AddNodeExporterParams - (*ChangeNodeExporterRequest)(nil), // 27: inventory.v1.ChangeNodeExporterRequest - (*ChangeNodeExporterResponse)(nil), // 28: inventory.v1.ChangeNodeExporterResponse - (*AddMySQLdExporterParams)(nil), // 29: inventory.v1.AddMySQLdExporterParams - (*ChangeMySQLdExporterRequest)(nil), // 30: inventory.v1.ChangeMySQLdExporterRequest - (*ChangeMySQLdExporterResponse)(nil), // 31: inventory.v1.ChangeMySQLdExporterResponse - (*AddMongoDBExporterParams)(nil), // 32: inventory.v1.AddMongoDBExporterParams - (*ChangeMongoDBExporterRequest)(nil), // 33: inventory.v1.ChangeMongoDBExporterRequest - (*ChangeMongoDBExporterResponse)(nil), // 34: inventory.v1.ChangeMongoDBExporterResponse - (*AddPostgresExporterParams)(nil), // 35: inventory.v1.AddPostgresExporterParams - (*ChangePostgresExporterRequest)(nil), // 36: inventory.v1.ChangePostgresExporterRequest - (*ChangePostgresExporterResponse)(nil), // 37: inventory.v1.ChangePostgresExporterResponse - (*AddProxySQLExporterParams)(nil), // 38: inventory.v1.AddProxySQLExporterParams - (*ChangeProxySQLExporterRequest)(nil), // 39: inventory.v1.ChangeProxySQLExporterRequest - (*ChangeProxySQLExporterResponse)(nil), // 40: inventory.v1.ChangeProxySQLExporterResponse - (*AddQANMySQLPerfSchemaAgentParams)(nil), // 41: inventory.v1.AddQANMySQLPerfSchemaAgentParams - (*ChangeQANMySQLPerfSchemaAgentRequest)(nil), // 42: inventory.v1.ChangeQANMySQLPerfSchemaAgentRequest - (*ChangeQANMySQLPerfSchemaAgentResponse)(nil), // 43: inventory.v1.ChangeQANMySQLPerfSchemaAgentResponse - (*AddQANMySQLSlowlogAgentParams)(nil), // 44: inventory.v1.AddQANMySQLSlowlogAgentParams - (*ChangeQANMySQLSlowlogAgentRequest)(nil), // 45: inventory.v1.ChangeQANMySQLSlowlogAgentRequest - (*ChangeQANMySQLSlowlogAgentResponse)(nil), // 46: inventory.v1.ChangeQANMySQLSlowlogAgentResponse - (*AddQANMongoDBProfilerAgentParams)(nil), // 47: inventory.v1.AddQANMongoDBProfilerAgentParams - (*ChangeQANMongoDBProfilerAgentRequest)(nil), // 48: inventory.v1.ChangeQANMongoDBProfilerAgentRequest - (*ChangeQANMongoDBProfilerAgentResponse)(nil), // 49: inventory.v1.ChangeQANMongoDBProfilerAgentResponse - (*AddQANPostgreSQLPgStatementsAgentParams)(nil), // 50: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams - (*ChangeQANPostgreSQLPgStatementsAgentRequest)(nil), // 51: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentRequest - (*ChangeQANPostgreSQLPgStatementsAgentResponse)(nil), // 52: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentResponse - (*AddQANPostgreSQLPgStatMonitorAgentParams)(nil), // 53: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams - (*ChangeQANPostgreSQLPgStatMonitorAgentRequest)(nil), // 54: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentRequest - (*ChangeQANPostgreSQLPgStatMonitorAgentResponse)(nil), // 55: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentResponse - (*AddRDSExporterParams)(nil), // 56: inventory.v1.AddRDSExporterParams - (*ChangeRDSExporterRequest)(nil), // 57: inventory.v1.ChangeRDSExporterRequest - (*ChangeRDSExporterResponse)(nil), // 58: inventory.v1.ChangeRDSExporterResponse - (*AddExternalExporterParams)(nil), // 59: inventory.v1.AddExternalExporterParams - (*ChangeExternalExporterRequest)(nil), // 60: inventory.v1.ChangeExternalExporterRequest - (*ChangeExternalExporterResponse)(nil), // 61: inventory.v1.ChangeExternalExporterResponse - (*AddAzureDatabaseExporterParams)(nil), // 62: inventory.v1.AddAzureDatabaseExporterParams - (*ChangeAzureDatabaseExporterRequest)(nil), // 63: inventory.v1.ChangeAzureDatabaseExporterRequest - (*ChangeAzureDatabaseExporterResponse)(nil), // 64: inventory.v1.ChangeAzureDatabaseExporterResponse - (*RemoveAgentRequest)(nil), // 65: inventory.v1.RemoveAgentRequest - (*RemoveAgentResponse)(nil), // 66: inventory.v1.RemoveAgentResponse - nil, // 67: inventory.v1.PMMAgent.CustomLabelsEntry - nil, // 68: inventory.v1.NodeExporter.CustomLabelsEntry - nil, // 69: inventory.v1.MySQLdExporter.CustomLabelsEntry - nil, // 70: inventory.v1.MongoDBExporter.CustomLabelsEntry - nil, // 71: inventory.v1.PostgresExporter.CustomLabelsEntry - nil, // 72: inventory.v1.ProxySQLExporter.CustomLabelsEntry - nil, // 73: inventory.v1.QANMySQLPerfSchemaAgent.CustomLabelsEntry - nil, // 74: inventory.v1.QANMySQLSlowlogAgent.CustomLabelsEntry - nil, // 75: inventory.v1.QANMongoDBProfilerAgent.CustomLabelsEntry - nil, // 76: inventory.v1.QANPostgreSQLPgStatementsAgent.CustomLabelsEntry - nil, // 77: inventory.v1.QANPostgreSQLPgStatMonitorAgent.CustomLabelsEntry - nil, // 78: inventory.v1.RDSExporter.CustomLabelsEntry - nil, // 79: inventory.v1.ExternalExporter.CustomLabelsEntry - nil, // 80: inventory.v1.AzureDatabaseExporter.CustomLabelsEntry - nil, // 81: inventory.v1.ChangeCommonAgentParams.CustomLabelsEntry - nil, // 82: inventory.v1.AddPMMAgentParams.CustomLabelsEntry - nil, // 83: inventory.v1.AddNodeExporterParams.CustomLabelsEntry - nil, // 84: inventory.v1.AddMySQLdExporterParams.CustomLabelsEntry - nil, // 85: inventory.v1.AddMongoDBExporterParams.CustomLabelsEntry - nil, // 86: inventory.v1.AddPostgresExporterParams.CustomLabelsEntry - nil, // 87: inventory.v1.AddProxySQLExporterParams.CustomLabelsEntry - nil, // 88: inventory.v1.AddQANMySQLPerfSchemaAgentParams.CustomLabelsEntry - nil, // 89: inventory.v1.AddQANMySQLSlowlogAgentParams.CustomLabelsEntry - nil, // 90: inventory.v1.AddQANMongoDBProfilerAgentParams.CustomLabelsEntry - nil, // 91: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry - nil, // 92: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry - nil, // 93: inventory.v1.AddRDSExporterParams.CustomLabelsEntry - nil, // 94: inventory.v1.AddExternalExporterParams.CustomLabelsEntry - nil, // 95: inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry - (AgentStatus)(0), // 96: inventory.v1.AgentStatus - (LogLevel)(0), // 97: inventory.v1.LogLevel + (AgentType)(0), // 0: inventory.v1.AgentType + (*PMMAgent)(nil), // 1: inventory.v1.PMMAgent + (*VMAgent)(nil), // 2: inventory.v1.VMAgent + (*NodeExporter)(nil), // 3: inventory.v1.NodeExporter + (*MySQLdExporter)(nil), // 4: inventory.v1.MySQLdExporter + (*MongoDBExporter)(nil), // 5: inventory.v1.MongoDBExporter + (*PostgresExporter)(nil), // 6: inventory.v1.PostgresExporter + (*ProxySQLExporter)(nil), // 7: inventory.v1.ProxySQLExporter + (*QANMySQLPerfSchemaAgent)(nil), // 8: inventory.v1.QANMySQLPerfSchemaAgent + (*QANMySQLSlowlogAgent)(nil), // 9: inventory.v1.QANMySQLSlowlogAgent + (*QANMongoDBProfilerAgent)(nil), // 10: inventory.v1.QANMongoDBProfilerAgent + (*QANPostgreSQLPgStatementsAgent)(nil), // 11: inventory.v1.QANPostgreSQLPgStatementsAgent + (*QANPostgreSQLPgStatMonitorAgent)(nil), // 12: inventory.v1.QANPostgreSQLPgStatMonitorAgent + (*RDSExporter)(nil), // 13: inventory.v1.RDSExporter + (*ExternalExporter)(nil), // 14: inventory.v1.ExternalExporter + (*AzureDatabaseExporter)(nil), // 15: inventory.v1.AzureDatabaseExporter + (*ChangeCommonAgentParams)(nil), // 16: inventory.v1.ChangeCommonAgentParams + (*ListAgentsRequest)(nil), // 17: inventory.v1.ListAgentsRequest + (*ListAgentsResponse)(nil), // 18: inventory.v1.ListAgentsResponse + (*GetAgentRequest)(nil), // 19: inventory.v1.GetAgentRequest + (*GetAgentResponse)(nil), // 20: inventory.v1.GetAgentResponse + (*GetAgentLogsRequest)(nil), // 21: inventory.v1.GetAgentLogsRequest + (*GetAgentLogsResponse)(nil), // 22: inventory.v1.GetAgentLogsResponse + (*AddAgentRequest)(nil), // 23: inventory.v1.AddAgentRequest + (*AddAgentResponse)(nil), // 24: inventory.v1.AddAgentResponse + (*ChangeAgentRequest)(nil), // 25: inventory.v1.ChangeAgentRequest + (*ChangeAgentResponse)(nil), // 26: inventory.v1.ChangeAgentResponse + (*AddPMMAgentParams)(nil), // 27: inventory.v1.AddPMMAgentParams + (*AddNodeExporterParams)(nil), // 28: inventory.v1.AddNodeExporterParams + (*ChangeNodeExporterParams)(nil), // 29: inventory.v1.ChangeNodeExporterParams + (*AddMySQLdExporterParams)(nil), // 30: inventory.v1.AddMySQLdExporterParams + (*ChangeMySQLdExporterParams)(nil), // 31: inventory.v1.ChangeMySQLdExporterParams + (*AddMongoDBExporterParams)(nil), // 32: inventory.v1.AddMongoDBExporterParams + (*ChangeMongoDBExporterParams)(nil), // 33: inventory.v1.ChangeMongoDBExporterParams + (*AddPostgresExporterParams)(nil), // 34: inventory.v1.AddPostgresExporterParams + (*ChangePostgresExporterParams)(nil), // 35: inventory.v1.ChangePostgresExporterParams + (*AddProxySQLExporterParams)(nil), // 36: inventory.v1.AddProxySQLExporterParams + (*ChangeProxySQLExporterParams)(nil), // 37: inventory.v1.ChangeProxySQLExporterParams + (*AddQANMySQLPerfSchemaAgentParams)(nil), // 38: inventory.v1.AddQANMySQLPerfSchemaAgentParams + (*ChangeQANMySQLPerfSchemaAgentParams)(nil), // 39: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams + (*AddQANMySQLSlowlogAgentParams)(nil), // 40: inventory.v1.AddQANMySQLSlowlogAgentParams + (*ChangeQANMySQLSlowlogAgentParams)(nil), // 41: inventory.v1.ChangeQANMySQLSlowlogAgentParams + (*AddQANMongoDBProfilerAgentParams)(nil), // 42: inventory.v1.AddQANMongoDBProfilerAgentParams + (*ChangeQANMongoDBProfilerAgentParams)(nil), // 43: inventory.v1.ChangeQANMongoDBProfilerAgentParams + (*AddQANPostgreSQLPgStatementsAgentParams)(nil), // 44: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams + (*ChangeQANPostgreSQLPgStatementsAgentParams)(nil), // 45: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams + (*AddQANPostgreSQLPgStatMonitorAgentParams)(nil), // 46: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams + (*ChangeQANPostgreSQLPgStatMonitorAgentParams)(nil), // 47: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams + (*AddRDSExporterParams)(nil), // 48: inventory.v1.AddRDSExporterParams + (*ChangeRDSExporterParams)(nil), // 49: inventory.v1.ChangeRDSExporterParams + (*AddExternalExporterParams)(nil), // 50: inventory.v1.AddExternalExporterParams + (*ChangeExternalExporterParams)(nil), // 51: inventory.v1.ChangeExternalExporterParams + (*AddAzureDatabaseExporterParams)(nil), // 52: inventory.v1.AddAzureDatabaseExporterParams + (*ChangeAzureDatabaseExporterParams)(nil), // 53: inventory.v1.ChangeAzureDatabaseExporterParams + (*RemoveAgentRequest)(nil), // 54: inventory.v1.RemoveAgentRequest + (*RemoveAgentResponse)(nil), // 55: inventory.v1.RemoveAgentResponse + nil, // 56: inventory.v1.PMMAgent.CustomLabelsEntry + nil, // 57: inventory.v1.NodeExporter.CustomLabelsEntry + nil, // 58: inventory.v1.MySQLdExporter.CustomLabelsEntry + nil, // 59: inventory.v1.MongoDBExporter.CustomLabelsEntry + nil, // 60: inventory.v1.PostgresExporter.CustomLabelsEntry + nil, // 61: inventory.v1.ProxySQLExporter.CustomLabelsEntry + nil, // 62: inventory.v1.QANMySQLPerfSchemaAgent.CustomLabelsEntry + nil, // 63: inventory.v1.QANMySQLSlowlogAgent.CustomLabelsEntry + nil, // 64: inventory.v1.QANMongoDBProfilerAgent.CustomLabelsEntry + nil, // 65: inventory.v1.QANPostgreSQLPgStatementsAgent.CustomLabelsEntry + nil, // 66: inventory.v1.QANPostgreSQLPgStatMonitorAgent.CustomLabelsEntry + nil, // 67: inventory.v1.RDSExporter.CustomLabelsEntry + nil, // 68: inventory.v1.ExternalExporter.CustomLabelsEntry + nil, // 69: inventory.v1.AzureDatabaseExporter.CustomLabelsEntry + nil, // 70: inventory.v1.ChangeCommonAgentParams.CustomLabelsEntry + nil, // 71: inventory.v1.AddPMMAgentParams.CustomLabelsEntry + nil, // 72: inventory.v1.AddNodeExporterParams.CustomLabelsEntry + nil, // 73: inventory.v1.AddMySQLdExporterParams.CustomLabelsEntry + nil, // 74: inventory.v1.AddMongoDBExporterParams.CustomLabelsEntry + nil, // 75: inventory.v1.AddPostgresExporterParams.CustomLabelsEntry + nil, // 76: inventory.v1.AddProxySQLExporterParams.CustomLabelsEntry + nil, // 77: inventory.v1.AddQANMySQLPerfSchemaAgentParams.CustomLabelsEntry + nil, // 78: inventory.v1.AddQANMySQLSlowlogAgentParams.CustomLabelsEntry + nil, // 79: inventory.v1.AddQANMongoDBProfilerAgentParams.CustomLabelsEntry + nil, // 80: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry + nil, // 81: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry + nil, // 82: inventory.v1.AddRDSExporterParams.CustomLabelsEntry + nil, // 83: inventory.v1.AddExternalExporterParams.CustomLabelsEntry + nil, // 84: inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry + (AgentStatus)(0), // 85: inventory.v1.AgentStatus + (LogLevel)(0), // 86: inventory.v1.LogLevel } ) var file_inventory_v1_agents_proto_depIdxs = []int32{ - 67, // 0: inventory.v1.PMMAgent.custom_labels:type_name -> inventory.v1.PMMAgent.CustomLabelsEntry - 96, // 1: inventory.v1.VMAgent.status:type_name -> inventory.v1.AgentStatus - 68, // 2: inventory.v1.NodeExporter.custom_labels:type_name -> inventory.v1.NodeExporter.CustomLabelsEntry - 96, // 3: inventory.v1.NodeExporter.status:type_name -> inventory.v1.AgentStatus - 97, // 4: inventory.v1.NodeExporter.log_level:type_name -> inventory.v1.LogLevel - 69, // 5: inventory.v1.MySQLdExporter.custom_labels:type_name -> inventory.v1.MySQLdExporter.CustomLabelsEntry - 96, // 6: inventory.v1.MySQLdExporter.status:type_name -> inventory.v1.AgentStatus - 97, // 7: inventory.v1.MySQLdExporter.log_level:type_name -> inventory.v1.LogLevel - 70, // 8: inventory.v1.MongoDBExporter.custom_labels:type_name -> inventory.v1.MongoDBExporter.CustomLabelsEntry - 96, // 9: inventory.v1.MongoDBExporter.status:type_name -> inventory.v1.AgentStatus - 97, // 10: inventory.v1.MongoDBExporter.log_level:type_name -> inventory.v1.LogLevel - 71, // 11: inventory.v1.PostgresExporter.custom_labels:type_name -> inventory.v1.PostgresExporter.CustomLabelsEntry - 96, // 12: inventory.v1.PostgresExporter.status:type_name -> inventory.v1.AgentStatus - 97, // 13: inventory.v1.PostgresExporter.log_level:type_name -> inventory.v1.LogLevel - 72, // 14: inventory.v1.ProxySQLExporter.custom_labels:type_name -> inventory.v1.ProxySQLExporter.CustomLabelsEntry - 96, // 15: inventory.v1.ProxySQLExporter.status:type_name -> inventory.v1.AgentStatus - 97, // 16: inventory.v1.ProxySQLExporter.log_level:type_name -> inventory.v1.LogLevel - 73, // 17: inventory.v1.QANMySQLPerfSchemaAgent.custom_labels:type_name -> inventory.v1.QANMySQLPerfSchemaAgent.CustomLabelsEntry - 96, // 18: inventory.v1.QANMySQLPerfSchemaAgent.status:type_name -> inventory.v1.AgentStatus - 97, // 19: inventory.v1.QANMySQLPerfSchemaAgent.log_level:type_name -> inventory.v1.LogLevel - 74, // 20: inventory.v1.QANMySQLSlowlogAgent.custom_labels:type_name -> inventory.v1.QANMySQLSlowlogAgent.CustomLabelsEntry - 96, // 21: inventory.v1.QANMySQLSlowlogAgent.status:type_name -> inventory.v1.AgentStatus - 97, // 22: inventory.v1.QANMySQLSlowlogAgent.log_level:type_name -> inventory.v1.LogLevel - 75, // 23: inventory.v1.QANMongoDBProfilerAgent.custom_labels:type_name -> inventory.v1.QANMongoDBProfilerAgent.CustomLabelsEntry - 96, // 24: inventory.v1.QANMongoDBProfilerAgent.status:type_name -> inventory.v1.AgentStatus - 97, // 25: inventory.v1.QANMongoDBProfilerAgent.log_level:type_name -> inventory.v1.LogLevel - 76, // 26: inventory.v1.QANPostgreSQLPgStatementsAgent.custom_labels:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent.CustomLabelsEntry - 96, // 27: inventory.v1.QANPostgreSQLPgStatementsAgent.status:type_name -> inventory.v1.AgentStatus - 97, // 28: inventory.v1.QANPostgreSQLPgStatementsAgent.log_level:type_name -> inventory.v1.LogLevel - 77, // 29: inventory.v1.QANPostgreSQLPgStatMonitorAgent.custom_labels:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent.CustomLabelsEntry - 96, // 30: inventory.v1.QANPostgreSQLPgStatMonitorAgent.status:type_name -> inventory.v1.AgentStatus - 97, // 31: inventory.v1.QANPostgreSQLPgStatMonitorAgent.log_level:type_name -> inventory.v1.LogLevel - 78, // 32: inventory.v1.RDSExporter.custom_labels:type_name -> inventory.v1.RDSExporter.CustomLabelsEntry - 96, // 33: inventory.v1.RDSExporter.status:type_name -> inventory.v1.AgentStatus - 97, // 34: inventory.v1.RDSExporter.log_level:type_name -> inventory.v1.LogLevel - 79, // 35: inventory.v1.ExternalExporter.custom_labels:type_name -> inventory.v1.ExternalExporter.CustomLabelsEntry - 80, // 36: inventory.v1.AzureDatabaseExporter.custom_labels:type_name -> inventory.v1.AzureDatabaseExporter.CustomLabelsEntry - 96, // 37: inventory.v1.AzureDatabaseExporter.status:type_name -> inventory.v1.AgentStatus - 97, // 38: inventory.v1.AzureDatabaseExporter.log_level:type_name -> inventory.v1.LogLevel - 81, // 39: inventory.v1.ChangeCommonAgentParams.custom_labels:type_name -> inventory.v1.ChangeCommonAgentParams.CustomLabelsEntry + 56, // 0: inventory.v1.PMMAgent.custom_labels:type_name -> inventory.v1.PMMAgent.CustomLabelsEntry + 85, // 1: inventory.v1.VMAgent.status:type_name -> inventory.v1.AgentStatus + 57, // 2: inventory.v1.NodeExporter.custom_labels:type_name -> inventory.v1.NodeExporter.CustomLabelsEntry + 85, // 3: inventory.v1.NodeExporter.status:type_name -> inventory.v1.AgentStatus + 86, // 4: inventory.v1.NodeExporter.log_level:type_name -> inventory.v1.LogLevel + 58, // 5: inventory.v1.MySQLdExporter.custom_labels:type_name -> inventory.v1.MySQLdExporter.CustomLabelsEntry + 85, // 6: inventory.v1.MySQLdExporter.status:type_name -> inventory.v1.AgentStatus + 86, // 7: inventory.v1.MySQLdExporter.log_level:type_name -> inventory.v1.LogLevel + 59, // 8: inventory.v1.MongoDBExporter.custom_labels:type_name -> inventory.v1.MongoDBExporter.CustomLabelsEntry + 85, // 9: inventory.v1.MongoDBExporter.status:type_name -> inventory.v1.AgentStatus + 86, // 10: inventory.v1.MongoDBExporter.log_level:type_name -> inventory.v1.LogLevel + 60, // 11: inventory.v1.PostgresExporter.custom_labels:type_name -> inventory.v1.PostgresExporter.CustomLabelsEntry + 85, // 12: inventory.v1.PostgresExporter.status:type_name -> inventory.v1.AgentStatus + 86, // 13: inventory.v1.PostgresExporter.log_level:type_name -> inventory.v1.LogLevel + 61, // 14: inventory.v1.ProxySQLExporter.custom_labels:type_name -> inventory.v1.ProxySQLExporter.CustomLabelsEntry + 85, // 15: inventory.v1.ProxySQLExporter.status:type_name -> inventory.v1.AgentStatus + 86, // 16: inventory.v1.ProxySQLExporter.log_level:type_name -> inventory.v1.LogLevel + 62, // 17: inventory.v1.QANMySQLPerfSchemaAgent.custom_labels:type_name -> inventory.v1.QANMySQLPerfSchemaAgent.CustomLabelsEntry + 85, // 18: inventory.v1.QANMySQLPerfSchemaAgent.status:type_name -> inventory.v1.AgentStatus + 86, // 19: inventory.v1.QANMySQLPerfSchemaAgent.log_level:type_name -> inventory.v1.LogLevel + 63, // 20: inventory.v1.QANMySQLSlowlogAgent.custom_labels:type_name -> inventory.v1.QANMySQLSlowlogAgent.CustomLabelsEntry + 85, // 21: inventory.v1.QANMySQLSlowlogAgent.status:type_name -> inventory.v1.AgentStatus + 86, // 22: inventory.v1.QANMySQLSlowlogAgent.log_level:type_name -> inventory.v1.LogLevel + 64, // 23: inventory.v1.QANMongoDBProfilerAgent.custom_labels:type_name -> inventory.v1.QANMongoDBProfilerAgent.CustomLabelsEntry + 85, // 24: inventory.v1.QANMongoDBProfilerAgent.status:type_name -> inventory.v1.AgentStatus + 86, // 25: inventory.v1.QANMongoDBProfilerAgent.log_level:type_name -> inventory.v1.LogLevel + 65, // 26: inventory.v1.QANPostgreSQLPgStatementsAgent.custom_labels:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent.CustomLabelsEntry + 85, // 27: inventory.v1.QANPostgreSQLPgStatementsAgent.status:type_name -> inventory.v1.AgentStatus + 86, // 28: inventory.v1.QANPostgreSQLPgStatementsAgent.log_level:type_name -> inventory.v1.LogLevel + 66, // 29: inventory.v1.QANPostgreSQLPgStatMonitorAgent.custom_labels:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent.CustomLabelsEntry + 85, // 30: inventory.v1.QANPostgreSQLPgStatMonitorAgent.status:type_name -> inventory.v1.AgentStatus + 86, // 31: inventory.v1.QANPostgreSQLPgStatMonitorAgent.log_level:type_name -> inventory.v1.LogLevel + 67, // 32: inventory.v1.RDSExporter.custom_labels:type_name -> inventory.v1.RDSExporter.CustomLabelsEntry + 85, // 33: inventory.v1.RDSExporter.status:type_name -> inventory.v1.AgentStatus + 86, // 34: inventory.v1.RDSExporter.log_level:type_name -> inventory.v1.LogLevel + 68, // 35: inventory.v1.ExternalExporter.custom_labels:type_name -> inventory.v1.ExternalExporter.CustomLabelsEntry + 69, // 36: inventory.v1.AzureDatabaseExporter.custom_labels:type_name -> inventory.v1.AzureDatabaseExporter.CustomLabelsEntry + 85, // 37: inventory.v1.AzureDatabaseExporter.status:type_name -> inventory.v1.AgentStatus + 86, // 38: inventory.v1.AzureDatabaseExporter.log_level:type_name -> inventory.v1.LogLevel + 70, // 39: inventory.v1.ChangeCommonAgentParams.custom_labels:type_name -> inventory.v1.ChangeCommonAgentParams.CustomLabelsEntry 0, // 40: inventory.v1.ListAgentsRequest.agent_type:type_name -> inventory.v1.AgentType 1, // 41: inventory.v1.ListAgentsResponse.pmm_agent:type_name -> inventory.v1.PMMAgent 2, // 42: inventory.v1.ListAgentsResponse.vm_agent:type_name -> inventory.v1.VMAgent @@ -9708,127 +9423,116 @@ var file_inventory_v1_agents_proto_depIdxs = []int32{ 14, // 68: inventory.v1.GetAgentResponse.external_exporter:type_name -> inventory.v1.ExternalExporter 13, // 69: inventory.v1.GetAgentResponse.rds_exporter:type_name -> inventory.v1.RDSExporter 15, // 70: inventory.v1.GetAgentResponse.azure_database_exporter:type_name -> inventory.v1.AzureDatabaseExporter - 82, // 71: inventory.v1.AddPMMAgentParams.custom_labels:type_name -> inventory.v1.AddPMMAgentParams.CustomLabelsEntry - 23, // 72: inventory.v1.AddAgentRequest.pmm_agent:type_name -> inventory.v1.AddPMMAgentParams - 26, // 73: inventory.v1.AddAgentRequest.node_exporter:type_name -> inventory.v1.AddNodeExporterParams - 29, // 74: inventory.v1.AddAgentRequest.mysqld_exporter:type_name -> inventory.v1.AddMySQLdExporterParams - 32, // 75: inventory.v1.AddAgentRequest.mongodb_exporter:type_name -> inventory.v1.AddMongoDBExporterParams - 35, // 76: inventory.v1.AddAgentRequest.postgres_exporter:type_name -> inventory.v1.AddPostgresExporterParams - 38, // 77: inventory.v1.AddAgentRequest.proxysql_exporter:type_name -> inventory.v1.AddProxySQLExporterParams - 59, // 78: inventory.v1.AddAgentRequest.external_exporter:type_name -> inventory.v1.AddExternalExporterParams - 56, // 79: inventory.v1.AddAgentRequest.rds_exporter:type_name -> inventory.v1.AddRDSExporterParams - 62, // 80: inventory.v1.AddAgentRequest.azure_database_exporter:type_name -> inventory.v1.AddAzureDatabaseExporterParams - 41, // 81: inventory.v1.AddAgentRequest.qan_mysql_perfschema_agent:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams - 44, // 82: inventory.v1.AddAgentRequest.qan_mysql_slowlog_agent:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams - 47, // 83: inventory.v1.AddAgentRequest.qan_mongodb_profiler_agent:type_name -> inventory.v1.AddQANMongoDBProfilerAgentParams - 50, // 84: inventory.v1.AddAgentRequest.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.AddQANPostgreSQLPgStatementsAgentParams - 53, // 85: inventory.v1.AddAgentRequest.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams - 1, // 86: inventory.v1.AddAgentResponse.pmm_agent:type_name -> inventory.v1.PMMAgent - 3, // 87: inventory.v1.AddAgentResponse.node_exporter:type_name -> inventory.v1.NodeExporter - 4, // 88: inventory.v1.AddAgentResponse.mysqld_exporter:type_name -> inventory.v1.MySQLdExporter - 5, // 89: inventory.v1.AddAgentResponse.mongodb_exporter:type_name -> inventory.v1.MongoDBExporter - 6, // 90: inventory.v1.AddAgentResponse.postgres_exporter:type_name -> inventory.v1.PostgresExporter - 7, // 91: inventory.v1.AddAgentResponse.proxysql_exporter:type_name -> inventory.v1.ProxySQLExporter - 14, // 92: inventory.v1.AddAgentResponse.external_exporter:type_name -> inventory.v1.ExternalExporter - 13, // 93: inventory.v1.AddAgentResponse.rds_exporter:type_name -> inventory.v1.RDSExporter - 15, // 94: inventory.v1.AddAgentResponse.azure_database_exporter:type_name -> inventory.v1.AzureDatabaseExporter - 8, // 95: inventory.v1.AddAgentResponse.qan_mysql_perfschema_agent:type_name -> inventory.v1.QANMySQLPerfSchemaAgent - 9, // 96: inventory.v1.AddAgentResponse.qan_mysql_slowlog_agent:type_name -> inventory.v1.QANMySQLSlowlogAgent - 10, // 97: inventory.v1.AddAgentResponse.qan_mongodb_profiler_agent:type_name -> inventory.v1.QANMongoDBProfilerAgent - 11, // 98: inventory.v1.AddAgentResponse.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent - 12, // 99: inventory.v1.AddAgentResponse.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent - 83, // 100: inventory.v1.AddNodeExporterParams.custom_labels:type_name -> inventory.v1.AddNodeExporterParams.CustomLabelsEntry - 97, // 101: inventory.v1.AddNodeExporterParams.log_level:type_name -> inventory.v1.LogLevel - 16, // 102: inventory.v1.ChangeNodeExporterRequest.common:type_name -> inventory.v1.ChangeCommonAgentParams - 3, // 103: inventory.v1.ChangeNodeExporterResponse.node_exporter:type_name -> inventory.v1.NodeExporter - 84, // 104: inventory.v1.AddMySQLdExporterParams.custom_labels:type_name -> inventory.v1.AddMySQLdExporterParams.CustomLabelsEntry - 97, // 105: inventory.v1.AddMySQLdExporterParams.log_level:type_name -> inventory.v1.LogLevel - 16, // 106: inventory.v1.ChangeMySQLdExporterRequest.common:type_name -> inventory.v1.ChangeCommonAgentParams - 4, // 107: inventory.v1.ChangeMySQLdExporterResponse.mysqld_exporter:type_name -> inventory.v1.MySQLdExporter - 85, // 108: inventory.v1.AddMongoDBExporterParams.custom_labels:type_name -> inventory.v1.AddMongoDBExporterParams.CustomLabelsEntry - 97, // 109: inventory.v1.AddMongoDBExporterParams.log_level:type_name -> inventory.v1.LogLevel - 16, // 110: inventory.v1.ChangeMongoDBExporterRequest.common:type_name -> inventory.v1.ChangeCommonAgentParams - 5, // 111: inventory.v1.ChangeMongoDBExporterResponse.mongodb_exporter:type_name -> inventory.v1.MongoDBExporter - 86, // 112: inventory.v1.AddPostgresExporterParams.custom_labels:type_name -> inventory.v1.AddPostgresExporterParams.CustomLabelsEntry - 97, // 113: inventory.v1.AddPostgresExporterParams.log_level:type_name -> inventory.v1.LogLevel - 16, // 114: inventory.v1.ChangePostgresExporterRequest.common:type_name -> inventory.v1.ChangeCommonAgentParams - 6, // 115: inventory.v1.ChangePostgresExporterResponse.postgres_exporter:type_name -> inventory.v1.PostgresExporter - 87, // 116: inventory.v1.AddProxySQLExporterParams.custom_labels:type_name -> inventory.v1.AddProxySQLExporterParams.CustomLabelsEntry - 97, // 117: inventory.v1.AddProxySQLExporterParams.log_level:type_name -> inventory.v1.LogLevel - 16, // 118: inventory.v1.ChangeProxySQLExporterRequest.common:type_name -> inventory.v1.ChangeCommonAgentParams - 7, // 119: inventory.v1.ChangeProxySQLExporterResponse.proxysql_exporter:type_name -> inventory.v1.ProxySQLExporter - 88, // 120: inventory.v1.AddQANMySQLPerfSchemaAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams.CustomLabelsEntry - 97, // 121: inventory.v1.AddQANMySQLPerfSchemaAgentParams.log_level:type_name -> inventory.v1.LogLevel - 16, // 122: inventory.v1.ChangeQANMySQLPerfSchemaAgentRequest.common:type_name -> inventory.v1.ChangeCommonAgentParams - 8, // 123: inventory.v1.ChangeQANMySQLPerfSchemaAgentResponse.qan_mysql_perfschema_agent:type_name -> inventory.v1.QANMySQLPerfSchemaAgent - 89, // 124: inventory.v1.AddQANMySQLSlowlogAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams.CustomLabelsEntry - 97, // 125: inventory.v1.AddQANMySQLSlowlogAgentParams.log_level:type_name -> inventory.v1.LogLevel - 16, // 126: inventory.v1.ChangeQANMySQLSlowlogAgentRequest.common:type_name -> inventory.v1.ChangeCommonAgentParams - 9, // 127: inventory.v1.ChangeQANMySQLSlowlogAgentResponse.qan_mysql_slowlog_agent:type_name -> inventory.v1.QANMySQLSlowlogAgent - 90, // 128: inventory.v1.AddQANMongoDBProfilerAgentParams.custom_labels:type_name -> inventory.v1.AddQANMongoDBProfilerAgentParams.CustomLabelsEntry - 97, // 129: inventory.v1.AddQANMongoDBProfilerAgentParams.log_level:type_name -> inventory.v1.LogLevel - 16, // 130: inventory.v1.ChangeQANMongoDBProfilerAgentRequest.common:type_name -> inventory.v1.ChangeCommonAgentParams - 10, // 131: inventory.v1.ChangeQANMongoDBProfilerAgentResponse.qan_mongodb_profiler_agent:type_name -> inventory.v1.QANMongoDBProfilerAgent - 91, // 132: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry - 97, // 133: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.log_level:type_name -> inventory.v1.LogLevel - 16, // 134: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentRequest.common:type_name -> inventory.v1.ChangeCommonAgentParams - 11, // 135: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentResponse.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent - 92, // 136: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry - 97, // 137: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.log_level:type_name -> inventory.v1.LogLevel - 16, // 138: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentRequest.common:type_name -> inventory.v1.ChangeCommonAgentParams - 12, // 139: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentResponse.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent - 93, // 140: inventory.v1.AddRDSExporterParams.custom_labels:type_name -> inventory.v1.AddRDSExporterParams.CustomLabelsEntry - 97, // 141: inventory.v1.AddRDSExporterParams.log_level:type_name -> inventory.v1.LogLevel - 16, // 142: inventory.v1.ChangeRDSExporterRequest.common:type_name -> inventory.v1.ChangeCommonAgentParams - 13, // 143: inventory.v1.ChangeRDSExporterResponse.rds_exporter:type_name -> inventory.v1.RDSExporter - 94, // 144: inventory.v1.AddExternalExporterParams.custom_labels:type_name -> inventory.v1.AddExternalExporterParams.CustomLabelsEntry - 16, // 145: inventory.v1.ChangeExternalExporterRequest.common:type_name -> inventory.v1.ChangeCommonAgentParams - 14, // 146: inventory.v1.ChangeExternalExporterResponse.external_exporter:type_name -> inventory.v1.ExternalExporter - 95, // 147: inventory.v1.AddAzureDatabaseExporterParams.custom_labels:type_name -> inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry - 97, // 148: inventory.v1.AddAzureDatabaseExporterParams.log_level:type_name -> inventory.v1.LogLevel - 16, // 149: inventory.v1.ChangeAzureDatabaseExporterRequest.common:type_name -> inventory.v1.ChangeCommonAgentParams - 15, // 150: inventory.v1.ChangeAzureDatabaseExporterResponse.azure_database_exporter:type_name -> inventory.v1.AzureDatabaseExporter - 17, // 151: inventory.v1.AgentsService.ListAgents:input_type -> inventory.v1.ListAgentsRequest - 19, // 152: inventory.v1.AgentsService.GetAgent:input_type -> inventory.v1.GetAgentRequest - 21, // 153: inventory.v1.AgentsService.GetAgentLogs:input_type -> inventory.v1.GetAgentLogsRequest - 24, // 154: inventory.v1.AgentsService.AddAgent:input_type -> inventory.v1.AddAgentRequest - 27, // 155: inventory.v1.AgentsService.ChangeNodeExporter:input_type -> inventory.v1.ChangeNodeExporterRequest - 30, // 156: inventory.v1.AgentsService.ChangeMySQLdExporter:input_type -> inventory.v1.ChangeMySQLdExporterRequest - 33, // 157: inventory.v1.AgentsService.ChangeMongoDBExporter:input_type -> inventory.v1.ChangeMongoDBExporterRequest - 36, // 158: inventory.v1.AgentsService.ChangePostgresExporter:input_type -> inventory.v1.ChangePostgresExporterRequest - 39, // 159: inventory.v1.AgentsService.ChangeProxySQLExporter:input_type -> inventory.v1.ChangeProxySQLExporterRequest - 42, // 160: inventory.v1.AgentsService.ChangeQANMySQLPerfSchemaAgent:input_type -> inventory.v1.ChangeQANMySQLPerfSchemaAgentRequest - 45, // 161: inventory.v1.AgentsService.ChangeQANMySQLSlowlogAgent:input_type -> inventory.v1.ChangeQANMySQLSlowlogAgentRequest - 48, // 162: inventory.v1.AgentsService.ChangeQANMongoDBProfilerAgent:input_type -> inventory.v1.ChangeQANMongoDBProfilerAgentRequest - 51, // 163: inventory.v1.AgentsService.ChangeQANPostgreSQLPgStatementsAgent:input_type -> inventory.v1.ChangeQANPostgreSQLPgStatementsAgentRequest - 54, // 164: inventory.v1.AgentsService.ChangeQANPostgreSQLPgStatMonitorAgent:input_type -> inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentRequest - 57, // 165: inventory.v1.AgentsService.ChangeRDSExporter:input_type -> inventory.v1.ChangeRDSExporterRequest - 60, // 166: inventory.v1.AgentsService.ChangeExternalExporter:input_type -> inventory.v1.ChangeExternalExporterRequest - 63, // 167: inventory.v1.AgentsService.ChangeAzureDatabaseExporter:input_type -> inventory.v1.ChangeAzureDatabaseExporterRequest - 65, // 168: inventory.v1.AgentsService.RemoveAgent:input_type -> inventory.v1.RemoveAgentRequest - 18, // 169: inventory.v1.AgentsService.ListAgents:output_type -> inventory.v1.ListAgentsResponse - 20, // 170: inventory.v1.AgentsService.GetAgent:output_type -> inventory.v1.GetAgentResponse - 22, // 171: inventory.v1.AgentsService.GetAgentLogs:output_type -> inventory.v1.GetAgentLogsResponse - 25, // 172: inventory.v1.AgentsService.AddAgent:output_type -> inventory.v1.AddAgentResponse - 28, // 173: inventory.v1.AgentsService.ChangeNodeExporter:output_type -> inventory.v1.ChangeNodeExporterResponse - 31, // 174: inventory.v1.AgentsService.ChangeMySQLdExporter:output_type -> inventory.v1.ChangeMySQLdExporterResponse - 34, // 175: inventory.v1.AgentsService.ChangeMongoDBExporter:output_type -> inventory.v1.ChangeMongoDBExporterResponse - 37, // 176: inventory.v1.AgentsService.ChangePostgresExporter:output_type -> inventory.v1.ChangePostgresExporterResponse - 40, // 177: inventory.v1.AgentsService.ChangeProxySQLExporter:output_type -> inventory.v1.ChangeProxySQLExporterResponse - 43, // 178: inventory.v1.AgentsService.ChangeQANMySQLPerfSchemaAgent:output_type -> inventory.v1.ChangeQANMySQLPerfSchemaAgentResponse - 46, // 179: inventory.v1.AgentsService.ChangeQANMySQLSlowlogAgent:output_type -> inventory.v1.ChangeQANMySQLSlowlogAgentResponse - 49, // 180: inventory.v1.AgentsService.ChangeQANMongoDBProfilerAgent:output_type -> inventory.v1.ChangeQANMongoDBProfilerAgentResponse - 52, // 181: inventory.v1.AgentsService.ChangeQANPostgreSQLPgStatementsAgent:output_type -> inventory.v1.ChangeQANPostgreSQLPgStatementsAgentResponse - 55, // 182: inventory.v1.AgentsService.ChangeQANPostgreSQLPgStatMonitorAgent:output_type -> inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentResponse - 58, // 183: inventory.v1.AgentsService.ChangeRDSExporter:output_type -> inventory.v1.ChangeRDSExporterResponse - 61, // 184: inventory.v1.AgentsService.ChangeExternalExporter:output_type -> inventory.v1.ChangeExternalExporterResponse - 64, // 185: inventory.v1.AgentsService.ChangeAzureDatabaseExporter:output_type -> inventory.v1.ChangeAzureDatabaseExporterResponse - 66, // 186: inventory.v1.AgentsService.RemoveAgent:output_type -> inventory.v1.RemoveAgentResponse - 169, // [169:187] is the sub-list for method output_type - 151, // [151:169] is the sub-list for method input_type - 151, // [151:151] is the sub-list for extension type_name - 151, // [151:151] is the sub-list for extension extendee - 0, // [0:151] is the sub-list for field type_name + 27, // 71: inventory.v1.AddAgentRequest.pmm_agent:type_name -> inventory.v1.AddPMMAgentParams + 28, // 72: inventory.v1.AddAgentRequest.node_exporter:type_name -> inventory.v1.AddNodeExporterParams + 30, // 73: inventory.v1.AddAgentRequest.mysqld_exporter:type_name -> inventory.v1.AddMySQLdExporterParams + 32, // 74: inventory.v1.AddAgentRequest.mongodb_exporter:type_name -> inventory.v1.AddMongoDBExporterParams + 34, // 75: inventory.v1.AddAgentRequest.postgres_exporter:type_name -> inventory.v1.AddPostgresExporterParams + 36, // 76: inventory.v1.AddAgentRequest.proxysql_exporter:type_name -> inventory.v1.AddProxySQLExporterParams + 50, // 77: inventory.v1.AddAgentRequest.external_exporter:type_name -> inventory.v1.AddExternalExporterParams + 48, // 78: inventory.v1.AddAgentRequest.rds_exporter:type_name -> inventory.v1.AddRDSExporterParams + 52, // 79: inventory.v1.AddAgentRequest.azure_database_exporter:type_name -> inventory.v1.AddAzureDatabaseExporterParams + 38, // 80: inventory.v1.AddAgentRequest.qan_mysql_perfschema_agent:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams + 40, // 81: inventory.v1.AddAgentRequest.qan_mysql_slowlog_agent:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams + 42, // 82: inventory.v1.AddAgentRequest.qan_mongodb_profiler_agent:type_name -> inventory.v1.AddQANMongoDBProfilerAgentParams + 44, // 83: inventory.v1.AddAgentRequest.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.AddQANPostgreSQLPgStatementsAgentParams + 46, // 84: inventory.v1.AddAgentRequest.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams + 1, // 85: inventory.v1.AddAgentResponse.pmm_agent:type_name -> inventory.v1.PMMAgent + 3, // 86: inventory.v1.AddAgentResponse.node_exporter:type_name -> inventory.v1.NodeExporter + 4, // 87: inventory.v1.AddAgentResponse.mysqld_exporter:type_name -> inventory.v1.MySQLdExporter + 5, // 88: inventory.v1.AddAgentResponse.mongodb_exporter:type_name -> inventory.v1.MongoDBExporter + 6, // 89: inventory.v1.AddAgentResponse.postgres_exporter:type_name -> inventory.v1.PostgresExporter + 7, // 90: inventory.v1.AddAgentResponse.proxysql_exporter:type_name -> inventory.v1.ProxySQLExporter + 14, // 91: inventory.v1.AddAgentResponse.external_exporter:type_name -> inventory.v1.ExternalExporter + 13, // 92: inventory.v1.AddAgentResponse.rds_exporter:type_name -> inventory.v1.RDSExporter + 15, // 93: inventory.v1.AddAgentResponse.azure_database_exporter:type_name -> inventory.v1.AzureDatabaseExporter + 8, // 94: inventory.v1.AddAgentResponse.qan_mysql_perfschema_agent:type_name -> inventory.v1.QANMySQLPerfSchemaAgent + 9, // 95: inventory.v1.AddAgentResponse.qan_mysql_slowlog_agent:type_name -> inventory.v1.QANMySQLSlowlogAgent + 10, // 96: inventory.v1.AddAgentResponse.qan_mongodb_profiler_agent:type_name -> inventory.v1.QANMongoDBProfilerAgent + 11, // 97: inventory.v1.AddAgentResponse.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent + 12, // 98: inventory.v1.AddAgentResponse.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent + 29, // 99: inventory.v1.ChangeAgentRequest.node_exporter:type_name -> inventory.v1.ChangeNodeExporterParams + 31, // 100: inventory.v1.ChangeAgentRequest.mysqld_exporter:type_name -> inventory.v1.ChangeMySQLdExporterParams + 33, // 101: inventory.v1.ChangeAgentRequest.mongodb_exporter:type_name -> inventory.v1.ChangeMongoDBExporterParams + 35, // 102: inventory.v1.ChangeAgentRequest.postgres_exporter:type_name -> inventory.v1.ChangePostgresExporterParams + 37, // 103: inventory.v1.ChangeAgentRequest.proxysql_exporter:type_name -> inventory.v1.ChangeProxySQLExporterParams + 51, // 104: inventory.v1.ChangeAgentRequest.external_exporter:type_name -> inventory.v1.ChangeExternalExporterParams + 49, // 105: inventory.v1.ChangeAgentRequest.rds_exporter:type_name -> inventory.v1.ChangeRDSExporterParams + 53, // 106: inventory.v1.ChangeAgentRequest.azure_database_exporter:type_name -> inventory.v1.ChangeAzureDatabaseExporterParams + 39, // 107: inventory.v1.ChangeAgentRequest.qan_mysql_perfschema_agent:type_name -> inventory.v1.ChangeQANMySQLPerfSchemaAgentParams + 41, // 108: inventory.v1.ChangeAgentRequest.qan_mysql_slowlog_agent:type_name -> inventory.v1.ChangeQANMySQLSlowlogAgentParams + 43, // 109: inventory.v1.ChangeAgentRequest.qan_mongodb_profiler_agent:type_name -> inventory.v1.ChangeQANMongoDBProfilerAgentParams + 45, // 110: inventory.v1.ChangeAgentRequest.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams + 47, // 111: inventory.v1.ChangeAgentRequest.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams + 3, // 112: inventory.v1.ChangeAgentResponse.node_exporter:type_name -> inventory.v1.NodeExporter + 4, // 113: inventory.v1.ChangeAgentResponse.mysqld_exporter:type_name -> inventory.v1.MySQLdExporter + 5, // 114: inventory.v1.ChangeAgentResponse.mongodb_exporter:type_name -> inventory.v1.MongoDBExporter + 6, // 115: inventory.v1.ChangeAgentResponse.postgres_exporter:type_name -> inventory.v1.PostgresExporter + 7, // 116: inventory.v1.ChangeAgentResponse.proxysql_exporter:type_name -> inventory.v1.ProxySQLExporter + 14, // 117: inventory.v1.ChangeAgentResponse.external_exporter:type_name -> inventory.v1.ExternalExporter + 13, // 118: inventory.v1.ChangeAgentResponse.rds_exporter:type_name -> inventory.v1.RDSExporter + 15, // 119: inventory.v1.ChangeAgentResponse.azure_database_exporter:type_name -> inventory.v1.AzureDatabaseExporter + 8, // 120: inventory.v1.ChangeAgentResponse.qan_mysql_perfschema_agent:type_name -> inventory.v1.QANMySQLPerfSchemaAgent + 9, // 121: inventory.v1.ChangeAgentResponse.qan_mysql_slowlog_agent:type_name -> inventory.v1.QANMySQLSlowlogAgent + 10, // 122: inventory.v1.ChangeAgentResponse.qan_mongodb_profiler_agent:type_name -> inventory.v1.QANMongoDBProfilerAgent + 11, // 123: inventory.v1.ChangeAgentResponse.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent + 12, // 124: inventory.v1.ChangeAgentResponse.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent + 71, // 125: inventory.v1.AddPMMAgentParams.custom_labels:type_name -> inventory.v1.AddPMMAgentParams.CustomLabelsEntry + 72, // 126: inventory.v1.AddNodeExporterParams.custom_labels:type_name -> inventory.v1.AddNodeExporterParams.CustomLabelsEntry + 86, // 127: inventory.v1.AddNodeExporterParams.log_level:type_name -> inventory.v1.LogLevel + 16, // 128: inventory.v1.ChangeNodeExporterParams.common:type_name -> inventory.v1.ChangeCommonAgentParams + 73, // 129: inventory.v1.AddMySQLdExporterParams.custom_labels:type_name -> inventory.v1.AddMySQLdExporterParams.CustomLabelsEntry + 86, // 130: inventory.v1.AddMySQLdExporterParams.log_level:type_name -> inventory.v1.LogLevel + 16, // 131: inventory.v1.ChangeMySQLdExporterParams.common:type_name -> inventory.v1.ChangeCommonAgentParams + 74, // 132: inventory.v1.AddMongoDBExporterParams.custom_labels:type_name -> inventory.v1.AddMongoDBExporterParams.CustomLabelsEntry + 86, // 133: inventory.v1.AddMongoDBExporterParams.log_level:type_name -> inventory.v1.LogLevel + 16, // 134: inventory.v1.ChangeMongoDBExporterParams.common:type_name -> inventory.v1.ChangeCommonAgentParams + 75, // 135: inventory.v1.AddPostgresExporterParams.custom_labels:type_name -> inventory.v1.AddPostgresExporterParams.CustomLabelsEntry + 86, // 136: inventory.v1.AddPostgresExporterParams.log_level:type_name -> inventory.v1.LogLevel + 16, // 137: inventory.v1.ChangePostgresExporterParams.common:type_name -> inventory.v1.ChangeCommonAgentParams + 76, // 138: inventory.v1.AddProxySQLExporterParams.custom_labels:type_name -> inventory.v1.AddProxySQLExporterParams.CustomLabelsEntry + 86, // 139: inventory.v1.AddProxySQLExporterParams.log_level:type_name -> inventory.v1.LogLevel + 16, // 140: inventory.v1.ChangeProxySQLExporterParams.common:type_name -> inventory.v1.ChangeCommonAgentParams + 77, // 141: inventory.v1.AddQANMySQLPerfSchemaAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams.CustomLabelsEntry + 86, // 142: inventory.v1.AddQANMySQLPerfSchemaAgentParams.log_level:type_name -> inventory.v1.LogLevel + 16, // 143: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams.common:type_name -> inventory.v1.ChangeCommonAgentParams + 78, // 144: inventory.v1.AddQANMySQLSlowlogAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams.CustomLabelsEntry + 86, // 145: inventory.v1.AddQANMySQLSlowlogAgentParams.log_level:type_name -> inventory.v1.LogLevel + 16, // 146: inventory.v1.ChangeQANMySQLSlowlogAgentParams.common:type_name -> inventory.v1.ChangeCommonAgentParams + 79, // 147: inventory.v1.AddQANMongoDBProfilerAgentParams.custom_labels:type_name -> inventory.v1.AddQANMongoDBProfilerAgentParams.CustomLabelsEntry + 86, // 148: inventory.v1.AddQANMongoDBProfilerAgentParams.log_level:type_name -> inventory.v1.LogLevel + 16, // 149: inventory.v1.ChangeQANMongoDBProfilerAgentParams.common:type_name -> inventory.v1.ChangeCommonAgentParams + 80, // 150: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry + 86, // 151: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.log_level:type_name -> inventory.v1.LogLevel + 16, // 152: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams.common:type_name -> inventory.v1.ChangeCommonAgentParams + 81, // 153: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry + 86, // 154: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.log_level:type_name -> inventory.v1.LogLevel + 16, // 155: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams.common:type_name -> inventory.v1.ChangeCommonAgentParams + 82, // 156: inventory.v1.AddRDSExporterParams.custom_labels:type_name -> inventory.v1.AddRDSExporterParams.CustomLabelsEntry + 86, // 157: inventory.v1.AddRDSExporterParams.log_level:type_name -> inventory.v1.LogLevel + 16, // 158: inventory.v1.ChangeRDSExporterParams.common:type_name -> inventory.v1.ChangeCommonAgentParams + 83, // 159: inventory.v1.AddExternalExporterParams.custom_labels:type_name -> inventory.v1.AddExternalExporterParams.CustomLabelsEntry + 16, // 160: inventory.v1.ChangeExternalExporterParams.common:type_name -> inventory.v1.ChangeCommonAgentParams + 84, // 161: inventory.v1.AddAzureDatabaseExporterParams.custom_labels:type_name -> inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry + 86, // 162: inventory.v1.AddAzureDatabaseExporterParams.log_level:type_name -> inventory.v1.LogLevel + 16, // 163: inventory.v1.ChangeAzureDatabaseExporterParams.common:type_name -> inventory.v1.ChangeCommonAgentParams + 17, // 164: inventory.v1.AgentsService.ListAgents:input_type -> inventory.v1.ListAgentsRequest + 19, // 165: inventory.v1.AgentsService.GetAgent:input_type -> inventory.v1.GetAgentRequest + 21, // 166: inventory.v1.AgentsService.GetAgentLogs:input_type -> inventory.v1.GetAgentLogsRequest + 23, // 167: inventory.v1.AgentsService.AddAgent:input_type -> inventory.v1.AddAgentRequest + 25, // 168: inventory.v1.AgentsService.ChangeAgent:input_type -> inventory.v1.ChangeAgentRequest + 54, // 169: inventory.v1.AgentsService.RemoveAgent:input_type -> inventory.v1.RemoveAgentRequest + 18, // 170: inventory.v1.AgentsService.ListAgents:output_type -> inventory.v1.ListAgentsResponse + 20, // 171: inventory.v1.AgentsService.GetAgent:output_type -> inventory.v1.GetAgentResponse + 22, // 172: inventory.v1.AgentsService.GetAgentLogs:output_type -> inventory.v1.GetAgentLogsResponse + 24, // 173: inventory.v1.AgentsService.AddAgent:output_type -> inventory.v1.AddAgentResponse + 26, // 174: inventory.v1.AgentsService.ChangeAgent:output_type -> inventory.v1.ChangeAgentResponse + 55, // 175: inventory.v1.AgentsService.RemoveAgent:output_type -> inventory.v1.RemoveAgentResponse + 170, // [170:176] is the sub-list for method output_type + 164, // [164:170] is the sub-list for method input_type + 164, // [164:164] is the sub-list for extension type_name + 164, // [164:164] is the sub-list for extension extendee + 0, // [0:164] is the sub-list for field type_name } func init() { file_inventory_v1_agents_proto_init() } @@ -10104,7 +9808,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddPMMAgentParams); i { + switch v := v.(*AddAgentRequest); i { case 0: return &v.state case 1: @@ -10116,7 +9820,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddAgentRequest); i { + switch v := v.(*AddAgentResponse); i { case 0: return &v.state case 1: @@ -10128,7 +9832,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddAgentResponse); i { + switch v := v.(*ChangeAgentRequest); i { case 0: return &v.state case 1: @@ -10140,7 +9844,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddNodeExporterParams); i { + switch v := v.(*ChangeAgentResponse); i { case 0: return &v.state case 1: @@ -10152,7 +9856,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeNodeExporterRequest); i { + switch v := v.(*AddPMMAgentParams); i { case 0: return &v.state case 1: @@ -10164,7 +9868,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeNodeExporterResponse); i { + switch v := v.(*AddNodeExporterParams); i { case 0: return &v.state case 1: @@ -10176,7 +9880,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddMySQLdExporterParams); i { + switch v := v.(*ChangeNodeExporterParams); i { case 0: return &v.state case 1: @@ -10188,7 +9892,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeMySQLdExporterRequest); i { + switch v := v.(*AddMySQLdExporterParams); i { case 0: return &v.state case 1: @@ -10200,7 +9904,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeMySQLdExporterResponse); i { + switch v := v.(*ChangeMySQLdExporterParams); i { case 0: return &v.state case 1: @@ -10224,7 +9928,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeMongoDBExporterRequest); i { + switch v := v.(*ChangeMongoDBExporterParams); i { case 0: return &v.state case 1: @@ -10236,7 +9940,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeMongoDBExporterResponse); i { + switch v := v.(*AddPostgresExporterParams); i { case 0: return &v.state case 1: @@ -10248,7 +9952,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddPostgresExporterParams); i { + switch v := v.(*ChangePostgresExporterParams); i { case 0: return &v.state case 1: @@ -10260,7 +9964,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangePostgresExporterRequest); i { + switch v := v.(*AddProxySQLExporterParams); i { case 0: return &v.state case 1: @@ -10272,7 +9976,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangePostgresExporterResponse); i { + switch v := v.(*ChangeProxySQLExporterParams); i { case 0: return &v.state case 1: @@ -10284,7 +9988,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddProxySQLExporterParams); i { + switch v := v.(*AddQANMySQLPerfSchemaAgentParams); i { case 0: return &v.state case 1: @@ -10296,7 +10000,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeProxySQLExporterRequest); i { + switch v := v.(*ChangeQANMySQLPerfSchemaAgentParams); i { case 0: return &v.state case 1: @@ -10308,7 +10012,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeProxySQLExporterResponse); i { + switch v := v.(*AddQANMySQLSlowlogAgentParams); i { case 0: return &v.state case 1: @@ -10320,7 +10024,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddQANMySQLPerfSchemaAgentParams); i { + switch v := v.(*ChangeQANMySQLSlowlogAgentParams); i { case 0: return &v.state case 1: @@ -10332,7 +10036,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeQANMySQLPerfSchemaAgentRequest); i { + switch v := v.(*AddQANMongoDBProfilerAgentParams); i { case 0: return &v.state case 1: @@ -10344,7 +10048,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeQANMySQLPerfSchemaAgentResponse); i { + switch v := v.(*ChangeQANMongoDBProfilerAgentParams); i { case 0: return &v.state case 1: @@ -10356,7 +10060,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddQANMySQLSlowlogAgentParams); i { + switch v := v.(*AddQANPostgreSQLPgStatementsAgentParams); i { case 0: return &v.state case 1: @@ -10368,7 +10072,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeQANMySQLSlowlogAgentRequest); i { + switch v := v.(*ChangeQANPostgreSQLPgStatementsAgentParams); i { case 0: return &v.state case 1: @@ -10380,7 +10084,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeQANMySQLSlowlogAgentResponse); i { + switch v := v.(*AddQANPostgreSQLPgStatMonitorAgentParams); i { case 0: return &v.state case 1: @@ -10392,7 +10096,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddQANMongoDBProfilerAgentParams); i { + switch v := v.(*ChangeQANPostgreSQLPgStatMonitorAgentParams); i { case 0: return &v.state case 1: @@ -10404,7 +10108,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeQANMongoDBProfilerAgentRequest); i { + switch v := v.(*AddRDSExporterParams); i { case 0: return &v.state case 1: @@ -10416,7 +10120,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeQANMongoDBProfilerAgentResponse); i { + switch v := v.(*ChangeRDSExporterParams); i { case 0: return &v.state case 1: @@ -10428,7 +10132,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddQANPostgreSQLPgStatementsAgentParams); i { + switch v := v.(*AddExternalExporterParams); i { case 0: return &v.state case 1: @@ -10440,7 +10144,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeQANPostgreSQLPgStatementsAgentRequest); i { + switch v := v.(*ChangeExternalExporterParams); i { case 0: return &v.state case 1: @@ -10452,7 +10156,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeQANPostgreSQLPgStatementsAgentResponse); i { + switch v := v.(*AddAzureDatabaseExporterParams); i { case 0: return &v.state case 1: @@ -10464,7 +10168,7 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddQANPostgreSQLPgStatMonitorAgentParams); i { + switch v := v.(*ChangeAzureDatabaseExporterParams); i { case 0: return &v.state case 1: @@ -10476,138 +10180,6 @@ func file_inventory_v1_agents_proto_init() { } } file_inventory_v1_agents_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeQANPostgreSQLPgStatMonitorAgentRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_inventory_v1_agents_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeQANPostgreSQLPgStatMonitorAgentResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_inventory_v1_agents_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddRDSExporterParams); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_inventory_v1_agents_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeRDSExporterRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_inventory_v1_agents_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeRDSExporterResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_inventory_v1_agents_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddExternalExporterParams); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_inventory_v1_agents_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeExternalExporterRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_inventory_v1_agents_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeExternalExporterResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_inventory_v1_agents_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddAzureDatabaseExporterParams); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_inventory_v1_agents_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeAzureDatabaseExporterRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_inventory_v1_agents_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeAzureDatabaseExporterResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_inventory_v1_agents_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemoveAgentRequest); i { case 0: return &v.state @@ -10619,7 +10191,7 @@ func file_inventory_v1_agents_proto_init() { return nil } } - file_inventory_v1_agents_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + file_inventory_v1_agents_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemoveAgentResponse); i { case 0: return &v.state @@ -10649,7 +10221,7 @@ func file_inventory_v1_agents_proto_init() { (*GetAgentResponse_RdsExporter)(nil), (*GetAgentResponse_AzureDatabaseExporter)(nil), } - file_inventory_v1_agents_proto_msgTypes[23].OneofWrappers = []interface{}{ + file_inventory_v1_agents_proto_msgTypes[22].OneofWrappers = []interface{}{ (*AddAgentRequest_PmmAgent)(nil), (*AddAgentRequest_NodeExporter)(nil), (*AddAgentRequest_MysqldExporter)(nil), @@ -10665,7 +10237,7 @@ func file_inventory_v1_agents_proto_init() { (*AddAgentRequest_QanPostgresqlPgstatementsAgent)(nil), (*AddAgentRequest_QanPostgresqlPgstatmonitorAgent)(nil), } - file_inventory_v1_agents_proto_msgTypes[24].OneofWrappers = []interface{}{ + file_inventory_v1_agents_proto_msgTypes[23].OneofWrappers = []interface{}{ (*AddAgentResponse_PmmAgent)(nil), (*AddAgentResponse_NodeExporter)(nil), (*AddAgentResponse_MysqldExporter)(nil), @@ -10681,13 +10253,43 @@ func file_inventory_v1_agents_proto_init() { (*AddAgentResponse_QanPostgresqlPgstatementsAgent)(nil), (*AddAgentResponse_QanPostgresqlPgstatmonitorAgent)(nil), } + file_inventory_v1_agents_proto_msgTypes[24].OneofWrappers = []interface{}{ + (*ChangeAgentRequest_NodeExporter)(nil), + (*ChangeAgentRequest_MysqldExporter)(nil), + (*ChangeAgentRequest_MongodbExporter)(nil), + (*ChangeAgentRequest_PostgresExporter)(nil), + (*ChangeAgentRequest_ProxysqlExporter)(nil), + (*ChangeAgentRequest_ExternalExporter)(nil), + (*ChangeAgentRequest_RdsExporter)(nil), + (*ChangeAgentRequest_AzureDatabaseExporter)(nil), + (*ChangeAgentRequest_QanMysqlPerfschemaAgent)(nil), + (*ChangeAgentRequest_QanMysqlSlowlogAgent)(nil), + (*ChangeAgentRequest_QanMongodbProfilerAgent)(nil), + (*ChangeAgentRequest_QanPostgresqlPgstatementsAgent)(nil), + (*ChangeAgentRequest_QanPostgresqlPgstatmonitorAgent)(nil), + } + file_inventory_v1_agents_proto_msgTypes[25].OneofWrappers = []interface{}{ + (*ChangeAgentResponse_NodeExporter)(nil), + (*ChangeAgentResponse_MysqldExporter)(nil), + (*ChangeAgentResponse_MongodbExporter)(nil), + (*ChangeAgentResponse_PostgresExporter)(nil), + (*ChangeAgentResponse_ProxysqlExporter)(nil), + (*ChangeAgentResponse_ExternalExporter)(nil), + (*ChangeAgentResponse_RdsExporter)(nil), + (*ChangeAgentResponse_AzureDatabaseExporter)(nil), + (*ChangeAgentResponse_QanMysqlPerfschemaAgent)(nil), + (*ChangeAgentResponse_QanMysqlSlowlogAgent)(nil), + (*ChangeAgentResponse_QanMongodbProfilerAgent)(nil), + (*ChangeAgentResponse_QanPostgresqlPgstatementsAgent)(nil), + (*ChangeAgentResponse_QanPostgresqlPgstatmonitorAgent)(nil), + } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_inventory_v1_agents_proto_rawDesc, NumEnums: 1, - NumMessages: 95, + NumMessages: 84, NumExtensions: 0, NumServices: 1, }, diff --git a/api/inventory/v1/agents.pb.gw.go b/api/inventory/v1/agents.pb.gw.go index c7954fee8a..e9aa11168c 100644 --- a/api/inventory/v1/agents.pb.gw.go +++ b/api/inventory/v1/agents.pb.gw.go @@ -161,8 +161,8 @@ func local_request_AgentsService_AddAgent_0(ctx context.Context, marshaler runti return msg, metadata, err } -func request_AgentsService_ChangeNodeExporter_0(ctx context.Context, marshaler runtime.Marshaler, client AgentsServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeNodeExporterRequest +func request_AgentsService_ChangeAgent_0(ctx context.Context, marshaler runtime.Marshaler, client AgentsServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ChangeAgentRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -173,12 +173,12 @@ func request_AgentsService_ChangeNodeExporter_0(ctx context.Context, marshaler r return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.ChangeNodeExporter(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.ChangeAgent(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_AgentsService_ChangeNodeExporter_0(ctx context.Context, marshaler runtime.Marshaler, server AgentsServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeNodeExporterRequest +func local_request_AgentsService_ChangeAgent_0(ctx context.Context, marshaler runtime.Marshaler, server AgentsServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ChangeAgentRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -189,316 +189,12 @@ func local_request_AgentsService_ChangeNodeExporter_0(ctx context.Context, marsh return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.ChangeNodeExporter(ctx, &protoReq) + msg, err := server.ChangeAgent(ctx, &protoReq) return msg, metadata, err } -func request_AgentsService_ChangeMySQLdExporter_0(ctx context.Context, marshaler runtime.Marshaler, client AgentsServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeMySQLdExporterRequest - 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.ChangeMySQLdExporter(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err -} - -func local_request_AgentsService_ChangeMySQLdExporter_0(ctx context.Context, marshaler runtime.Marshaler, server AgentsServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeMySQLdExporterRequest - 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.ChangeMySQLdExporter(ctx, &protoReq) - return msg, metadata, err -} - -func request_AgentsService_ChangeMongoDBExporter_0(ctx context.Context, marshaler runtime.Marshaler, client AgentsServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeMongoDBExporterRequest - 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.ChangeMongoDBExporter(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err -} - -func local_request_AgentsService_ChangeMongoDBExporter_0(ctx context.Context, marshaler runtime.Marshaler, server AgentsServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeMongoDBExporterRequest - 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.ChangeMongoDBExporter(ctx, &protoReq) - return msg, metadata, err -} - -func request_AgentsService_ChangePostgresExporter_0(ctx context.Context, marshaler runtime.Marshaler, client AgentsServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangePostgresExporterRequest - 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.ChangePostgresExporter(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err -} - -func local_request_AgentsService_ChangePostgresExporter_0(ctx context.Context, marshaler runtime.Marshaler, server AgentsServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangePostgresExporterRequest - 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.ChangePostgresExporter(ctx, &protoReq) - return msg, metadata, err -} - -func request_AgentsService_ChangeProxySQLExporter_0(ctx context.Context, marshaler runtime.Marshaler, client AgentsServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeProxySQLExporterRequest - 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.ChangeProxySQLExporter(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err -} - -func local_request_AgentsService_ChangeProxySQLExporter_0(ctx context.Context, marshaler runtime.Marshaler, server AgentsServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeProxySQLExporterRequest - 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.ChangeProxySQLExporter(ctx, &protoReq) - return msg, metadata, err -} - -func request_AgentsService_ChangeQANMySQLPerfSchemaAgent_0(ctx context.Context, marshaler runtime.Marshaler, client AgentsServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeQANMySQLPerfSchemaAgentRequest - 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.ChangeQANMySQLPerfSchemaAgent(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err -} - -func local_request_AgentsService_ChangeQANMySQLPerfSchemaAgent_0(ctx context.Context, marshaler runtime.Marshaler, server AgentsServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeQANMySQLPerfSchemaAgentRequest - 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.ChangeQANMySQLPerfSchemaAgent(ctx, &protoReq) - return msg, metadata, err -} - -func request_AgentsService_ChangeQANMySQLSlowlogAgent_0(ctx context.Context, marshaler runtime.Marshaler, client AgentsServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeQANMySQLSlowlogAgentRequest - 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.ChangeQANMySQLSlowlogAgent(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err -} - -func local_request_AgentsService_ChangeQANMySQLSlowlogAgent_0(ctx context.Context, marshaler runtime.Marshaler, server AgentsServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeQANMySQLSlowlogAgentRequest - 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.ChangeQANMySQLSlowlogAgent(ctx, &protoReq) - return msg, metadata, err -} - -func request_AgentsService_ChangeQANMongoDBProfilerAgent_0(ctx context.Context, marshaler runtime.Marshaler, client AgentsServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeQANMongoDBProfilerAgentRequest - 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.ChangeQANMongoDBProfilerAgent(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err -} - -func local_request_AgentsService_ChangeQANMongoDBProfilerAgent_0(ctx context.Context, marshaler runtime.Marshaler, server AgentsServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeQANMongoDBProfilerAgentRequest - 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.ChangeQANMongoDBProfilerAgent(ctx, &protoReq) - return msg, metadata, err -} - -func request_AgentsService_ChangeQANPostgreSQLPgStatementsAgent_0(ctx context.Context, marshaler runtime.Marshaler, client AgentsServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeQANPostgreSQLPgStatementsAgentRequest - 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.ChangeQANPostgreSQLPgStatementsAgent(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err -} - -func local_request_AgentsService_ChangeQANPostgreSQLPgStatementsAgent_0(ctx context.Context, marshaler runtime.Marshaler, server AgentsServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeQANPostgreSQLPgStatementsAgentRequest - 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.ChangeQANPostgreSQLPgStatementsAgent(ctx, &protoReq) - return msg, metadata, err -} - -func request_AgentsService_ChangeQANPostgreSQLPgStatMonitorAgent_0(ctx context.Context, marshaler runtime.Marshaler, client AgentsServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeQANPostgreSQLPgStatMonitorAgentRequest - 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.ChangeQANPostgreSQLPgStatMonitorAgent(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err -} - -func local_request_AgentsService_ChangeQANPostgreSQLPgStatMonitorAgent_0(ctx context.Context, marshaler runtime.Marshaler, server AgentsServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeQANPostgreSQLPgStatMonitorAgentRequest - 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.ChangeQANPostgreSQLPgStatMonitorAgent(ctx, &protoReq) - return msg, metadata, err -} - -func request_AgentsService_ChangeRDSExporter_0(ctx context.Context, marshaler runtime.Marshaler, client AgentsServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeRDSExporterRequest - 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.ChangeRDSExporter(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err -} - -func local_request_AgentsService_ChangeRDSExporter_0(ctx context.Context, marshaler runtime.Marshaler, server AgentsServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeRDSExporterRequest +func request_AgentsService_RemoveAgent_0(ctx context.Context, marshaler runtime.Marshaler, client AgentsServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq RemoveAgentRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -509,400 +205,32 @@ func local_request_AgentsService_ChangeRDSExporter_0(ctx context.Context, marsha return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.ChangeRDSExporter(ctx, &protoReq) + msg, err := client.RemoveAgent(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func request_AgentsService_ChangeExternalExporter_0(ctx context.Context, marshaler runtime.Marshaler, client AgentsServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeExternalExporterRequest +func local_request_AgentsService_RemoveAgent_0(ctx context.Context, marshaler runtime.Marshaler, server AgentsServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq RemoveAgentRequest 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.ChangeExternalExporter(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err -} - -func local_request_AgentsService_ChangeExternalExporter_0(ctx context.Context, marshaler runtime.Marshaler, server AgentsServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeExternalExporterRequest - 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.ChangeExternalExporter(ctx, &protoReq) - return msg, metadata, err -} - -func request_AgentsService_ChangeAzureDatabaseExporter_0(ctx context.Context, marshaler runtime.Marshaler, client AgentsServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeAzureDatabaseExporterRequest - 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.ChangeAzureDatabaseExporter(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err -} - -func local_request_AgentsService_ChangeAzureDatabaseExporter_0(ctx context.Context, marshaler runtime.Marshaler, server AgentsServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq ChangeAzureDatabaseExporterRequest - 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.ChangeAzureDatabaseExporter(ctx, &protoReq) - return msg, metadata, err -} - -func request_AgentsService_RemoveAgent_0(ctx context.Context, marshaler runtime.Marshaler, client AgentsServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq RemoveAgentRequest - 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.RemoveAgent(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err -} - -func local_request_AgentsService_RemoveAgent_0(ctx context.Context, marshaler runtime.Marshaler, server AgentsServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq RemoveAgentRequest - 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.RemoveAgent(ctx, &protoReq) - return msg, metadata, err -} - -// RegisterAgentsServiceHandlerServer registers the http handlers for service AgentsService to "mux". -// UnaryRPC :call AgentsServiceServer 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 RegisterAgentsServiceHandlerFromEndpoint instead. -func RegisterAgentsServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server AgentsServiceServer) error { - mux.Handle("POST", pattern_AgentsService_ListAgents_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/inventory.v1.AgentsService/ListAgents", runtime.WithHTTPPathPattern("/v1/inventory/Agents/List")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AgentsService_ListAgents_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AgentsService_ListAgents_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - }) - - mux.Handle("POST", pattern_AgentsService_GetAgent_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/inventory.v1.AgentsService/GetAgent", runtime.WithHTTPPathPattern("/v1/inventory/Agents/Get")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AgentsService_GetAgent_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AgentsService_GetAgent_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - }) - - mux.Handle("POST", pattern_AgentsService_GetAgentLogs_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/inventory.v1.AgentsService/GetAgentLogs", runtime.WithHTTPPathPattern("/v1/inventory/Agents/GetLogs")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AgentsService_GetAgentLogs_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AgentsService_GetAgentLogs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - }) - - mux.Handle("POST", pattern_AgentsService_AddAgent_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/inventory.v1.AgentsService/AddAgent", runtime.WithHTTPPathPattern("/v1/inventory/Agents/Add")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AgentsService_AddAgent_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AgentsService_AddAgent_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - }) - - mux.Handle("POST", pattern_AgentsService_ChangeNodeExporter_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeNodeExporter", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangeNodeExporter")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AgentsService_ChangeNodeExporter_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AgentsService_ChangeNodeExporter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - }) - - mux.Handle("POST", pattern_AgentsService_ChangeMySQLdExporter_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeMySQLdExporter", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangeMySQLdExporter")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AgentsService_ChangeMySQLdExporter_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AgentsService_ChangeMySQLdExporter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - }) - - mux.Handle("POST", pattern_AgentsService_ChangeMongoDBExporter_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeMongoDBExporter", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangeMongoDBExporter")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AgentsService_ChangeMongoDBExporter_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AgentsService_ChangeMongoDBExporter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - }) - - mux.Handle("POST", pattern_AgentsService_ChangePostgresExporter_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangePostgresExporter", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangePostgresExporter")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AgentsService_ChangePostgresExporter_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AgentsService_ChangePostgresExporter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - }) - - mux.Handle("POST", pattern_AgentsService_ChangeProxySQLExporter_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeProxySQLExporter", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangeProxySQLExporter")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AgentsService_ChangeProxySQLExporter_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AgentsService_ChangeProxySQLExporter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - }) - - mux.Handle("POST", pattern_AgentsService_ChangeQANMySQLPerfSchemaAgent_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeQANMySQLPerfSchemaAgent", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangeQANMySQLPerfSchemaAgent")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AgentsService_ChangeQANMySQLPerfSchemaAgent_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AgentsService_ChangeQANMySQLPerfSchemaAgent_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - }) - - mux.Handle("POST", pattern_AgentsService_ChangeQANMySQLSlowlogAgent_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeQANMySQLSlowlogAgent", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangeQANMySQLSlowlogAgent")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AgentsService_ChangeQANMySQLSlowlogAgent_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AgentsService_ChangeQANMySQLSlowlogAgent_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - }) - - mux.Handle("POST", pattern_AgentsService_ChangeQANMongoDBProfilerAgent_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeQANMongoDBProfilerAgent", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangeQANMongoDBProfilerAgent")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_AgentsService_ChangeQANMongoDBProfilerAgent_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } - forward_AgentsService_ChangeQANMongoDBProfilerAgent_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - }) + msg, err := server.RemoveAgent(ctx, &protoReq) + return msg, metadata, err +} - mux.Handle("POST", pattern_AgentsService_ChangeQANPostgreSQLPgStatementsAgent_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { +// RegisterAgentsServiceHandlerServer registers the http handlers for service AgentsService to "mux". +// UnaryRPC :call AgentsServiceServer 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 RegisterAgentsServiceHandlerFromEndpoint instead. +func RegisterAgentsServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server AgentsServiceServer) error { + mux.Handle("POST", pattern_AgentsService_ListAgents_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -910,12 +238,12 @@ func RegisterAgentsServiceHandlerServer(ctx context.Context, mux *runtime.ServeM inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeQANPostgreSQLPgStatementsAgent", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangeQANPostgreSQLPgStatementsAgent")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/inventory.v1.AgentsService/ListAgents", runtime.WithHTTPPathPattern("/v1/inventory/Agents/List")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_AgentsService_ChangeQANPostgreSQLPgStatementsAgent_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_AgentsService_ListAgents_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { @@ -923,10 +251,10 @@ func RegisterAgentsServiceHandlerServer(ctx context.Context, mux *runtime.ServeM return } - forward_AgentsService_ChangeQANPostgreSQLPgStatementsAgent_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AgentsService_ListAgents_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("POST", pattern_AgentsService_ChangeQANPostgreSQLPgStatMonitorAgent_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_AgentsService_GetAgent_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -934,12 +262,12 @@ func RegisterAgentsServiceHandlerServer(ctx context.Context, mux *runtime.ServeM inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeQANPostgreSQLPgStatMonitorAgent", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangeQANPostgreSQLPgStatMonitorAgent")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/inventory.v1.AgentsService/GetAgent", runtime.WithHTTPPathPattern("/v1/inventory/Agents/Get")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_AgentsService_ChangeQANPostgreSQLPgStatMonitorAgent_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_AgentsService_GetAgent_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { @@ -947,10 +275,10 @@ func RegisterAgentsServiceHandlerServer(ctx context.Context, mux *runtime.ServeM return } - forward_AgentsService_ChangeQANPostgreSQLPgStatMonitorAgent_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AgentsService_GetAgent_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("POST", pattern_AgentsService_ChangeRDSExporter_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_AgentsService_GetAgentLogs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -958,12 +286,12 @@ func RegisterAgentsServiceHandlerServer(ctx context.Context, mux *runtime.ServeM inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeRDSExporter", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangeRDSExporter")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/inventory.v1.AgentsService/GetAgentLogs", runtime.WithHTTPPathPattern("/v1/inventory/Agents/GetLogs")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_AgentsService_ChangeRDSExporter_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_AgentsService_GetAgentLogs_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { @@ -971,10 +299,10 @@ func RegisterAgentsServiceHandlerServer(ctx context.Context, mux *runtime.ServeM return } - forward_AgentsService_ChangeRDSExporter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AgentsService_GetAgentLogs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("POST", pattern_AgentsService_ChangeExternalExporter_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_AgentsService_AddAgent_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -982,12 +310,12 @@ func RegisterAgentsServiceHandlerServer(ctx context.Context, mux *runtime.ServeM inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeExternalExporter", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangeExternalExporter")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/inventory.v1.AgentsService/AddAgent", runtime.WithHTTPPathPattern("/v1/inventory/Agents/Add")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_AgentsService_ChangeExternalExporter_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_AgentsService_AddAgent_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { @@ -995,10 +323,10 @@ func RegisterAgentsServiceHandlerServer(ctx context.Context, mux *runtime.ServeM return } - forward_AgentsService_ChangeExternalExporter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AgentsService_AddAgent_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("POST", pattern_AgentsService_ChangeAzureDatabaseExporter_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_AgentsService_ChangeAgent_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -1006,12 +334,12 @@ func RegisterAgentsServiceHandlerServer(ctx context.Context, mux *runtime.ServeM inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeAzureDatabaseExporter", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangeAzureDatabaseExporter")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeAgent", runtime.WithHTTPPathPattern("/v1/inventory/Agents/Change")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_AgentsService_ChangeAzureDatabaseExporter_0(annotatedContext, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_AgentsService_ChangeAgent_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { @@ -1019,7 +347,7 @@ func RegisterAgentsServiceHandlerServer(ctx context.Context, mux *runtime.ServeM return } - forward_AgentsService_ChangeAzureDatabaseExporter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AgentsService_ChangeAgent_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) mux.Handle("POST", pattern_AgentsService_RemoveAgent_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { @@ -1170,277 +498,25 @@ func RegisterAgentsServiceHandlerClient(ctx context.Context, mux *runtime.ServeM forward_AgentsService_AddAgent_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("POST", pattern_AgentsService_ChangeNodeExporter_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeNodeExporter", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangeNodeExporter")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_AgentsService_ChangeNodeExporter_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AgentsService_ChangeNodeExporter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - }) - - mux.Handle("POST", pattern_AgentsService_ChangeMySQLdExporter_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeMySQLdExporter", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangeMySQLdExporter")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_AgentsService_ChangeMySQLdExporter_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AgentsService_ChangeMySQLdExporter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - }) - - mux.Handle("POST", pattern_AgentsService_ChangeMongoDBExporter_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeMongoDBExporter", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangeMongoDBExporter")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_AgentsService_ChangeMongoDBExporter_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AgentsService_ChangeMongoDBExporter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - }) - - mux.Handle("POST", pattern_AgentsService_ChangePostgresExporter_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangePostgresExporter", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangePostgresExporter")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_AgentsService_ChangePostgresExporter_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AgentsService_ChangePostgresExporter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - }) - - mux.Handle("POST", pattern_AgentsService_ChangeProxySQLExporter_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeProxySQLExporter", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangeProxySQLExporter")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_AgentsService_ChangeProxySQLExporter_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AgentsService_ChangeProxySQLExporter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - }) - - mux.Handle("POST", pattern_AgentsService_ChangeQANMySQLPerfSchemaAgent_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeQANMySQLPerfSchemaAgent", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangeQANMySQLPerfSchemaAgent")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_AgentsService_ChangeQANMySQLPerfSchemaAgent_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AgentsService_ChangeQANMySQLPerfSchemaAgent_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - }) - - mux.Handle("POST", pattern_AgentsService_ChangeQANMySQLSlowlogAgent_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeQANMySQLSlowlogAgent", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangeQANMySQLSlowlogAgent")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_AgentsService_ChangeQANMySQLSlowlogAgent_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AgentsService_ChangeQANMySQLSlowlogAgent_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - }) - - mux.Handle("POST", pattern_AgentsService_ChangeQANMongoDBProfilerAgent_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeQANMongoDBProfilerAgent", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangeQANMongoDBProfilerAgent")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_AgentsService_ChangeQANMongoDBProfilerAgent_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AgentsService_ChangeQANMongoDBProfilerAgent_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - }) - - mux.Handle("POST", pattern_AgentsService_ChangeQANPostgreSQLPgStatementsAgent_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeQANPostgreSQLPgStatementsAgent", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangeQANPostgreSQLPgStatementsAgent")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_AgentsService_ChangeQANPostgreSQLPgStatementsAgent_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AgentsService_ChangeQANPostgreSQLPgStatementsAgent_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - }) - - mux.Handle("POST", pattern_AgentsService_ChangeQANPostgreSQLPgStatMonitorAgent_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeQANPostgreSQLPgStatMonitorAgent", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangeQANPostgreSQLPgStatMonitorAgent")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_AgentsService_ChangeQANPostgreSQLPgStatMonitorAgent_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AgentsService_ChangeQANPostgreSQLPgStatMonitorAgent_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - }) - - mux.Handle("POST", pattern_AgentsService_ChangeRDSExporter_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeRDSExporter", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangeRDSExporter")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_AgentsService_ChangeRDSExporter_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AgentsService_ChangeRDSExporter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - }) - - mux.Handle("POST", pattern_AgentsService_ChangeExternalExporter_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) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeExternalExporter", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangeExternalExporter")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_AgentsService_ChangeExternalExporter_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_AgentsService_ChangeExternalExporter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - }) - - mux.Handle("POST", pattern_AgentsService_ChangeAzureDatabaseExporter_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_AgentsService_ChangeAgent_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) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeAzureDatabaseExporter", runtime.WithHTTPPathPattern("/v1/inventory/Agents/ChangeAzureDatabaseExporter")) + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/inventory.v1.AgentsService/ChangeAgent", runtime.WithHTTPPathPattern("/v1/inventory/Agents/Change")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AgentsService_ChangeAzureDatabaseExporter_0(annotatedContext, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AgentsService_ChangeAgent_0(annotatedContext, inboundMarshaler, client, req, pathParams) annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_AgentsService_ChangeAzureDatabaseExporter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AgentsService_ChangeAgent_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) mux.Handle("POST", pattern_AgentsService_RemoveAgent_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { @@ -1476,31 +552,7 @@ var ( pattern_AgentsService_AddAgent_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "inventory", "Agents", "Add"}, "")) - pattern_AgentsService_ChangeNodeExporter_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "inventory", "Agents", "ChangeNodeExporter"}, "")) - - pattern_AgentsService_ChangeMySQLdExporter_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "inventory", "Agents", "ChangeMySQLdExporter"}, "")) - - pattern_AgentsService_ChangeMongoDBExporter_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "inventory", "Agents", "ChangeMongoDBExporter"}, "")) - - pattern_AgentsService_ChangePostgresExporter_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "inventory", "Agents", "ChangePostgresExporter"}, "")) - - pattern_AgentsService_ChangeProxySQLExporter_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "inventory", "Agents", "ChangeProxySQLExporter"}, "")) - - pattern_AgentsService_ChangeQANMySQLPerfSchemaAgent_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "inventory", "Agents", "ChangeQANMySQLPerfSchemaAgent"}, "")) - - pattern_AgentsService_ChangeQANMySQLSlowlogAgent_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "inventory", "Agents", "ChangeQANMySQLSlowlogAgent"}, "")) - - pattern_AgentsService_ChangeQANMongoDBProfilerAgent_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "inventory", "Agents", "ChangeQANMongoDBProfilerAgent"}, "")) - - pattern_AgentsService_ChangeQANPostgreSQLPgStatementsAgent_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "inventory", "Agents", "ChangeQANPostgreSQLPgStatementsAgent"}, "")) - - pattern_AgentsService_ChangeQANPostgreSQLPgStatMonitorAgent_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "inventory", "Agents", "ChangeQANPostgreSQLPgStatMonitorAgent"}, "")) - - pattern_AgentsService_ChangeRDSExporter_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "inventory", "Agents", "ChangeRDSExporter"}, "")) - - pattern_AgentsService_ChangeExternalExporter_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "inventory", "Agents", "ChangeExternalExporter"}, "")) - - pattern_AgentsService_ChangeAzureDatabaseExporter_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "inventory", "Agents", "ChangeAzureDatabaseExporter"}, "")) + pattern_AgentsService_ChangeAgent_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "inventory", "Agents", "Change"}, "")) pattern_AgentsService_RemoveAgent_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "inventory", "Agents", "Remove"}, "")) ) @@ -1514,31 +566,7 @@ var ( forward_AgentsService_AddAgent_0 = runtime.ForwardResponseMessage - forward_AgentsService_ChangeNodeExporter_0 = runtime.ForwardResponseMessage - - forward_AgentsService_ChangeMySQLdExporter_0 = runtime.ForwardResponseMessage - - forward_AgentsService_ChangeMongoDBExporter_0 = runtime.ForwardResponseMessage - - forward_AgentsService_ChangePostgresExporter_0 = runtime.ForwardResponseMessage - - forward_AgentsService_ChangeProxySQLExporter_0 = runtime.ForwardResponseMessage - - forward_AgentsService_ChangeQANMySQLPerfSchemaAgent_0 = runtime.ForwardResponseMessage - - forward_AgentsService_ChangeQANMySQLSlowlogAgent_0 = runtime.ForwardResponseMessage - - forward_AgentsService_ChangeQANMongoDBProfilerAgent_0 = runtime.ForwardResponseMessage - - forward_AgentsService_ChangeQANPostgreSQLPgStatementsAgent_0 = runtime.ForwardResponseMessage - - forward_AgentsService_ChangeQANPostgreSQLPgStatMonitorAgent_0 = runtime.ForwardResponseMessage - - forward_AgentsService_ChangeRDSExporter_0 = runtime.ForwardResponseMessage - - forward_AgentsService_ChangeExternalExporter_0 = runtime.ForwardResponseMessage - - forward_AgentsService_ChangeAzureDatabaseExporter_0 = runtime.ForwardResponseMessage + forward_AgentsService_ChangeAgent_0 = runtime.ForwardResponseMessage forward_AgentsService_RemoveAgent_0 = runtime.ForwardResponseMessage ) diff --git a/api/inventory/v1/agents.pb.validate.go b/api/inventory/v1/agents.pb.validate.go index 79556d2dc4..a4102d26bd 100644 --- a/api/inventory/v1/agents.pb.validate.go +++ b/api/inventory/v1/agents.pb.validate.go @@ -3820,121 +3820,6 @@ var _ interface { ErrorName() string } = GetAgentLogsResponseValidationError{} -// Validate checks the field values on AddPMMAgentParams with the rules defined -// in the proto definition for this message. If any rules are violated, the -// first error encountered is returned, or nil if there are no violations. -func (m *AddPMMAgentParams) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on AddPMMAgentParams with the rules -// defined in the proto definition for this message. If any rules are -// violated, the result is a list of violation errors wrapped in -// AddPMMAgentParamsMultiError, or nil if none found. -func (m *AddPMMAgentParams) ValidateAll() error { - return m.validate(true) -} - -func (m *AddPMMAgentParams) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error - - if utf8.RuneCountInString(m.GetRunsOnNodeId()) < 1 { - err := AddPMMAgentParamsValidationError{ - field: "RunsOnNodeId", - reason: "value length must be at least 1 runes", - } - if !all { - return err - } - errors = append(errors, err) - } - - // no validation rules for CustomLabels - - if len(errors) > 0 { - return AddPMMAgentParamsMultiError(errors) - } - - return nil -} - -// AddPMMAgentParamsMultiError is an error wrapping multiple validation errors -// returned by AddPMMAgentParams.ValidateAll() if the designated constraints -// aren't met. -type AddPMMAgentParamsMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m AddPMMAgentParamsMultiError) Error() string { - var msgs []string - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m AddPMMAgentParamsMultiError) AllErrors() []error { return m } - -// AddPMMAgentParamsValidationError is the validation error returned by -// AddPMMAgentParams.Validate if the designated constraints aren't met. -type AddPMMAgentParamsValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e AddPMMAgentParamsValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e AddPMMAgentParamsValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e AddPMMAgentParamsValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e AddPMMAgentParamsValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e AddPMMAgentParamsValidationError) ErrorName() string { - return "AddPMMAgentParamsValidationError" -} - -// Error satisfies the builtin error interface -func (e AddPMMAgentParamsValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sAddPMMAgentParams.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = AddPMMAgentParamsValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = AddPMMAgentParamsValidationError{} - // Validate checks the field values on AddAgentRequest with the rules defined // in the proto definition for this message. If any rules are violated, the // first error encountered is returned, or nil if there are no violations. @@ -5295,61 +5180,1222 @@ var _ interface { ErrorName() string } = AddAgentResponseValidationError{} -// Validate checks the field values on AddNodeExporterParams with the rules +// Validate checks the field values on ChangeAgentRequest with the rules // defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. -func (m *AddNodeExporterParams) Validate() error { +func (m *ChangeAgentRequest) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on AddNodeExporterParams with the rules +// ValidateAll checks the field values on ChangeAgentRequest with the rules // defined in the proto definition for this message. If any rules are // violated, the result is a list of violation errors wrapped in -// AddNodeExporterParamsMultiError, or nil if none found. -func (m *AddNodeExporterParams) ValidateAll() error { +// ChangeAgentRequestMultiError, or nil if none found. +func (m *ChangeAgentRequest) ValidateAll() error { return m.validate(true) } -func (m *AddNodeExporterParams) validate(all bool) error { +func (m *ChangeAgentRequest) validate(all bool) error { if m == nil { return nil } var errors []error - if utf8.RuneCountInString(m.GetPmmAgentId()) < 1 { - err := AddNodeExporterParamsValidationError{ - field: "PmmAgentId", - reason: "value length must be at least 1 runes", - } - if !all { - return err + switch v := m.Agent.(type) { + case *ChangeAgentRequest_NodeExporter: + if v == nil { + err := ChangeAgentRequestValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) } - errors = append(errors, err) - } - - // no validation rules for CustomLabels - // no validation rules for PushMetrics + if all { + switch v := interface{}(m.GetNodeExporter()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "NodeExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "NodeExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetNodeExporter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentRequestValidationError{ + field: "NodeExporter", + reason: "embedded message failed validation", + cause: err, + } + } + } - // no validation rules for LogLevel + case *ChangeAgentRequest_MysqldExporter: + if v == nil { + err := ChangeAgentRequestValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } - // no validation rules for ExposeExporter + if all { + switch v := interface{}(m.GetMysqldExporter()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "MysqldExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "MysqldExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetMysqldExporter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentRequestValidationError{ + field: "MysqldExporter", + reason: "embedded message failed validation", + cause: err, + } + } + } - if len(errors) > 0 { - return AddNodeExporterParamsMultiError(errors) - } + case *ChangeAgentRequest_MongodbExporter: + if v == nil { + err := ChangeAgentRequestValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } - return nil -} + if all { + switch v := interface{}(m.GetMongodbExporter()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "MongodbExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "MongodbExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetMongodbExporter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentRequestValidationError{ + field: "MongodbExporter", + reason: "embedded message failed validation", + cause: err, + } + } + } -// AddNodeExporterParamsMultiError is an error wrapping multiple validation -// errors returned by AddNodeExporterParams.ValidateAll() if the designated -// constraints aren't met. -type AddNodeExporterParamsMultiError []error + case *ChangeAgentRequest_PostgresExporter: + if v == nil { + err := ChangeAgentRequestValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } -// Error returns a concatenation of all the error messages it wraps. -func (m AddNodeExporterParamsMultiError) Error() string { + if all { + switch v := interface{}(m.GetPostgresExporter()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "PostgresExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "PostgresExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPostgresExporter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentRequestValidationError{ + field: "PostgresExporter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ChangeAgentRequest_ProxysqlExporter: + if v == nil { + err := ChangeAgentRequestValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetProxysqlExporter()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "ProxysqlExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "ProxysqlExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetProxysqlExporter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentRequestValidationError{ + field: "ProxysqlExporter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ChangeAgentRequest_ExternalExporter: + if v == nil { + err := ChangeAgentRequestValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetExternalExporter()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "ExternalExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "ExternalExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetExternalExporter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentRequestValidationError{ + field: "ExternalExporter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ChangeAgentRequest_RdsExporter: + if v == nil { + err := ChangeAgentRequestValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetRdsExporter()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "RdsExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "RdsExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetRdsExporter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentRequestValidationError{ + field: "RdsExporter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ChangeAgentRequest_AzureDatabaseExporter: + if v == nil { + err := ChangeAgentRequestValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetAzureDatabaseExporter()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "AzureDatabaseExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "AzureDatabaseExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetAzureDatabaseExporter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentRequestValidationError{ + field: "AzureDatabaseExporter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ChangeAgentRequest_QanMysqlPerfschemaAgent: + if v == nil { + err := ChangeAgentRequestValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetQanMysqlPerfschemaAgent()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "QanMysqlPerfschemaAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "QanMysqlPerfschemaAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetQanMysqlPerfschemaAgent()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentRequestValidationError{ + field: "QanMysqlPerfschemaAgent", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ChangeAgentRequest_QanMysqlSlowlogAgent: + if v == nil { + err := ChangeAgentRequestValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetQanMysqlSlowlogAgent()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "QanMysqlSlowlogAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "QanMysqlSlowlogAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetQanMysqlSlowlogAgent()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentRequestValidationError{ + field: "QanMysqlSlowlogAgent", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ChangeAgentRequest_QanMongodbProfilerAgent: + if v == nil { + err := ChangeAgentRequestValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetQanMongodbProfilerAgent()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "QanMongodbProfilerAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "QanMongodbProfilerAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetQanMongodbProfilerAgent()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentRequestValidationError{ + field: "QanMongodbProfilerAgent", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ChangeAgentRequest_QanPostgresqlPgstatementsAgent: + if v == nil { + err := ChangeAgentRequestValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetQanPostgresqlPgstatementsAgent()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "QanPostgresqlPgstatementsAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "QanPostgresqlPgstatementsAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetQanPostgresqlPgstatementsAgent()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentRequestValidationError{ + field: "QanPostgresqlPgstatementsAgent", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ChangeAgentRequest_QanPostgresqlPgstatmonitorAgent: + if v == nil { + err := ChangeAgentRequestValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetQanPostgresqlPgstatmonitorAgent()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "QanPostgresqlPgstatmonitorAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "QanPostgresqlPgstatmonitorAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetQanPostgresqlPgstatmonitorAgent()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentRequestValidationError{ + field: "QanPostgresqlPgstatmonitorAgent", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + _ = v // ensures v is used + } + + if len(errors) > 0 { + return ChangeAgentRequestMultiError(errors) + } + + return nil +} + +// ChangeAgentRequestMultiError is an error wrapping multiple validation errors +// returned by ChangeAgentRequest.ValidateAll() if the designated constraints +// aren't met. +type ChangeAgentRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ChangeAgentRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ChangeAgentRequestMultiError) AllErrors() []error { return m } + +// ChangeAgentRequestValidationError is the validation error returned by +// ChangeAgentRequest.Validate if the designated constraints aren't met. +type ChangeAgentRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ChangeAgentRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ChangeAgentRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ChangeAgentRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ChangeAgentRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ChangeAgentRequestValidationError) ErrorName() string { + return "ChangeAgentRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e ChangeAgentRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sChangeAgentRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ChangeAgentRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ChangeAgentRequestValidationError{} + +// Validate checks the field values on ChangeAgentResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ChangeAgentResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ChangeAgentResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ChangeAgentResponseMultiError, or nil if none found. +func (m *ChangeAgentResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *ChangeAgentResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for TableCount + + switch v := m.Agent.(type) { + case *ChangeAgentResponse_NodeExporter: + if v == nil { + err := ChangeAgentResponseValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetNodeExporter()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "NodeExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "NodeExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetNodeExporter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentResponseValidationError{ + field: "NodeExporter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ChangeAgentResponse_MysqldExporter: + if v == nil { + err := ChangeAgentResponseValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetMysqldExporter()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "MysqldExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "MysqldExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetMysqldExporter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentResponseValidationError{ + field: "MysqldExporter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ChangeAgentResponse_MongodbExporter: + if v == nil { + err := ChangeAgentResponseValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetMongodbExporter()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "MongodbExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "MongodbExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetMongodbExporter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentResponseValidationError{ + field: "MongodbExporter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ChangeAgentResponse_PostgresExporter: + if v == nil { + err := ChangeAgentResponseValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetPostgresExporter()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "PostgresExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "PostgresExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPostgresExporter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentResponseValidationError{ + field: "PostgresExporter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ChangeAgentResponse_ProxysqlExporter: + if v == nil { + err := ChangeAgentResponseValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetProxysqlExporter()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "ProxysqlExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "ProxysqlExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetProxysqlExporter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentResponseValidationError{ + field: "ProxysqlExporter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ChangeAgentResponse_ExternalExporter: + if v == nil { + err := ChangeAgentResponseValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetExternalExporter()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "ExternalExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "ExternalExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetExternalExporter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentResponseValidationError{ + field: "ExternalExporter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ChangeAgentResponse_RdsExporter: + if v == nil { + err := ChangeAgentResponseValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetRdsExporter()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "RdsExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "RdsExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetRdsExporter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentResponseValidationError{ + field: "RdsExporter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ChangeAgentResponse_AzureDatabaseExporter: + if v == nil { + err := ChangeAgentResponseValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetAzureDatabaseExporter()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "AzureDatabaseExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "AzureDatabaseExporter", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetAzureDatabaseExporter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentResponseValidationError{ + field: "AzureDatabaseExporter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ChangeAgentResponse_QanMysqlPerfschemaAgent: + if v == nil { + err := ChangeAgentResponseValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetQanMysqlPerfschemaAgent()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "QanMysqlPerfschemaAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "QanMysqlPerfschemaAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetQanMysqlPerfschemaAgent()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentResponseValidationError{ + field: "QanMysqlPerfschemaAgent", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ChangeAgentResponse_QanMysqlSlowlogAgent: + if v == nil { + err := ChangeAgentResponseValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetQanMysqlSlowlogAgent()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "QanMysqlSlowlogAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "QanMysqlSlowlogAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetQanMysqlSlowlogAgent()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentResponseValidationError{ + field: "QanMysqlSlowlogAgent", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ChangeAgentResponse_QanMongodbProfilerAgent: + if v == nil { + err := ChangeAgentResponseValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetQanMongodbProfilerAgent()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "QanMongodbProfilerAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "QanMongodbProfilerAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetQanMongodbProfilerAgent()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentResponseValidationError{ + field: "QanMongodbProfilerAgent", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ChangeAgentResponse_QanPostgresqlPgstatementsAgent: + if v == nil { + err := ChangeAgentResponseValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetQanPostgresqlPgstatementsAgent()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "QanPostgresqlPgstatementsAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "QanPostgresqlPgstatementsAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetQanPostgresqlPgstatementsAgent()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentResponseValidationError{ + field: "QanPostgresqlPgstatementsAgent", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *ChangeAgentResponse_QanPostgresqlPgstatmonitorAgent: + if v == nil { + err := ChangeAgentResponseValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetQanPostgresqlPgstatmonitorAgent()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "QanPostgresqlPgstatmonitorAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "QanPostgresqlPgstatmonitorAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetQanPostgresqlPgstatmonitorAgent()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentResponseValidationError{ + field: "QanPostgresqlPgstatmonitorAgent", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + _ = v // ensures v is used + } + + if len(errors) > 0 { + return ChangeAgentResponseMultiError(errors) + } + + return nil +} + +// ChangeAgentResponseMultiError is an error wrapping multiple validation +// errors returned by ChangeAgentResponse.ValidateAll() if the designated +// constraints aren't met. +type ChangeAgentResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ChangeAgentResponseMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -5358,11 +6404,11 @@ func (m AddNodeExporterParamsMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m AddNodeExporterParamsMultiError) AllErrors() []error { return m } +func (m ChangeAgentResponseMultiError) AllErrors() []error { return m } -// AddNodeExporterParamsValidationError is the validation error returned by -// AddNodeExporterParams.Validate if the designated constraints aren't met. -type AddNodeExporterParamsValidationError struct { +// ChangeAgentResponseValidationError is the validation error returned by +// ChangeAgentResponse.Validate if the designated constraints aren't met. +type ChangeAgentResponseValidationError struct { field string reason string cause error @@ -5370,24 +6416,24 @@ type AddNodeExporterParamsValidationError struct { } // Field function returns field value. -func (e AddNodeExporterParamsValidationError) Field() string { return e.field } +func (e ChangeAgentResponseValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e AddNodeExporterParamsValidationError) Reason() string { return e.reason } +func (e ChangeAgentResponseValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e AddNodeExporterParamsValidationError) Cause() error { return e.cause } +func (e ChangeAgentResponseValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e AddNodeExporterParamsValidationError) Key() bool { return e.key } +func (e ChangeAgentResponseValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e AddNodeExporterParamsValidationError) ErrorName() string { - return "AddNodeExporterParamsValidationError" +func (e ChangeAgentResponseValidationError) ErrorName() string { + return "ChangeAgentResponseValidationError" } // Error satisfies the builtin error interface -func (e AddNodeExporterParamsValidationError) Error() string { +func (e ChangeAgentResponseValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -5399,14 +6445,14 @@ func (e AddNodeExporterParamsValidationError) Error() string { } return fmt.Sprintf( - "invalid %sAddNodeExporterParams.%s: %s%s", + "invalid %sChangeAgentResponse.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = AddNodeExporterParamsValidationError{} +var _ error = ChangeAgentResponseValidationError{} var _ interface { Field() string @@ -5414,33 +6460,33 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = AddNodeExporterParamsValidationError{} +} = ChangeAgentResponseValidationError{} -// Validate checks the field values on ChangeNodeExporterRequest with the rules -// defined in the proto definition for this message. If any rules are -// violated, the first error encountered is returned, or nil if there are no violations. -func (m *ChangeNodeExporterRequest) Validate() error { +// Validate checks the field values on AddPMMAgentParams with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *AddPMMAgentParams) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on ChangeNodeExporterRequest with the -// rules defined in the proto definition for this message. If any rules are +// ValidateAll checks the field values on AddPMMAgentParams with the rules +// defined in the proto definition for this message. If any rules are // violated, the result is a list of violation errors wrapped in -// ChangeNodeExporterRequestMultiError, or nil if none found. -func (m *ChangeNodeExporterRequest) ValidateAll() error { +// AddPMMAgentParamsMultiError, or nil if none found. +func (m *AddPMMAgentParams) ValidateAll() error { return m.validate(true) } -func (m *ChangeNodeExporterRequest) validate(all bool) error { +func (m *AddPMMAgentParams) validate(all bool) error { if m == nil { return nil } var errors []error - if utf8.RuneCountInString(m.GetAgentId()) < 1 { - err := ChangeNodeExporterRequestValidationError{ - field: "AgentId", + if utf8.RuneCountInString(m.GetRunsOnNodeId()) < 1 { + err := AddPMMAgentParamsValidationError{ + field: "RunsOnNodeId", reason: "value length must be at least 1 runes", } if !all { @@ -5449,49 +6495,143 @@ func (m *ChangeNodeExporterRequest) validate(all bool) error { errors = append(errors, err) } - if all { - switch v := interface{}(m.GetCommon()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangeNodeExporterRequestValidationError{ - field: "Common", - reason: "embedded message failed validation", - cause: err, - }) - } - case interface{ Validate() error }: - if err := v.Validate(); err != nil { - errors = append(errors, ChangeNodeExporterRequestValidationError{ - field: "Common", - reason: "embedded message failed validation", - cause: err, - }) - } + // no validation rules for CustomLabels + + if len(errors) > 0 { + return AddPMMAgentParamsMultiError(errors) + } + + return nil +} + +// AddPMMAgentParamsMultiError is an error wrapping multiple validation errors +// returned by AddPMMAgentParams.ValidateAll() if the designated constraints +// aren't met. +type AddPMMAgentParamsMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AddPMMAgentParamsMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AddPMMAgentParamsMultiError) AllErrors() []error { return m } + +// AddPMMAgentParamsValidationError is the validation error returned by +// AddPMMAgentParams.Validate if the designated constraints aren't met. +type AddPMMAgentParamsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AddPMMAgentParamsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AddPMMAgentParamsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AddPMMAgentParamsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AddPMMAgentParamsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AddPMMAgentParamsValidationError) ErrorName() string { + return "AddPMMAgentParamsValidationError" +} + +// Error satisfies the builtin error interface +func (e AddPMMAgentParamsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAddPMMAgentParams.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AddPMMAgentParamsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AddPMMAgentParamsValidationError{} + +// Validate checks the field values on AddNodeExporterParams with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AddNodeExporterParams) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AddNodeExporterParams with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AddNodeExporterParamsMultiError, or nil if none found. +func (m *AddNodeExporterParams) ValidateAll() error { + return m.validate(true) +} + +func (m *AddNodeExporterParams) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if utf8.RuneCountInString(m.GetPmmAgentId()) < 1 { + err := AddNodeExporterParamsValidationError{ + field: "PmmAgentId", + reason: "value length must be at least 1 runes", } - } else if v, ok := interface{}(m.GetCommon()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return ChangeNodeExporterRequestValidationError{ - field: "Common", - reason: "embedded message failed validation", - cause: err, - } + if !all { + return err } + errors = append(errors, err) } + // no validation rules for CustomLabels + + // no validation rules for PushMetrics + + // no validation rules for LogLevel + + // no validation rules for ExposeExporter + if len(errors) > 0 { - return ChangeNodeExporterRequestMultiError(errors) + return AddNodeExporterParamsMultiError(errors) } return nil } -// ChangeNodeExporterRequestMultiError is an error wrapping multiple validation -// errors returned by ChangeNodeExporterRequest.ValidateAll() if the -// designated constraints aren't met. -type ChangeNodeExporterRequestMultiError []error +// AddNodeExporterParamsMultiError is an error wrapping multiple validation +// errors returned by AddNodeExporterParams.ValidateAll() if the designated +// constraints aren't met. +type AddNodeExporterParamsMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m ChangeNodeExporterRequestMultiError) Error() string { +func (m AddNodeExporterParamsMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -5500,11 +6640,11 @@ func (m ChangeNodeExporterRequestMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m ChangeNodeExporterRequestMultiError) AllErrors() []error { return m } +func (m AddNodeExporterParamsMultiError) AllErrors() []error { return m } -// ChangeNodeExporterRequestValidationError is the validation error returned by -// ChangeNodeExporterRequest.Validate if the designated constraints aren't met. -type ChangeNodeExporterRequestValidationError struct { +// AddNodeExporterParamsValidationError is the validation error returned by +// AddNodeExporterParams.Validate if the designated constraints aren't met. +type AddNodeExporterParamsValidationError struct { field string reason string cause error @@ -5512,24 +6652,24 @@ type ChangeNodeExporterRequestValidationError struct { } // Field function returns field value. -func (e ChangeNodeExporterRequestValidationError) Field() string { return e.field } +func (e AddNodeExporterParamsValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e ChangeNodeExporterRequestValidationError) Reason() string { return e.reason } +func (e AddNodeExporterParamsValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e ChangeNodeExporterRequestValidationError) Cause() error { return e.cause } +func (e AddNodeExporterParamsValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e ChangeNodeExporterRequestValidationError) Key() bool { return e.key } +func (e AddNodeExporterParamsValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e ChangeNodeExporterRequestValidationError) ErrorName() string { - return "ChangeNodeExporterRequestValidationError" +func (e AddNodeExporterParamsValidationError) ErrorName() string { + return "AddNodeExporterParamsValidationError" } // Error satisfies the builtin error interface -func (e ChangeNodeExporterRequestValidationError) Error() string { +func (e AddNodeExporterParamsValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -5541,14 +6681,14 @@ func (e ChangeNodeExporterRequestValidationError) Error() string { } return fmt.Sprintf( - "invalid %sChangeNodeExporterRequest.%s: %s%s", + "invalid %sAddNodeExporterParams.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = ChangeNodeExporterRequestValidationError{} +var _ error = AddNodeExporterParamsValidationError{} var _ interface { Field() string @@ -5556,53 +6696,64 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = ChangeNodeExporterRequestValidationError{} +} = AddNodeExporterParamsValidationError{} -// Validate checks the field values on ChangeNodeExporterResponse with the -// rules defined in the proto definition for this message. If any rules are +// Validate checks the field values on ChangeNodeExporterParams with the rules +// defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. -func (m *ChangeNodeExporterResponse) Validate() error { +func (m *ChangeNodeExporterParams) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on ChangeNodeExporterResponse with the +// ValidateAll checks the field values on ChangeNodeExporterParams with the // rules defined in the proto definition for this message. If any rules are // violated, the result is a list of violation errors wrapped in -// ChangeNodeExporterResponseMultiError, or nil if none found. -func (m *ChangeNodeExporterResponse) ValidateAll() error { +// ChangeNodeExporterParamsMultiError, or nil if none found. +func (m *ChangeNodeExporterParams) ValidateAll() error { return m.validate(true) } -func (m *ChangeNodeExporterResponse) validate(all bool) error { +func (m *ChangeNodeExporterParams) validate(all bool) error { if m == nil { return nil } var errors []error + if utf8.RuneCountInString(m.GetAgentId()) < 1 { + err := ChangeNodeExporterParamsValidationError{ + field: "AgentId", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + if all { - switch v := interface{}(m.GetNodeExporter()).(type) { + switch v := interface{}(m.GetCommon()).(type) { case interface{ ValidateAll() error }: if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangeNodeExporterResponseValidationError{ - field: "NodeExporter", + errors = append(errors, ChangeNodeExporterParamsValidationError{ + field: "Common", reason: "embedded message failed validation", cause: err, }) } case interface{ Validate() error }: if err := v.Validate(); err != nil { - errors = append(errors, ChangeNodeExporterResponseValidationError{ - field: "NodeExporter", + errors = append(errors, ChangeNodeExporterParamsValidationError{ + field: "Common", reason: "embedded message failed validation", cause: err, }) } } - } else if v, ok := interface{}(m.GetNodeExporter()).(interface{ Validate() error }); ok { + } else if v, ok := interface{}(m.GetCommon()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { - return ChangeNodeExporterResponseValidationError{ - field: "NodeExporter", + return ChangeNodeExporterParamsValidationError{ + field: "Common", reason: "embedded message failed validation", cause: err, } @@ -5610,19 +6761,19 @@ func (m *ChangeNodeExporterResponse) validate(all bool) error { } if len(errors) > 0 { - return ChangeNodeExporterResponseMultiError(errors) + return ChangeNodeExporterParamsMultiError(errors) } return nil } -// ChangeNodeExporterResponseMultiError is an error wrapping multiple -// validation errors returned by ChangeNodeExporterResponse.ValidateAll() if -// the designated constraints aren't met. -type ChangeNodeExporterResponseMultiError []error +// ChangeNodeExporterParamsMultiError is an error wrapping multiple validation +// errors returned by ChangeNodeExporterParams.ValidateAll() if the designated +// constraints aren't met. +type ChangeNodeExporterParamsMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m ChangeNodeExporterResponseMultiError) Error() string { +func (m ChangeNodeExporterParamsMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -5631,11 +6782,11 @@ func (m ChangeNodeExporterResponseMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m ChangeNodeExporterResponseMultiError) AllErrors() []error { return m } +func (m ChangeNodeExporterParamsMultiError) AllErrors() []error { return m } -// ChangeNodeExporterResponseValidationError is the validation error returned -// by ChangeNodeExporterResponse.Validate if the designated constraints aren't met. -type ChangeNodeExporterResponseValidationError struct { +// ChangeNodeExporterParamsValidationError is the validation error returned by +// ChangeNodeExporterParams.Validate if the designated constraints aren't met. +type ChangeNodeExporterParamsValidationError struct { field string reason string cause error @@ -5643,24 +6794,24 @@ type ChangeNodeExporterResponseValidationError struct { } // Field function returns field value. -func (e ChangeNodeExporterResponseValidationError) Field() string { return e.field } +func (e ChangeNodeExporterParamsValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e ChangeNodeExporterResponseValidationError) Reason() string { return e.reason } +func (e ChangeNodeExporterParamsValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e ChangeNodeExporterResponseValidationError) Cause() error { return e.cause } +func (e ChangeNodeExporterParamsValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e ChangeNodeExporterResponseValidationError) Key() bool { return e.key } +func (e ChangeNodeExporterParamsValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e ChangeNodeExporterResponseValidationError) ErrorName() string { - return "ChangeNodeExporterResponseValidationError" +func (e ChangeNodeExporterParamsValidationError) ErrorName() string { + return "ChangeNodeExporterParamsValidationError" } // Error satisfies the builtin error interface -func (e ChangeNodeExporterResponseValidationError) Error() string { +func (e ChangeNodeExporterParamsValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -5672,14 +6823,14 @@ func (e ChangeNodeExporterResponseValidationError) Error() string { } return fmt.Sprintf( - "invalid %sChangeNodeExporterResponse.%s: %s%s", + "invalid %sChangeNodeExporterParams.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = ChangeNodeExporterResponseValidationError{} +var _ error = ChangeNodeExporterParamsValidationError{} var _ interface { Field() string @@ -5687,7 +6838,7 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = ChangeNodeExporterResponseValidationError{} +} = ChangeNodeExporterParamsValidationError{} // Validate checks the field values on AddMySQLdExporterParams with the rules // defined in the proto definition for this message. If any rules are @@ -5850,22 +7001,22 @@ var _ interface { ErrorName() string } = AddMySQLdExporterParamsValidationError{} -// Validate checks the field values on ChangeMySQLdExporterRequest with the +// Validate checks the field values on ChangeMySQLdExporterParams with the // rules defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. -func (m *ChangeMySQLdExporterRequest) Validate() error { +func (m *ChangeMySQLdExporterParams) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on ChangeMySQLdExporterRequest with the +// ValidateAll checks the field values on ChangeMySQLdExporterParams with the // rules defined in the proto definition for this message. If any rules are // violated, the result is a list of violation errors wrapped in -// ChangeMySQLdExporterRequestMultiError, or nil if none found. -func (m *ChangeMySQLdExporterRequest) ValidateAll() error { +// ChangeMySQLdExporterParamsMultiError, or nil if none found. +func (m *ChangeMySQLdExporterParams) ValidateAll() error { return m.validate(true) } -func (m *ChangeMySQLdExporterRequest) validate(all bool) error { +func (m *ChangeMySQLdExporterParams) validate(all bool) error { if m == nil { return nil } @@ -5873,7 +7024,7 @@ func (m *ChangeMySQLdExporterRequest) validate(all bool) error { var errors []error if utf8.RuneCountInString(m.GetAgentId()) < 1 { - err := ChangeMySQLdExporterRequestValidationError{ + err := ChangeMySQLdExporterParamsValidationError{ field: "AgentId", reason: "value length must be at least 1 runes", } @@ -5887,7 +7038,7 @@ func (m *ChangeMySQLdExporterRequest) validate(all bool) error { switch v := interface{}(m.GetCommon()).(type) { case interface{ ValidateAll() error }: if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangeMySQLdExporterRequestValidationError{ + errors = append(errors, ChangeMySQLdExporterParamsValidationError{ field: "Common", reason: "embedded message failed validation", cause: err, @@ -5895,7 +7046,7 @@ func (m *ChangeMySQLdExporterRequest) validate(all bool) error { } case interface{ Validate() error }: if err := v.Validate(); err != nil { - errors = append(errors, ChangeMySQLdExporterRequestValidationError{ + errors = append(errors, ChangeMySQLdExporterParamsValidationError{ field: "Common", reason: "embedded message failed validation", cause: err, @@ -5904,7 +7055,7 @@ func (m *ChangeMySQLdExporterRequest) validate(all bool) error { } } else if v, ok := interface{}(m.GetCommon()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { - return ChangeMySQLdExporterRequestValidationError{ + return ChangeMySQLdExporterParamsValidationError{ field: "Common", reason: "embedded message failed validation", cause: err, @@ -5913,151 +7064,19 @@ func (m *ChangeMySQLdExporterRequest) validate(all bool) error { } if len(errors) > 0 { - return ChangeMySQLdExporterRequestMultiError(errors) - } - - return nil -} - -// ChangeMySQLdExporterRequestMultiError is an error wrapping multiple -// validation errors returned by ChangeMySQLdExporterRequest.ValidateAll() if -// the designated constraints aren't met. -type ChangeMySQLdExporterRequestMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m ChangeMySQLdExporterRequestMultiError) Error() string { - var msgs []string - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m ChangeMySQLdExporterRequestMultiError) AllErrors() []error { return m } - -// ChangeMySQLdExporterRequestValidationError is the validation error returned -// by ChangeMySQLdExporterRequest.Validate if the designated constraints -// aren't met. -type ChangeMySQLdExporterRequestValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e ChangeMySQLdExporterRequestValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e ChangeMySQLdExporterRequestValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e ChangeMySQLdExporterRequestValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e ChangeMySQLdExporterRequestValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e ChangeMySQLdExporterRequestValidationError) ErrorName() string { - return "ChangeMySQLdExporterRequestValidationError" -} - -// Error satisfies the builtin error interface -func (e ChangeMySQLdExporterRequestValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sChangeMySQLdExporterRequest.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = ChangeMySQLdExporterRequestValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = ChangeMySQLdExporterRequestValidationError{} - -// Validate checks the field values on ChangeMySQLdExporterResponse with the -// rules defined in the proto definition for this message. If any rules are -// violated, the first error encountered is returned, or nil if there are no violations. -func (m *ChangeMySQLdExporterResponse) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on ChangeMySQLdExporterResponse with the -// rules defined in the proto definition for this message. If any rules are -// violated, the result is a list of violation errors wrapped in -// ChangeMySQLdExporterResponseMultiError, or nil if none found. -func (m *ChangeMySQLdExporterResponse) ValidateAll() error { - return m.validate(true) -} - -func (m *ChangeMySQLdExporterResponse) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error - - if all { - switch v := interface{}(m.GetMysqldExporter()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangeMySQLdExporterResponseValidationError{ - field: "MysqldExporter", - reason: "embedded message failed validation", - cause: err, - }) - } - case interface{ Validate() error }: - if err := v.Validate(); err != nil { - errors = append(errors, ChangeMySQLdExporterResponseValidationError{ - field: "MysqldExporter", - reason: "embedded message failed validation", - cause: err, - }) - } - } - } else if v, ok := interface{}(m.GetMysqldExporter()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return ChangeMySQLdExporterResponseValidationError{ - field: "MysqldExporter", - reason: "embedded message failed validation", - cause: err, - } - } - } - - if len(errors) > 0 { - return ChangeMySQLdExporterResponseMultiError(errors) + return ChangeMySQLdExporterParamsMultiError(errors) } return nil } -// ChangeMySQLdExporterResponseMultiError is an error wrapping multiple -// validation errors returned by ChangeMySQLdExporterResponse.ValidateAll() if +// ChangeMySQLdExporterParamsMultiError is an error wrapping multiple +// validation errors returned by ChangeMySQLdExporterParams.ValidateAll() if // the designated constraints aren't met. -type ChangeMySQLdExporterResponseMultiError []error +type ChangeMySQLdExporterParamsMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m ChangeMySQLdExporterResponseMultiError) Error() string { +func (m ChangeMySQLdExporterParamsMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -6066,12 +7085,11 @@ func (m ChangeMySQLdExporterResponseMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m ChangeMySQLdExporterResponseMultiError) AllErrors() []error { return m } +func (m ChangeMySQLdExporterParamsMultiError) AllErrors() []error { return m } -// ChangeMySQLdExporterResponseValidationError is the validation error returned -// by ChangeMySQLdExporterResponse.Validate if the designated constraints -// aren't met. -type ChangeMySQLdExporterResponseValidationError struct { +// ChangeMySQLdExporterParamsValidationError is the validation error returned +// by ChangeMySQLdExporterParams.Validate if the designated constraints aren't met. +type ChangeMySQLdExporterParamsValidationError struct { field string reason string cause error @@ -6079,24 +7097,24 @@ type ChangeMySQLdExporterResponseValidationError struct { } // Field function returns field value. -func (e ChangeMySQLdExporterResponseValidationError) Field() string { return e.field } +func (e ChangeMySQLdExporterParamsValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e ChangeMySQLdExporterResponseValidationError) Reason() string { return e.reason } +func (e ChangeMySQLdExporterParamsValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e ChangeMySQLdExporterResponseValidationError) Cause() error { return e.cause } +func (e ChangeMySQLdExporterParamsValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e ChangeMySQLdExporterResponseValidationError) Key() bool { return e.key } +func (e ChangeMySQLdExporterParamsValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e ChangeMySQLdExporterResponseValidationError) ErrorName() string { - return "ChangeMySQLdExporterResponseValidationError" +func (e ChangeMySQLdExporterParamsValidationError) ErrorName() string { + return "ChangeMySQLdExporterParamsValidationError" } // Error satisfies the builtin error interface -func (e ChangeMySQLdExporterResponseValidationError) Error() string { +func (e ChangeMySQLdExporterParamsValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -6108,14 +7126,14 @@ func (e ChangeMySQLdExporterResponseValidationError) Error() string { } return fmt.Sprintf( - "invalid %sChangeMySQLdExporterResponse.%s: %s%s", + "invalid %sChangeMySQLdExporterParams.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = ChangeMySQLdExporterResponseValidationError{} +var _ error = ChangeMySQLdExporterParamsValidationError{} var _ interface { Field() string @@ -6123,7 +7141,7 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = ChangeMySQLdExporterResponseValidationError{} +} = ChangeMySQLdExporterParamsValidationError{} // Validate checks the field values on AddMongoDBExporterParams with the rules // defined in the proto definition for this message. If any rules are @@ -6225,152 +7243,9 @@ func (m AddMongoDBExporterParamsMultiError) Error() string { // AllErrors returns a list of validation violation errors. func (m AddMongoDBExporterParamsMultiError) AllErrors() []error { return m } -// AddMongoDBExporterParamsValidationError is the validation error returned by -// AddMongoDBExporterParams.Validate if the designated constraints aren't met. -type AddMongoDBExporterParamsValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e AddMongoDBExporterParamsValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e AddMongoDBExporterParamsValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e AddMongoDBExporterParamsValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e AddMongoDBExporterParamsValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e AddMongoDBExporterParamsValidationError) ErrorName() string { - return "AddMongoDBExporterParamsValidationError" -} - -// Error satisfies the builtin error interface -func (e AddMongoDBExporterParamsValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sAddMongoDBExporterParams.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = AddMongoDBExporterParamsValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = AddMongoDBExporterParamsValidationError{} - -// Validate checks the field values on ChangeMongoDBExporterRequest with the -// rules defined in the proto definition for this message. If any rules are -// violated, the first error encountered is returned, or nil if there are no violations. -func (m *ChangeMongoDBExporterRequest) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on ChangeMongoDBExporterRequest with the -// rules defined in the proto definition for this message. If any rules are -// violated, the result is a list of violation errors wrapped in -// ChangeMongoDBExporterRequestMultiError, or nil if none found. -func (m *ChangeMongoDBExporterRequest) ValidateAll() error { - return m.validate(true) -} - -func (m *ChangeMongoDBExporterRequest) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error - - if utf8.RuneCountInString(m.GetAgentId()) < 1 { - err := ChangeMongoDBExporterRequestValidationError{ - field: "AgentId", - reason: "value length must be at least 1 runes", - } - if !all { - return err - } - errors = append(errors, err) - } - - if all { - switch v := interface{}(m.GetCommon()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangeMongoDBExporterRequestValidationError{ - field: "Common", - reason: "embedded message failed validation", - cause: err, - }) - } - case interface{ Validate() error }: - if err := v.Validate(); err != nil { - errors = append(errors, ChangeMongoDBExporterRequestValidationError{ - field: "Common", - reason: "embedded message failed validation", - cause: err, - }) - } - } - } else if v, ok := interface{}(m.GetCommon()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return ChangeMongoDBExporterRequestValidationError{ - field: "Common", - reason: "embedded message failed validation", - cause: err, - } - } - } - - if len(errors) > 0 { - return ChangeMongoDBExporterRequestMultiError(errors) - } - - return nil -} - -// ChangeMongoDBExporterRequestMultiError is an error wrapping multiple -// validation errors returned by ChangeMongoDBExporterRequest.ValidateAll() if -// the designated constraints aren't met. -type ChangeMongoDBExporterRequestMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m ChangeMongoDBExporterRequestMultiError) Error() string { - var msgs []string - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m ChangeMongoDBExporterRequestMultiError) AllErrors() []error { return m } - -// ChangeMongoDBExporterRequestValidationError is the validation error returned -// by ChangeMongoDBExporterRequest.Validate if the designated constraints -// aren't met. -type ChangeMongoDBExporterRequestValidationError struct { +// AddMongoDBExporterParamsValidationError is the validation error returned by +// AddMongoDBExporterParams.Validate if the designated constraints aren't met. +type AddMongoDBExporterParamsValidationError struct { field string reason string cause error @@ -6378,24 +7253,24 @@ type ChangeMongoDBExporterRequestValidationError struct { } // Field function returns field value. -func (e ChangeMongoDBExporterRequestValidationError) Field() string { return e.field } +func (e AddMongoDBExporterParamsValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e ChangeMongoDBExporterRequestValidationError) Reason() string { return e.reason } +func (e AddMongoDBExporterParamsValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e ChangeMongoDBExporterRequestValidationError) Cause() error { return e.cause } +func (e AddMongoDBExporterParamsValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e ChangeMongoDBExporterRequestValidationError) Key() bool { return e.key } +func (e AddMongoDBExporterParamsValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e ChangeMongoDBExporterRequestValidationError) ErrorName() string { - return "ChangeMongoDBExporterRequestValidationError" +func (e AddMongoDBExporterParamsValidationError) ErrorName() string { + return "AddMongoDBExporterParamsValidationError" } // Error satisfies the builtin error interface -func (e ChangeMongoDBExporterRequestValidationError) Error() string { +func (e AddMongoDBExporterParamsValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -6407,14 +7282,14 @@ func (e ChangeMongoDBExporterRequestValidationError) Error() string { } return fmt.Sprintf( - "invalid %sChangeMongoDBExporterRequest.%s: %s%s", + "invalid %sAddMongoDBExporterParams.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = ChangeMongoDBExporterRequestValidationError{} +var _ error = AddMongoDBExporterParamsValidationError{} var _ interface { Field() string @@ -6422,53 +7297,64 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = ChangeMongoDBExporterRequestValidationError{} +} = AddMongoDBExporterParamsValidationError{} -// Validate checks the field values on ChangeMongoDBExporterResponse with the +// Validate checks the field values on ChangeMongoDBExporterParams with the // rules defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. -func (m *ChangeMongoDBExporterResponse) Validate() error { +func (m *ChangeMongoDBExporterParams) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on ChangeMongoDBExporterResponse with -// the rules defined in the proto definition for this message. If any rules -// are violated, the result is a list of violation errors wrapped in -// ChangeMongoDBExporterResponseMultiError, or nil if none found. -func (m *ChangeMongoDBExporterResponse) ValidateAll() error { +// ValidateAll checks the field values on ChangeMongoDBExporterParams with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ChangeMongoDBExporterParamsMultiError, or nil if none found. +func (m *ChangeMongoDBExporterParams) ValidateAll() error { return m.validate(true) } -func (m *ChangeMongoDBExporterResponse) validate(all bool) error { +func (m *ChangeMongoDBExporterParams) validate(all bool) error { if m == nil { return nil } var errors []error + if utf8.RuneCountInString(m.GetAgentId()) < 1 { + err := ChangeMongoDBExporterParamsValidationError{ + field: "AgentId", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + if all { - switch v := interface{}(m.GetMongodbExporter()).(type) { + switch v := interface{}(m.GetCommon()).(type) { case interface{ ValidateAll() error }: if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangeMongoDBExporterResponseValidationError{ - field: "MongodbExporter", + errors = append(errors, ChangeMongoDBExporterParamsValidationError{ + field: "Common", reason: "embedded message failed validation", cause: err, }) } case interface{ Validate() error }: if err := v.Validate(); err != nil { - errors = append(errors, ChangeMongoDBExporterResponseValidationError{ - field: "MongodbExporter", + errors = append(errors, ChangeMongoDBExporterParamsValidationError{ + field: "Common", reason: "embedded message failed validation", cause: err, }) } } - } else if v, ok := interface{}(m.GetMongodbExporter()).(interface{ Validate() error }); ok { + } else if v, ok := interface{}(m.GetCommon()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { - return ChangeMongoDBExporterResponseValidationError{ - field: "MongodbExporter", + return ChangeMongoDBExporterParamsValidationError{ + field: "Common", reason: "embedded message failed validation", cause: err, } @@ -6476,19 +7362,19 @@ func (m *ChangeMongoDBExporterResponse) validate(all bool) error { } if len(errors) > 0 { - return ChangeMongoDBExporterResponseMultiError(errors) + return ChangeMongoDBExporterParamsMultiError(errors) } return nil } -// ChangeMongoDBExporterResponseMultiError is an error wrapping multiple -// validation errors returned by ChangeMongoDBExporterResponse.ValidateAll() -// if the designated constraints aren't met. -type ChangeMongoDBExporterResponseMultiError []error +// ChangeMongoDBExporterParamsMultiError is an error wrapping multiple +// validation errors returned by ChangeMongoDBExporterParams.ValidateAll() if +// the designated constraints aren't met. +type ChangeMongoDBExporterParamsMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m ChangeMongoDBExporterResponseMultiError) Error() string { +func (m ChangeMongoDBExporterParamsMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -6497,12 +7383,12 @@ func (m ChangeMongoDBExporterResponseMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m ChangeMongoDBExporterResponseMultiError) AllErrors() []error { return m } +func (m ChangeMongoDBExporterParamsMultiError) AllErrors() []error { return m } -// ChangeMongoDBExporterResponseValidationError is the validation error -// returned by ChangeMongoDBExporterResponse.Validate if the designated -// constraints aren't met. -type ChangeMongoDBExporterResponseValidationError struct { +// ChangeMongoDBExporterParamsValidationError is the validation error returned +// by ChangeMongoDBExporterParams.Validate if the designated constraints +// aren't met. +type ChangeMongoDBExporterParamsValidationError struct { field string reason string cause error @@ -6510,24 +7396,24 @@ type ChangeMongoDBExporterResponseValidationError struct { } // Field function returns field value. -func (e ChangeMongoDBExporterResponseValidationError) Field() string { return e.field } +func (e ChangeMongoDBExporterParamsValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e ChangeMongoDBExporterResponseValidationError) Reason() string { return e.reason } +func (e ChangeMongoDBExporterParamsValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e ChangeMongoDBExporterResponseValidationError) Cause() error { return e.cause } +func (e ChangeMongoDBExporterParamsValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e ChangeMongoDBExporterResponseValidationError) Key() bool { return e.key } +func (e ChangeMongoDBExporterParamsValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e ChangeMongoDBExporterResponseValidationError) ErrorName() string { - return "ChangeMongoDBExporterResponseValidationError" +func (e ChangeMongoDBExporterParamsValidationError) ErrorName() string { + return "ChangeMongoDBExporterParamsValidationError" } // Error satisfies the builtin error interface -func (e ChangeMongoDBExporterResponseValidationError) Error() string { +func (e ChangeMongoDBExporterParamsValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -6539,14 +7425,14 @@ func (e ChangeMongoDBExporterResponseValidationError) Error() string { } return fmt.Sprintf( - "invalid %sChangeMongoDBExporterResponse.%s: %s%s", + "invalid %sChangeMongoDBExporterParams.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = ChangeMongoDBExporterResponseValidationError{} +var _ error = ChangeMongoDBExporterParamsValidationError{} var _ interface { Field() string @@ -6554,7 +7440,7 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = ChangeMongoDBExporterResponseValidationError{} +} = ChangeMongoDBExporterParamsValidationError{} // Validate checks the field values on AddPostgresExporterParams with the rules // defined in the proto definition for this message. If any rules are @@ -6717,22 +7603,22 @@ var _ interface { ErrorName() string } = AddPostgresExporterParamsValidationError{} -// Validate checks the field values on ChangePostgresExporterRequest with the +// Validate checks the field values on ChangePostgresExporterParams with the // rules defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. -func (m *ChangePostgresExporterRequest) Validate() error { +func (m *ChangePostgresExporterParams) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on ChangePostgresExporterRequest with -// the rules defined in the proto definition for this message. If any rules -// are violated, the result is a list of violation errors wrapped in -// ChangePostgresExporterRequestMultiError, or nil if none found. -func (m *ChangePostgresExporterRequest) ValidateAll() error { +// ValidateAll checks the field values on ChangePostgresExporterParams with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ChangePostgresExporterParamsMultiError, or nil if none found. +func (m *ChangePostgresExporterParams) ValidateAll() error { return m.validate(true) } -func (m *ChangePostgresExporterRequest) validate(all bool) error { +func (m *ChangePostgresExporterParams) validate(all bool) error { if m == nil { return nil } @@ -6740,7 +7626,7 @@ func (m *ChangePostgresExporterRequest) validate(all bool) error { var errors []error if utf8.RuneCountInString(m.GetAgentId()) < 1 { - err := ChangePostgresExporterRequestValidationError{ + err := ChangePostgresExporterParamsValidationError{ field: "AgentId", reason: "value length must be at least 1 runes", } @@ -6754,7 +7640,7 @@ func (m *ChangePostgresExporterRequest) validate(all bool) error { switch v := interface{}(m.GetCommon()).(type) { case interface{ ValidateAll() error }: if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangePostgresExporterRequestValidationError{ + errors = append(errors, ChangePostgresExporterParamsValidationError{ field: "Common", reason: "embedded message failed validation", cause: err, @@ -6762,7 +7648,7 @@ func (m *ChangePostgresExporterRequest) validate(all bool) error { } case interface{ Validate() error }: if err := v.Validate(); err != nil { - errors = append(errors, ChangePostgresExporterRequestValidationError{ + errors = append(errors, ChangePostgresExporterParamsValidationError{ field: "Common", reason: "embedded message failed validation", cause: err, @@ -6771,7 +7657,7 @@ func (m *ChangePostgresExporterRequest) validate(all bool) error { } } else if v, ok := interface{}(m.GetCommon()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { - return ChangePostgresExporterRequestValidationError{ + return ChangePostgresExporterParamsValidationError{ field: "Common", reason: "embedded message failed validation", cause: err, @@ -6780,151 +7666,19 @@ func (m *ChangePostgresExporterRequest) validate(all bool) error { } if len(errors) > 0 { - return ChangePostgresExporterRequestMultiError(errors) - } - - return nil -} - -// ChangePostgresExporterRequestMultiError is an error wrapping multiple -// validation errors returned by ChangePostgresExporterRequest.ValidateAll() -// if the designated constraints aren't met. -type ChangePostgresExporterRequestMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m ChangePostgresExporterRequestMultiError) Error() string { - var msgs []string - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m ChangePostgresExporterRequestMultiError) AllErrors() []error { return m } - -// ChangePostgresExporterRequestValidationError is the validation error -// returned by ChangePostgresExporterRequest.Validate if the designated -// constraints aren't met. -type ChangePostgresExporterRequestValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e ChangePostgresExporterRequestValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e ChangePostgresExporterRequestValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e ChangePostgresExporterRequestValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e ChangePostgresExporterRequestValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e ChangePostgresExporterRequestValidationError) ErrorName() string { - return "ChangePostgresExporterRequestValidationError" -} - -// Error satisfies the builtin error interface -func (e ChangePostgresExporterRequestValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sChangePostgresExporterRequest.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = ChangePostgresExporterRequestValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = ChangePostgresExporterRequestValidationError{} - -// Validate checks the field values on ChangePostgresExporterResponse with the -// rules defined in the proto definition for this message. If any rules are -// violated, the first error encountered is returned, or nil if there are no violations. -func (m *ChangePostgresExporterResponse) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on ChangePostgresExporterResponse with -// the rules defined in the proto definition for this message. If any rules -// are violated, the result is a list of violation errors wrapped in -// ChangePostgresExporterResponseMultiError, or nil if none found. -func (m *ChangePostgresExporterResponse) ValidateAll() error { - return m.validate(true) -} - -func (m *ChangePostgresExporterResponse) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error - - if all { - switch v := interface{}(m.GetPostgresExporter()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangePostgresExporterResponseValidationError{ - field: "PostgresExporter", - reason: "embedded message failed validation", - cause: err, - }) - } - case interface{ Validate() error }: - if err := v.Validate(); err != nil { - errors = append(errors, ChangePostgresExporterResponseValidationError{ - field: "PostgresExporter", - reason: "embedded message failed validation", - cause: err, - }) - } - } - } else if v, ok := interface{}(m.GetPostgresExporter()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return ChangePostgresExporterResponseValidationError{ - field: "PostgresExporter", - reason: "embedded message failed validation", - cause: err, - } - } - } - - if len(errors) > 0 { - return ChangePostgresExporterResponseMultiError(errors) + return ChangePostgresExporterParamsMultiError(errors) } return nil } -// ChangePostgresExporterResponseMultiError is an error wrapping multiple -// validation errors returned by ChangePostgresExporterResponse.ValidateAll() -// if the designated constraints aren't met. -type ChangePostgresExporterResponseMultiError []error +// ChangePostgresExporterParamsMultiError is an error wrapping multiple +// validation errors returned by ChangePostgresExporterParams.ValidateAll() if +// the designated constraints aren't met. +type ChangePostgresExporterParamsMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m ChangePostgresExporterResponseMultiError) Error() string { +func (m ChangePostgresExporterParamsMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -6933,12 +7687,12 @@ func (m ChangePostgresExporterResponseMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m ChangePostgresExporterResponseMultiError) AllErrors() []error { return m } +func (m ChangePostgresExporterParamsMultiError) AllErrors() []error { return m } -// ChangePostgresExporterResponseValidationError is the validation error -// returned by ChangePostgresExporterResponse.Validate if the designated -// constraints aren't met. -type ChangePostgresExporterResponseValidationError struct { +// ChangePostgresExporterParamsValidationError is the validation error returned +// by ChangePostgresExporterParams.Validate if the designated constraints +// aren't met. +type ChangePostgresExporterParamsValidationError struct { field string reason string cause error @@ -6946,24 +7700,24 @@ type ChangePostgresExporterResponseValidationError struct { } // Field function returns field value. -func (e ChangePostgresExporterResponseValidationError) Field() string { return e.field } +func (e ChangePostgresExporterParamsValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e ChangePostgresExporterResponseValidationError) Reason() string { return e.reason } +func (e ChangePostgresExporterParamsValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e ChangePostgresExporterResponseValidationError) Cause() error { return e.cause } +func (e ChangePostgresExporterParamsValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e ChangePostgresExporterResponseValidationError) Key() bool { return e.key } +func (e ChangePostgresExporterParamsValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e ChangePostgresExporterResponseValidationError) ErrorName() string { - return "ChangePostgresExporterResponseValidationError" +func (e ChangePostgresExporterParamsValidationError) ErrorName() string { + return "ChangePostgresExporterParamsValidationError" } // Error satisfies the builtin error interface -func (e ChangePostgresExporterResponseValidationError) Error() string { +func (e ChangePostgresExporterParamsValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -6975,14 +7729,14 @@ func (e ChangePostgresExporterResponseValidationError) Error() string { } return fmt.Sprintf( - "invalid %sChangePostgresExporterResponse.%s: %s%s", + "invalid %sChangePostgresExporterParams.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = ChangePostgresExporterResponseValidationError{} +var _ error = ChangePostgresExporterParamsValidationError{} var _ interface { Field() string @@ -6990,7 +7744,7 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = ChangePostgresExporterResponseValidationError{} +} = ChangePostgresExporterParamsValidationError{} // Validate checks the field values on AddProxySQLExporterParams with the rules // defined in the proto definition for this message. If any rules are @@ -7145,22 +7899,22 @@ var _ interface { ErrorName() string } = AddProxySQLExporterParamsValidationError{} -// Validate checks the field values on ChangeProxySQLExporterRequest with the +// Validate checks the field values on ChangeProxySQLExporterParams with the // rules defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. -func (m *ChangeProxySQLExporterRequest) Validate() error { +func (m *ChangeProxySQLExporterParams) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on ChangeProxySQLExporterRequest with -// the rules defined in the proto definition for this message. If any rules -// are violated, the result is a list of violation errors wrapped in -// ChangeProxySQLExporterRequestMultiError, or nil if none found. -func (m *ChangeProxySQLExporterRequest) ValidateAll() error { +// ValidateAll checks the field values on ChangeProxySQLExporterParams with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ChangeProxySQLExporterParamsMultiError, or nil if none found. +func (m *ChangeProxySQLExporterParams) ValidateAll() error { return m.validate(true) } -func (m *ChangeProxySQLExporterRequest) validate(all bool) error { +func (m *ChangeProxySQLExporterParams) validate(all bool) error { if m == nil { return nil } @@ -7168,7 +7922,7 @@ func (m *ChangeProxySQLExporterRequest) validate(all bool) error { var errors []error if utf8.RuneCountInString(m.GetAgentId()) < 1 { - err := ChangeProxySQLExporterRequestValidationError{ + err := ChangeProxySQLExporterParamsValidationError{ field: "AgentId", reason: "value length must be at least 1 runes", } @@ -7176,163 +7930,31 @@ func (m *ChangeProxySQLExporterRequest) validate(all bool) error { return err } errors = append(errors, err) - } - - if all { - switch v := interface{}(m.GetCommon()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangeProxySQLExporterRequestValidationError{ - field: "Common", - reason: "embedded message failed validation", - cause: err, - }) - } - case interface{ Validate() error }: - if err := v.Validate(); err != nil { - errors = append(errors, ChangeProxySQLExporterRequestValidationError{ - field: "Common", - reason: "embedded message failed validation", - cause: err, - }) - } - } - } else if v, ok := interface{}(m.GetCommon()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return ChangeProxySQLExporterRequestValidationError{ - field: "Common", - reason: "embedded message failed validation", - cause: err, - } - } - } - - if len(errors) > 0 { - return ChangeProxySQLExporterRequestMultiError(errors) - } - - return nil -} - -// ChangeProxySQLExporterRequestMultiError is an error wrapping multiple -// validation errors returned by ChangeProxySQLExporterRequest.ValidateAll() -// if the designated constraints aren't met. -type ChangeProxySQLExporterRequestMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m ChangeProxySQLExporterRequestMultiError) Error() string { - var msgs []string - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m ChangeProxySQLExporterRequestMultiError) AllErrors() []error { return m } - -// ChangeProxySQLExporterRequestValidationError is the validation error -// returned by ChangeProxySQLExporterRequest.Validate if the designated -// constraints aren't met. -type ChangeProxySQLExporterRequestValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e ChangeProxySQLExporterRequestValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e ChangeProxySQLExporterRequestValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e ChangeProxySQLExporterRequestValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e ChangeProxySQLExporterRequestValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e ChangeProxySQLExporterRequestValidationError) ErrorName() string { - return "ChangeProxySQLExporterRequestValidationError" -} - -// Error satisfies the builtin error interface -func (e ChangeProxySQLExporterRequestValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sChangeProxySQLExporterRequest.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = ChangeProxySQLExporterRequestValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = ChangeProxySQLExporterRequestValidationError{} - -// Validate checks the field values on ChangeProxySQLExporterResponse with the -// rules defined in the proto definition for this message. If any rules are -// violated, the first error encountered is returned, or nil if there are no violations. -func (m *ChangeProxySQLExporterResponse) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on ChangeProxySQLExporterResponse with -// the rules defined in the proto definition for this message. If any rules -// are violated, the result is a list of violation errors wrapped in -// ChangeProxySQLExporterResponseMultiError, or nil if none found. -func (m *ChangeProxySQLExporterResponse) ValidateAll() error { - return m.validate(true) -} - -func (m *ChangeProxySQLExporterResponse) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error + } if all { - switch v := interface{}(m.GetProxysqlExporter()).(type) { + switch v := interface{}(m.GetCommon()).(type) { case interface{ ValidateAll() error }: if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangeProxySQLExporterResponseValidationError{ - field: "ProxysqlExporter", + errors = append(errors, ChangeProxySQLExporterParamsValidationError{ + field: "Common", reason: "embedded message failed validation", cause: err, }) } case interface{ Validate() error }: if err := v.Validate(); err != nil { - errors = append(errors, ChangeProxySQLExporterResponseValidationError{ - field: "ProxysqlExporter", + errors = append(errors, ChangeProxySQLExporterParamsValidationError{ + field: "Common", reason: "embedded message failed validation", cause: err, }) } } - } else if v, ok := interface{}(m.GetProxysqlExporter()).(interface{ Validate() error }); ok { + } else if v, ok := interface{}(m.GetCommon()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { - return ChangeProxySQLExporterResponseValidationError{ - field: "ProxysqlExporter", + return ChangeProxySQLExporterParamsValidationError{ + field: "Common", reason: "embedded message failed validation", cause: err, } @@ -7340,19 +7962,19 @@ func (m *ChangeProxySQLExporterResponse) validate(all bool) error { } if len(errors) > 0 { - return ChangeProxySQLExporterResponseMultiError(errors) + return ChangeProxySQLExporterParamsMultiError(errors) } return nil } -// ChangeProxySQLExporterResponseMultiError is an error wrapping multiple -// validation errors returned by ChangeProxySQLExporterResponse.ValidateAll() -// if the designated constraints aren't met. -type ChangeProxySQLExporterResponseMultiError []error +// ChangeProxySQLExporterParamsMultiError is an error wrapping multiple +// validation errors returned by ChangeProxySQLExporterParams.ValidateAll() if +// the designated constraints aren't met. +type ChangeProxySQLExporterParamsMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m ChangeProxySQLExporterResponseMultiError) Error() string { +func (m ChangeProxySQLExporterParamsMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -7361,12 +7983,12 @@ func (m ChangeProxySQLExporterResponseMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m ChangeProxySQLExporterResponseMultiError) AllErrors() []error { return m } +func (m ChangeProxySQLExporterParamsMultiError) AllErrors() []error { return m } -// ChangeProxySQLExporterResponseValidationError is the validation error -// returned by ChangeProxySQLExporterResponse.Validate if the designated -// constraints aren't met. -type ChangeProxySQLExporterResponseValidationError struct { +// ChangeProxySQLExporterParamsValidationError is the validation error returned +// by ChangeProxySQLExporterParams.Validate if the designated constraints +// aren't met. +type ChangeProxySQLExporterParamsValidationError struct { field string reason string cause error @@ -7374,24 +7996,24 @@ type ChangeProxySQLExporterResponseValidationError struct { } // Field function returns field value. -func (e ChangeProxySQLExporterResponseValidationError) Field() string { return e.field } +func (e ChangeProxySQLExporterParamsValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e ChangeProxySQLExporterResponseValidationError) Reason() string { return e.reason } +func (e ChangeProxySQLExporterParamsValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e ChangeProxySQLExporterResponseValidationError) Cause() error { return e.cause } +func (e ChangeProxySQLExporterParamsValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e ChangeProxySQLExporterResponseValidationError) Key() bool { return e.key } +func (e ChangeProxySQLExporterParamsValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e ChangeProxySQLExporterResponseValidationError) ErrorName() string { - return "ChangeProxySQLExporterResponseValidationError" +func (e ChangeProxySQLExporterParamsValidationError) ErrorName() string { + return "ChangeProxySQLExporterParamsValidationError" } // Error satisfies the builtin error interface -func (e ChangeProxySQLExporterResponseValidationError) Error() string { +func (e ChangeProxySQLExporterParamsValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -7403,14 +8025,14 @@ func (e ChangeProxySQLExporterResponseValidationError) Error() string { } return fmt.Sprintf( - "invalid %sChangeProxySQLExporterResponse.%s: %s%s", + "invalid %sChangeProxySQLExporterParams.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = ChangeProxySQLExporterResponseValidationError{} +var _ error = ChangeProxySQLExporterParamsValidationError{} var _ interface { Field() string @@ -7418,7 +8040,7 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = ChangeProxySQLExporterResponseValidationError{} +} = ChangeProxySQLExporterParamsValidationError{} // Validate checks the field values on AddQANMySQLPerfSchemaAgentParams with // the rules defined in the proto definition for this message. If any rules @@ -7582,23 +8204,23 @@ var _ interface { ErrorName() string } = AddQANMySQLPerfSchemaAgentParamsValidationError{} -// Validate checks the field values on ChangeQANMySQLPerfSchemaAgentRequest -// with the rules defined in the proto definition for this message. If any -// rules are violated, the first error encountered is returned, or nil if -// there are no violations. -func (m *ChangeQANMySQLPerfSchemaAgentRequest) Validate() error { +// Validate checks the field values on ChangeQANMySQLPerfSchemaAgentParams with +// the rules defined in the proto definition for this message. If any rules +// are violated, the first error encountered is returned, or nil if there are +// no violations. +func (m *ChangeQANMySQLPerfSchemaAgentParams) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on ChangeQANMySQLPerfSchemaAgentRequest +// ValidateAll checks the field values on ChangeQANMySQLPerfSchemaAgentParams // with the rules defined in the proto definition for this message. If any // rules are violated, the result is a list of violation errors wrapped in -// ChangeQANMySQLPerfSchemaAgentRequestMultiError, or nil if none found. -func (m *ChangeQANMySQLPerfSchemaAgentRequest) ValidateAll() error { +// ChangeQANMySQLPerfSchemaAgentParamsMultiError, or nil if none found. +func (m *ChangeQANMySQLPerfSchemaAgentParams) ValidateAll() error { return m.validate(true) } -func (m *ChangeQANMySQLPerfSchemaAgentRequest) validate(all bool) error { +func (m *ChangeQANMySQLPerfSchemaAgentParams) validate(all bool) error { if m == nil { return nil } @@ -7606,7 +8228,7 @@ func (m *ChangeQANMySQLPerfSchemaAgentRequest) validate(all bool) error { var errors []error if utf8.RuneCountInString(m.GetAgentId()) < 1 { - err := ChangeQANMySQLPerfSchemaAgentRequestValidationError{ + err := ChangeQANMySQLPerfSchemaAgentParamsValidationError{ field: "AgentId", reason: "value length must be at least 1 runes", } @@ -7620,7 +8242,7 @@ func (m *ChangeQANMySQLPerfSchemaAgentRequest) validate(all bool) error { switch v := interface{}(m.GetCommon()).(type) { case interface{ ValidateAll() error }: if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangeQANMySQLPerfSchemaAgentRequestValidationError{ + errors = append(errors, ChangeQANMySQLPerfSchemaAgentParamsValidationError{ field: "Common", reason: "embedded message failed validation", cause: err, @@ -7628,7 +8250,7 @@ func (m *ChangeQANMySQLPerfSchemaAgentRequest) validate(all bool) error { } case interface{ Validate() error }: if err := v.Validate(); err != nil { - errors = append(errors, ChangeQANMySQLPerfSchemaAgentRequestValidationError{ + errors = append(errors, ChangeQANMySQLPerfSchemaAgentParamsValidationError{ field: "Common", reason: "embedded message failed validation", cause: err, @@ -7637,7 +8259,7 @@ func (m *ChangeQANMySQLPerfSchemaAgentRequest) validate(all bool) error { } } else if v, ok := interface{}(m.GetCommon()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { - return ChangeQANMySQLPerfSchemaAgentRequestValidationError{ + return ChangeQANMySQLPerfSchemaAgentParamsValidationError{ field: "Common", reason: "embedded message failed validation", cause: err, @@ -7646,20 +8268,20 @@ func (m *ChangeQANMySQLPerfSchemaAgentRequest) validate(all bool) error { } if len(errors) > 0 { - return ChangeQANMySQLPerfSchemaAgentRequestMultiError(errors) + return ChangeQANMySQLPerfSchemaAgentParamsMultiError(errors) } return nil } -// ChangeQANMySQLPerfSchemaAgentRequestMultiError is an error wrapping multiple +// ChangeQANMySQLPerfSchemaAgentParamsMultiError is an error wrapping multiple // validation errors returned by -// ChangeQANMySQLPerfSchemaAgentRequest.ValidateAll() if the designated +// ChangeQANMySQLPerfSchemaAgentParams.ValidateAll() if the designated // constraints aren't met. -type ChangeQANMySQLPerfSchemaAgentRequestMultiError []error +type ChangeQANMySQLPerfSchemaAgentParamsMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m ChangeQANMySQLPerfSchemaAgentRequestMultiError) Error() string { +func (m ChangeQANMySQLPerfSchemaAgentParamsMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -7668,146 +8290,12 @@ func (m ChangeQANMySQLPerfSchemaAgentRequestMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m ChangeQANMySQLPerfSchemaAgentRequestMultiError) AllErrors() []error { return m } - -// ChangeQANMySQLPerfSchemaAgentRequestValidationError is the validation error -// returned by ChangeQANMySQLPerfSchemaAgentRequest.Validate if the designated -// constraints aren't met. -type ChangeQANMySQLPerfSchemaAgentRequestValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e ChangeQANMySQLPerfSchemaAgentRequestValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e ChangeQANMySQLPerfSchemaAgentRequestValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e ChangeQANMySQLPerfSchemaAgentRequestValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e ChangeQANMySQLPerfSchemaAgentRequestValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e ChangeQANMySQLPerfSchemaAgentRequestValidationError) ErrorName() string { - return "ChangeQANMySQLPerfSchemaAgentRequestValidationError" -} - -// Error satisfies the builtin error interface -func (e ChangeQANMySQLPerfSchemaAgentRequestValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sChangeQANMySQLPerfSchemaAgentRequest.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = ChangeQANMySQLPerfSchemaAgentRequestValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = ChangeQANMySQLPerfSchemaAgentRequestValidationError{} - -// Validate checks the field values on ChangeQANMySQLPerfSchemaAgentResponse -// with the rules defined in the proto definition for this message. If any -// rules are violated, the first error encountered is returned, or nil if -// there are no violations. -func (m *ChangeQANMySQLPerfSchemaAgentResponse) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on ChangeQANMySQLPerfSchemaAgentResponse -// with the rules defined in the proto definition for this message. If any -// rules are violated, the result is a list of violation errors wrapped in -// ChangeQANMySQLPerfSchemaAgentResponseMultiError, or nil if none found. -func (m *ChangeQANMySQLPerfSchemaAgentResponse) ValidateAll() error { - return m.validate(true) -} - -func (m *ChangeQANMySQLPerfSchemaAgentResponse) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error - - if all { - switch v := interface{}(m.GetQanMysqlPerfschemaAgent()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangeQANMySQLPerfSchemaAgentResponseValidationError{ - field: "QanMysqlPerfschemaAgent", - reason: "embedded message failed validation", - cause: err, - }) - } - case interface{ Validate() error }: - if err := v.Validate(); err != nil { - errors = append(errors, ChangeQANMySQLPerfSchemaAgentResponseValidationError{ - field: "QanMysqlPerfschemaAgent", - reason: "embedded message failed validation", - cause: err, - }) - } - } - } else if v, ok := interface{}(m.GetQanMysqlPerfschemaAgent()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return ChangeQANMySQLPerfSchemaAgentResponseValidationError{ - field: "QanMysqlPerfschemaAgent", - reason: "embedded message failed validation", - cause: err, - } - } - } - - if len(errors) > 0 { - return ChangeQANMySQLPerfSchemaAgentResponseMultiError(errors) - } - - return nil -} +func (m ChangeQANMySQLPerfSchemaAgentParamsMultiError) AllErrors() []error { return m } -// ChangeQANMySQLPerfSchemaAgentResponseMultiError is an error wrapping -// multiple validation errors returned by -// ChangeQANMySQLPerfSchemaAgentResponse.ValidateAll() if the designated +// ChangeQANMySQLPerfSchemaAgentParamsValidationError is the validation error +// returned by ChangeQANMySQLPerfSchemaAgentParams.Validate if the designated // constraints aren't met. -type ChangeQANMySQLPerfSchemaAgentResponseMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m ChangeQANMySQLPerfSchemaAgentResponseMultiError) Error() string { - var msgs []string - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m ChangeQANMySQLPerfSchemaAgentResponseMultiError) AllErrors() []error { return m } - -// ChangeQANMySQLPerfSchemaAgentResponseValidationError is the validation error -// returned by ChangeQANMySQLPerfSchemaAgentResponse.Validate if the -// designated constraints aren't met. -type ChangeQANMySQLPerfSchemaAgentResponseValidationError struct { +type ChangeQANMySQLPerfSchemaAgentParamsValidationError struct { field string reason string cause error @@ -7815,24 +8303,24 @@ type ChangeQANMySQLPerfSchemaAgentResponseValidationError struct { } // Field function returns field value. -func (e ChangeQANMySQLPerfSchemaAgentResponseValidationError) Field() string { return e.field } +func (e ChangeQANMySQLPerfSchemaAgentParamsValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e ChangeQANMySQLPerfSchemaAgentResponseValidationError) Reason() string { return e.reason } +func (e ChangeQANMySQLPerfSchemaAgentParamsValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e ChangeQANMySQLPerfSchemaAgentResponseValidationError) Cause() error { return e.cause } +func (e ChangeQANMySQLPerfSchemaAgentParamsValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e ChangeQANMySQLPerfSchemaAgentResponseValidationError) Key() bool { return e.key } +func (e ChangeQANMySQLPerfSchemaAgentParamsValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e ChangeQANMySQLPerfSchemaAgentResponseValidationError) ErrorName() string { - return "ChangeQANMySQLPerfSchemaAgentResponseValidationError" +func (e ChangeQANMySQLPerfSchemaAgentParamsValidationError) ErrorName() string { + return "ChangeQANMySQLPerfSchemaAgentParamsValidationError" } // Error satisfies the builtin error interface -func (e ChangeQANMySQLPerfSchemaAgentResponseValidationError) Error() string { +func (e ChangeQANMySQLPerfSchemaAgentParamsValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -7844,14 +8332,14 @@ func (e ChangeQANMySQLPerfSchemaAgentResponseValidationError) Error() string { } return fmt.Sprintf( - "invalid %sChangeQANMySQLPerfSchemaAgentResponse.%s: %s%s", + "invalid %sChangeQANMySQLPerfSchemaAgentParams.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = ChangeQANMySQLPerfSchemaAgentResponseValidationError{} +var _ error = ChangeQANMySQLPerfSchemaAgentParamsValidationError{} var _ interface { Field() string @@ -7859,7 +8347,7 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = ChangeQANMySQLPerfSchemaAgentResponseValidationError{} +} = ChangeQANMySQLPerfSchemaAgentParamsValidationError{} // Validate checks the field values on AddQANMySQLSlowlogAgentParams with the // rules defined in the proto definition for this message. If any rules are @@ -7949,158 +8437,13 @@ func (m *AddQANMySQLSlowlogAgentParams) validate(all bool) error { return nil } -// AddQANMySQLSlowlogAgentParamsMultiError is an error wrapping multiple -// validation errors returned by AddQANMySQLSlowlogAgentParams.ValidateAll() -// if the designated constraints aren't met. -type AddQANMySQLSlowlogAgentParamsMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m AddQANMySQLSlowlogAgentParamsMultiError) Error() string { - var msgs []string - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m AddQANMySQLSlowlogAgentParamsMultiError) AllErrors() []error { return m } - -// AddQANMySQLSlowlogAgentParamsValidationError is the validation error -// returned by AddQANMySQLSlowlogAgentParams.Validate if the designated -// constraints aren't met. -type AddQANMySQLSlowlogAgentParamsValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e AddQANMySQLSlowlogAgentParamsValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e AddQANMySQLSlowlogAgentParamsValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e AddQANMySQLSlowlogAgentParamsValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e AddQANMySQLSlowlogAgentParamsValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e AddQANMySQLSlowlogAgentParamsValidationError) ErrorName() string { - return "AddQANMySQLSlowlogAgentParamsValidationError" -} - -// Error satisfies the builtin error interface -func (e AddQANMySQLSlowlogAgentParamsValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sAddQANMySQLSlowlogAgentParams.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = AddQANMySQLSlowlogAgentParamsValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = AddQANMySQLSlowlogAgentParamsValidationError{} - -// Validate checks the field values on ChangeQANMySQLSlowlogAgentRequest with -// the rules defined in the proto definition for this message. If any rules -// are violated, the first error encountered is returned, or nil if there are -// no violations. -func (m *ChangeQANMySQLSlowlogAgentRequest) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on ChangeQANMySQLSlowlogAgentRequest -// with the rules defined in the proto definition for this message. If any -// rules are violated, the result is a list of violation errors wrapped in -// ChangeQANMySQLSlowlogAgentRequestMultiError, or nil if none found. -func (m *ChangeQANMySQLSlowlogAgentRequest) ValidateAll() error { - return m.validate(true) -} - -func (m *ChangeQANMySQLSlowlogAgentRequest) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error - - if utf8.RuneCountInString(m.GetAgentId()) < 1 { - err := ChangeQANMySQLSlowlogAgentRequestValidationError{ - field: "AgentId", - reason: "value length must be at least 1 runes", - } - if !all { - return err - } - errors = append(errors, err) - } - - if all { - switch v := interface{}(m.GetCommon()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangeQANMySQLSlowlogAgentRequestValidationError{ - field: "Common", - reason: "embedded message failed validation", - cause: err, - }) - } - case interface{ Validate() error }: - if err := v.Validate(); err != nil { - errors = append(errors, ChangeQANMySQLSlowlogAgentRequestValidationError{ - field: "Common", - reason: "embedded message failed validation", - cause: err, - }) - } - } - } else if v, ok := interface{}(m.GetCommon()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return ChangeQANMySQLSlowlogAgentRequestValidationError{ - field: "Common", - reason: "embedded message failed validation", - cause: err, - } - } - } - - if len(errors) > 0 { - return ChangeQANMySQLSlowlogAgentRequestMultiError(errors) - } - - return nil -} - -// ChangeQANMySQLSlowlogAgentRequestMultiError is an error wrapping multiple -// validation errors returned by -// ChangeQANMySQLSlowlogAgentRequest.ValidateAll() if the designated -// constraints aren't met. -type ChangeQANMySQLSlowlogAgentRequestMultiError []error +// AddQANMySQLSlowlogAgentParamsMultiError is an error wrapping multiple +// validation errors returned by AddQANMySQLSlowlogAgentParams.ValidateAll() +// if the designated constraints aren't met. +type AddQANMySQLSlowlogAgentParamsMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m ChangeQANMySQLSlowlogAgentRequestMultiError) Error() string { +func (m AddQANMySQLSlowlogAgentParamsMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -8109,12 +8452,12 @@ func (m ChangeQANMySQLSlowlogAgentRequestMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m ChangeQANMySQLSlowlogAgentRequestMultiError) AllErrors() []error { return m } +func (m AddQANMySQLSlowlogAgentParamsMultiError) AllErrors() []error { return m } -// ChangeQANMySQLSlowlogAgentRequestValidationError is the validation error -// returned by ChangeQANMySQLSlowlogAgentRequest.Validate if the designated +// AddQANMySQLSlowlogAgentParamsValidationError is the validation error +// returned by AddQANMySQLSlowlogAgentParams.Validate if the designated // constraints aren't met. -type ChangeQANMySQLSlowlogAgentRequestValidationError struct { +type AddQANMySQLSlowlogAgentParamsValidationError struct { field string reason string cause error @@ -8122,24 +8465,24 @@ type ChangeQANMySQLSlowlogAgentRequestValidationError struct { } // Field function returns field value. -func (e ChangeQANMySQLSlowlogAgentRequestValidationError) Field() string { return e.field } +func (e AddQANMySQLSlowlogAgentParamsValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e ChangeQANMySQLSlowlogAgentRequestValidationError) Reason() string { return e.reason } +func (e AddQANMySQLSlowlogAgentParamsValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e ChangeQANMySQLSlowlogAgentRequestValidationError) Cause() error { return e.cause } +func (e AddQANMySQLSlowlogAgentParamsValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e ChangeQANMySQLSlowlogAgentRequestValidationError) Key() bool { return e.key } +func (e AddQANMySQLSlowlogAgentParamsValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e ChangeQANMySQLSlowlogAgentRequestValidationError) ErrorName() string { - return "ChangeQANMySQLSlowlogAgentRequestValidationError" +func (e AddQANMySQLSlowlogAgentParamsValidationError) ErrorName() string { + return "AddQANMySQLSlowlogAgentParamsValidationError" } // Error satisfies the builtin error interface -func (e ChangeQANMySQLSlowlogAgentRequestValidationError) Error() string { +func (e AddQANMySQLSlowlogAgentParamsValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -8151,14 +8494,14 @@ func (e ChangeQANMySQLSlowlogAgentRequestValidationError) Error() string { } return fmt.Sprintf( - "invalid %sChangeQANMySQLSlowlogAgentRequest.%s: %s%s", + "invalid %sAddQANMySQLSlowlogAgentParams.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = ChangeQANMySQLSlowlogAgentRequestValidationError{} +var _ error = AddQANMySQLSlowlogAgentParamsValidationError{} var _ interface { Field() string @@ -8166,54 +8509,65 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = ChangeQANMySQLSlowlogAgentRequestValidationError{} +} = AddQANMySQLSlowlogAgentParamsValidationError{} -// Validate checks the field values on ChangeQANMySQLSlowlogAgentResponse with +// Validate checks the field values on ChangeQANMySQLSlowlogAgentParams with // the rules defined in the proto definition for this message. If any rules // are violated, the first error encountered is returned, or nil if there are // no violations. -func (m *ChangeQANMySQLSlowlogAgentResponse) Validate() error { +func (m *ChangeQANMySQLSlowlogAgentParams) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on ChangeQANMySQLSlowlogAgentResponse -// with the rules defined in the proto definition for this message. If any -// rules are violated, the result is a list of violation errors wrapped in -// ChangeQANMySQLSlowlogAgentResponseMultiError, or nil if none found. -func (m *ChangeQANMySQLSlowlogAgentResponse) ValidateAll() error { +// ValidateAll checks the field values on ChangeQANMySQLSlowlogAgentParams with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// ChangeQANMySQLSlowlogAgentParamsMultiError, or nil if none found. +func (m *ChangeQANMySQLSlowlogAgentParams) ValidateAll() error { return m.validate(true) } -func (m *ChangeQANMySQLSlowlogAgentResponse) validate(all bool) error { +func (m *ChangeQANMySQLSlowlogAgentParams) validate(all bool) error { if m == nil { return nil } var errors []error + if utf8.RuneCountInString(m.GetAgentId()) < 1 { + err := ChangeQANMySQLSlowlogAgentParamsValidationError{ + field: "AgentId", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + if all { - switch v := interface{}(m.GetQanMysqlSlowlogAgent()).(type) { + switch v := interface{}(m.GetCommon()).(type) { case interface{ ValidateAll() error }: if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangeQANMySQLSlowlogAgentResponseValidationError{ - field: "QanMysqlSlowlogAgent", + errors = append(errors, ChangeQANMySQLSlowlogAgentParamsValidationError{ + field: "Common", reason: "embedded message failed validation", cause: err, }) } case interface{ Validate() error }: if err := v.Validate(); err != nil { - errors = append(errors, ChangeQANMySQLSlowlogAgentResponseValidationError{ - field: "QanMysqlSlowlogAgent", + errors = append(errors, ChangeQANMySQLSlowlogAgentParamsValidationError{ + field: "Common", reason: "embedded message failed validation", cause: err, }) } } - } else if v, ok := interface{}(m.GetQanMysqlSlowlogAgent()).(interface{ Validate() error }); ok { + } else if v, ok := interface{}(m.GetCommon()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { - return ChangeQANMySQLSlowlogAgentResponseValidationError{ - field: "QanMysqlSlowlogAgent", + return ChangeQANMySQLSlowlogAgentParamsValidationError{ + field: "Common", reason: "embedded message failed validation", cause: err, } @@ -8221,20 +8575,20 @@ func (m *ChangeQANMySQLSlowlogAgentResponse) validate(all bool) error { } if len(errors) > 0 { - return ChangeQANMySQLSlowlogAgentResponseMultiError(errors) + return ChangeQANMySQLSlowlogAgentParamsMultiError(errors) } return nil } -// ChangeQANMySQLSlowlogAgentResponseMultiError is an error wrapping multiple +// ChangeQANMySQLSlowlogAgentParamsMultiError is an error wrapping multiple // validation errors returned by -// ChangeQANMySQLSlowlogAgentResponse.ValidateAll() if the designated +// ChangeQANMySQLSlowlogAgentParams.ValidateAll() if the designated // constraints aren't met. -type ChangeQANMySQLSlowlogAgentResponseMultiError []error +type ChangeQANMySQLSlowlogAgentParamsMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m ChangeQANMySQLSlowlogAgentResponseMultiError) Error() string { +func (m ChangeQANMySQLSlowlogAgentParamsMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -8243,12 +8597,12 @@ func (m ChangeQANMySQLSlowlogAgentResponseMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m ChangeQANMySQLSlowlogAgentResponseMultiError) AllErrors() []error { return m } +func (m ChangeQANMySQLSlowlogAgentParamsMultiError) AllErrors() []error { return m } -// ChangeQANMySQLSlowlogAgentResponseValidationError is the validation error -// returned by ChangeQANMySQLSlowlogAgentResponse.Validate if the designated +// ChangeQANMySQLSlowlogAgentParamsValidationError is the validation error +// returned by ChangeQANMySQLSlowlogAgentParams.Validate if the designated // constraints aren't met. -type ChangeQANMySQLSlowlogAgentResponseValidationError struct { +type ChangeQANMySQLSlowlogAgentParamsValidationError struct { field string reason string cause error @@ -8256,24 +8610,24 @@ type ChangeQANMySQLSlowlogAgentResponseValidationError struct { } // Field function returns field value. -func (e ChangeQANMySQLSlowlogAgentResponseValidationError) Field() string { return e.field } +func (e ChangeQANMySQLSlowlogAgentParamsValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e ChangeQANMySQLSlowlogAgentResponseValidationError) Reason() string { return e.reason } +func (e ChangeQANMySQLSlowlogAgentParamsValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e ChangeQANMySQLSlowlogAgentResponseValidationError) Cause() error { return e.cause } +func (e ChangeQANMySQLSlowlogAgentParamsValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e ChangeQANMySQLSlowlogAgentResponseValidationError) Key() bool { return e.key } +func (e ChangeQANMySQLSlowlogAgentParamsValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e ChangeQANMySQLSlowlogAgentResponseValidationError) ErrorName() string { - return "ChangeQANMySQLSlowlogAgentResponseValidationError" +func (e ChangeQANMySQLSlowlogAgentParamsValidationError) ErrorName() string { + return "ChangeQANMySQLSlowlogAgentParamsValidationError" } // Error satisfies the builtin error interface -func (e ChangeQANMySQLSlowlogAgentResponseValidationError) Error() string { +func (e ChangeQANMySQLSlowlogAgentParamsValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -8285,14 +8639,14 @@ func (e ChangeQANMySQLSlowlogAgentResponseValidationError) Error() string { } return fmt.Sprintf( - "invalid %sChangeQANMySQLSlowlogAgentResponse.%s: %s%s", + "invalid %sChangeQANMySQLSlowlogAgentParams.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = ChangeQANMySQLSlowlogAgentResponseValidationError{} +var _ error = ChangeQANMySQLSlowlogAgentParamsValidationError{} var _ interface { Field() string @@ -8300,7 +8654,7 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = ChangeQANMySQLSlowlogAgentResponseValidationError{} +} = ChangeQANMySQLSlowlogAgentParamsValidationError{} // Validate checks the field values on AddQANMongoDBProfilerAgentParams with // the rules defined in the proto definition for this message. If any rules @@ -8455,23 +8809,23 @@ var _ interface { ErrorName() string } = AddQANMongoDBProfilerAgentParamsValidationError{} -// Validate checks the field values on ChangeQANMongoDBProfilerAgentRequest -// with the rules defined in the proto definition for this message. If any -// rules are violated, the first error encountered is returned, or nil if -// there are no violations. -func (m *ChangeQANMongoDBProfilerAgentRequest) Validate() error { +// Validate checks the field values on ChangeQANMongoDBProfilerAgentParams with +// the rules defined in the proto definition for this message. If any rules +// are violated, the first error encountered is returned, or nil if there are +// no violations. +func (m *ChangeQANMongoDBProfilerAgentParams) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on ChangeQANMongoDBProfilerAgentRequest +// ValidateAll checks the field values on ChangeQANMongoDBProfilerAgentParams // with the rules defined in the proto definition for this message. If any // rules are violated, the result is a list of violation errors wrapped in -// ChangeQANMongoDBProfilerAgentRequestMultiError, or nil if none found. -func (m *ChangeQANMongoDBProfilerAgentRequest) ValidateAll() error { +// ChangeQANMongoDBProfilerAgentParamsMultiError, or nil if none found. +func (m *ChangeQANMongoDBProfilerAgentParams) ValidateAll() error { return m.validate(true) } -func (m *ChangeQANMongoDBProfilerAgentRequest) validate(all bool) error { +func (m *ChangeQANMongoDBProfilerAgentParams) validate(all bool) error { if m == nil { return nil } @@ -8479,7 +8833,7 @@ func (m *ChangeQANMongoDBProfilerAgentRequest) validate(all bool) error { var errors []error if utf8.RuneCountInString(m.GetAgentId()) < 1 { - err := ChangeQANMongoDBProfilerAgentRequestValidationError{ + err := ChangeQANMongoDBProfilerAgentParamsValidationError{ field: "AgentId", reason: "value length must be at least 1 runes", } @@ -8493,7 +8847,7 @@ func (m *ChangeQANMongoDBProfilerAgentRequest) validate(all bool) error { switch v := interface{}(m.GetCommon()).(type) { case interface{ ValidateAll() error }: if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangeQANMongoDBProfilerAgentRequestValidationError{ + errors = append(errors, ChangeQANMongoDBProfilerAgentParamsValidationError{ field: "Common", reason: "embedded message failed validation", cause: err, @@ -8501,7 +8855,7 @@ func (m *ChangeQANMongoDBProfilerAgentRequest) validate(all bool) error { } case interface{ Validate() error }: if err := v.Validate(); err != nil { - errors = append(errors, ChangeQANMongoDBProfilerAgentRequestValidationError{ + errors = append(errors, ChangeQANMongoDBProfilerAgentParamsValidationError{ field: "Common", reason: "embedded message failed validation", cause: err, @@ -8510,7 +8864,7 @@ func (m *ChangeQANMongoDBProfilerAgentRequest) validate(all bool) error { } } else if v, ok := interface{}(m.GetCommon()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { - return ChangeQANMongoDBProfilerAgentRequestValidationError{ + return ChangeQANMongoDBProfilerAgentParamsValidationError{ field: "Common", reason: "embedded message failed validation", cause: err, @@ -8519,20 +8873,20 @@ func (m *ChangeQANMongoDBProfilerAgentRequest) validate(all bool) error { } if len(errors) > 0 { - return ChangeQANMongoDBProfilerAgentRequestMultiError(errors) + return ChangeQANMongoDBProfilerAgentParamsMultiError(errors) } return nil } -// ChangeQANMongoDBProfilerAgentRequestMultiError is an error wrapping multiple +// ChangeQANMongoDBProfilerAgentParamsMultiError is an error wrapping multiple // validation errors returned by -// ChangeQANMongoDBProfilerAgentRequest.ValidateAll() if the designated +// ChangeQANMongoDBProfilerAgentParams.ValidateAll() if the designated // constraints aren't met. -type ChangeQANMongoDBProfilerAgentRequestMultiError []error +type ChangeQANMongoDBProfilerAgentParamsMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m ChangeQANMongoDBProfilerAgentRequestMultiError) Error() string { +func (m ChangeQANMongoDBProfilerAgentParamsMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -8541,146 +8895,12 @@ func (m ChangeQANMongoDBProfilerAgentRequestMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m ChangeQANMongoDBProfilerAgentRequestMultiError) AllErrors() []error { return m } - -// ChangeQANMongoDBProfilerAgentRequestValidationError is the validation error -// returned by ChangeQANMongoDBProfilerAgentRequest.Validate if the designated -// constraints aren't met. -type ChangeQANMongoDBProfilerAgentRequestValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e ChangeQANMongoDBProfilerAgentRequestValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e ChangeQANMongoDBProfilerAgentRequestValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e ChangeQANMongoDBProfilerAgentRequestValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e ChangeQANMongoDBProfilerAgentRequestValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e ChangeQANMongoDBProfilerAgentRequestValidationError) ErrorName() string { - return "ChangeQANMongoDBProfilerAgentRequestValidationError" -} - -// Error satisfies the builtin error interface -func (e ChangeQANMongoDBProfilerAgentRequestValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sChangeQANMongoDBProfilerAgentRequest.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = ChangeQANMongoDBProfilerAgentRequestValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = ChangeQANMongoDBProfilerAgentRequestValidationError{} - -// Validate checks the field values on ChangeQANMongoDBProfilerAgentResponse -// with the rules defined in the proto definition for this message. If any -// rules are violated, the first error encountered is returned, or nil if -// there are no violations. -func (m *ChangeQANMongoDBProfilerAgentResponse) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on ChangeQANMongoDBProfilerAgentResponse -// with the rules defined in the proto definition for this message. If any -// rules are violated, the result is a list of violation errors wrapped in -// ChangeQANMongoDBProfilerAgentResponseMultiError, or nil if none found. -func (m *ChangeQANMongoDBProfilerAgentResponse) ValidateAll() error { - return m.validate(true) -} - -func (m *ChangeQANMongoDBProfilerAgentResponse) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error - - if all { - switch v := interface{}(m.GetQanMongodbProfilerAgent()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangeQANMongoDBProfilerAgentResponseValidationError{ - field: "QanMongodbProfilerAgent", - reason: "embedded message failed validation", - cause: err, - }) - } - case interface{ Validate() error }: - if err := v.Validate(); err != nil { - errors = append(errors, ChangeQANMongoDBProfilerAgentResponseValidationError{ - field: "QanMongodbProfilerAgent", - reason: "embedded message failed validation", - cause: err, - }) - } - } - } else if v, ok := interface{}(m.GetQanMongodbProfilerAgent()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return ChangeQANMongoDBProfilerAgentResponseValidationError{ - field: "QanMongodbProfilerAgent", - reason: "embedded message failed validation", - cause: err, - } - } - } - - if len(errors) > 0 { - return ChangeQANMongoDBProfilerAgentResponseMultiError(errors) - } - - return nil -} +func (m ChangeQANMongoDBProfilerAgentParamsMultiError) AllErrors() []error { return m } -// ChangeQANMongoDBProfilerAgentResponseMultiError is an error wrapping -// multiple validation errors returned by -// ChangeQANMongoDBProfilerAgentResponse.ValidateAll() if the designated +// ChangeQANMongoDBProfilerAgentParamsValidationError is the validation error +// returned by ChangeQANMongoDBProfilerAgentParams.Validate if the designated // constraints aren't met. -type ChangeQANMongoDBProfilerAgentResponseMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m ChangeQANMongoDBProfilerAgentResponseMultiError) Error() string { - var msgs []string - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m ChangeQANMongoDBProfilerAgentResponseMultiError) AllErrors() []error { return m } - -// ChangeQANMongoDBProfilerAgentResponseValidationError is the validation error -// returned by ChangeQANMongoDBProfilerAgentResponse.Validate if the -// designated constraints aren't met. -type ChangeQANMongoDBProfilerAgentResponseValidationError struct { +type ChangeQANMongoDBProfilerAgentParamsValidationError struct { field string reason string cause error @@ -8688,24 +8908,24 @@ type ChangeQANMongoDBProfilerAgentResponseValidationError struct { } // Field function returns field value. -func (e ChangeQANMongoDBProfilerAgentResponseValidationError) Field() string { return e.field } +func (e ChangeQANMongoDBProfilerAgentParamsValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e ChangeQANMongoDBProfilerAgentResponseValidationError) Reason() string { return e.reason } +func (e ChangeQANMongoDBProfilerAgentParamsValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e ChangeQANMongoDBProfilerAgentResponseValidationError) Cause() error { return e.cause } +func (e ChangeQANMongoDBProfilerAgentParamsValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e ChangeQANMongoDBProfilerAgentResponseValidationError) Key() bool { return e.key } +func (e ChangeQANMongoDBProfilerAgentParamsValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e ChangeQANMongoDBProfilerAgentResponseValidationError) ErrorName() string { - return "ChangeQANMongoDBProfilerAgentResponseValidationError" +func (e ChangeQANMongoDBProfilerAgentParamsValidationError) ErrorName() string { + return "ChangeQANMongoDBProfilerAgentParamsValidationError" } // Error satisfies the builtin error interface -func (e ChangeQANMongoDBProfilerAgentResponseValidationError) Error() string { +func (e ChangeQANMongoDBProfilerAgentParamsValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -8717,14 +8937,14 @@ func (e ChangeQANMongoDBProfilerAgentResponseValidationError) Error() string { } return fmt.Sprintf( - "invalid %sChangeQANMongoDBProfilerAgentResponse.%s: %s%s", + "invalid %sChangeQANMongoDBProfilerAgentParams.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = ChangeQANMongoDBProfilerAgentResponseValidationError{} +var _ error = ChangeQANMongoDBProfilerAgentParamsValidationError{} var _ interface { Field() string @@ -8732,7 +8952,7 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = ChangeQANMongoDBProfilerAgentResponseValidationError{} +} = ChangeQANMongoDBProfilerAgentParamsValidationError{} // Validate checks the field values on AddQANPostgreSQLPgStatementsAgentParams // with the rules defined in the proto definition for this message. If any @@ -8896,23 +9116,23 @@ var _ interface { } = AddQANPostgreSQLPgStatementsAgentParamsValidationError{} // Validate checks the field values on -// ChangeQANPostgreSQLPgStatementsAgentRequest with the rules defined in the +// ChangeQANPostgreSQLPgStatementsAgentParams with the rules defined in the // proto definition for this message. If any rules are violated, the first // error encountered is returned, or nil if there are no violations. -func (m *ChangeQANPostgreSQLPgStatementsAgentRequest) Validate() error { +func (m *ChangeQANPostgreSQLPgStatementsAgentParams) Validate() error { return m.validate(false) } // ValidateAll checks the field values on -// ChangeQANPostgreSQLPgStatementsAgentRequest with the rules defined in the +// ChangeQANPostgreSQLPgStatementsAgentParams with the rules defined in the // proto definition for this message. If any rules are violated, the result is // a list of violation errors wrapped in -// ChangeQANPostgreSQLPgStatementsAgentRequestMultiError, or nil if none found. -func (m *ChangeQANPostgreSQLPgStatementsAgentRequest) ValidateAll() error { +// ChangeQANPostgreSQLPgStatementsAgentParamsMultiError, or nil if none found. +func (m *ChangeQANPostgreSQLPgStatementsAgentParams) ValidateAll() error { return m.validate(true) } -func (m *ChangeQANPostgreSQLPgStatementsAgentRequest) validate(all bool) error { +func (m *ChangeQANPostgreSQLPgStatementsAgentParams) validate(all bool) error { if m == nil { return nil } @@ -8920,7 +9140,7 @@ func (m *ChangeQANPostgreSQLPgStatementsAgentRequest) validate(all bool) error { var errors []error if utf8.RuneCountInString(m.GetAgentId()) < 1 { - err := ChangeQANPostgreSQLPgStatementsAgentRequestValidationError{ + err := ChangeQANPostgreSQLPgStatementsAgentParamsValidationError{ field: "AgentId", reason: "value length must be at least 1 runes", } @@ -8931,163 +9151,28 @@ func (m *ChangeQANPostgreSQLPgStatementsAgentRequest) validate(all bool) error { } if all { - switch v := interface{}(m.GetCommon()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangeQANPostgreSQLPgStatementsAgentRequestValidationError{ - field: "Common", - reason: "embedded message failed validation", - cause: err, - }) - } - case interface{ Validate() error }: - if err := v.Validate(); err != nil { - errors = append(errors, ChangeQANPostgreSQLPgStatementsAgentRequestValidationError{ - field: "Common", - reason: "embedded message failed validation", - cause: err, - }) - } - } - } else if v, ok := interface{}(m.GetCommon()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return ChangeQANPostgreSQLPgStatementsAgentRequestValidationError{ - field: "Common", - reason: "embedded message failed validation", - cause: err, - } - } - } - - if len(errors) > 0 { - return ChangeQANPostgreSQLPgStatementsAgentRequestMultiError(errors) - } - - return nil -} - -// ChangeQANPostgreSQLPgStatementsAgentRequestMultiError is an error wrapping -// multiple validation errors returned by -// ChangeQANPostgreSQLPgStatementsAgentRequest.ValidateAll() if the designated -// constraints aren't met. -type ChangeQANPostgreSQLPgStatementsAgentRequestMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m ChangeQANPostgreSQLPgStatementsAgentRequestMultiError) Error() string { - var msgs []string - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m ChangeQANPostgreSQLPgStatementsAgentRequestMultiError) AllErrors() []error { return m } - -// ChangeQANPostgreSQLPgStatementsAgentRequestValidationError is the validation -// error returned by ChangeQANPostgreSQLPgStatementsAgentRequest.Validate if -// the designated constraints aren't met. -type ChangeQANPostgreSQLPgStatementsAgentRequestValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e ChangeQANPostgreSQLPgStatementsAgentRequestValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e ChangeQANPostgreSQLPgStatementsAgentRequestValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e ChangeQANPostgreSQLPgStatementsAgentRequestValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e ChangeQANPostgreSQLPgStatementsAgentRequestValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e ChangeQANPostgreSQLPgStatementsAgentRequestValidationError) ErrorName() string { - return "ChangeQANPostgreSQLPgStatementsAgentRequestValidationError" -} - -// Error satisfies the builtin error interface -func (e ChangeQANPostgreSQLPgStatementsAgentRequestValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sChangeQANPostgreSQLPgStatementsAgentRequest.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = ChangeQANPostgreSQLPgStatementsAgentRequestValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = ChangeQANPostgreSQLPgStatementsAgentRequestValidationError{} - -// Validate checks the field values on -// ChangeQANPostgreSQLPgStatementsAgentResponse with the rules defined in the -// proto definition for this message. If any rules are violated, the first -// error encountered is returned, or nil if there are no violations. -func (m *ChangeQANPostgreSQLPgStatementsAgentResponse) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on -// ChangeQANPostgreSQLPgStatementsAgentResponse with the rules defined in the -// proto definition for this message. If any rules are violated, the result is -// a list of violation errors wrapped in -// ChangeQANPostgreSQLPgStatementsAgentResponseMultiError, or nil if none found. -func (m *ChangeQANPostgreSQLPgStatementsAgentResponse) ValidateAll() error { - return m.validate(true) -} - -func (m *ChangeQANPostgreSQLPgStatementsAgentResponse) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error - - if all { - switch v := interface{}(m.GetQanPostgresqlPgstatementsAgent()).(type) { + switch v := interface{}(m.GetCommon()).(type) { case interface{ ValidateAll() error }: if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangeQANPostgreSQLPgStatementsAgentResponseValidationError{ - field: "QanPostgresqlPgstatementsAgent", + errors = append(errors, ChangeQANPostgreSQLPgStatementsAgentParamsValidationError{ + field: "Common", reason: "embedded message failed validation", cause: err, }) } case interface{ Validate() error }: if err := v.Validate(); err != nil { - errors = append(errors, ChangeQANPostgreSQLPgStatementsAgentResponseValidationError{ - field: "QanPostgresqlPgstatementsAgent", + errors = append(errors, ChangeQANPostgreSQLPgStatementsAgentParamsValidationError{ + field: "Common", reason: "embedded message failed validation", cause: err, }) } } - } else if v, ok := interface{}(m.GetQanPostgresqlPgstatementsAgent()).(interface{ Validate() error }); ok { + } else if v, ok := interface{}(m.GetCommon()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { - return ChangeQANPostgreSQLPgStatementsAgentResponseValidationError{ - field: "QanPostgresqlPgstatementsAgent", + return ChangeQANPostgreSQLPgStatementsAgentParamsValidationError{ + field: "Common", reason: "embedded message failed validation", cause: err, } @@ -9095,20 +9180,20 @@ func (m *ChangeQANPostgreSQLPgStatementsAgentResponse) validate(all bool) error } if len(errors) > 0 { - return ChangeQANPostgreSQLPgStatementsAgentResponseMultiError(errors) + return ChangeQANPostgreSQLPgStatementsAgentParamsMultiError(errors) } return nil } -// ChangeQANPostgreSQLPgStatementsAgentResponseMultiError is an error wrapping +// ChangeQANPostgreSQLPgStatementsAgentParamsMultiError is an error wrapping // multiple validation errors returned by -// ChangeQANPostgreSQLPgStatementsAgentResponse.ValidateAll() if the -// designated constraints aren't met. -type ChangeQANPostgreSQLPgStatementsAgentResponseMultiError []error +// ChangeQANPostgreSQLPgStatementsAgentParams.ValidateAll() if the designated +// constraints aren't met. +type ChangeQANPostgreSQLPgStatementsAgentParamsMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m ChangeQANPostgreSQLPgStatementsAgentResponseMultiError) Error() string { +func (m ChangeQANPostgreSQLPgStatementsAgentParamsMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -9117,13 +9202,12 @@ func (m ChangeQANPostgreSQLPgStatementsAgentResponseMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m ChangeQANPostgreSQLPgStatementsAgentResponseMultiError) AllErrors() []error { return m } +func (m ChangeQANPostgreSQLPgStatementsAgentParamsMultiError) AllErrors() []error { return m } -// ChangeQANPostgreSQLPgStatementsAgentResponseValidationError is the -// validation error returned by -// ChangeQANPostgreSQLPgStatementsAgentResponse.Validate if the designated -// constraints aren't met. -type ChangeQANPostgreSQLPgStatementsAgentResponseValidationError struct { +// ChangeQANPostgreSQLPgStatementsAgentParamsValidationError is the validation +// error returned by ChangeQANPostgreSQLPgStatementsAgentParams.Validate if +// the designated constraints aren't met. +type ChangeQANPostgreSQLPgStatementsAgentParamsValidationError struct { field string reason string cause error @@ -9131,24 +9215,24 @@ type ChangeQANPostgreSQLPgStatementsAgentResponseValidationError struct { } // Field function returns field value. -func (e ChangeQANPostgreSQLPgStatementsAgentResponseValidationError) Field() string { return e.field } +func (e ChangeQANPostgreSQLPgStatementsAgentParamsValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e ChangeQANPostgreSQLPgStatementsAgentResponseValidationError) Reason() string { return e.reason } +func (e ChangeQANPostgreSQLPgStatementsAgentParamsValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e ChangeQANPostgreSQLPgStatementsAgentResponseValidationError) Cause() error { return e.cause } +func (e ChangeQANPostgreSQLPgStatementsAgentParamsValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e ChangeQANPostgreSQLPgStatementsAgentResponseValidationError) Key() bool { return e.key } +func (e ChangeQANPostgreSQLPgStatementsAgentParamsValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e ChangeQANPostgreSQLPgStatementsAgentResponseValidationError) ErrorName() string { - return "ChangeQANPostgreSQLPgStatementsAgentResponseValidationError" +func (e ChangeQANPostgreSQLPgStatementsAgentParamsValidationError) ErrorName() string { + return "ChangeQANPostgreSQLPgStatementsAgentParamsValidationError" } // Error satisfies the builtin error interface -func (e ChangeQANPostgreSQLPgStatementsAgentResponseValidationError) Error() string { +func (e ChangeQANPostgreSQLPgStatementsAgentParamsValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -9160,14 +9244,14 @@ func (e ChangeQANPostgreSQLPgStatementsAgentResponseValidationError) Error() str } return fmt.Sprintf( - "invalid %sChangeQANPostgreSQLPgStatementsAgentResponse.%s: %s%s", + "invalid %sChangeQANPostgreSQLPgStatementsAgentParams.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = ChangeQANPostgreSQLPgStatementsAgentResponseValidationError{} +var _ error = ChangeQANPostgreSQLPgStatementsAgentParamsValidationError{} var _ interface { Field() string @@ -9175,7 +9259,7 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = ChangeQANPostgreSQLPgStatementsAgentResponseValidationError{} +} = ChangeQANPostgreSQLPgStatementsAgentParamsValidationError{} // Validate checks the field values on AddQANPostgreSQLPgStatMonitorAgentParams // with the rules defined in the proto definition for this message. If any @@ -9341,23 +9425,23 @@ var _ interface { } = AddQANPostgreSQLPgStatMonitorAgentParamsValidationError{} // Validate checks the field values on -// ChangeQANPostgreSQLPgStatMonitorAgentRequest with the rules defined in the +// ChangeQANPostgreSQLPgStatMonitorAgentParams with the rules defined in the // proto definition for this message. If any rules are violated, the first // error encountered is returned, or nil if there are no violations. -func (m *ChangeQANPostgreSQLPgStatMonitorAgentRequest) Validate() error { +func (m *ChangeQANPostgreSQLPgStatMonitorAgentParams) Validate() error { return m.validate(false) } // ValidateAll checks the field values on -// ChangeQANPostgreSQLPgStatMonitorAgentRequest with the rules defined in the +// ChangeQANPostgreSQLPgStatMonitorAgentParams with the rules defined in the // proto definition for this message. If any rules are violated, the result is // a list of violation errors wrapped in -// ChangeQANPostgreSQLPgStatMonitorAgentRequestMultiError, or nil if none found. -func (m *ChangeQANPostgreSQLPgStatMonitorAgentRequest) ValidateAll() error { +// ChangeQANPostgreSQLPgStatMonitorAgentParamsMultiError, or nil if none found. +func (m *ChangeQANPostgreSQLPgStatMonitorAgentParams) ValidateAll() error { return m.validate(true) } -func (m *ChangeQANPostgreSQLPgStatMonitorAgentRequest) validate(all bool) error { +func (m *ChangeQANPostgreSQLPgStatMonitorAgentParams) validate(all bool) error { if m == nil { return nil } @@ -9365,7 +9449,7 @@ func (m *ChangeQANPostgreSQLPgStatMonitorAgentRequest) validate(all bool) error var errors []error if utf8.RuneCountInString(m.GetAgentId()) < 1 { - err := ChangeQANPostgreSQLPgStatMonitorAgentRequestValidationError{ + err := ChangeQANPostgreSQLPgStatMonitorAgentParamsValidationError{ field: "AgentId", reason: "value length must be at least 1 runes", } @@ -9379,7 +9463,7 @@ func (m *ChangeQANPostgreSQLPgStatMonitorAgentRequest) validate(all bool) error switch v := interface{}(m.GetCommon()).(type) { case interface{ ValidateAll() error }: if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangeQANPostgreSQLPgStatMonitorAgentRequestValidationError{ + errors = append(errors, ChangeQANPostgreSQLPgStatMonitorAgentParamsValidationError{ field: "Common", reason: "embedded message failed validation", cause: err, @@ -9387,7 +9471,7 @@ func (m *ChangeQANPostgreSQLPgStatMonitorAgentRequest) validate(all bool) error } case interface{ Validate() error }: if err := v.Validate(); err != nil { - errors = append(errors, ChangeQANPostgreSQLPgStatMonitorAgentRequestValidationError{ + errors = append(errors, ChangeQANPostgreSQLPgStatMonitorAgentParamsValidationError{ field: "Common", reason: "embedded message failed validation", cause: err, @@ -9396,7 +9480,7 @@ func (m *ChangeQANPostgreSQLPgStatMonitorAgentRequest) validate(all bool) error } } else if v, ok := interface{}(m.GetCommon()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { - return ChangeQANPostgreSQLPgStatMonitorAgentRequestValidationError{ + return ChangeQANPostgreSQLPgStatMonitorAgentParamsValidationError{ field: "Common", reason: "embedded message failed validation", cause: err, @@ -9405,156 +9489,20 @@ func (m *ChangeQANPostgreSQLPgStatMonitorAgentRequest) validate(all bool) error } if len(errors) > 0 { - return ChangeQANPostgreSQLPgStatMonitorAgentRequestMultiError(errors) + return ChangeQANPostgreSQLPgStatMonitorAgentParamsMultiError(errors) } return nil } -// ChangeQANPostgreSQLPgStatMonitorAgentRequestMultiError is an error wrapping +// ChangeQANPostgreSQLPgStatMonitorAgentParamsMultiError is an error wrapping // multiple validation errors returned by -// ChangeQANPostgreSQLPgStatMonitorAgentRequest.ValidateAll() if the -// designated constraints aren't met. -type ChangeQANPostgreSQLPgStatMonitorAgentRequestMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m ChangeQANPostgreSQLPgStatMonitorAgentRequestMultiError) Error() string { - var msgs []string - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m ChangeQANPostgreSQLPgStatMonitorAgentRequestMultiError) AllErrors() []error { return m } - -// ChangeQANPostgreSQLPgStatMonitorAgentRequestValidationError is the -// validation error returned by -// ChangeQANPostgreSQLPgStatMonitorAgentRequest.Validate if the designated +// ChangeQANPostgreSQLPgStatMonitorAgentParams.ValidateAll() if the designated // constraints aren't met. -type ChangeQANPostgreSQLPgStatMonitorAgentRequestValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e ChangeQANPostgreSQLPgStatMonitorAgentRequestValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e ChangeQANPostgreSQLPgStatMonitorAgentRequestValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e ChangeQANPostgreSQLPgStatMonitorAgentRequestValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e ChangeQANPostgreSQLPgStatMonitorAgentRequestValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e ChangeQANPostgreSQLPgStatMonitorAgentRequestValidationError) ErrorName() string { - return "ChangeQANPostgreSQLPgStatMonitorAgentRequestValidationError" -} - -// Error satisfies the builtin error interface -func (e ChangeQANPostgreSQLPgStatMonitorAgentRequestValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sChangeQANPostgreSQLPgStatMonitorAgentRequest.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = ChangeQANPostgreSQLPgStatMonitorAgentRequestValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = ChangeQANPostgreSQLPgStatMonitorAgentRequestValidationError{} - -// Validate checks the field values on -// ChangeQANPostgreSQLPgStatMonitorAgentResponse with the rules defined in the -// proto definition for this message. If any rules are violated, the first -// error encountered is returned, or nil if there are no violations. -func (m *ChangeQANPostgreSQLPgStatMonitorAgentResponse) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on -// ChangeQANPostgreSQLPgStatMonitorAgentResponse with the rules defined in the -// proto definition for this message. If any rules are violated, the result is -// a list of violation errors wrapped in -// ChangeQANPostgreSQLPgStatMonitorAgentResponseMultiError, or nil if none found. -func (m *ChangeQANPostgreSQLPgStatMonitorAgentResponse) ValidateAll() error { - return m.validate(true) -} - -func (m *ChangeQANPostgreSQLPgStatMonitorAgentResponse) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error - - if all { - switch v := interface{}(m.GetQanPostgresqlPgstatmonitorAgent()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangeQANPostgreSQLPgStatMonitorAgentResponseValidationError{ - field: "QanPostgresqlPgstatmonitorAgent", - reason: "embedded message failed validation", - cause: err, - }) - } - case interface{ Validate() error }: - if err := v.Validate(); err != nil { - errors = append(errors, ChangeQANPostgreSQLPgStatMonitorAgentResponseValidationError{ - field: "QanPostgresqlPgstatmonitorAgent", - reason: "embedded message failed validation", - cause: err, - }) - } - } - } else if v, ok := interface{}(m.GetQanPostgresqlPgstatmonitorAgent()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return ChangeQANPostgreSQLPgStatMonitorAgentResponseValidationError{ - field: "QanPostgresqlPgstatmonitorAgent", - reason: "embedded message failed validation", - cause: err, - } - } - } - - if len(errors) > 0 { - return ChangeQANPostgreSQLPgStatMonitorAgentResponseMultiError(errors) - } - - return nil -} - -// ChangeQANPostgreSQLPgStatMonitorAgentResponseMultiError is an error wrapping -// multiple validation errors returned by -// ChangeQANPostgreSQLPgStatMonitorAgentResponse.ValidateAll() if the -// designated constraints aren't met. -type ChangeQANPostgreSQLPgStatMonitorAgentResponseMultiError []error +type ChangeQANPostgreSQLPgStatMonitorAgentParamsMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m ChangeQANPostgreSQLPgStatMonitorAgentResponseMultiError) Error() string { +func (m ChangeQANPostgreSQLPgStatMonitorAgentParamsMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -9563,13 +9511,12 @@ func (m ChangeQANPostgreSQLPgStatMonitorAgentResponseMultiError) Error() string } // AllErrors returns a list of validation violation errors. -func (m ChangeQANPostgreSQLPgStatMonitorAgentResponseMultiError) AllErrors() []error { return m } +func (m ChangeQANPostgreSQLPgStatMonitorAgentParamsMultiError) AllErrors() []error { return m } -// ChangeQANPostgreSQLPgStatMonitorAgentResponseValidationError is the -// validation error returned by -// ChangeQANPostgreSQLPgStatMonitorAgentResponse.Validate if the designated -// constraints aren't met. -type ChangeQANPostgreSQLPgStatMonitorAgentResponseValidationError struct { +// ChangeQANPostgreSQLPgStatMonitorAgentParamsValidationError is the validation +// error returned by ChangeQANPostgreSQLPgStatMonitorAgentParams.Validate if +// the designated constraints aren't met. +type ChangeQANPostgreSQLPgStatMonitorAgentParamsValidationError struct { field string reason string cause error @@ -9577,26 +9524,24 @@ type ChangeQANPostgreSQLPgStatMonitorAgentResponseValidationError struct { } // Field function returns field value. -func (e ChangeQANPostgreSQLPgStatMonitorAgentResponseValidationError) Field() string { return e.field } +func (e ChangeQANPostgreSQLPgStatMonitorAgentParamsValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e ChangeQANPostgreSQLPgStatMonitorAgentResponseValidationError) Reason() string { - return e.reason -} +func (e ChangeQANPostgreSQLPgStatMonitorAgentParamsValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e ChangeQANPostgreSQLPgStatMonitorAgentResponseValidationError) Cause() error { return e.cause } +func (e ChangeQANPostgreSQLPgStatMonitorAgentParamsValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e ChangeQANPostgreSQLPgStatMonitorAgentResponseValidationError) Key() bool { return e.key } +func (e ChangeQANPostgreSQLPgStatMonitorAgentParamsValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e ChangeQANPostgreSQLPgStatMonitorAgentResponseValidationError) ErrorName() string { - return "ChangeQANPostgreSQLPgStatMonitorAgentResponseValidationError" +func (e ChangeQANPostgreSQLPgStatMonitorAgentParamsValidationError) ErrorName() string { + return "ChangeQANPostgreSQLPgStatMonitorAgentParamsValidationError" } // Error satisfies the builtin error interface -func (e ChangeQANPostgreSQLPgStatMonitorAgentResponseValidationError) Error() string { +func (e ChangeQANPostgreSQLPgStatMonitorAgentParamsValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -9608,14 +9553,14 @@ func (e ChangeQANPostgreSQLPgStatMonitorAgentResponseValidationError) Error() st } return fmt.Sprintf( - "invalid %sChangeQANPostgreSQLPgStatMonitorAgentResponse.%s: %s%s", + "invalid %sChangeQANPostgreSQLPgStatMonitorAgentParams.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = ChangeQANPostgreSQLPgStatMonitorAgentResponseValidationError{} +var _ error = ChangeQANPostgreSQLPgStatMonitorAgentParamsValidationError{} var _ interface { Field() string @@ -9623,7 +9568,7 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = ChangeQANPostgreSQLPgStatMonitorAgentResponseValidationError{} +} = ChangeQANPostgreSQLPgStatMonitorAgentParamsValidationError{} // Validate checks the field values on AddRDSExporterParams with the rules // defined in the proto definition for this message. If any rules are @@ -9679,168 +9624,26 @@ func (m *AddRDSExporterParams) validate(all bool) error { // no validation rules for DisableBasicMetrics - // no validation rules for DisableEnhancedMetrics - - // no validation rules for PushMetrics - - // no validation rules for LogLevel - - if len(errors) > 0 { - return AddRDSExporterParamsMultiError(errors) - } - - return nil -} - -// AddRDSExporterParamsMultiError is an error wrapping multiple validation -// errors returned by AddRDSExporterParams.ValidateAll() if the designated -// constraints aren't met. -type AddRDSExporterParamsMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m AddRDSExporterParamsMultiError) Error() string { - var msgs []string - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m AddRDSExporterParamsMultiError) AllErrors() []error { return m } - -// AddRDSExporterParamsValidationError is the validation error returned by -// AddRDSExporterParams.Validate if the designated constraints aren't met. -type AddRDSExporterParamsValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e AddRDSExporterParamsValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e AddRDSExporterParamsValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e AddRDSExporterParamsValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e AddRDSExporterParamsValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e AddRDSExporterParamsValidationError) ErrorName() string { - return "AddRDSExporterParamsValidationError" -} - -// Error satisfies the builtin error interface -func (e AddRDSExporterParamsValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sAddRDSExporterParams.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = AddRDSExporterParamsValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = AddRDSExporterParamsValidationError{} - -// Validate checks the field values on ChangeRDSExporterRequest with the rules -// defined in the proto definition for this message. If any rules are -// violated, the first error encountered is returned, or nil if there are no violations. -func (m *ChangeRDSExporterRequest) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on ChangeRDSExporterRequest with the -// rules defined in the proto definition for this message. If any rules are -// violated, the result is a list of violation errors wrapped in -// ChangeRDSExporterRequestMultiError, or nil if none found. -func (m *ChangeRDSExporterRequest) ValidateAll() error { - return m.validate(true) -} - -func (m *ChangeRDSExporterRequest) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error - - if utf8.RuneCountInString(m.GetAgentId()) < 1 { - err := ChangeRDSExporterRequestValidationError{ - field: "AgentId", - reason: "value length must be at least 1 runes", - } - if !all { - return err - } - errors = append(errors, err) - } - - if all { - switch v := interface{}(m.GetCommon()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangeRDSExporterRequestValidationError{ - field: "Common", - reason: "embedded message failed validation", - cause: err, - }) - } - case interface{ Validate() error }: - if err := v.Validate(); err != nil { - errors = append(errors, ChangeRDSExporterRequestValidationError{ - field: "Common", - reason: "embedded message failed validation", - cause: err, - }) - } - } - } else if v, ok := interface{}(m.GetCommon()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return ChangeRDSExporterRequestValidationError{ - field: "Common", - reason: "embedded message failed validation", - cause: err, - } - } - } - + // no validation rules for DisableEnhancedMetrics + + // no validation rules for PushMetrics + + // no validation rules for LogLevel + if len(errors) > 0 { - return ChangeRDSExporterRequestMultiError(errors) + return AddRDSExporterParamsMultiError(errors) } return nil } -// ChangeRDSExporterRequestMultiError is an error wrapping multiple validation -// errors returned by ChangeRDSExporterRequest.ValidateAll() if the designated +// AddRDSExporterParamsMultiError is an error wrapping multiple validation +// errors returned by AddRDSExporterParams.ValidateAll() if the designated // constraints aren't met. -type ChangeRDSExporterRequestMultiError []error +type AddRDSExporterParamsMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m ChangeRDSExporterRequestMultiError) Error() string { +func (m AddRDSExporterParamsMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -9849,11 +9652,11 @@ func (m ChangeRDSExporterRequestMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m ChangeRDSExporterRequestMultiError) AllErrors() []error { return m } +func (m AddRDSExporterParamsMultiError) AllErrors() []error { return m } -// ChangeRDSExporterRequestValidationError is the validation error returned by -// ChangeRDSExporterRequest.Validate if the designated constraints aren't met. -type ChangeRDSExporterRequestValidationError struct { +// AddRDSExporterParamsValidationError is the validation error returned by +// AddRDSExporterParams.Validate if the designated constraints aren't met. +type AddRDSExporterParamsValidationError struct { field string reason string cause error @@ -9861,24 +9664,24 @@ type ChangeRDSExporterRequestValidationError struct { } // Field function returns field value. -func (e ChangeRDSExporterRequestValidationError) Field() string { return e.field } +func (e AddRDSExporterParamsValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e ChangeRDSExporterRequestValidationError) Reason() string { return e.reason } +func (e AddRDSExporterParamsValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e ChangeRDSExporterRequestValidationError) Cause() error { return e.cause } +func (e AddRDSExporterParamsValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e ChangeRDSExporterRequestValidationError) Key() bool { return e.key } +func (e AddRDSExporterParamsValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e ChangeRDSExporterRequestValidationError) ErrorName() string { - return "ChangeRDSExporterRequestValidationError" +func (e AddRDSExporterParamsValidationError) ErrorName() string { + return "AddRDSExporterParamsValidationError" } // Error satisfies the builtin error interface -func (e ChangeRDSExporterRequestValidationError) Error() string { +func (e AddRDSExporterParamsValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -9890,14 +9693,14 @@ func (e ChangeRDSExporterRequestValidationError) Error() string { } return fmt.Sprintf( - "invalid %sChangeRDSExporterRequest.%s: %s%s", + "invalid %sAddRDSExporterParams.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = ChangeRDSExporterRequestValidationError{} +var _ error = AddRDSExporterParamsValidationError{} var _ interface { Field() string @@ -9905,53 +9708,64 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = ChangeRDSExporterRequestValidationError{} +} = AddRDSExporterParamsValidationError{} -// Validate checks the field values on ChangeRDSExporterResponse with the rules +// Validate checks the field values on ChangeRDSExporterParams with the rules // defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. -func (m *ChangeRDSExporterResponse) Validate() error { +func (m *ChangeRDSExporterParams) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on ChangeRDSExporterResponse with the +// ValidateAll checks the field values on ChangeRDSExporterParams with the // rules defined in the proto definition for this message. If any rules are // violated, the result is a list of violation errors wrapped in -// ChangeRDSExporterResponseMultiError, or nil if none found. -func (m *ChangeRDSExporterResponse) ValidateAll() error { +// ChangeRDSExporterParamsMultiError, or nil if none found. +func (m *ChangeRDSExporterParams) ValidateAll() error { return m.validate(true) } -func (m *ChangeRDSExporterResponse) validate(all bool) error { +func (m *ChangeRDSExporterParams) validate(all bool) error { if m == nil { return nil } var errors []error + if utf8.RuneCountInString(m.GetAgentId()) < 1 { + err := ChangeRDSExporterParamsValidationError{ + field: "AgentId", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + if all { - switch v := interface{}(m.GetRdsExporter()).(type) { + switch v := interface{}(m.GetCommon()).(type) { case interface{ ValidateAll() error }: if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangeRDSExporterResponseValidationError{ - field: "RdsExporter", + errors = append(errors, ChangeRDSExporterParamsValidationError{ + field: "Common", reason: "embedded message failed validation", cause: err, }) } case interface{ Validate() error }: if err := v.Validate(); err != nil { - errors = append(errors, ChangeRDSExporterResponseValidationError{ - field: "RdsExporter", + errors = append(errors, ChangeRDSExporterParamsValidationError{ + field: "Common", reason: "embedded message failed validation", cause: err, }) } } - } else if v, ok := interface{}(m.GetRdsExporter()).(interface{ Validate() error }); ok { + } else if v, ok := interface{}(m.GetCommon()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { - return ChangeRDSExporterResponseValidationError{ - field: "RdsExporter", + return ChangeRDSExporterParamsValidationError{ + field: "Common", reason: "embedded message failed validation", cause: err, } @@ -9959,19 +9773,19 @@ func (m *ChangeRDSExporterResponse) validate(all bool) error { } if len(errors) > 0 { - return ChangeRDSExporterResponseMultiError(errors) + return ChangeRDSExporterParamsMultiError(errors) } return nil } -// ChangeRDSExporterResponseMultiError is an error wrapping multiple validation -// errors returned by ChangeRDSExporterResponse.ValidateAll() if the -// designated constraints aren't met. -type ChangeRDSExporterResponseMultiError []error +// ChangeRDSExporterParamsMultiError is an error wrapping multiple validation +// errors returned by ChangeRDSExporterParams.ValidateAll() if the designated +// constraints aren't met. +type ChangeRDSExporterParamsMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m ChangeRDSExporterResponseMultiError) Error() string { +func (m ChangeRDSExporterParamsMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -9980,11 +9794,11 @@ func (m ChangeRDSExporterResponseMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m ChangeRDSExporterResponseMultiError) AllErrors() []error { return m } +func (m ChangeRDSExporterParamsMultiError) AllErrors() []error { return m } -// ChangeRDSExporterResponseValidationError is the validation error returned by -// ChangeRDSExporterResponse.Validate if the designated constraints aren't met. -type ChangeRDSExporterResponseValidationError struct { +// ChangeRDSExporterParamsValidationError is the validation error returned by +// ChangeRDSExporterParams.Validate if the designated constraints aren't met. +type ChangeRDSExporterParamsValidationError struct { field string reason string cause error @@ -9992,24 +9806,24 @@ type ChangeRDSExporterResponseValidationError struct { } // Field function returns field value. -func (e ChangeRDSExporterResponseValidationError) Field() string { return e.field } +func (e ChangeRDSExporterParamsValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e ChangeRDSExporterResponseValidationError) Reason() string { return e.reason } +func (e ChangeRDSExporterParamsValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e ChangeRDSExporterResponseValidationError) Cause() error { return e.cause } +func (e ChangeRDSExporterParamsValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e ChangeRDSExporterResponseValidationError) Key() bool { return e.key } +func (e ChangeRDSExporterParamsValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e ChangeRDSExporterResponseValidationError) ErrorName() string { - return "ChangeRDSExporterResponseValidationError" +func (e ChangeRDSExporterParamsValidationError) ErrorName() string { + return "ChangeRDSExporterParamsValidationError" } // Error satisfies the builtin error interface -func (e ChangeRDSExporterResponseValidationError) Error() string { +func (e ChangeRDSExporterParamsValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -10021,14 +9835,14 @@ func (e ChangeRDSExporterResponseValidationError) Error() string { } return fmt.Sprintf( - "invalid %sChangeRDSExporterResponse.%s: %s%s", + "invalid %sChangeRDSExporterParams.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = ChangeRDSExporterResponseValidationError{} +var _ error = ChangeRDSExporterParamsValidationError{} var _ interface { Field() string @@ -10036,7 +9850,7 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = ChangeRDSExporterResponseValidationError{} +} = ChangeRDSExporterParamsValidationError{} // Validate checks the field values on AddExternalExporterParams with the rules // defined in the proto definition for this message. If any rules are @@ -10176,22 +9990,22 @@ var _ interface { ErrorName() string } = AddExternalExporterParamsValidationError{} -// Validate checks the field values on ChangeExternalExporterRequest with the +// Validate checks the field values on ChangeExternalExporterParams with the // rules defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. -func (m *ChangeExternalExporterRequest) Validate() error { +func (m *ChangeExternalExporterParams) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on ChangeExternalExporterRequest with -// the rules defined in the proto definition for this message. If any rules -// are violated, the result is a list of violation errors wrapped in -// ChangeExternalExporterRequestMultiError, or nil if none found. -func (m *ChangeExternalExporterRequest) ValidateAll() error { +// ValidateAll checks the field values on ChangeExternalExporterParams with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ChangeExternalExporterParamsMultiError, or nil if none found. +func (m *ChangeExternalExporterParams) ValidateAll() error { return m.validate(true) } -func (m *ChangeExternalExporterRequest) validate(all bool) error { +func (m *ChangeExternalExporterParams) validate(all bool) error { if m == nil { return nil } @@ -10199,7 +10013,7 @@ func (m *ChangeExternalExporterRequest) validate(all bool) error { var errors []error if utf8.RuneCountInString(m.GetAgentId()) < 1 { - err := ChangeExternalExporterRequestValidationError{ + err := ChangeExternalExporterParamsValidationError{ field: "AgentId", reason: "value length must be at least 1 runes", } @@ -10213,7 +10027,7 @@ func (m *ChangeExternalExporterRequest) validate(all bool) error { switch v := interface{}(m.GetCommon()).(type) { case interface{ ValidateAll() error }: if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangeExternalExporterRequestValidationError{ + errors = append(errors, ChangeExternalExporterParamsValidationError{ field: "Common", reason: "embedded message failed validation", cause: err, @@ -10221,7 +10035,7 @@ func (m *ChangeExternalExporterRequest) validate(all bool) error { } case interface{ Validate() error }: if err := v.Validate(); err != nil { - errors = append(errors, ChangeExternalExporterRequestValidationError{ + errors = append(errors, ChangeExternalExporterParamsValidationError{ field: "Common", reason: "embedded message failed validation", cause: err, @@ -10230,7 +10044,7 @@ func (m *ChangeExternalExporterRequest) validate(all bool) error { } } else if v, ok := interface{}(m.GetCommon()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { - return ChangeExternalExporterRequestValidationError{ + return ChangeExternalExporterParamsValidationError{ field: "Common", reason: "embedded message failed validation", cause: err, @@ -10239,151 +10053,19 @@ func (m *ChangeExternalExporterRequest) validate(all bool) error { } if len(errors) > 0 { - return ChangeExternalExporterRequestMultiError(errors) - } - - return nil -} - -// ChangeExternalExporterRequestMultiError is an error wrapping multiple -// validation errors returned by ChangeExternalExporterRequest.ValidateAll() -// if the designated constraints aren't met. -type ChangeExternalExporterRequestMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m ChangeExternalExporterRequestMultiError) Error() string { - var msgs []string - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m ChangeExternalExporterRequestMultiError) AllErrors() []error { return m } - -// ChangeExternalExporterRequestValidationError is the validation error -// returned by ChangeExternalExporterRequest.Validate if the designated -// constraints aren't met. -type ChangeExternalExporterRequestValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e ChangeExternalExporterRequestValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e ChangeExternalExporterRequestValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e ChangeExternalExporterRequestValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e ChangeExternalExporterRequestValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e ChangeExternalExporterRequestValidationError) ErrorName() string { - return "ChangeExternalExporterRequestValidationError" -} - -// Error satisfies the builtin error interface -func (e ChangeExternalExporterRequestValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sChangeExternalExporterRequest.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = ChangeExternalExporterRequestValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = ChangeExternalExporterRequestValidationError{} - -// Validate checks the field values on ChangeExternalExporterResponse with the -// rules defined in the proto definition for this message. If any rules are -// violated, the first error encountered is returned, or nil if there are no violations. -func (m *ChangeExternalExporterResponse) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on ChangeExternalExporterResponse with -// the rules defined in the proto definition for this message. If any rules -// are violated, the result is a list of violation errors wrapped in -// ChangeExternalExporterResponseMultiError, or nil if none found. -func (m *ChangeExternalExporterResponse) ValidateAll() error { - return m.validate(true) -} - -func (m *ChangeExternalExporterResponse) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error - - if all { - switch v := interface{}(m.GetExternalExporter()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangeExternalExporterResponseValidationError{ - field: "ExternalExporter", - reason: "embedded message failed validation", - cause: err, - }) - } - case interface{ Validate() error }: - if err := v.Validate(); err != nil { - errors = append(errors, ChangeExternalExporterResponseValidationError{ - field: "ExternalExporter", - reason: "embedded message failed validation", - cause: err, - }) - } - } - } else if v, ok := interface{}(m.GetExternalExporter()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return ChangeExternalExporterResponseValidationError{ - field: "ExternalExporter", - reason: "embedded message failed validation", - cause: err, - } - } - } - - if len(errors) > 0 { - return ChangeExternalExporterResponseMultiError(errors) + return ChangeExternalExporterParamsMultiError(errors) } return nil } -// ChangeExternalExporterResponseMultiError is an error wrapping multiple -// validation errors returned by ChangeExternalExporterResponse.ValidateAll() -// if the designated constraints aren't met. -type ChangeExternalExporterResponseMultiError []error +// ChangeExternalExporterParamsMultiError is an error wrapping multiple +// validation errors returned by ChangeExternalExporterParams.ValidateAll() if +// the designated constraints aren't met. +type ChangeExternalExporterParamsMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m ChangeExternalExporterResponseMultiError) Error() string { +func (m ChangeExternalExporterParamsMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -10392,12 +10074,12 @@ func (m ChangeExternalExporterResponseMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m ChangeExternalExporterResponseMultiError) AllErrors() []error { return m } +func (m ChangeExternalExporterParamsMultiError) AllErrors() []error { return m } -// ChangeExternalExporterResponseValidationError is the validation error -// returned by ChangeExternalExporterResponse.Validate if the designated -// constraints aren't met. -type ChangeExternalExporterResponseValidationError struct { +// ChangeExternalExporterParamsValidationError is the validation error returned +// by ChangeExternalExporterParams.Validate if the designated constraints +// aren't met. +type ChangeExternalExporterParamsValidationError struct { field string reason string cause error @@ -10405,24 +10087,24 @@ type ChangeExternalExporterResponseValidationError struct { } // Field function returns field value. -func (e ChangeExternalExporterResponseValidationError) Field() string { return e.field } +func (e ChangeExternalExporterParamsValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e ChangeExternalExporterResponseValidationError) Reason() string { return e.reason } +func (e ChangeExternalExporterParamsValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e ChangeExternalExporterResponseValidationError) Cause() error { return e.cause } +func (e ChangeExternalExporterParamsValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e ChangeExternalExporterResponseValidationError) Key() bool { return e.key } +func (e ChangeExternalExporterParamsValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e ChangeExternalExporterResponseValidationError) ErrorName() string { - return "ChangeExternalExporterResponseValidationError" +func (e ChangeExternalExporterParamsValidationError) ErrorName() string { + return "ChangeExternalExporterParamsValidationError" } // Error satisfies the builtin error interface -func (e ChangeExternalExporterResponseValidationError) Error() string { +func (e ChangeExternalExporterParamsValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -10434,14 +10116,14 @@ func (e ChangeExternalExporterResponseValidationError) Error() string { } return fmt.Sprintf( - "invalid %sChangeExternalExporterResponse.%s: %s%s", + "invalid %sChangeExternalExporterParams.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = ChangeExternalExporterResponseValidationError{} +var _ error = ChangeExternalExporterParamsValidationError{} var _ interface { Field() string @@ -10449,7 +10131,7 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = ChangeExternalExporterResponseValidationError{} +} = ChangeExternalExporterParamsValidationError{} // Validate checks the field values on AddAzureDatabaseExporterParams with the // rules defined in the proto definition for this message. If any rules are @@ -10605,23 +10287,23 @@ var _ interface { ErrorName() string } = AddAzureDatabaseExporterParamsValidationError{} -// Validate checks the field values on ChangeAzureDatabaseExporterRequest with +// Validate checks the field values on ChangeAzureDatabaseExporterParams with // the rules defined in the proto definition for this message. If any rules // are violated, the first error encountered is returned, or nil if there are // no violations. -func (m *ChangeAzureDatabaseExporterRequest) Validate() error { +func (m *ChangeAzureDatabaseExporterParams) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on ChangeAzureDatabaseExporterRequest +// ValidateAll checks the field values on ChangeAzureDatabaseExporterParams // with the rules defined in the proto definition for this message. If any // rules are violated, the result is a list of violation errors wrapped in -// ChangeAzureDatabaseExporterRequestMultiError, or nil if none found. -func (m *ChangeAzureDatabaseExporterRequest) ValidateAll() error { +// ChangeAzureDatabaseExporterParamsMultiError, or nil if none found. +func (m *ChangeAzureDatabaseExporterParams) ValidateAll() error { return m.validate(true) } -func (m *ChangeAzureDatabaseExporterRequest) validate(all bool) error { +func (m *ChangeAzureDatabaseExporterParams) validate(all bool) error { if m == nil { return nil } @@ -10629,7 +10311,7 @@ func (m *ChangeAzureDatabaseExporterRequest) validate(all bool) error { var errors []error if utf8.RuneCountInString(m.GetAgentId()) < 1 { - err := ChangeAzureDatabaseExporterRequestValidationError{ + err := ChangeAzureDatabaseExporterParamsValidationError{ field: "AgentId", reason: "value length must be at least 1 runes", } @@ -10643,7 +10325,7 @@ func (m *ChangeAzureDatabaseExporterRequest) validate(all bool) error { switch v := interface{}(m.GetCommon()).(type) { case interface{ ValidateAll() error }: if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangeAzureDatabaseExporterRequestValidationError{ + errors = append(errors, ChangeAzureDatabaseExporterParamsValidationError{ field: "Common", reason: "embedded message failed validation", cause: err, @@ -10651,7 +10333,7 @@ func (m *ChangeAzureDatabaseExporterRequest) validate(all bool) error { } case interface{ Validate() error }: if err := v.Validate(); err != nil { - errors = append(errors, ChangeAzureDatabaseExporterRequestValidationError{ + errors = append(errors, ChangeAzureDatabaseExporterParamsValidationError{ field: "Common", reason: "embedded message failed validation", cause: err, @@ -10660,7 +10342,7 @@ func (m *ChangeAzureDatabaseExporterRequest) validate(all bool) error { } } else if v, ok := interface{}(m.GetCommon()).(interface{ Validate() error }); ok { if err := v.Validate(); err != nil { - return ChangeAzureDatabaseExporterRequestValidationError{ + return ChangeAzureDatabaseExporterParamsValidationError{ field: "Common", reason: "embedded message failed validation", cause: err, @@ -10669,154 +10351,20 @@ func (m *ChangeAzureDatabaseExporterRequest) validate(all bool) error { } if len(errors) > 0 { - return ChangeAzureDatabaseExporterRequestMultiError(errors) - } - - return nil -} - -// ChangeAzureDatabaseExporterRequestMultiError is an error wrapping multiple -// validation errors returned by -// ChangeAzureDatabaseExporterRequest.ValidateAll() if the designated -// constraints aren't met. -type ChangeAzureDatabaseExporterRequestMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m ChangeAzureDatabaseExporterRequestMultiError) Error() string { - var msgs []string - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m ChangeAzureDatabaseExporterRequestMultiError) AllErrors() []error { return m } - -// ChangeAzureDatabaseExporterRequestValidationError is the validation error -// returned by ChangeAzureDatabaseExporterRequest.Validate if the designated -// constraints aren't met. -type ChangeAzureDatabaseExporterRequestValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e ChangeAzureDatabaseExporterRequestValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e ChangeAzureDatabaseExporterRequestValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e ChangeAzureDatabaseExporterRequestValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e ChangeAzureDatabaseExporterRequestValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e ChangeAzureDatabaseExporterRequestValidationError) ErrorName() string { - return "ChangeAzureDatabaseExporterRequestValidationError" -} - -// Error satisfies the builtin error interface -func (e ChangeAzureDatabaseExporterRequestValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sChangeAzureDatabaseExporterRequest.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = ChangeAzureDatabaseExporterRequestValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = ChangeAzureDatabaseExporterRequestValidationError{} - -// Validate checks the field values on ChangeAzureDatabaseExporterResponse with -// the rules defined in the proto definition for this message. If any rules -// are violated, the first error encountered is returned, or nil if there are -// no violations. -func (m *ChangeAzureDatabaseExporterResponse) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on ChangeAzureDatabaseExporterResponse -// with the rules defined in the proto definition for this message. If any -// rules are violated, the result is a list of violation errors wrapped in -// ChangeAzureDatabaseExporterResponseMultiError, or nil if none found. -func (m *ChangeAzureDatabaseExporterResponse) ValidateAll() error { - return m.validate(true) -} - -func (m *ChangeAzureDatabaseExporterResponse) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error - - if all { - switch v := interface{}(m.GetAzureDatabaseExporter()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, ChangeAzureDatabaseExporterResponseValidationError{ - field: "AzureDatabaseExporter", - reason: "embedded message failed validation", - cause: err, - }) - } - case interface{ Validate() error }: - if err := v.Validate(); err != nil { - errors = append(errors, ChangeAzureDatabaseExporterResponseValidationError{ - field: "AzureDatabaseExporter", - reason: "embedded message failed validation", - cause: err, - }) - } - } - } else if v, ok := interface{}(m.GetAzureDatabaseExporter()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return ChangeAzureDatabaseExporterResponseValidationError{ - field: "AzureDatabaseExporter", - reason: "embedded message failed validation", - cause: err, - } - } - } - - if len(errors) > 0 { - return ChangeAzureDatabaseExporterResponseMultiError(errors) + return ChangeAzureDatabaseExporterParamsMultiError(errors) } return nil } -// ChangeAzureDatabaseExporterResponseMultiError is an error wrapping multiple +// ChangeAzureDatabaseExporterParamsMultiError is an error wrapping multiple // validation errors returned by -// ChangeAzureDatabaseExporterResponse.ValidateAll() if the designated +// ChangeAzureDatabaseExporterParams.ValidateAll() if the designated // constraints aren't met. -type ChangeAzureDatabaseExporterResponseMultiError []error +type ChangeAzureDatabaseExporterParamsMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m ChangeAzureDatabaseExporterResponseMultiError) Error() string { +func (m ChangeAzureDatabaseExporterParamsMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -10825,12 +10373,12 @@ func (m ChangeAzureDatabaseExporterResponseMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m ChangeAzureDatabaseExporterResponseMultiError) AllErrors() []error { return m } +func (m ChangeAzureDatabaseExporterParamsMultiError) AllErrors() []error { return m } -// ChangeAzureDatabaseExporterResponseValidationError is the validation error -// returned by ChangeAzureDatabaseExporterResponse.Validate if the designated +// ChangeAzureDatabaseExporterParamsValidationError is the validation error +// returned by ChangeAzureDatabaseExporterParams.Validate if the designated // constraints aren't met. -type ChangeAzureDatabaseExporterResponseValidationError struct { +type ChangeAzureDatabaseExporterParamsValidationError struct { field string reason string cause error @@ -10838,24 +10386,24 @@ type ChangeAzureDatabaseExporterResponseValidationError struct { } // Field function returns field value. -func (e ChangeAzureDatabaseExporterResponseValidationError) Field() string { return e.field } +func (e ChangeAzureDatabaseExporterParamsValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e ChangeAzureDatabaseExporterResponseValidationError) Reason() string { return e.reason } +func (e ChangeAzureDatabaseExporterParamsValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e ChangeAzureDatabaseExporterResponseValidationError) Cause() error { return e.cause } +func (e ChangeAzureDatabaseExporterParamsValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e ChangeAzureDatabaseExporterResponseValidationError) Key() bool { return e.key } +func (e ChangeAzureDatabaseExporterParamsValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e ChangeAzureDatabaseExporterResponseValidationError) ErrorName() string { - return "ChangeAzureDatabaseExporterResponseValidationError" +func (e ChangeAzureDatabaseExporterParamsValidationError) ErrorName() string { + return "ChangeAzureDatabaseExporterParamsValidationError" } // Error satisfies the builtin error interface -func (e ChangeAzureDatabaseExporterResponseValidationError) Error() string { +func (e ChangeAzureDatabaseExporterParamsValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -10867,14 +10415,14 @@ func (e ChangeAzureDatabaseExporterResponseValidationError) Error() string { } return fmt.Sprintf( - "invalid %sChangeAzureDatabaseExporterResponse.%s: %s%s", + "invalid %sChangeAzureDatabaseExporterParams.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = ChangeAzureDatabaseExporterResponseValidationError{} +var _ error = ChangeAzureDatabaseExporterParamsValidationError{} var _ interface { Field() string @@ -10882,7 +10430,7 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = ChangeAzureDatabaseExporterResponseValidationError{} +} = ChangeAzureDatabaseExporterParamsValidationError{} // Validate checks the field values on RemoveAgentRequest with the rules // defined in the proto definition for this message. If any rules are diff --git a/api/inventory/v1/agents.proto b/api/inventory/v1/agents.proto index 7ddccddd63..9cf3b8751b 100644 --- a/api/inventory/v1/agents.proto +++ b/api/inventory/v1/agents.proto @@ -585,7 +585,6 @@ message ChangeCommonAgentParams { // Remove all custom user-assigned labels. bool remove_custom_labels = 4; // Enables push metrics with vmagent, can't be used with disable_push_metrics. - // Can't be used with agent version lower then 2.12 and unsupported agents. bool enable_push_metrics = 5; // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. bool disable_push_metrics = 6; diff --git a/api/inventory/v1/agents_grpc.pb.go b/api/inventory/v1/agents_grpc.pb.go index 2745de9cde..cedfd7ed9c 100644 --- a/api/inventory/v1/agents_grpc.pb.go +++ b/api/inventory/v1/agents_grpc.pb.go @@ -20,24 +20,12 @@ import ( const _ = grpc.SupportPackageIsVersion7 const ( - AgentsService_ListAgents_FullMethodName = "/inventory.v1.AgentsService/ListAgents" - AgentsService_GetAgent_FullMethodName = "/inventory.v1.AgentsService/GetAgent" - AgentsService_GetAgentLogs_FullMethodName = "/inventory.v1.AgentsService/GetAgentLogs" - AgentsService_AddAgent_FullMethodName = "/inventory.v1.AgentsService/AddAgent" - AgentsService_ChangeNodeExporter_FullMethodName = "/inventory.v1.AgentsService/ChangeNodeExporter" - AgentsService_ChangeMySQLdExporter_FullMethodName = "/inventory.v1.AgentsService/ChangeMySQLdExporter" - AgentsService_ChangeMongoDBExporter_FullMethodName = "/inventory.v1.AgentsService/ChangeMongoDBExporter" - AgentsService_ChangePostgresExporter_FullMethodName = "/inventory.v1.AgentsService/ChangePostgresExporter" - AgentsService_ChangeProxySQLExporter_FullMethodName = "/inventory.v1.AgentsService/ChangeProxySQLExporter" - AgentsService_ChangeQANMySQLPerfSchemaAgent_FullMethodName = "/inventory.v1.AgentsService/ChangeQANMySQLPerfSchemaAgent" - AgentsService_ChangeQANMySQLSlowlogAgent_FullMethodName = "/inventory.v1.AgentsService/ChangeQANMySQLSlowlogAgent" - AgentsService_ChangeQANMongoDBProfilerAgent_FullMethodName = "/inventory.v1.AgentsService/ChangeQANMongoDBProfilerAgent" - AgentsService_ChangeQANPostgreSQLPgStatementsAgent_FullMethodName = "/inventory.v1.AgentsService/ChangeQANPostgreSQLPgStatementsAgent" - AgentsService_ChangeQANPostgreSQLPgStatMonitorAgent_FullMethodName = "/inventory.v1.AgentsService/ChangeQANPostgreSQLPgStatMonitorAgent" - AgentsService_ChangeRDSExporter_FullMethodName = "/inventory.v1.AgentsService/ChangeRDSExporter" - AgentsService_ChangeExternalExporter_FullMethodName = "/inventory.v1.AgentsService/ChangeExternalExporter" - AgentsService_ChangeAzureDatabaseExporter_FullMethodName = "/inventory.v1.AgentsService/ChangeAzureDatabaseExporter" - AgentsService_RemoveAgent_FullMethodName = "/inventory.v1.AgentsService/RemoveAgent" + AgentsService_ListAgents_FullMethodName = "/inventory.v1.AgentsService/ListAgents" + AgentsService_GetAgent_FullMethodName = "/inventory.v1.AgentsService/GetAgent" + AgentsService_GetAgentLogs_FullMethodName = "/inventory.v1.AgentsService/GetAgentLogs" + AgentsService_AddAgent_FullMethodName = "/inventory.v1.AgentsService/AddAgent" + AgentsService_ChangeAgent_FullMethodName = "/inventory.v1.AgentsService/ChangeAgent" + AgentsService_RemoveAgent_FullMethodName = "/inventory.v1.AgentsService/RemoveAgent" ) // AgentsServiceClient is the client API for AgentsService service. @@ -52,32 +40,8 @@ type AgentsServiceClient interface { GetAgentLogs(ctx context.Context, in *GetAgentLogsRequest, opts ...grpc.CallOption) (*GetAgentLogsResponse, error) // AddAgent adds any type of Agent to Inventory. AddAgent(ctx context.Context, in *AddAgentRequest, opts ...grpc.CallOption) (*AddAgentResponse, error) - // ChangeNodeExporter changes node_exporter Agent. - ChangeNodeExporter(ctx context.Context, in *ChangeNodeExporterRequest, opts ...grpc.CallOption) (*ChangeNodeExporterResponse, error) - // ChangeMySQLdExporter changes mysqld_exporter Agent. - ChangeMySQLdExporter(ctx context.Context, in *ChangeMySQLdExporterRequest, opts ...grpc.CallOption) (*ChangeMySQLdExporterResponse, error) - // ChangeMongoDBExporter changes mongodb_exporter Agent. - ChangeMongoDBExporter(ctx context.Context, in *ChangeMongoDBExporterRequest, opts ...grpc.CallOption) (*ChangeMongoDBExporterResponse, error) - // ChangePostgresExporter changes postgres_exporter Agent. - ChangePostgresExporter(ctx context.Context, in *ChangePostgresExporterRequest, opts ...grpc.CallOption) (*ChangePostgresExporterResponse, error) - // ChangeProxySQLExporter changes proxysql_exporter Agent. - ChangeProxySQLExporter(ctx context.Context, in *ChangeProxySQLExporterRequest, opts ...grpc.CallOption) (*ChangeProxySQLExporterResponse, error) - // ChangeQANMySQLPerfSchemaAgent changes QAN MySQL PerfSchema Agent. - ChangeQANMySQLPerfSchemaAgent(ctx context.Context, in *ChangeQANMySQLPerfSchemaAgentRequest, opts ...grpc.CallOption) (*ChangeQANMySQLPerfSchemaAgentResponse, error) - // ChangeQANMySQLSlowlogAgent changes QAN MySQL Slowlog Agent. - ChangeQANMySQLSlowlogAgent(ctx context.Context, in *ChangeQANMySQLSlowlogAgentRequest, opts ...grpc.CallOption) (*ChangeQANMySQLSlowlogAgentResponse, error) - // ChangeQANMongoDBProfilerAgent changes QAN MongoDB Profiler Agent. - ChangeQANMongoDBProfilerAgent(ctx context.Context, in *ChangeQANMongoDBProfilerAgentRequest, opts ...grpc.CallOption) (*ChangeQANMongoDBProfilerAgentResponse, error) - // ChangeQANPostgreSQLPgStatementsAgent changes QAN PostgreSQL PgStat Statements Agent. - ChangeQANPostgreSQLPgStatementsAgent(ctx context.Context, in *ChangeQANPostgreSQLPgStatementsAgentRequest, opts ...grpc.CallOption) (*ChangeQANPostgreSQLPgStatementsAgentResponse, error) - // ChangeQANPostgreSQLPgStatMonitorAgent changes QAN PostgreSQL PgStat Monitor Agent. - ChangeQANPostgreSQLPgStatMonitorAgent(ctx context.Context, in *ChangeQANPostgreSQLPgStatMonitorAgentRequest, opts ...grpc.CallOption) (*ChangeQANPostgreSQLPgStatMonitorAgentResponse, error) - // ChangeRDSExporter changes rds_exporter Agent. - ChangeRDSExporter(ctx context.Context, in *ChangeRDSExporterRequest, opts ...grpc.CallOption) (*ChangeRDSExporterResponse, error) - // ChangeExternalExporter changes external_exporter Agent. - ChangeExternalExporter(ctx context.Context, in *ChangeExternalExporterRequest, opts ...grpc.CallOption) (*ChangeExternalExporterResponse, error) - // ChangeAzureDatabaseExporter changes azure_database_exporter Agent. - ChangeAzureDatabaseExporter(ctx context.Context, in *ChangeAzureDatabaseExporterRequest, opts ...grpc.CallOption) (*ChangeAzureDatabaseExporterResponse, error) + // ChangeAgent changes any type of Agent record in Inventory. + ChangeAgent(ctx context.Context, in *ChangeAgentRequest, opts ...grpc.CallOption) (*ChangeAgentResponse, error) // RemoveAgent removes an Agent. RemoveAgent(ctx context.Context, in *RemoveAgentRequest, opts ...grpc.CallOption) (*RemoveAgentResponse, error) } @@ -126,117 +90,9 @@ func (c *agentsServiceClient) AddAgent(ctx context.Context, in *AddAgentRequest, return out, nil } -func (c *agentsServiceClient) ChangeNodeExporter(ctx context.Context, in *ChangeNodeExporterRequest, opts ...grpc.CallOption) (*ChangeNodeExporterResponse, error) { - out := new(ChangeNodeExporterResponse) - err := c.cc.Invoke(ctx, AgentsService_ChangeNodeExporter_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *agentsServiceClient) ChangeMySQLdExporter(ctx context.Context, in *ChangeMySQLdExporterRequest, opts ...grpc.CallOption) (*ChangeMySQLdExporterResponse, error) { - out := new(ChangeMySQLdExporterResponse) - err := c.cc.Invoke(ctx, AgentsService_ChangeMySQLdExporter_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *agentsServiceClient) ChangeMongoDBExporter(ctx context.Context, in *ChangeMongoDBExporterRequest, opts ...grpc.CallOption) (*ChangeMongoDBExporterResponse, error) { - out := new(ChangeMongoDBExporterResponse) - err := c.cc.Invoke(ctx, AgentsService_ChangeMongoDBExporter_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *agentsServiceClient) ChangePostgresExporter(ctx context.Context, in *ChangePostgresExporterRequest, opts ...grpc.CallOption) (*ChangePostgresExporterResponse, error) { - out := new(ChangePostgresExporterResponse) - err := c.cc.Invoke(ctx, AgentsService_ChangePostgresExporter_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *agentsServiceClient) ChangeProxySQLExporter(ctx context.Context, in *ChangeProxySQLExporterRequest, opts ...grpc.CallOption) (*ChangeProxySQLExporterResponse, error) { - out := new(ChangeProxySQLExporterResponse) - err := c.cc.Invoke(ctx, AgentsService_ChangeProxySQLExporter_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *agentsServiceClient) ChangeQANMySQLPerfSchemaAgent(ctx context.Context, in *ChangeQANMySQLPerfSchemaAgentRequest, opts ...grpc.CallOption) (*ChangeQANMySQLPerfSchemaAgentResponse, error) { - out := new(ChangeQANMySQLPerfSchemaAgentResponse) - err := c.cc.Invoke(ctx, AgentsService_ChangeQANMySQLPerfSchemaAgent_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *agentsServiceClient) ChangeQANMySQLSlowlogAgent(ctx context.Context, in *ChangeQANMySQLSlowlogAgentRequest, opts ...grpc.CallOption) (*ChangeQANMySQLSlowlogAgentResponse, error) { - out := new(ChangeQANMySQLSlowlogAgentResponse) - err := c.cc.Invoke(ctx, AgentsService_ChangeQANMySQLSlowlogAgent_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *agentsServiceClient) ChangeQANMongoDBProfilerAgent(ctx context.Context, in *ChangeQANMongoDBProfilerAgentRequest, opts ...grpc.CallOption) (*ChangeQANMongoDBProfilerAgentResponse, error) { - out := new(ChangeQANMongoDBProfilerAgentResponse) - err := c.cc.Invoke(ctx, AgentsService_ChangeQANMongoDBProfilerAgent_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *agentsServiceClient) ChangeQANPostgreSQLPgStatementsAgent(ctx context.Context, in *ChangeQANPostgreSQLPgStatementsAgentRequest, opts ...grpc.CallOption) (*ChangeQANPostgreSQLPgStatementsAgentResponse, error) { - out := new(ChangeQANPostgreSQLPgStatementsAgentResponse) - err := c.cc.Invoke(ctx, AgentsService_ChangeQANPostgreSQLPgStatementsAgent_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *agentsServiceClient) ChangeQANPostgreSQLPgStatMonitorAgent(ctx context.Context, in *ChangeQANPostgreSQLPgStatMonitorAgentRequest, opts ...grpc.CallOption) (*ChangeQANPostgreSQLPgStatMonitorAgentResponse, error) { - out := new(ChangeQANPostgreSQLPgStatMonitorAgentResponse) - err := c.cc.Invoke(ctx, AgentsService_ChangeQANPostgreSQLPgStatMonitorAgent_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *agentsServiceClient) ChangeRDSExporter(ctx context.Context, in *ChangeRDSExporterRequest, opts ...grpc.CallOption) (*ChangeRDSExporterResponse, error) { - out := new(ChangeRDSExporterResponse) - err := c.cc.Invoke(ctx, AgentsService_ChangeRDSExporter_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *agentsServiceClient) ChangeExternalExporter(ctx context.Context, in *ChangeExternalExporterRequest, opts ...grpc.CallOption) (*ChangeExternalExporterResponse, error) { - out := new(ChangeExternalExporterResponse) - err := c.cc.Invoke(ctx, AgentsService_ChangeExternalExporter_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *agentsServiceClient) ChangeAzureDatabaseExporter(ctx context.Context, in *ChangeAzureDatabaseExporterRequest, opts ...grpc.CallOption) (*ChangeAzureDatabaseExporterResponse, error) { - out := new(ChangeAzureDatabaseExporterResponse) - err := c.cc.Invoke(ctx, AgentsService_ChangeAzureDatabaseExporter_FullMethodName, in, out, opts...) +func (c *agentsServiceClient) ChangeAgent(ctx context.Context, in *ChangeAgentRequest, opts ...grpc.CallOption) (*ChangeAgentResponse, error) { + out := new(ChangeAgentResponse) + err := c.cc.Invoke(ctx, AgentsService_ChangeAgent_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -264,32 +120,8 @@ type AgentsServiceServer interface { GetAgentLogs(context.Context, *GetAgentLogsRequest) (*GetAgentLogsResponse, error) // AddAgent adds any type of Agent to Inventory. AddAgent(context.Context, *AddAgentRequest) (*AddAgentResponse, error) - // ChangeNodeExporter changes node_exporter Agent. - ChangeNodeExporter(context.Context, *ChangeNodeExporterRequest) (*ChangeNodeExporterResponse, error) - // ChangeMySQLdExporter changes mysqld_exporter Agent. - ChangeMySQLdExporter(context.Context, *ChangeMySQLdExporterRequest) (*ChangeMySQLdExporterResponse, error) - // ChangeMongoDBExporter changes mongodb_exporter Agent. - ChangeMongoDBExporter(context.Context, *ChangeMongoDBExporterRequest) (*ChangeMongoDBExporterResponse, error) - // ChangePostgresExporter changes postgres_exporter Agent. - ChangePostgresExporter(context.Context, *ChangePostgresExporterRequest) (*ChangePostgresExporterResponse, error) - // ChangeProxySQLExporter changes proxysql_exporter Agent. - ChangeProxySQLExporter(context.Context, *ChangeProxySQLExporterRequest) (*ChangeProxySQLExporterResponse, error) - // ChangeQANMySQLPerfSchemaAgent changes QAN MySQL PerfSchema Agent. - ChangeQANMySQLPerfSchemaAgent(context.Context, *ChangeQANMySQLPerfSchemaAgentRequest) (*ChangeQANMySQLPerfSchemaAgentResponse, error) - // ChangeQANMySQLSlowlogAgent changes QAN MySQL Slowlog Agent. - ChangeQANMySQLSlowlogAgent(context.Context, *ChangeQANMySQLSlowlogAgentRequest) (*ChangeQANMySQLSlowlogAgentResponse, error) - // ChangeQANMongoDBProfilerAgent changes QAN MongoDB Profiler Agent. - ChangeQANMongoDBProfilerAgent(context.Context, *ChangeQANMongoDBProfilerAgentRequest) (*ChangeQANMongoDBProfilerAgentResponse, error) - // ChangeQANPostgreSQLPgStatementsAgent changes QAN PostgreSQL PgStat Statements Agent. - ChangeQANPostgreSQLPgStatementsAgent(context.Context, *ChangeQANPostgreSQLPgStatementsAgentRequest) (*ChangeQANPostgreSQLPgStatementsAgentResponse, error) - // ChangeQANPostgreSQLPgStatMonitorAgent changes QAN PostgreSQL PgStat Monitor Agent. - ChangeQANPostgreSQLPgStatMonitorAgent(context.Context, *ChangeQANPostgreSQLPgStatMonitorAgentRequest) (*ChangeQANPostgreSQLPgStatMonitorAgentResponse, error) - // ChangeRDSExporter changes rds_exporter Agent. - ChangeRDSExporter(context.Context, *ChangeRDSExporterRequest) (*ChangeRDSExporterResponse, error) - // ChangeExternalExporter changes external_exporter Agent. - ChangeExternalExporter(context.Context, *ChangeExternalExporterRequest) (*ChangeExternalExporterResponse, error) - // ChangeAzureDatabaseExporter changes azure_database_exporter Agent. - ChangeAzureDatabaseExporter(context.Context, *ChangeAzureDatabaseExporterRequest) (*ChangeAzureDatabaseExporterResponse, error) + // ChangeAgent changes any type of Agent record in Inventory. + ChangeAgent(context.Context, *ChangeAgentRequest) (*ChangeAgentResponse, error) // RemoveAgent removes an Agent. RemoveAgent(context.Context, *RemoveAgentRequest) (*RemoveAgentResponse, error) mustEmbedUnimplementedAgentsServiceServer() @@ -314,56 +146,8 @@ func (UnimplementedAgentsServiceServer) AddAgent(context.Context, *AddAgentReque return nil, status.Errorf(codes.Unimplemented, "method AddAgent not implemented") } -func (UnimplementedAgentsServiceServer) ChangeNodeExporter(context.Context, *ChangeNodeExporterRequest) (*ChangeNodeExporterResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ChangeNodeExporter not implemented") -} - -func (UnimplementedAgentsServiceServer) ChangeMySQLdExporter(context.Context, *ChangeMySQLdExporterRequest) (*ChangeMySQLdExporterResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ChangeMySQLdExporter not implemented") -} - -func (UnimplementedAgentsServiceServer) ChangeMongoDBExporter(context.Context, *ChangeMongoDBExporterRequest) (*ChangeMongoDBExporterResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ChangeMongoDBExporter not implemented") -} - -func (UnimplementedAgentsServiceServer) ChangePostgresExporter(context.Context, *ChangePostgresExporterRequest) (*ChangePostgresExporterResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ChangePostgresExporter not implemented") -} - -func (UnimplementedAgentsServiceServer) ChangeProxySQLExporter(context.Context, *ChangeProxySQLExporterRequest) (*ChangeProxySQLExporterResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ChangeProxySQLExporter not implemented") -} - -func (UnimplementedAgentsServiceServer) ChangeQANMySQLPerfSchemaAgent(context.Context, *ChangeQANMySQLPerfSchemaAgentRequest) (*ChangeQANMySQLPerfSchemaAgentResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ChangeQANMySQLPerfSchemaAgent not implemented") -} - -func (UnimplementedAgentsServiceServer) ChangeQANMySQLSlowlogAgent(context.Context, *ChangeQANMySQLSlowlogAgentRequest) (*ChangeQANMySQLSlowlogAgentResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ChangeQANMySQLSlowlogAgent not implemented") -} - -func (UnimplementedAgentsServiceServer) ChangeQANMongoDBProfilerAgent(context.Context, *ChangeQANMongoDBProfilerAgentRequest) (*ChangeQANMongoDBProfilerAgentResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ChangeQANMongoDBProfilerAgent not implemented") -} - -func (UnimplementedAgentsServiceServer) ChangeQANPostgreSQLPgStatementsAgent(context.Context, *ChangeQANPostgreSQLPgStatementsAgentRequest) (*ChangeQANPostgreSQLPgStatementsAgentResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ChangeQANPostgreSQLPgStatementsAgent not implemented") -} - -func (UnimplementedAgentsServiceServer) ChangeQANPostgreSQLPgStatMonitorAgent(context.Context, *ChangeQANPostgreSQLPgStatMonitorAgentRequest) (*ChangeQANPostgreSQLPgStatMonitorAgentResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ChangeQANPostgreSQLPgStatMonitorAgent not implemented") -} - -func (UnimplementedAgentsServiceServer) ChangeRDSExporter(context.Context, *ChangeRDSExporterRequest) (*ChangeRDSExporterResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ChangeRDSExporter not implemented") -} - -func (UnimplementedAgentsServiceServer) ChangeExternalExporter(context.Context, *ChangeExternalExporterRequest) (*ChangeExternalExporterResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ChangeExternalExporter not implemented") -} - -func (UnimplementedAgentsServiceServer) ChangeAzureDatabaseExporter(context.Context, *ChangeAzureDatabaseExporterRequest) (*ChangeAzureDatabaseExporterResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ChangeAzureDatabaseExporter not implemented") +func (UnimplementedAgentsServiceServer) ChangeAgent(context.Context, *ChangeAgentRequest) (*ChangeAgentResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ChangeAgent not implemented") } func (UnimplementedAgentsServiceServer) RemoveAgent(context.Context, *RemoveAgentRequest) (*RemoveAgentResponse, error) { @@ -454,236 +238,20 @@ func _AgentsService_AddAgent_Handler(srv interface{}, ctx context.Context, dec f return interceptor(ctx, in, info, handler) } -func _AgentsService_ChangeNodeExporter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ChangeNodeExporterRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AgentsServiceServer).ChangeNodeExporter(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AgentsService_ChangeNodeExporter_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AgentsServiceServer).ChangeNodeExporter(ctx, req.(*ChangeNodeExporterRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AgentsService_ChangeMySQLdExporter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ChangeMySQLdExporterRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AgentsServiceServer).ChangeMySQLdExporter(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AgentsService_ChangeMySQLdExporter_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AgentsServiceServer).ChangeMySQLdExporter(ctx, req.(*ChangeMySQLdExporterRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AgentsService_ChangeMongoDBExporter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ChangeMongoDBExporterRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AgentsServiceServer).ChangeMongoDBExporter(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AgentsService_ChangeMongoDBExporter_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AgentsServiceServer).ChangeMongoDBExporter(ctx, req.(*ChangeMongoDBExporterRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AgentsService_ChangePostgresExporter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ChangePostgresExporterRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AgentsServiceServer).ChangePostgresExporter(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AgentsService_ChangePostgresExporter_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AgentsServiceServer).ChangePostgresExporter(ctx, req.(*ChangePostgresExporterRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AgentsService_ChangeProxySQLExporter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ChangeProxySQLExporterRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AgentsServiceServer).ChangeProxySQLExporter(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AgentsService_ChangeProxySQLExporter_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AgentsServiceServer).ChangeProxySQLExporter(ctx, req.(*ChangeProxySQLExporterRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AgentsService_ChangeQANMySQLPerfSchemaAgent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ChangeQANMySQLPerfSchemaAgentRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AgentsServiceServer).ChangeQANMySQLPerfSchemaAgent(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AgentsService_ChangeQANMySQLPerfSchemaAgent_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AgentsServiceServer).ChangeQANMySQLPerfSchemaAgent(ctx, req.(*ChangeQANMySQLPerfSchemaAgentRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AgentsService_ChangeQANMySQLSlowlogAgent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ChangeQANMySQLSlowlogAgentRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AgentsServiceServer).ChangeQANMySQLSlowlogAgent(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AgentsService_ChangeQANMySQLSlowlogAgent_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AgentsServiceServer).ChangeQANMySQLSlowlogAgent(ctx, req.(*ChangeQANMySQLSlowlogAgentRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AgentsService_ChangeQANMongoDBProfilerAgent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ChangeQANMongoDBProfilerAgentRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AgentsServiceServer).ChangeQANMongoDBProfilerAgent(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AgentsService_ChangeQANMongoDBProfilerAgent_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AgentsServiceServer).ChangeQANMongoDBProfilerAgent(ctx, req.(*ChangeQANMongoDBProfilerAgentRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AgentsService_ChangeQANPostgreSQLPgStatementsAgent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ChangeQANPostgreSQLPgStatementsAgentRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AgentsServiceServer).ChangeQANPostgreSQLPgStatementsAgent(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AgentsService_ChangeQANPostgreSQLPgStatementsAgent_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AgentsServiceServer).ChangeQANPostgreSQLPgStatementsAgent(ctx, req.(*ChangeQANPostgreSQLPgStatementsAgentRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AgentsService_ChangeQANPostgreSQLPgStatMonitorAgent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ChangeQANPostgreSQLPgStatMonitorAgentRequest) +func _AgentsService_ChangeAgent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ChangeAgentRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(AgentsServiceServer).ChangeQANPostgreSQLPgStatMonitorAgent(ctx, in) + return srv.(AgentsServiceServer).ChangeAgent(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: AgentsService_ChangeQANPostgreSQLPgStatMonitorAgent_FullMethodName, + FullMethod: AgentsService_ChangeAgent_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AgentsServiceServer).ChangeQANPostgreSQLPgStatMonitorAgent(ctx, req.(*ChangeQANPostgreSQLPgStatMonitorAgentRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AgentsService_ChangeRDSExporter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ChangeRDSExporterRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AgentsServiceServer).ChangeRDSExporter(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AgentsService_ChangeRDSExporter_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AgentsServiceServer).ChangeRDSExporter(ctx, req.(*ChangeRDSExporterRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AgentsService_ChangeExternalExporter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ChangeExternalExporterRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AgentsServiceServer).ChangeExternalExporter(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AgentsService_ChangeExternalExporter_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AgentsServiceServer).ChangeExternalExporter(ctx, req.(*ChangeExternalExporterRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _AgentsService_ChangeAzureDatabaseExporter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ChangeAzureDatabaseExporterRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AgentsServiceServer).ChangeAzureDatabaseExporter(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: AgentsService_ChangeAzureDatabaseExporter_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AgentsServiceServer).ChangeAzureDatabaseExporter(ctx, req.(*ChangeAzureDatabaseExporterRequest)) + return srv.(AgentsServiceServer).ChangeAgent(ctx, req.(*ChangeAgentRequest)) } return interceptor(ctx, in, info, handler) } @@ -730,56 +298,8 @@ var AgentsService_ServiceDesc = grpc.ServiceDesc{ Handler: _AgentsService_AddAgent_Handler, }, { - MethodName: "ChangeNodeExporter", - Handler: _AgentsService_ChangeNodeExporter_Handler, - }, - { - MethodName: "ChangeMySQLdExporter", - Handler: _AgentsService_ChangeMySQLdExporter_Handler, - }, - { - MethodName: "ChangeMongoDBExporter", - Handler: _AgentsService_ChangeMongoDBExporter_Handler, - }, - { - MethodName: "ChangePostgresExporter", - Handler: _AgentsService_ChangePostgresExporter_Handler, - }, - { - MethodName: "ChangeProxySQLExporter", - Handler: _AgentsService_ChangeProxySQLExporter_Handler, - }, - { - MethodName: "ChangeQANMySQLPerfSchemaAgent", - Handler: _AgentsService_ChangeQANMySQLPerfSchemaAgent_Handler, - }, - { - MethodName: "ChangeQANMySQLSlowlogAgent", - Handler: _AgentsService_ChangeQANMySQLSlowlogAgent_Handler, - }, - { - MethodName: "ChangeQANMongoDBProfilerAgent", - Handler: _AgentsService_ChangeQANMongoDBProfilerAgent_Handler, - }, - { - MethodName: "ChangeQANPostgreSQLPgStatementsAgent", - Handler: _AgentsService_ChangeQANPostgreSQLPgStatementsAgent_Handler, - }, - { - MethodName: "ChangeQANPostgreSQLPgStatMonitorAgent", - Handler: _AgentsService_ChangeQANPostgreSQLPgStatMonitorAgent_Handler, - }, - { - MethodName: "ChangeRDSExporter", - Handler: _AgentsService_ChangeRDSExporter_Handler, - }, - { - MethodName: "ChangeExternalExporter", - Handler: _AgentsService_ChangeExternalExporter_Handler, - }, - { - MethodName: "ChangeAzureDatabaseExporter", - Handler: _AgentsService_ChangeAzureDatabaseExporter_Handler, + MethodName: "ChangeAgent", + Handler: _AgentsService_ChangeAgent_Handler, }, { MethodName: "RemoveAgent", diff --git a/api/inventory/v1/json/client/agents_service/agents_service_client.go b/api/inventory/v1/json/client/agents_service/agents_service_client.go index b32113b794..6c39740f3e 100644 --- a/api/inventory/v1/json/client/agents_service/agents_service_client.go +++ b/api/inventory/v1/json/client/agents_service/agents_service_client.go @@ -30,31 +30,7 @@ type ClientOption func(*runtime.ClientOperation) type ClientService interface { AddAgent(params *AddAgentParams, opts ...ClientOption) (*AddAgentOK, error) - ChangeAzureDatabaseExporter(params *ChangeAzureDatabaseExporterParams, opts ...ClientOption) (*ChangeAzureDatabaseExporterOK, error) - - ChangeExternalExporter(params *ChangeExternalExporterParams, opts ...ClientOption) (*ChangeExternalExporterOK, error) - - ChangeMongoDBExporter(params *ChangeMongoDBExporterParams, opts ...ClientOption) (*ChangeMongoDBExporterOK, error) - - ChangeMySQLdExporter(params *ChangeMySQLdExporterParams, opts ...ClientOption) (*ChangeMySQLdExporterOK, error) - - ChangeNodeExporter(params *ChangeNodeExporterParams, opts ...ClientOption) (*ChangeNodeExporterOK, error) - - ChangePostgresExporter(params *ChangePostgresExporterParams, opts ...ClientOption) (*ChangePostgresExporterOK, error) - - ChangeProxySQLExporter(params *ChangeProxySQLExporterParams, opts ...ClientOption) (*ChangeProxySQLExporterOK, error) - - ChangeQANMongoDBProfilerAgent(params *ChangeQANMongoDBProfilerAgentParams, opts ...ClientOption) (*ChangeQANMongoDBProfilerAgentOK, error) - - ChangeQANMySQLPerfSchemaAgent(params *ChangeQANMySQLPerfSchemaAgentParams, opts ...ClientOption) (*ChangeQANMySQLPerfSchemaAgentOK, error) - - ChangeQANMySQLSlowlogAgent(params *ChangeQANMySQLSlowlogAgentParams, opts ...ClientOption) (*ChangeQANMySQLSlowlogAgentOK, error) - - ChangeQANPostgreSQLPgStatMonitorAgent(params *ChangeQANPostgreSQLPgStatMonitorAgentParams, opts ...ClientOption) (*ChangeQANPostgreSQLPgStatMonitorAgentOK, error) - - ChangeQANPostgreSQLPgStatementsAgent(params *ChangeQANPostgreSQLPgStatementsAgentParams, opts ...ClientOption) (*ChangeQANPostgreSQLPgStatementsAgentOK, error) - - ChangeRDSExporter(params *ChangeRDSExporterParams, opts ...ClientOption) (*ChangeRDSExporterOK, error) + ChangeAgent(params *ChangeAgentParams, opts ...ClientOption) (*ChangeAgentOK, error) GetAgent(params *GetAgentParams, opts ...ClientOption) (*GetAgentOK, error) @@ -70,7 +46,7 @@ type ClientService interface { /* AddAgent adds an agent to inventory -Adds an Agent from Inventory. +Adds an Agent to Inventory. */ func (a *Client) AddAgent(params *AddAgentParams, opts ...ClientOption) (*AddAgentOK, error) { // TODO: Validate the params before sending @@ -107,492 +83,24 @@ func (a *Client) AddAgent(params *AddAgentParams, opts ...ClientOption) (*AddAge } /* -ChangeAzureDatabaseExporter changes azure database exporter - -Changes azure_database_exporter Agent. -*/ -func (a *Client) ChangeAzureDatabaseExporter(params *ChangeAzureDatabaseExporterParams, opts ...ClientOption) (*ChangeAzureDatabaseExporterOK, error) { - // TODO: Validate the params before sending - if params == nil { - params = NewChangeAzureDatabaseExporterParams() - } - op := &runtime.ClientOperation{ - ID: "ChangeAzureDatabaseExporter", - Method: "POST", - PathPattern: "/v1/inventory/Agents/ChangeAzureDatabaseExporter", - ProducesMediaTypes: []string{"application/json"}, - ConsumesMediaTypes: []string{"application/json"}, - Schemes: []string{"http", "https"}, - Params: params, - Reader: &ChangeAzureDatabaseExporterReader{formats: a.formats}, - Context: params.Context, - Client: params.HTTPClient, - } - for _, opt := range opts { - opt(op) - } - - result, err := a.transport.Submit(op) - if err != nil { - return nil, err - } - success, ok := result.(*ChangeAzureDatabaseExporterOK) - if ok { - return success, nil - } - // unexpected success response - unexpectedSuccess := result.(*ChangeAzureDatabaseExporterDefault) - return nil, runtime.NewAPIError("unexpected success response: content available as default response in error", unexpectedSuccess, unexpectedSuccess.Code()) -} - -/* -ChangeExternalExporter changes external exporter - -Changes external_exporter Agent. -*/ -func (a *Client) ChangeExternalExporter(params *ChangeExternalExporterParams, opts ...ClientOption) (*ChangeExternalExporterOK, error) { - // TODO: Validate the params before sending - if params == nil { - params = NewChangeExternalExporterParams() - } - op := &runtime.ClientOperation{ - ID: "ChangeExternalExporter", - Method: "POST", - PathPattern: "/v1/inventory/Agents/ChangeExternalExporter", - ProducesMediaTypes: []string{"application/json"}, - ConsumesMediaTypes: []string{"application/json"}, - Schemes: []string{"http", "https"}, - Params: params, - Reader: &ChangeExternalExporterReader{formats: a.formats}, - Context: params.Context, - Client: params.HTTPClient, - } - for _, opt := range opts { - opt(op) - } - - result, err := a.transport.Submit(op) - if err != nil { - return nil, err - } - success, ok := result.(*ChangeExternalExporterOK) - if ok { - return success, nil - } - // unexpected success response - unexpectedSuccess := result.(*ChangeExternalExporterDefault) - return nil, runtime.NewAPIError("unexpected success response: content available as default response in error", unexpectedSuccess, unexpectedSuccess.Code()) -} - -/* -ChangeMongoDBExporter changes mongo DB exporter - -Changes mongodb_exporter Agent. -*/ -func (a *Client) ChangeMongoDBExporter(params *ChangeMongoDBExporterParams, opts ...ClientOption) (*ChangeMongoDBExporterOK, error) { - // TODO: Validate the params before sending - if params == nil { - params = NewChangeMongoDBExporterParams() - } - op := &runtime.ClientOperation{ - ID: "ChangeMongoDBExporter", - Method: "POST", - PathPattern: "/v1/inventory/Agents/ChangeMongoDBExporter", - ProducesMediaTypes: []string{"application/json"}, - ConsumesMediaTypes: []string{"application/json"}, - Schemes: []string{"http", "https"}, - Params: params, - Reader: &ChangeMongoDBExporterReader{formats: a.formats}, - Context: params.Context, - Client: params.HTTPClient, - } - for _, opt := range opts { - opt(op) - } - - result, err := a.transport.Submit(op) - if err != nil { - return nil, err - } - success, ok := result.(*ChangeMongoDBExporterOK) - if ok { - return success, nil - } - // unexpected success response - unexpectedSuccess := result.(*ChangeMongoDBExporterDefault) - return nil, runtime.NewAPIError("unexpected success response: content available as default response in error", unexpectedSuccess, unexpectedSuccess.Code()) -} - -/* -ChangeMySQLdExporter changes mysqld exporter - -Changes mysqld_exporter Agent. -*/ -func (a *Client) ChangeMySQLdExporter(params *ChangeMySQLdExporterParams, opts ...ClientOption) (*ChangeMySQLdExporterOK, error) { - // TODO: Validate the params before sending - if params == nil { - params = NewChangeMySQLdExporterParams() - } - op := &runtime.ClientOperation{ - ID: "ChangeMySQLdExporter", - Method: "POST", - PathPattern: "/v1/inventory/Agents/ChangeMySQLdExporter", - ProducesMediaTypes: []string{"application/json"}, - ConsumesMediaTypes: []string{"application/json"}, - Schemes: []string{"http", "https"}, - Params: params, - Reader: &ChangeMySQLdExporterReader{formats: a.formats}, - Context: params.Context, - Client: params.HTTPClient, - } - for _, opt := range opts { - opt(op) - } - - result, err := a.transport.Submit(op) - if err != nil { - return nil, err - } - success, ok := result.(*ChangeMySQLdExporterOK) - if ok { - return success, nil - } - // unexpected success response - unexpectedSuccess := result.(*ChangeMySQLdExporterDefault) - return nil, runtime.NewAPIError("unexpected success response: content available as default response in error", unexpectedSuccess, unexpectedSuccess.Code()) -} - -/* -ChangeNodeExporter changes node exporter - -Changes node_exporter Agent. -*/ -func (a *Client) ChangeNodeExporter(params *ChangeNodeExporterParams, opts ...ClientOption) (*ChangeNodeExporterOK, error) { - // TODO: Validate the params before sending - if params == nil { - params = NewChangeNodeExporterParams() - } - op := &runtime.ClientOperation{ - ID: "ChangeNodeExporter", - Method: "POST", - PathPattern: "/v1/inventory/Agents/ChangeNodeExporter", - ProducesMediaTypes: []string{"application/json"}, - ConsumesMediaTypes: []string{"application/json"}, - Schemes: []string{"http", "https"}, - Params: params, - Reader: &ChangeNodeExporterReader{formats: a.formats}, - Context: params.Context, - Client: params.HTTPClient, - } - for _, opt := range opts { - opt(op) - } - - result, err := a.transport.Submit(op) - if err != nil { - return nil, err - } - success, ok := result.(*ChangeNodeExporterOK) - if ok { - return success, nil - } - // unexpected success response - unexpectedSuccess := result.(*ChangeNodeExporterDefault) - return nil, runtime.NewAPIError("unexpected success response: content available as default response in error", unexpectedSuccess, unexpectedSuccess.Code()) -} - -/* -ChangePostgresExporter changes postgres exporter - -Changes postgres_exporter Agent. -*/ -func (a *Client) ChangePostgresExporter(params *ChangePostgresExporterParams, opts ...ClientOption) (*ChangePostgresExporterOK, error) { - // TODO: Validate the params before sending - if params == nil { - params = NewChangePostgresExporterParams() - } - op := &runtime.ClientOperation{ - ID: "ChangePostgresExporter", - Method: "POST", - PathPattern: "/v1/inventory/Agents/ChangePostgresExporter", - ProducesMediaTypes: []string{"application/json"}, - ConsumesMediaTypes: []string{"application/json"}, - Schemes: []string{"http", "https"}, - Params: params, - Reader: &ChangePostgresExporterReader{formats: a.formats}, - Context: params.Context, - Client: params.HTTPClient, - } - for _, opt := range opts { - opt(op) - } - - result, err := a.transport.Submit(op) - if err != nil { - return nil, err - } - success, ok := result.(*ChangePostgresExporterOK) - if ok { - return success, nil - } - // unexpected success response - unexpectedSuccess := result.(*ChangePostgresExporterDefault) - return nil, runtime.NewAPIError("unexpected success response: content available as default response in error", unexpectedSuccess, unexpectedSuccess.Code()) -} - -/* -ChangeProxySQLExporter changes proxy SQL exporter - -Changes proxysql_exporter Agent. -*/ -func (a *Client) ChangeProxySQLExporter(params *ChangeProxySQLExporterParams, opts ...ClientOption) (*ChangeProxySQLExporterOK, error) { - // TODO: Validate the params before sending - if params == nil { - params = NewChangeProxySQLExporterParams() - } - op := &runtime.ClientOperation{ - ID: "ChangeProxySQLExporter", - Method: "POST", - PathPattern: "/v1/inventory/Agents/ChangeProxySQLExporter", - ProducesMediaTypes: []string{"application/json"}, - ConsumesMediaTypes: []string{"application/json"}, - Schemes: []string{"http", "https"}, - Params: params, - Reader: &ChangeProxySQLExporterReader{formats: a.formats}, - Context: params.Context, - Client: params.HTTPClient, - } - for _, opt := range opts { - opt(op) - } - - result, err := a.transport.Submit(op) - if err != nil { - return nil, err - } - success, ok := result.(*ChangeProxySQLExporterOK) - if ok { - return success, nil - } - // unexpected success response - unexpectedSuccess := result.(*ChangeProxySQLExporterDefault) - return nil, runtime.NewAPIError("unexpected success response: content available as default response in error", unexpectedSuccess, unexpectedSuccess.Code()) -} - -/* -ChangeQANMongoDBProfilerAgent changes QAN mongo DB profiler agent - -Changes 'Query Analytics MongoDB Profiler' Agent. -*/ -func (a *Client) ChangeQANMongoDBProfilerAgent(params *ChangeQANMongoDBProfilerAgentParams, opts ...ClientOption) (*ChangeQANMongoDBProfilerAgentOK, error) { - // TODO: Validate the params before sending - if params == nil { - params = NewChangeQANMongoDBProfilerAgentParams() - } - op := &runtime.ClientOperation{ - ID: "ChangeQANMongoDBProfilerAgent", - Method: "POST", - PathPattern: "/v1/inventory/Agents/ChangeQANMongoDBProfilerAgent", - ProducesMediaTypes: []string{"application/json"}, - ConsumesMediaTypes: []string{"application/json"}, - Schemes: []string{"http", "https"}, - Params: params, - Reader: &ChangeQANMongoDBProfilerAgentReader{formats: a.formats}, - Context: params.Context, - Client: params.HTTPClient, - } - for _, opt := range opts { - opt(op) - } - - result, err := a.transport.Submit(op) - if err != nil { - return nil, err - } - success, ok := result.(*ChangeQANMongoDBProfilerAgentOK) - if ok { - return success, nil - } - // unexpected success response - unexpectedSuccess := result.(*ChangeQANMongoDBProfilerAgentDefault) - return nil, runtime.NewAPIError("unexpected success response: content available as default response in error", unexpectedSuccess, unexpectedSuccess.Code()) -} - -/* -ChangeQANMySQLPerfSchemaAgent changes QAN my SQL perf schema agent - -Changes 'Query Analytics MySQL PerfSchema' Agent. -*/ -func (a *Client) ChangeQANMySQLPerfSchemaAgent(params *ChangeQANMySQLPerfSchemaAgentParams, opts ...ClientOption) (*ChangeQANMySQLPerfSchemaAgentOK, error) { - // TODO: Validate the params before sending - if params == nil { - params = NewChangeQANMySQLPerfSchemaAgentParams() - } - op := &runtime.ClientOperation{ - ID: "ChangeQANMySQLPerfSchemaAgent", - Method: "POST", - PathPattern: "/v1/inventory/Agents/ChangeQANMySQLPerfSchemaAgent", - ProducesMediaTypes: []string{"application/json"}, - ConsumesMediaTypes: []string{"application/json"}, - Schemes: []string{"http", "https"}, - Params: params, - Reader: &ChangeQANMySQLPerfSchemaAgentReader{formats: a.formats}, - Context: params.Context, - Client: params.HTTPClient, - } - for _, opt := range opts { - opt(op) - } - - result, err := a.transport.Submit(op) - if err != nil { - return nil, err - } - success, ok := result.(*ChangeQANMySQLPerfSchemaAgentOK) - if ok { - return success, nil - } - // unexpected success response - unexpectedSuccess := result.(*ChangeQANMySQLPerfSchemaAgentDefault) - return nil, runtime.NewAPIError("unexpected success response: content available as default response in error", unexpectedSuccess, unexpectedSuccess.Code()) -} - -/* -ChangeQANMySQLSlowlogAgent changes QAN my SQL slowlog agent - -Changes 'Query Analytics MySQL Slowlog' Agent. -*/ -func (a *Client) ChangeQANMySQLSlowlogAgent(params *ChangeQANMySQLSlowlogAgentParams, opts ...ClientOption) (*ChangeQANMySQLSlowlogAgentOK, error) { - // TODO: Validate the params before sending - if params == nil { - params = NewChangeQANMySQLSlowlogAgentParams() - } - op := &runtime.ClientOperation{ - ID: "ChangeQANMySQLSlowlogAgent", - Method: "POST", - PathPattern: "/v1/inventory/Agents/ChangeQANMySQLSlowlogAgent", - ProducesMediaTypes: []string{"application/json"}, - ConsumesMediaTypes: []string{"application/json"}, - Schemes: []string{"http", "https"}, - Params: params, - Reader: &ChangeQANMySQLSlowlogAgentReader{formats: a.formats}, - Context: params.Context, - Client: params.HTTPClient, - } - for _, opt := range opts { - opt(op) - } - - result, err := a.transport.Submit(op) - if err != nil { - return nil, err - } - success, ok := result.(*ChangeQANMySQLSlowlogAgentOK) - if ok { - return success, nil - } - // unexpected success response - unexpectedSuccess := result.(*ChangeQANMySQLSlowlogAgentDefault) - return nil, runtime.NewAPIError("unexpected success response: content available as default response in error", unexpectedSuccess, unexpectedSuccess.Code()) -} - -/* -ChangeQANPostgreSQLPgStatMonitorAgent changes QAN postgre SQL pg stat monitor agent - -Changes 'Query Analytics PostgreSQL pg_stat_monitor' Agent. -*/ -func (a *Client) ChangeQANPostgreSQLPgStatMonitorAgent(params *ChangeQANPostgreSQLPgStatMonitorAgentParams, opts ...ClientOption) (*ChangeQANPostgreSQLPgStatMonitorAgentOK, error) { - // TODO: Validate the params before sending - if params == nil { - params = NewChangeQANPostgreSQLPgStatMonitorAgentParams() - } - op := &runtime.ClientOperation{ - ID: "ChangeQANPostgreSQLPgStatMonitorAgent", - Method: "POST", - PathPattern: "/v1/inventory/Agents/ChangeQANPostgreSQLPgStatMonitorAgent", - ProducesMediaTypes: []string{"application/json"}, - ConsumesMediaTypes: []string{"application/json"}, - Schemes: []string{"http", "https"}, - Params: params, - Reader: &ChangeQANPostgreSQLPgStatMonitorAgentReader{formats: a.formats}, - Context: params.Context, - Client: params.HTTPClient, - } - for _, opt := range opts { - opt(op) - } - - result, err := a.transport.Submit(op) - if err != nil { - return nil, err - } - success, ok := result.(*ChangeQANPostgreSQLPgStatMonitorAgentOK) - if ok { - return success, nil - } - // unexpected success response - unexpectedSuccess := result.(*ChangeQANPostgreSQLPgStatMonitorAgentDefault) - return nil, runtime.NewAPIError("unexpected success response: content available as default response in error", unexpectedSuccess, unexpectedSuccess.Code()) -} - -/* -ChangeQANPostgreSQLPgStatementsAgent changes QAN postgre SQL pg stat statements agent - -Changes 'Query Analytics PostgreSQL pg_stat_statements' Agent. -*/ -func (a *Client) ChangeQANPostgreSQLPgStatementsAgent(params *ChangeQANPostgreSQLPgStatementsAgentParams, opts ...ClientOption) (*ChangeQANPostgreSQLPgStatementsAgentOK, error) { - // TODO: Validate the params before sending - if params == nil { - params = NewChangeQANPostgreSQLPgStatementsAgentParams() - } - op := &runtime.ClientOperation{ - ID: "ChangeQANPostgreSQLPgStatementsAgent", - Method: "POST", - PathPattern: "/v1/inventory/Agents/ChangeQANPostgreSQLPgStatementsAgent", - ProducesMediaTypes: []string{"application/json"}, - ConsumesMediaTypes: []string{"application/json"}, - Schemes: []string{"http", "https"}, - Params: params, - Reader: &ChangeQANPostgreSQLPgStatementsAgentReader{formats: a.formats}, - Context: params.Context, - Client: params.HTTPClient, - } - for _, opt := range opts { - opt(op) - } - - result, err := a.transport.Submit(op) - if err != nil { - return nil, err - } - success, ok := result.(*ChangeQANPostgreSQLPgStatementsAgentOK) - if ok { - return success, nil - } - // unexpected success response - unexpectedSuccess := result.(*ChangeQANPostgreSQLPgStatementsAgentDefault) - return nil, runtime.NewAPIError("unexpected success response: content available as default response in error", unexpectedSuccess, unexpectedSuccess.Code()) -} - -/* -ChangeRDSExporter changes RDS exporter +ChangeAgent updates an agent in inventory -Changes rds_exporter Agent. +Updates an Agent in Inventory. */ -func (a *Client) ChangeRDSExporter(params *ChangeRDSExporterParams, opts ...ClientOption) (*ChangeRDSExporterOK, error) { +func (a *Client) ChangeAgent(params *ChangeAgentParams, opts ...ClientOption) (*ChangeAgentOK, error) { // TODO: Validate the params before sending if params == nil { - params = NewChangeRDSExporterParams() + params = NewChangeAgentParams() } op := &runtime.ClientOperation{ - ID: "ChangeRDSExporter", + ID: "ChangeAgent", Method: "POST", - PathPattern: "/v1/inventory/Agents/ChangeRDSExporter", + PathPattern: "/v1/inventory/Agents/Change", ProducesMediaTypes: []string{"application/json"}, ConsumesMediaTypes: []string{"application/json"}, Schemes: []string{"http", "https"}, Params: params, - Reader: &ChangeRDSExporterReader{formats: a.formats}, + Reader: &ChangeAgentReader{formats: a.formats}, Context: params.Context, Client: params.HTTPClient, } @@ -604,12 +112,12 @@ func (a *Client) ChangeRDSExporter(params *ChangeRDSExporterParams, opts ...Clie if err != nil { return nil, err } - success, ok := result.(*ChangeRDSExporterOK) + success, ok := result.(*ChangeAgentOK) if ok { return success, nil } // unexpected success response - unexpectedSuccess := result.(*ChangeRDSExporterDefault) + unexpectedSuccess := result.(*ChangeAgentDefault) return nil, runtime.NewAPIError("unexpected success response: content available as default response in error", unexpectedSuccess, unexpectedSuccess.Code()) } diff --git a/api/inventory/v1/json/client/agents_service/change_agent_parameters.go b/api/inventory/v1/json/client/agents_service/change_agent_parameters.go new file mode 100644 index 0000000000..8db9d854f3 --- /dev/null +++ b/api/inventory/v1/json/client/agents_service/change_agent_parameters.go @@ -0,0 +1,144 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package agents_service + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "context" + "net/http" + "time" + + "github.com/go-openapi/errors" + "github.com/go-openapi/runtime" + cr "github.com/go-openapi/runtime/client" + "github.com/go-openapi/strfmt" +) + +// NewChangeAgentParams creates a new ChangeAgentParams object, +// with the default timeout for this client. +// +// Default values are not hydrated, since defaults are normally applied by the API server side. +// +// To enforce default values in parameter, use SetDefaults or WithDefaults. +func NewChangeAgentParams() *ChangeAgentParams { + return &ChangeAgentParams{ + timeout: cr.DefaultTimeout, + } +} + +// NewChangeAgentParamsWithTimeout creates a new ChangeAgentParams object +// with the ability to set a timeout on a request. +func NewChangeAgentParamsWithTimeout(timeout time.Duration) *ChangeAgentParams { + return &ChangeAgentParams{ + timeout: timeout, + } +} + +// NewChangeAgentParamsWithContext creates a new ChangeAgentParams object +// with the ability to set a context for a request. +func NewChangeAgentParamsWithContext(ctx context.Context) *ChangeAgentParams { + return &ChangeAgentParams{ + Context: ctx, + } +} + +// NewChangeAgentParamsWithHTTPClient creates a new ChangeAgentParams object +// with the ability to set a custom HTTPClient for a request. +func NewChangeAgentParamsWithHTTPClient(client *http.Client) *ChangeAgentParams { + return &ChangeAgentParams{ + HTTPClient: client, + } +} + +/* +ChangeAgentParams contains all the parameters to send to the API endpoint + + for the change agent operation. + + Typically these are written to a http.Request. +*/ +type ChangeAgentParams struct { + // Body. + Body ChangeAgentBody + + timeout time.Duration + Context context.Context + HTTPClient *http.Client +} + +// WithDefaults hydrates default values in the change agent params (not the query body). +// +// All values with no default are reset to their zero value. +func (o *ChangeAgentParams) WithDefaults() *ChangeAgentParams { + o.SetDefaults() + return o +} + +// SetDefaults hydrates default values in the change agent params (not the query body). +// +// All values with no default are reset to their zero value. +func (o *ChangeAgentParams) SetDefaults() { + // no default values defined for this parameter +} + +// WithTimeout adds the timeout to the change agent params +func (o *ChangeAgentParams) WithTimeout(timeout time.Duration) *ChangeAgentParams { + o.SetTimeout(timeout) + return o +} + +// SetTimeout adds the timeout to the change agent params +func (o *ChangeAgentParams) SetTimeout(timeout time.Duration) { + o.timeout = timeout +} + +// WithContext adds the context to the change agent params +func (o *ChangeAgentParams) WithContext(ctx context.Context) *ChangeAgentParams { + o.SetContext(ctx) + return o +} + +// SetContext adds the context to the change agent params +func (o *ChangeAgentParams) SetContext(ctx context.Context) { + o.Context = ctx +} + +// WithHTTPClient adds the HTTPClient to the change agent params +func (o *ChangeAgentParams) WithHTTPClient(client *http.Client) *ChangeAgentParams { + o.SetHTTPClient(client) + return o +} + +// SetHTTPClient adds the HTTPClient to the change agent params +func (o *ChangeAgentParams) SetHTTPClient(client *http.Client) { + o.HTTPClient = client +} + +// WithBody adds the body to the change agent params +func (o *ChangeAgentParams) WithBody(body ChangeAgentBody) *ChangeAgentParams { + o.SetBody(body) + return o +} + +// SetBody adds the body to the change agent params +func (o *ChangeAgentParams) SetBody(body ChangeAgentBody) { + o.Body = body +} + +// WriteToRequest writes these params to a swagger request +func (o *ChangeAgentParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { + if err := r.SetTimeout(o.timeout); err != nil { + return err + } + var res []error + if err := r.SetBodyParam(o.Body); err != nil { + return err + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} diff --git a/api/inventory/v1/json/client/agents_service/change_agent_responses.go b/api/inventory/v1/json/client/agents_service/change_agent_responses.go new file mode 100644 index 0000000000..2a3a8547ef --- /dev/null +++ b/api/inventory/v1/json/client/agents_service/change_agent_responses.go @@ -0,0 +1,6033 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package agents_service + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "context" + "encoding/json" + "fmt" + "io" + "strconv" + + "github.com/go-openapi/errors" + "github.com/go-openapi/runtime" + "github.com/go-openapi/strfmt" + "github.com/go-openapi/swag" + "github.com/go-openapi/validate" +) + +// ChangeAgentReader is a Reader for the ChangeAgent structure. +type ChangeAgentReader struct { + formats strfmt.Registry +} + +// ReadResponse reads a server response into the received o. +func (o *ChangeAgentReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) { + switch response.Code() { + case 200: + result := NewChangeAgentOK() + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + return result, nil + default: + result := NewChangeAgentDefault(response.Code()) + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + if response.Code()/100 == 2 { + return result, nil + } + return nil, result + } +} + +// NewChangeAgentOK creates a ChangeAgentOK with default headers values +func NewChangeAgentOK() *ChangeAgentOK { + return &ChangeAgentOK{} +} + +/* +ChangeAgentOK describes a response with status code 200, with default header values. + +A successful response. +*/ +type ChangeAgentOK struct { + Payload *ChangeAgentOKBody +} + +func (o *ChangeAgentOK) Error() string { + return fmt.Sprintf("[POST /v1/inventory/Agents/Change][%d] changeAgentOk %+v", 200, o.Payload) +} + +func (o *ChangeAgentOK) GetPayload() *ChangeAgentOKBody { + return o.Payload +} + +func (o *ChangeAgentOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + o.Payload = new(ChangeAgentOKBody) + + // response payload + if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { + return err + } + + return nil +} + +// NewChangeAgentDefault creates a ChangeAgentDefault with default headers values +func NewChangeAgentDefault(code int) *ChangeAgentDefault { + return &ChangeAgentDefault{ + _statusCode: code, + } +} + +/* +ChangeAgentDefault describes a response with status code -1, with default header values. + +An unexpected error response. +*/ +type ChangeAgentDefault struct { + _statusCode int + + Payload *ChangeAgentDefaultBody +} + +// Code gets the status code for the change agent default response +func (o *ChangeAgentDefault) Code() int { + return o._statusCode +} + +func (o *ChangeAgentDefault) Error() string { + return fmt.Sprintf("[POST /v1/inventory/Agents/Change][%d] ChangeAgent default %+v", o._statusCode, o.Payload) +} + +func (o *ChangeAgentDefault) GetPayload() *ChangeAgentDefaultBody { + return o.Payload +} + +func (o *ChangeAgentDefault) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + o.Payload = new(ChangeAgentDefaultBody) + + // response payload + if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { + return err + } + + return nil +} + +/* +ChangeAgentBody change agent body +swagger:model ChangeAgentBody +*/ +type ChangeAgentBody struct { + // azure database exporter + AzureDatabaseExporter *ChangeAgentParamsBodyAzureDatabaseExporter `json:"azure_database_exporter,omitempty"` + + // external exporter + ExternalExporter *ChangeAgentParamsBodyExternalExporter `json:"external_exporter,omitempty"` + + // mongodb exporter + MongodbExporter *ChangeAgentParamsBodyMongodbExporter `json:"mongodb_exporter,omitempty"` + + // mysqld exporter + MysqldExporter *ChangeAgentParamsBodyMysqldExporter `json:"mysqld_exporter,omitempty"` + + // node exporter + NodeExporter *ChangeAgentParamsBodyNodeExporter `json:"node_exporter,omitempty"` + + // postgres exporter + PostgresExporter *ChangeAgentParamsBodyPostgresExporter `json:"postgres_exporter,omitempty"` + + // proxysql exporter + ProxysqlExporter *ChangeAgentParamsBodyProxysqlExporter `json:"proxysql_exporter,omitempty"` + + // qan mongodb profiler agent + QANMongodbProfilerAgent *ChangeAgentParamsBodyQANMongodbProfilerAgent `json:"qan_mongodb_profiler_agent,omitempty"` + + // qan mysql perfschema agent + QANMysqlPerfschemaAgent *ChangeAgentParamsBodyQANMysqlPerfschemaAgent `json:"qan_mysql_perfschema_agent,omitempty"` + + // qan mysql slowlog agent + QANMysqlSlowlogAgent *ChangeAgentParamsBodyQANMysqlSlowlogAgent `json:"qan_mysql_slowlog_agent,omitempty"` + + // qan postgresql pgstatements agent + QANPostgresqlPgstatementsAgent *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent `json:"qan_postgresql_pgstatements_agent,omitempty"` + + // qan postgresql pgstatmonitor agent + QANPostgresqlPgstatmonitorAgent *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent `json:"qan_postgresql_pgstatmonitor_agent,omitempty"` + + // rds exporter + RDSExporter *ChangeAgentParamsBodyRDSExporter `json:"rds_exporter,omitempty"` +} + +// Validate validates this change agent body +func (o *ChangeAgentBody) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateAzureDatabaseExporter(formats); err != nil { + res = append(res, err) + } + + if err := o.validateExternalExporter(formats); err != nil { + res = append(res, err) + } + + if err := o.validateMongodbExporter(formats); err != nil { + res = append(res, err) + } + + if err := o.validateMysqldExporter(formats); err != nil { + res = append(res, err) + } + + if err := o.validateNodeExporter(formats); err != nil { + res = append(res, err) + } + + if err := o.validatePostgresExporter(formats); err != nil { + res = append(res, err) + } + + if err := o.validateProxysqlExporter(formats); err != nil { + res = append(res, err) + } + + if err := o.validateQANMongodbProfilerAgent(formats); err != nil { + res = append(res, err) + } + + if err := o.validateQANMysqlPerfschemaAgent(formats); err != nil { + res = append(res, err) + } + + if err := o.validateQANMysqlSlowlogAgent(formats); err != nil { + res = append(res, err) + } + + if err := o.validateQANPostgresqlPgstatementsAgent(formats); err != nil { + res = append(res, err) + } + + if err := o.validateQANPostgresqlPgstatmonitorAgent(formats); err != nil { + res = append(res, err) + } + + if err := o.validateRDSExporter(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentBody) validateAzureDatabaseExporter(formats strfmt.Registry) error { + if swag.IsZero(o.AzureDatabaseExporter) { // not required + return nil + } + + if o.AzureDatabaseExporter != nil { + if err := o.AzureDatabaseExporter.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "azure_database_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "azure_database_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentBody) validateExternalExporter(formats strfmt.Registry) error { + if swag.IsZero(o.ExternalExporter) { // not required + return nil + } + + if o.ExternalExporter != nil { + if err := o.ExternalExporter.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "external_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "external_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentBody) validateMongodbExporter(formats strfmt.Registry) error { + if swag.IsZero(o.MongodbExporter) { // not required + return nil + } + + if o.MongodbExporter != nil { + if err := o.MongodbExporter.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "mongodb_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "mongodb_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentBody) validateMysqldExporter(formats strfmt.Registry) error { + if swag.IsZero(o.MysqldExporter) { // not required + return nil + } + + if o.MysqldExporter != nil { + if err := o.MysqldExporter.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "mysqld_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "mysqld_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentBody) validateNodeExporter(formats strfmt.Registry) error { + if swag.IsZero(o.NodeExporter) { // not required + return nil + } + + if o.NodeExporter != nil { + if err := o.NodeExporter.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "node_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "node_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentBody) validatePostgresExporter(formats strfmt.Registry) error { + if swag.IsZero(o.PostgresExporter) { // not required + return nil + } + + if o.PostgresExporter != nil { + if err := o.PostgresExporter.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "postgres_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "postgres_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentBody) validateProxysqlExporter(formats strfmt.Registry) error { + if swag.IsZero(o.ProxysqlExporter) { // not required + return nil + } + + if o.ProxysqlExporter != nil { + if err := o.ProxysqlExporter.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "proxysql_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "proxysql_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentBody) validateQANMongodbProfilerAgent(formats strfmt.Registry) error { + if swag.IsZero(o.QANMongodbProfilerAgent) { // not required + return nil + } + + if o.QANMongodbProfilerAgent != nil { + if err := o.QANMongodbProfilerAgent.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_mongodb_profiler_agent") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_mongodb_profiler_agent") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentBody) validateQANMysqlPerfschemaAgent(formats strfmt.Registry) error { + if swag.IsZero(o.QANMysqlPerfschemaAgent) { // not required + return nil + } + + if o.QANMysqlPerfschemaAgent != nil { + if err := o.QANMysqlPerfschemaAgent.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_mysql_perfschema_agent") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_mysql_perfschema_agent") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentBody) validateQANMysqlSlowlogAgent(formats strfmt.Registry) error { + if swag.IsZero(o.QANMysqlSlowlogAgent) { // not required + return nil + } + + if o.QANMysqlSlowlogAgent != nil { + if err := o.QANMysqlSlowlogAgent.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_mysql_slowlog_agent") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_mysql_slowlog_agent") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentBody) validateQANPostgresqlPgstatementsAgent(formats strfmt.Registry) error { + if swag.IsZero(o.QANPostgresqlPgstatementsAgent) { // not required + return nil + } + + if o.QANPostgresqlPgstatementsAgent != nil { + if err := o.QANPostgresqlPgstatementsAgent.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentBody) validateQANPostgresqlPgstatmonitorAgent(formats strfmt.Registry) error { + if swag.IsZero(o.QANPostgresqlPgstatmonitorAgent) { // not required + return nil + } + + if o.QANPostgresqlPgstatmonitorAgent != nil { + if err := o.QANPostgresqlPgstatmonitorAgent.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentBody) validateRDSExporter(formats strfmt.Registry) error { + if swag.IsZero(o.RDSExporter) { // not required + return nil + } + + if o.RDSExporter != nil { + if err := o.RDSExporter.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "rds_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "rds_exporter") + } + return err + } + } + + return nil +} + +// ContextValidate validate this change agent body based on the context it is used +func (o *ChangeAgentBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateAzureDatabaseExporter(ctx, formats); err != nil { + res = append(res, err) + } + + if err := o.contextValidateExternalExporter(ctx, formats); err != nil { + res = append(res, err) + } + + if err := o.contextValidateMongodbExporter(ctx, formats); err != nil { + res = append(res, err) + } + + if err := o.contextValidateMysqldExporter(ctx, formats); err != nil { + res = append(res, err) + } + + if err := o.contextValidateNodeExporter(ctx, formats); err != nil { + res = append(res, err) + } + + if err := o.contextValidatePostgresExporter(ctx, formats); err != nil { + res = append(res, err) + } + + if err := o.contextValidateProxysqlExporter(ctx, formats); err != nil { + res = append(res, err) + } + + if err := o.contextValidateQANMongodbProfilerAgent(ctx, formats); err != nil { + res = append(res, err) + } + + if err := o.contextValidateQANMysqlPerfschemaAgent(ctx, formats); err != nil { + res = append(res, err) + } + + if err := o.contextValidateQANMysqlSlowlogAgent(ctx, formats); err != nil { + res = append(res, err) + } + + if err := o.contextValidateQANPostgresqlPgstatementsAgent(ctx, formats); err != nil { + res = append(res, err) + } + + if err := o.contextValidateQANPostgresqlPgstatmonitorAgent(ctx, formats); err != nil { + res = append(res, err) + } + + if err := o.contextValidateRDSExporter(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentBody) contextValidateAzureDatabaseExporter(ctx context.Context, formats strfmt.Registry) error { + if o.AzureDatabaseExporter != nil { + if err := o.AzureDatabaseExporter.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "azure_database_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "azure_database_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentBody) contextValidateExternalExporter(ctx context.Context, formats strfmt.Registry) error { + if o.ExternalExporter != nil { + if err := o.ExternalExporter.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "external_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "external_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentBody) contextValidateMongodbExporter(ctx context.Context, formats strfmt.Registry) error { + if o.MongodbExporter != nil { + if err := o.MongodbExporter.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "mongodb_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "mongodb_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentBody) contextValidateMysqldExporter(ctx context.Context, formats strfmt.Registry) error { + if o.MysqldExporter != nil { + if err := o.MysqldExporter.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "mysqld_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "mysqld_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentBody) contextValidateNodeExporter(ctx context.Context, formats strfmt.Registry) error { + if o.NodeExporter != nil { + if err := o.NodeExporter.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "node_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "node_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentBody) contextValidatePostgresExporter(ctx context.Context, formats strfmt.Registry) error { + if o.PostgresExporter != nil { + if err := o.PostgresExporter.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "postgres_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "postgres_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentBody) contextValidateProxysqlExporter(ctx context.Context, formats strfmt.Registry) error { + if o.ProxysqlExporter != nil { + if err := o.ProxysqlExporter.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "proxysql_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "proxysql_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentBody) contextValidateQANMongodbProfilerAgent(ctx context.Context, formats strfmt.Registry) error { + if o.QANMongodbProfilerAgent != nil { + if err := o.QANMongodbProfilerAgent.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_mongodb_profiler_agent") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_mongodb_profiler_agent") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentBody) contextValidateQANMysqlPerfschemaAgent(ctx context.Context, formats strfmt.Registry) error { + if o.QANMysqlPerfschemaAgent != nil { + if err := o.QANMysqlPerfschemaAgent.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_mysql_perfschema_agent") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_mysql_perfschema_agent") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentBody) contextValidateQANMysqlSlowlogAgent(ctx context.Context, formats strfmt.Registry) error { + if o.QANMysqlSlowlogAgent != nil { + if err := o.QANMysqlSlowlogAgent.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_mysql_slowlog_agent") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_mysql_slowlog_agent") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentBody) contextValidateQANPostgresqlPgstatementsAgent(ctx context.Context, formats strfmt.Registry) error { + if o.QANPostgresqlPgstatementsAgent != nil { + if err := o.QANPostgresqlPgstatementsAgent.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentBody) contextValidateQANPostgresqlPgstatmonitorAgent(ctx context.Context, formats strfmt.Registry) error { + if o.QANPostgresqlPgstatmonitorAgent != nil { + if err := o.QANPostgresqlPgstatmonitorAgent.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentBody) contextValidateRDSExporter(ctx context.Context, formats strfmt.Registry) error { + if o.RDSExporter != nil { + if err := o.RDSExporter.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "rds_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "rds_exporter") + } + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentBody) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentBody) UnmarshalBinary(b []byte) error { + var res ChangeAgentBody + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentDefaultBody change agent default body +swagger:model ChangeAgentDefaultBody +*/ +type ChangeAgentDefaultBody struct { + // code + Code int32 `json:"code,omitempty"` + + // message + Message string `json:"message,omitempty"` + + // details + Details []*ChangeAgentDefaultBodyDetailsItems0 `json:"details"` +} + +// Validate validates this change agent default body +func (o *ChangeAgentDefaultBody) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateDetails(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentDefaultBody) validateDetails(formats strfmt.Registry) error { + if swag.IsZero(o.Details) { // not required + return nil + } + + for i := 0; i < len(o.Details); i++ { + if swag.IsZero(o.Details[i]) { // not required + continue + } + + if o.Details[i] != nil { + if err := o.Details[i].Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("ChangeAgent default" + "." + "details" + "." + strconv.Itoa(i)) + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("ChangeAgent default" + "." + "details" + "." + strconv.Itoa(i)) + } + return err + } + } + + } + + return nil +} + +// ContextValidate validate this change agent default body based on the context it is used +func (o *ChangeAgentDefaultBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateDetails(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentDefaultBody) contextValidateDetails(ctx context.Context, formats strfmt.Registry) error { + for i := 0; i < len(o.Details); i++ { + if o.Details[i] != nil { + if err := o.Details[i].ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("ChangeAgent default" + "." + "details" + "." + strconv.Itoa(i)) + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("ChangeAgent default" + "." + "details" + "." + strconv.Itoa(i)) + } + return err + } + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentDefaultBody) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentDefaultBody) UnmarshalBinary(b []byte) error { + var res ChangeAgentDefaultBody + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentDefaultBodyDetailsItems0 change agent default body details items0 +swagger:model ChangeAgentDefaultBodyDetailsItems0 +*/ +type ChangeAgentDefaultBodyDetailsItems0 struct { + // at type + AtType string `json:"@type,omitempty"` +} + +// Validate validates this change agent default body details items0 +func (o *ChangeAgentDefaultBodyDetailsItems0) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent default body details items0 based on context it is used +func (o *ChangeAgentDefaultBodyDetailsItems0) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentDefaultBodyDetailsItems0) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentDefaultBodyDetailsItems0) UnmarshalBinary(b []byte) error { + var res ChangeAgentDefaultBodyDetailsItems0 + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentOKBody change agent OK body +swagger:model ChangeAgentOKBody +*/ +type ChangeAgentOKBody struct { + // Actual table count for SQL databases at the moment of adding. + TableCount int32 `json:"table_count,omitempty"` + + // azure database exporter + AzureDatabaseExporter *ChangeAgentOKBodyAzureDatabaseExporter `json:"azure_database_exporter,omitempty"` + + // external exporter + ExternalExporter *ChangeAgentOKBodyExternalExporter `json:"external_exporter,omitempty"` + + // mongodb exporter + MongodbExporter *ChangeAgentOKBodyMongodbExporter `json:"mongodb_exporter,omitempty"` + + // mysqld exporter + MysqldExporter *ChangeAgentOKBodyMysqldExporter `json:"mysqld_exporter,omitempty"` + + // node exporter + NodeExporter *ChangeAgentOKBodyNodeExporter `json:"node_exporter,omitempty"` + + // postgres exporter + PostgresExporter *ChangeAgentOKBodyPostgresExporter `json:"postgres_exporter,omitempty"` + + // proxysql exporter + ProxysqlExporter *ChangeAgentOKBodyProxysqlExporter `json:"proxysql_exporter,omitempty"` + + // qan mongodb profiler agent + QANMongodbProfilerAgent *ChangeAgentOKBodyQANMongodbProfilerAgent `json:"qan_mongodb_profiler_agent,omitempty"` + + // qan mysql perfschema agent + QANMysqlPerfschemaAgent *ChangeAgentOKBodyQANMysqlPerfschemaAgent `json:"qan_mysql_perfschema_agent,omitempty"` + + // qan mysql slowlog agent + QANMysqlSlowlogAgent *ChangeAgentOKBodyQANMysqlSlowlogAgent `json:"qan_mysql_slowlog_agent,omitempty"` + + // qan postgresql pgstatements agent + QANPostgresqlPgstatementsAgent *ChangeAgentOKBodyQANPostgresqlPgstatementsAgent `json:"qan_postgresql_pgstatements_agent,omitempty"` + + // qan postgresql pgstatmonitor agent + QANPostgresqlPgstatmonitorAgent *ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgent `json:"qan_postgresql_pgstatmonitor_agent,omitempty"` + + // rds exporter + RDSExporter *ChangeAgentOKBodyRDSExporter `json:"rds_exporter,omitempty"` +} + +// Validate validates this change agent OK body +func (o *ChangeAgentOKBody) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateAzureDatabaseExporter(formats); err != nil { + res = append(res, err) + } + + if err := o.validateExternalExporter(formats); err != nil { + res = append(res, err) + } + + if err := o.validateMongodbExporter(formats); err != nil { + res = append(res, err) + } + + if err := o.validateMysqldExporter(formats); err != nil { + res = append(res, err) + } + + if err := o.validateNodeExporter(formats); err != nil { + res = append(res, err) + } + + if err := o.validatePostgresExporter(formats); err != nil { + res = append(res, err) + } + + if err := o.validateProxysqlExporter(formats); err != nil { + res = append(res, err) + } + + if err := o.validateQANMongodbProfilerAgent(formats); err != nil { + res = append(res, err) + } + + if err := o.validateQANMysqlPerfschemaAgent(formats); err != nil { + res = append(res, err) + } + + if err := o.validateQANMysqlSlowlogAgent(formats); err != nil { + res = append(res, err) + } + + if err := o.validateQANPostgresqlPgstatementsAgent(formats); err != nil { + res = append(res, err) + } + + if err := o.validateQANPostgresqlPgstatmonitorAgent(formats); err != nil { + res = append(res, err) + } + + if err := o.validateRDSExporter(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentOKBody) validateAzureDatabaseExporter(formats strfmt.Registry) error { + if swag.IsZero(o.AzureDatabaseExporter) { // not required + return nil + } + + if o.AzureDatabaseExporter != nil { + if err := o.AzureDatabaseExporter.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "azure_database_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "azure_database_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentOKBody) validateExternalExporter(formats strfmt.Registry) error { + if swag.IsZero(o.ExternalExporter) { // not required + return nil + } + + if o.ExternalExporter != nil { + if err := o.ExternalExporter.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "external_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "external_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentOKBody) validateMongodbExporter(formats strfmt.Registry) error { + if swag.IsZero(o.MongodbExporter) { // not required + return nil + } + + if o.MongodbExporter != nil { + if err := o.MongodbExporter.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "mongodb_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "mongodb_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentOKBody) validateMysqldExporter(formats strfmt.Registry) error { + if swag.IsZero(o.MysqldExporter) { // not required + return nil + } + + if o.MysqldExporter != nil { + if err := o.MysqldExporter.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "mysqld_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "mysqld_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentOKBody) validateNodeExporter(formats strfmt.Registry) error { + if swag.IsZero(o.NodeExporter) { // not required + return nil + } + + if o.NodeExporter != nil { + if err := o.NodeExporter.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "node_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "node_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentOKBody) validatePostgresExporter(formats strfmt.Registry) error { + if swag.IsZero(o.PostgresExporter) { // not required + return nil + } + + if o.PostgresExporter != nil { + if err := o.PostgresExporter.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "postgres_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "postgres_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentOKBody) validateProxysqlExporter(formats strfmt.Registry) error { + if swag.IsZero(o.ProxysqlExporter) { // not required + return nil + } + + if o.ProxysqlExporter != nil { + if err := o.ProxysqlExporter.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "proxysql_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "proxysql_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentOKBody) validateQANMongodbProfilerAgent(formats strfmt.Registry) error { + if swag.IsZero(o.QANMongodbProfilerAgent) { // not required + return nil + } + + if o.QANMongodbProfilerAgent != nil { + if err := o.QANMongodbProfilerAgent.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "qan_mongodb_profiler_agent") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "qan_mongodb_profiler_agent") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentOKBody) validateQANMysqlPerfschemaAgent(formats strfmt.Registry) error { + if swag.IsZero(o.QANMysqlPerfschemaAgent) { // not required + return nil + } + + if o.QANMysqlPerfschemaAgent != nil { + if err := o.QANMysqlPerfschemaAgent.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "qan_mysql_perfschema_agent") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "qan_mysql_perfschema_agent") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentOKBody) validateQANMysqlSlowlogAgent(formats strfmt.Registry) error { + if swag.IsZero(o.QANMysqlSlowlogAgent) { // not required + return nil + } + + if o.QANMysqlSlowlogAgent != nil { + if err := o.QANMysqlSlowlogAgent.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "qan_mysql_slowlog_agent") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "qan_mysql_slowlog_agent") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentOKBody) validateQANPostgresqlPgstatementsAgent(formats strfmt.Registry) error { + if swag.IsZero(o.QANPostgresqlPgstatementsAgent) { // not required + return nil + } + + if o.QANPostgresqlPgstatementsAgent != nil { + if err := o.QANPostgresqlPgstatementsAgent.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "qan_postgresql_pgstatements_agent") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "qan_postgresql_pgstatements_agent") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentOKBody) validateQANPostgresqlPgstatmonitorAgent(formats strfmt.Registry) error { + if swag.IsZero(o.QANPostgresqlPgstatmonitorAgent) { // not required + return nil + } + + if o.QANPostgresqlPgstatmonitorAgent != nil { + if err := o.QANPostgresqlPgstatmonitorAgent.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "qan_postgresql_pgstatmonitor_agent") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "qan_postgresql_pgstatmonitor_agent") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentOKBody) validateRDSExporter(formats strfmt.Registry) error { + if swag.IsZero(o.RDSExporter) { // not required + return nil + } + + if o.RDSExporter != nil { + if err := o.RDSExporter.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "rds_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "rds_exporter") + } + return err + } + } + + return nil +} + +// ContextValidate validate this change agent OK body based on the context it is used +func (o *ChangeAgentOKBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateAzureDatabaseExporter(ctx, formats); err != nil { + res = append(res, err) + } + + if err := o.contextValidateExternalExporter(ctx, formats); err != nil { + res = append(res, err) + } + + if err := o.contextValidateMongodbExporter(ctx, formats); err != nil { + res = append(res, err) + } + + if err := o.contextValidateMysqldExporter(ctx, formats); err != nil { + res = append(res, err) + } + + if err := o.contextValidateNodeExporter(ctx, formats); err != nil { + res = append(res, err) + } + + if err := o.contextValidatePostgresExporter(ctx, formats); err != nil { + res = append(res, err) + } + + if err := o.contextValidateProxysqlExporter(ctx, formats); err != nil { + res = append(res, err) + } + + if err := o.contextValidateQANMongodbProfilerAgent(ctx, formats); err != nil { + res = append(res, err) + } + + if err := o.contextValidateQANMysqlPerfschemaAgent(ctx, formats); err != nil { + res = append(res, err) + } + + if err := o.contextValidateQANMysqlSlowlogAgent(ctx, formats); err != nil { + res = append(res, err) + } + + if err := o.contextValidateQANPostgresqlPgstatementsAgent(ctx, formats); err != nil { + res = append(res, err) + } + + if err := o.contextValidateQANPostgresqlPgstatmonitorAgent(ctx, formats); err != nil { + res = append(res, err) + } + + if err := o.contextValidateRDSExporter(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentOKBody) contextValidateAzureDatabaseExporter(ctx context.Context, formats strfmt.Registry) error { + if o.AzureDatabaseExporter != nil { + if err := o.AzureDatabaseExporter.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "azure_database_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "azure_database_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentOKBody) contextValidateExternalExporter(ctx context.Context, formats strfmt.Registry) error { + if o.ExternalExporter != nil { + if err := o.ExternalExporter.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "external_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "external_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentOKBody) contextValidateMongodbExporter(ctx context.Context, formats strfmt.Registry) error { + if o.MongodbExporter != nil { + if err := o.MongodbExporter.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "mongodb_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "mongodb_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentOKBody) contextValidateMysqldExporter(ctx context.Context, formats strfmt.Registry) error { + if o.MysqldExporter != nil { + if err := o.MysqldExporter.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "mysqld_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "mysqld_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentOKBody) contextValidateNodeExporter(ctx context.Context, formats strfmt.Registry) error { + if o.NodeExporter != nil { + if err := o.NodeExporter.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "node_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "node_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentOKBody) contextValidatePostgresExporter(ctx context.Context, formats strfmt.Registry) error { + if o.PostgresExporter != nil { + if err := o.PostgresExporter.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "postgres_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "postgres_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentOKBody) contextValidateProxysqlExporter(ctx context.Context, formats strfmt.Registry) error { + if o.ProxysqlExporter != nil { + if err := o.ProxysqlExporter.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "proxysql_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "proxysql_exporter") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentOKBody) contextValidateQANMongodbProfilerAgent(ctx context.Context, formats strfmt.Registry) error { + if o.QANMongodbProfilerAgent != nil { + if err := o.QANMongodbProfilerAgent.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "qan_mongodb_profiler_agent") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "qan_mongodb_profiler_agent") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentOKBody) contextValidateQANMysqlPerfschemaAgent(ctx context.Context, formats strfmt.Registry) error { + if o.QANMysqlPerfschemaAgent != nil { + if err := o.QANMysqlPerfschemaAgent.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "qan_mysql_perfschema_agent") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "qan_mysql_perfschema_agent") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentOKBody) contextValidateQANMysqlSlowlogAgent(ctx context.Context, formats strfmt.Registry) error { + if o.QANMysqlSlowlogAgent != nil { + if err := o.QANMysqlSlowlogAgent.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "qan_mysql_slowlog_agent") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "qan_mysql_slowlog_agent") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentOKBody) contextValidateQANPostgresqlPgstatementsAgent(ctx context.Context, formats strfmt.Registry) error { + if o.QANPostgresqlPgstatementsAgent != nil { + if err := o.QANPostgresqlPgstatementsAgent.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "qan_postgresql_pgstatements_agent") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "qan_postgresql_pgstatements_agent") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentOKBody) contextValidateQANPostgresqlPgstatmonitorAgent(ctx context.Context, formats strfmt.Registry) error { + if o.QANPostgresqlPgstatmonitorAgent != nil { + if err := o.QANPostgresqlPgstatmonitorAgent.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "qan_postgresql_pgstatmonitor_agent") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "qan_postgresql_pgstatmonitor_agent") + } + return err + } + } + + return nil +} + +func (o *ChangeAgentOKBody) contextValidateRDSExporter(ctx context.Context, formats strfmt.Registry) error { + if o.RDSExporter != nil { + if err := o.RDSExporter.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("changeAgentOk" + "." + "rds_exporter") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("changeAgentOk" + "." + "rds_exporter") + } + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentOKBody) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentOKBody) UnmarshalBinary(b []byte) error { + var res ChangeAgentOKBody + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentOKBodyAzureDatabaseExporter AzureDatabaseExporter runs on Generic or Container Node and exposes RemoteAzure Node metrics. +swagger:model ChangeAgentOKBodyAzureDatabaseExporter +*/ +type ChangeAgentOKBodyAzureDatabaseExporter struct { + // Unique randomly generated instance identifier. + AgentID string `json:"agent_id,omitempty"` + + // The pmm-agent identifier which runs this instance. + PMMAgentID string `json:"pmm_agent_id,omitempty"` + + // Desired Agent status: enabled (false) or disabled (true). + Disabled bool `json:"disabled,omitempty"` + + // Node identifier. + NodeID string `json:"node_id,omitempty"` + + // Azure database subscription ID. + AzureDatabaseSubscriptionID string `json:"azure_database_subscription_id,omitempty"` + + // Azure database resource type (mysql, maria, postgres) + AzureDatabaseResourceType string `json:"azure_database_resource_type,omitempty"` + + // Custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // AgentStatus represents actual Agent status. + // + // - AGENT_STATUS_STARTING: Agent is starting. + // - AGENT_STATUS_RUNNING: Agent is running. + // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. + // - AGENT_STATUS_STOPPING: Agent is stopping. + // - AGENT_STATUS_DONE: Agent finished. + // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. + // Enum: [AGENT_STATUS_UNSPECIFIED AGENT_STATUS_STARTING AGENT_STATUS_RUNNING AGENT_STATUS_WAITING AGENT_STATUS_STOPPING AGENT_STATUS_DONE AGENT_STATUS_UNKNOWN] + Status *string `json:"status,omitempty"` + + // Listen port for scraping metrics (the same for several configurations). + ListenPort int64 `json:"listen_port,omitempty"` + + // True if the exporter operates in push metrics mode. + PushMetricsEnabled bool `json:"push_metrics_enabled,omitempty"` + + // Path to exec process. + ProcessExecPath string `json:"process_exec_path,omitempty"` + + // Log level for exporters + // + // - LOG_LEVEL_UNSPECIFIED: Auto + // Enum: [LOG_LEVEL_UNSPECIFIED LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARN LOG_LEVEL_INFO LOG_LEVEL_DEBUG] + LogLevel *string `json:"log_level,omitempty"` +} + +// Validate validates this change agent OK body azure database exporter +func (o *ChangeAgentOKBodyAzureDatabaseExporter) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateStatus(formats); err != nil { + res = append(res, err) + } + + if err := o.validateLogLevel(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +var changeAgentOkBodyAzureDatabaseExporterTypeStatusPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyAzureDatabaseExporterTypeStatusPropEnum = append(changeAgentOkBodyAzureDatabaseExporterTypeStatusPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyAzureDatabaseExporterStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" + ChangeAgentOKBodyAzureDatabaseExporterStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" + + // ChangeAgentOKBodyAzureDatabaseExporterStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" + ChangeAgentOKBodyAzureDatabaseExporterStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" + + // ChangeAgentOKBodyAzureDatabaseExporterStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" + ChangeAgentOKBodyAzureDatabaseExporterStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" + + // ChangeAgentOKBodyAzureDatabaseExporterStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" + ChangeAgentOKBodyAzureDatabaseExporterStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" + + // ChangeAgentOKBodyAzureDatabaseExporterStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" + ChangeAgentOKBodyAzureDatabaseExporterStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" + + // ChangeAgentOKBodyAzureDatabaseExporterStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" + ChangeAgentOKBodyAzureDatabaseExporterStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" + + // ChangeAgentOKBodyAzureDatabaseExporterStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" + ChangeAgentOKBodyAzureDatabaseExporterStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" +) + +// prop value enum +func (o *ChangeAgentOKBodyAzureDatabaseExporter) validateStatusEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyAzureDatabaseExporterTypeStatusPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyAzureDatabaseExporter) validateStatus(formats strfmt.Registry) error { + if swag.IsZero(o.Status) { // not required + return nil + } + + // value enum + if err := o.validateStatusEnum("changeAgentOk"+"."+"azure_database_exporter"+"."+"status", "body", *o.Status); err != nil { + return err + } + + return nil +} + +var changeAgentOkBodyAzureDatabaseExporterTypeLogLevelPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyAzureDatabaseExporterTypeLogLevelPropEnum = append(changeAgentOkBodyAzureDatabaseExporterTypeLogLevelPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyAzureDatabaseExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentOKBodyAzureDatabaseExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + + // ChangeAgentOKBodyAzureDatabaseExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentOKBodyAzureDatabaseExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + + // ChangeAgentOKBodyAzureDatabaseExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentOKBodyAzureDatabaseExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + + // ChangeAgentOKBodyAzureDatabaseExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentOKBodyAzureDatabaseExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + + // ChangeAgentOKBodyAzureDatabaseExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentOKBodyAzureDatabaseExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + + // ChangeAgentOKBodyAzureDatabaseExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentOKBodyAzureDatabaseExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" +) + +// prop value enum +func (o *ChangeAgentOKBodyAzureDatabaseExporter) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyAzureDatabaseExporterTypeLogLevelPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyAzureDatabaseExporter) validateLogLevel(formats strfmt.Registry) error { + if swag.IsZero(o.LogLevel) { // not required + return nil + } + + // value enum + if err := o.validateLogLevelEnum("changeAgentOk"+"."+"azure_database_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { + return err + } + + return nil +} + +// ContextValidate validates this change agent OK body azure database exporter based on context it is used +func (o *ChangeAgentOKBodyAzureDatabaseExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentOKBodyAzureDatabaseExporter) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentOKBodyAzureDatabaseExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentOKBodyAzureDatabaseExporter + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentOKBodyExternalExporter ExternalExporter runs on any Node type, including Remote Node. +swagger:model ChangeAgentOKBodyExternalExporter +*/ +type ChangeAgentOKBodyExternalExporter struct { + // Unique randomly generated instance identifier. + AgentID string `json:"agent_id,omitempty"` + + // Node identifier where this instance runs. + RunsOnNodeID string `json:"runs_on_node_id,omitempty"` + + // If disabled, metrics from this exporter will not be collected. + Disabled bool `json:"disabled,omitempty"` + + // Service identifier. + ServiceID string `json:"service_id,omitempty"` + + // HTTP basic auth username for collecting metrics. + Username string `json:"username,omitempty"` + + // Scheme to generate URI to exporter metrics endpoints. + Scheme string `json:"scheme,omitempty"` + + // Path under which metrics are exposed, used to generate URI. + MetricsPath string `json:"metrics_path,omitempty"` + + // Custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // Listen port for scraping metrics. + ListenPort int64 `json:"listen_port,omitempty"` + + // True if exporter uses push metrics mode. + PushMetricsEnabled bool `json:"push_metrics_enabled,omitempty"` + + // Path to exec process. + ProcessExecPath string `json:"process_exec_path,omitempty"` +} + +// Validate validates this change agent OK body external exporter +func (o *ChangeAgentOKBodyExternalExporter) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent OK body external exporter based on context it is used +func (o *ChangeAgentOKBodyExternalExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentOKBodyExternalExporter) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentOKBodyExternalExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentOKBodyExternalExporter + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentOKBodyMongodbExporter MongoDBExporter runs on Generic or Container Node and exposes MongoDB Service metrics. +swagger:model ChangeAgentOKBodyMongodbExporter +*/ +type ChangeAgentOKBodyMongodbExporter struct { + // Unique randomly generated instance identifier. + AgentID string `json:"agent_id,omitempty"` + + // The pmm-agent identifier which runs this instance. + PMMAgentID string `json:"pmm_agent_id,omitempty"` + + // Desired Agent status: enabled (false) or disabled (true). + Disabled bool `json:"disabled,omitempty"` + + // Service identifier. + ServiceID string `json:"service_id,omitempty"` + + // MongoDB username for scraping metrics. + Username string `json:"username,omitempty"` + + // Use TLS for database connections. + TLS bool `json:"tls,omitempty"` + + // Skip TLS certificate and hostname validation. + TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` + + // Custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // True if exporter uses push metrics mode. + PushMetricsEnabled bool `json:"push_metrics_enabled,omitempty"` + + // List of disabled collector names. + DisabledCollectors []string `json:"disabled_collectors"` + + // AgentStatus represents actual Agent status. + // + // - AGENT_STATUS_STARTING: Agent is starting. + // - AGENT_STATUS_RUNNING: Agent is running. + // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. + // - AGENT_STATUS_STOPPING: Agent is stopping. + // - AGENT_STATUS_DONE: Agent finished. + // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. + // Enum: [AGENT_STATUS_UNSPECIFIED AGENT_STATUS_STARTING AGENT_STATUS_RUNNING AGENT_STATUS_WAITING AGENT_STATUS_STOPPING AGENT_STATUS_DONE AGENT_STATUS_UNKNOWN] + Status *string `json:"status,omitempty"` + + // Listen port for scraping metrics. + ListenPort int64 `json:"listen_port,omitempty"` + + // List of colletions to get stats from. Can use * + StatsCollections []string `json:"stats_collections"` + + // Collections limit. Only get Databases and collection stats if the total number of collections in the server + // is less than this value. 0: no limit + CollectionsLimit int32 `json:"collections_limit,omitempty"` + + // Enable All collectors. + EnableAllCollectors bool `json:"enable_all_collectors,omitempty"` + + // Path to exec process. + ProcessExecPath string `json:"process_exec_path,omitempty"` + + // Log level for exporters + // + // - LOG_LEVEL_UNSPECIFIED: Auto + // Enum: [LOG_LEVEL_UNSPECIFIED LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARN LOG_LEVEL_INFO LOG_LEVEL_DEBUG] + LogLevel *string `json:"log_level,omitempty"` + + // Optionally expose the exporter process on all public interfaces + ExposeExporter bool `json:"expose_exporter,omitempty"` +} + +// Validate validates this change agent OK body mongodb exporter +func (o *ChangeAgentOKBodyMongodbExporter) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateStatus(formats); err != nil { + res = append(res, err) + } + + if err := o.validateLogLevel(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +var changeAgentOkBodyMongodbExporterTypeStatusPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyMongodbExporterTypeStatusPropEnum = append(changeAgentOkBodyMongodbExporterTypeStatusPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyMongodbExporterStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" + ChangeAgentOKBodyMongodbExporterStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" + + // ChangeAgentOKBodyMongodbExporterStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" + ChangeAgentOKBodyMongodbExporterStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" + + // ChangeAgentOKBodyMongodbExporterStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" + ChangeAgentOKBodyMongodbExporterStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" + + // ChangeAgentOKBodyMongodbExporterStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" + ChangeAgentOKBodyMongodbExporterStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" + + // ChangeAgentOKBodyMongodbExporterStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" + ChangeAgentOKBodyMongodbExporterStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" + + // ChangeAgentOKBodyMongodbExporterStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" + ChangeAgentOKBodyMongodbExporterStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" + + // ChangeAgentOKBodyMongodbExporterStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" + ChangeAgentOKBodyMongodbExporterStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" +) + +// prop value enum +func (o *ChangeAgentOKBodyMongodbExporter) validateStatusEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyMongodbExporterTypeStatusPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyMongodbExporter) validateStatus(formats strfmt.Registry) error { + if swag.IsZero(o.Status) { // not required + return nil + } + + // value enum + if err := o.validateStatusEnum("changeAgentOk"+"."+"mongodb_exporter"+"."+"status", "body", *o.Status); err != nil { + return err + } + + return nil +} + +var changeAgentOkBodyMongodbExporterTypeLogLevelPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyMongodbExporterTypeLogLevelPropEnum = append(changeAgentOkBodyMongodbExporterTypeLogLevelPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyMongodbExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentOKBodyMongodbExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + + // ChangeAgentOKBodyMongodbExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentOKBodyMongodbExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + + // ChangeAgentOKBodyMongodbExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentOKBodyMongodbExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + + // ChangeAgentOKBodyMongodbExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentOKBodyMongodbExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + + // ChangeAgentOKBodyMongodbExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentOKBodyMongodbExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + + // ChangeAgentOKBodyMongodbExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentOKBodyMongodbExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" +) + +// prop value enum +func (o *ChangeAgentOKBodyMongodbExporter) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyMongodbExporterTypeLogLevelPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyMongodbExporter) validateLogLevel(formats strfmt.Registry) error { + if swag.IsZero(o.LogLevel) { // not required + return nil + } + + // value enum + if err := o.validateLogLevelEnum("changeAgentOk"+"."+"mongodb_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { + return err + } + + return nil +} + +// ContextValidate validates this change agent OK body mongodb exporter based on context it is used +func (o *ChangeAgentOKBodyMongodbExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentOKBodyMongodbExporter) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentOKBodyMongodbExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentOKBodyMongodbExporter + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentOKBodyMysqldExporter MySQLdExporter runs on Generic or Container Node and exposes MySQL Service metrics. +swagger:model ChangeAgentOKBodyMysqldExporter +*/ +type ChangeAgentOKBodyMysqldExporter struct { + // Unique randomly generated instance identifier. + AgentID string `json:"agent_id,omitempty"` + + // The pmm-agent identifier which runs this instance. + PMMAgentID string `json:"pmm_agent_id,omitempty"` + + // Desired Agent status: enabled (false) or disabled (true). + Disabled bool `json:"disabled,omitempty"` + + // Service identifier. + ServiceID string `json:"service_id,omitempty"` + + // MySQL username for scraping metrics. + Username string `json:"username,omitempty"` + + // Use TLS for database connections. + TLS bool `json:"tls,omitempty"` + + // Skip TLS certificate and hostname validation. + TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` + + // Certificate Authority certificate chain. + TLSCa string `json:"tls_ca,omitempty"` + + // Client certificate. + TLSCert string `json:"tls_cert,omitempty"` + + // Password for decrypting tls_cert. + TLSKey string `json:"tls_key,omitempty"` + + // Tablestats group collectors are disabled if there are more than that number of tables. + // 0 means tablestats group collectors are always enabled (no limit). + // Negative value means tablestats group collectors are always disabled. + TablestatsGroupTableLimit int32 `json:"tablestats_group_table_limit,omitempty"` + + // Custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // True if exporter uses push metrics mode. + PushMetricsEnabled bool `json:"push_metrics_enabled,omitempty"` + + // List of disabled collector names. + DisabledCollectors []string `json:"disabled_collectors"` + + // AgentStatus represents actual Agent status. + // + // - AGENT_STATUS_STARTING: Agent is starting. + // - AGENT_STATUS_RUNNING: Agent is running. + // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. + // - AGENT_STATUS_STOPPING: Agent is stopping. + // - AGENT_STATUS_DONE: Agent finished. + // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. + // Enum: [AGENT_STATUS_UNSPECIFIED AGENT_STATUS_STARTING AGENT_STATUS_RUNNING AGENT_STATUS_WAITING AGENT_STATUS_STOPPING AGENT_STATUS_DONE AGENT_STATUS_UNKNOWN] + Status *string `json:"status,omitempty"` + + // Listen port for scraping metrics. + ListenPort int64 `json:"listen_port,omitempty"` + + // True if tablestats group collectors are currently disabled. + TablestatsGroupDisabled bool `json:"tablestats_group_disabled,omitempty"` + + // Path to exec process. + ProcessExecPath string `json:"process_exec_path,omitempty"` + + // Log level for exporters + // + // - LOG_LEVEL_UNSPECIFIED: Auto + // Enum: [LOG_LEVEL_UNSPECIFIED LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARN LOG_LEVEL_INFO LOG_LEVEL_DEBUG] + LogLevel *string `json:"log_level,omitempty"` + + // Optionally expose the exporter process on all public interfaces + ExposeExporter bool `json:"expose_exporter,omitempty"` +} + +// Validate validates this change agent OK body mysqld exporter +func (o *ChangeAgentOKBodyMysqldExporter) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateStatus(formats); err != nil { + res = append(res, err) + } + + if err := o.validateLogLevel(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +var changeAgentOkBodyMysqldExporterTypeStatusPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyMysqldExporterTypeStatusPropEnum = append(changeAgentOkBodyMysqldExporterTypeStatusPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyMysqldExporterStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" + ChangeAgentOKBodyMysqldExporterStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" + + // ChangeAgentOKBodyMysqldExporterStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" + ChangeAgentOKBodyMysqldExporterStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" + + // ChangeAgentOKBodyMysqldExporterStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" + ChangeAgentOKBodyMysqldExporterStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" + + // ChangeAgentOKBodyMysqldExporterStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" + ChangeAgentOKBodyMysqldExporterStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" + + // ChangeAgentOKBodyMysqldExporterStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" + ChangeAgentOKBodyMysqldExporterStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" + + // ChangeAgentOKBodyMysqldExporterStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" + ChangeAgentOKBodyMysqldExporterStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" + + // ChangeAgentOKBodyMysqldExporterStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" + ChangeAgentOKBodyMysqldExporterStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" +) + +// prop value enum +func (o *ChangeAgentOKBodyMysqldExporter) validateStatusEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyMysqldExporterTypeStatusPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyMysqldExporter) validateStatus(formats strfmt.Registry) error { + if swag.IsZero(o.Status) { // not required + return nil + } + + // value enum + if err := o.validateStatusEnum("changeAgentOk"+"."+"mysqld_exporter"+"."+"status", "body", *o.Status); err != nil { + return err + } + + return nil +} + +var changeAgentOkBodyMysqldExporterTypeLogLevelPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyMysqldExporterTypeLogLevelPropEnum = append(changeAgentOkBodyMysqldExporterTypeLogLevelPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyMysqldExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentOKBodyMysqldExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + + // ChangeAgentOKBodyMysqldExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentOKBodyMysqldExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + + // ChangeAgentOKBodyMysqldExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentOKBodyMysqldExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + + // ChangeAgentOKBodyMysqldExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentOKBodyMysqldExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + + // ChangeAgentOKBodyMysqldExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentOKBodyMysqldExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + + // ChangeAgentOKBodyMysqldExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentOKBodyMysqldExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" +) + +// prop value enum +func (o *ChangeAgentOKBodyMysqldExporter) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyMysqldExporterTypeLogLevelPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyMysqldExporter) validateLogLevel(formats strfmt.Registry) error { + if swag.IsZero(o.LogLevel) { // not required + return nil + } + + // value enum + if err := o.validateLogLevelEnum("changeAgentOk"+"."+"mysqld_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { + return err + } + + return nil +} + +// ContextValidate validates this change agent OK body mysqld exporter based on context it is used +func (o *ChangeAgentOKBodyMysqldExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentOKBodyMysqldExporter) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentOKBodyMysqldExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentOKBodyMysqldExporter + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentOKBodyNodeExporter NodeExporter runs on Generic or Container Node and exposes its metrics. +swagger:model ChangeAgentOKBodyNodeExporter +*/ +type ChangeAgentOKBodyNodeExporter struct { + // Unique randomly generated instance identifier. + AgentID string `json:"agent_id,omitempty"` + + // The pmm-agent identifier which runs this instance. + PMMAgentID string `json:"pmm_agent_id,omitempty"` + + // Desired Agent status: enabled (false) or disabled (true). + Disabled bool `json:"disabled,omitempty"` + + // Custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // True if exporter uses push metrics mode. + PushMetricsEnabled bool `json:"push_metrics_enabled,omitempty"` + + // List of disabled collector names. + DisabledCollectors []string `json:"disabled_collectors"` + + // AgentStatus represents actual Agent status. + // + // - AGENT_STATUS_STARTING: Agent is starting. + // - AGENT_STATUS_RUNNING: Agent is running. + // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. + // - AGENT_STATUS_STOPPING: Agent is stopping. + // - AGENT_STATUS_DONE: Agent finished. + // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. + // Enum: [AGENT_STATUS_UNSPECIFIED AGENT_STATUS_STARTING AGENT_STATUS_RUNNING AGENT_STATUS_WAITING AGENT_STATUS_STOPPING AGENT_STATUS_DONE AGENT_STATUS_UNKNOWN] + Status *string `json:"status,omitempty"` + + // Listen port for scraping metrics. + ListenPort int64 `json:"listen_port,omitempty"` + + // Path to exec process. + ProcessExecPath string `json:"process_exec_path,omitempty"` + + // Log level for exporters + // + // - LOG_LEVEL_UNSPECIFIED: Auto + // Enum: [LOG_LEVEL_UNSPECIFIED LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARN LOG_LEVEL_INFO LOG_LEVEL_DEBUG] + LogLevel *string `json:"log_level,omitempty"` + + // Optionally expose the exporter process on all public interfaces + ExposeExporter bool `json:"expose_exporter,omitempty"` +} + +// Validate validates this change agent OK body node exporter +func (o *ChangeAgentOKBodyNodeExporter) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateStatus(formats); err != nil { + res = append(res, err) + } + + if err := o.validateLogLevel(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +var changeAgentOkBodyNodeExporterTypeStatusPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyNodeExporterTypeStatusPropEnum = append(changeAgentOkBodyNodeExporterTypeStatusPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyNodeExporterStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" + ChangeAgentOKBodyNodeExporterStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" + + // ChangeAgentOKBodyNodeExporterStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" + ChangeAgentOKBodyNodeExporterStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" + + // ChangeAgentOKBodyNodeExporterStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" + ChangeAgentOKBodyNodeExporterStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" + + // ChangeAgentOKBodyNodeExporterStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" + ChangeAgentOKBodyNodeExporterStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" + + // ChangeAgentOKBodyNodeExporterStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" + ChangeAgentOKBodyNodeExporterStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" + + // ChangeAgentOKBodyNodeExporterStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" + ChangeAgentOKBodyNodeExporterStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" + + // ChangeAgentOKBodyNodeExporterStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" + ChangeAgentOKBodyNodeExporterStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" +) + +// prop value enum +func (o *ChangeAgentOKBodyNodeExporter) validateStatusEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyNodeExporterTypeStatusPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyNodeExporter) validateStatus(formats strfmt.Registry) error { + if swag.IsZero(o.Status) { // not required + return nil + } + + // value enum + if err := o.validateStatusEnum("changeAgentOk"+"."+"node_exporter"+"."+"status", "body", *o.Status); err != nil { + return err + } + + return nil +} + +var changeAgentOkBodyNodeExporterTypeLogLevelPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyNodeExporterTypeLogLevelPropEnum = append(changeAgentOkBodyNodeExporterTypeLogLevelPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyNodeExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentOKBodyNodeExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + + // ChangeAgentOKBodyNodeExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentOKBodyNodeExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + + // ChangeAgentOKBodyNodeExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentOKBodyNodeExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + + // ChangeAgentOKBodyNodeExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentOKBodyNodeExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + + // ChangeAgentOKBodyNodeExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentOKBodyNodeExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + + // ChangeAgentOKBodyNodeExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentOKBodyNodeExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" +) + +// prop value enum +func (o *ChangeAgentOKBodyNodeExporter) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyNodeExporterTypeLogLevelPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyNodeExporter) validateLogLevel(formats strfmt.Registry) error { + if swag.IsZero(o.LogLevel) { // not required + return nil + } + + // value enum + if err := o.validateLogLevelEnum("changeAgentOk"+"."+"node_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { + return err + } + + return nil +} + +// ContextValidate validates this change agent OK body node exporter based on context it is used +func (o *ChangeAgentOKBodyNodeExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentOKBodyNodeExporter) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentOKBodyNodeExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentOKBodyNodeExporter + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentOKBodyPostgresExporter PostgresExporter runs on Generic or Container Node and exposes PostgreSQL Service metrics. +swagger:model ChangeAgentOKBodyPostgresExporter +*/ +type ChangeAgentOKBodyPostgresExporter struct { + // Unique randomly generated instance identifier. + AgentID string `json:"agent_id,omitempty"` + + // The pmm-agent identifier which runs this instance. + PMMAgentID string `json:"pmm_agent_id,omitempty"` + + // Desired Agent status: enabled (false) or disabled (true). + Disabled bool `json:"disabled,omitempty"` + + // Service identifier. + ServiceID string `json:"service_id,omitempty"` + + // PostgreSQL username for scraping metrics. + Username string `json:"username,omitempty"` + + // Use TLS for database connections. + TLS bool `json:"tls,omitempty"` + + // Skip TLS certificate and hostname validation. Uses sslmode=required instead of verify-full. + TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` + + // Custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // True if exporter uses push metrics mode. + PushMetricsEnabled bool `json:"push_metrics_enabled,omitempty"` + + // List of disabled collector names. + DisabledCollectors []string `json:"disabled_collectors"` + + // AgentStatus represents actual Agent status. + // + // - AGENT_STATUS_STARTING: Agent is starting. + // - AGENT_STATUS_RUNNING: Agent is running. + // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. + // - AGENT_STATUS_STOPPING: Agent is stopping. + // - AGENT_STATUS_DONE: Agent finished. + // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. + // Enum: [AGENT_STATUS_UNSPECIFIED AGENT_STATUS_STARTING AGENT_STATUS_RUNNING AGENT_STATUS_WAITING AGENT_STATUS_STOPPING AGENT_STATUS_DONE AGENT_STATUS_UNKNOWN] + Status *string `json:"status,omitempty"` + + // Listen port for scraping metrics. + ListenPort int64 `json:"listen_port,omitempty"` + + // Path to exec process. + ProcessExecPath string `json:"process_exec_path,omitempty"` + + // Log level for exporters + // + // - LOG_LEVEL_UNSPECIFIED: Auto + // Enum: [LOG_LEVEL_UNSPECIFIED LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARN LOG_LEVEL_INFO LOG_LEVEL_DEBUG] + LogLevel *string `json:"log_level,omitempty"` + + // Limit of databases for auto-discovery. + AutoDiscoveryLimit int32 `json:"auto_discovery_limit,omitempty"` + + // Optionally expose the exporter process on all public interfaces + ExposeExporter bool `json:"expose_exporter,omitempty"` +} + +// Validate validates this change agent OK body postgres exporter +func (o *ChangeAgentOKBodyPostgresExporter) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateStatus(formats); err != nil { + res = append(res, err) + } + + if err := o.validateLogLevel(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +var changeAgentOkBodyPostgresExporterTypeStatusPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyPostgresExporterTypeStatusPropEnum = append(changeAgentOkBodyPostgresExporterTypeStatusPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyPostgresExporterStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" + ChangeAgentOKBodyPostgresExporterStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" + + // ChangeAgentOKBodyPostgresExporterStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" + ChangeAgentOKBodyPostgresExporterStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" + + // ChangeAgentOKBodyPostgresExporterStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" + ChangeAgentOKBodyPostgresExporterStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" + + // ChangeAgentOKBodyPostgresExporterStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" + ChangeAgentOKBodyPostgresExporterStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" + + // ChangeAgentOKBodyPostgresExporterStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" + ChangeAgentOKBodyPostgresExporterStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" + + // ChangeAgentOKBodyPostgresExporterStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" + ChangeAgentOKBodyPostgresExporterStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" + + // ChangeAgentOKBodyPostgresExporterStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" + ChangeAgentOKBodyPostgresExporterStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" +) + +// prop value enum +func (o *ChangeAgentOKBodyPostgresExporter) validateStatusEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyPostgresExporterTypeStatusPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyPostgresExporter) validateStatus(formats strfmt.Registry) error { + if swag.IsZero(o.Status) { // not required + return nil + } + + // value enum + if err := o.validateStatusEnum("changeAgentOk"+"."+"postgres_exporter"+"."+"status", "body", *o.Status); err != nil { + return err + } + + return nil +} + +var changeAgentOkBodyPostgresExporterTypeLogLevelPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyPostgresExporterTypeLogLevelPropEnum = append(changeAgentOkBodyPostgresExporterTypeLogLevelPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyPostgresExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentOKBodyPostgresExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + + // ChangeAgentOKBodyPostgresExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentOKBodyPostgresExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + + // ChangeAgentOKBodyPostgresExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentOKBodyPostgresExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + + // ChangeAgentOKBodyPostgresExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentOKBodyPostgresExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + + // ChangeAgentOKBodyPostgresExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentOKBodyPostgresExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + + // ChangeAgentOKBodyPostgresExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentOKBodyPostgresExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" +) + +// prop value enum +func (o *ChangeAgentOKBodyPostgresExporter) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyPostgresExporterTypeLogLevelPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyPostgresExporter) validateLogLevel(formats strfmt.Registry) error { + if swag.IsZero(o.LogLevel) { // not required + return nil + } + + // value enum + if err := o.validateLogLevelEnum("changeAgentOk"+"."+"postgres_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { + return err + } + + return nil +} + +// ContextValidate validates this change agent OK body postgres exporter based on context it is used +func (o *ChangeAgentOKBodyPostgresExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentOKBodyPostgresExporter) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentOKBodyPostgresExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentOKBodyPostgresExporter + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentOKBodyProxysqlExporter ProxySQLExporter runs on Generic or Container Node and exposes ProxySQL Service metrics. +swagger:model ChangeAgentOKBodyProxysqlExporter +*/ +type ChangeAgentOKBodyProxysqlExporter struct { + // Unique randomly generated instance identifier. + AgentID string `json:"agent_id,omitempty"` + + // The pmm-agent identifier which runs this instance. + PMMAgentID string `json:"pmm_agent_id,omitempty"` + + // Desired Agent status: enabled (false) or disabled (true). + Disabled bool `json:"disabled,omitempty"` + + // Service identifier. + ServiceID string `json:"service_id,omitempty"` + + // ProxySQL username for scraping metrics. + Username string `json:"username,omitempty"` + + // Use TLS for database connections. + TLS bool `json:"tls,omitempty"` + + // Skip TLS certificate and hostname validation. + TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` + + // Custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // True if exporter uses push metrics mode. + PushMetricsEnabled bool `json:"push_metrics_enabled,omitempty"` + + // List of disabled collector names. + DisabledCollectors []string `json:"disabled_collectors"` + + // AgentStatus represents actual Agent status. + // + // - AGENT_STATUS_STARTING: Agent is starting. + // - AGENT_STATUS_RUNNING: Agent is running. + // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. + // - AGENT_STATUS_STOPPING: Agent is stopping. + // - AGENT_STATUS_DONE: Agent finished. + // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. + // Enum: [AGENT_STATUS_UNSPECIFIED AGENT_STATUS_STARTING AGENT_STATUS_RUNNING AGENT_STATUS_WAITING AGENT_STATUS_STOPPING AGENT_STATUS_DONE AGENT_STATUS_UNKNOWN] + Status *string `json:"status,omitempty"` + + // Listen port for scraping metrics. + ListenPort int64 `json:"listen_port,omitempty"` + + // Path to exec process. + ProcessExecPath string `json:"process_exec_path,omitempty"` + + // Log level for exporters + // + // - LOG_LEVEL_UNSPECIFIED: Auto + // Enum: [LOG_LEVEL_UNSPECIFIED LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARN LOG_LEVEL_INFO LOG_LEVEL_DEBUG] + LogLevel *string `json:"log_level,omitempty"` + + // Optionally expose the exporter process on all public interfaces + ExposeExporter bool `json:"expose_exporter,omitempty"` +} + +// Validate validates this change agent OK body proxysql exporter +func (o *ChangeAgentOKBodyProxysqlExporter) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateStatus(formats); err != nil { + res = append(res, err) + } + + if err := o.validateLogLevel(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +var changeAgentOkBodyProxysqlExporterTypeStatusPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyProxysqlExporterTypeStatusPropEnum = append(changeAgentOkBodyProxysqlExporterTypeStatusPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyProxysqlExporterStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" + ChangeAgentOKBodyProxysqlExporterStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" + + // ChangeAgentOKBodyProxysqlExporterStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" + ChangeAgentOKBodyProxysqlExporterStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" + + // ChangeAgentOKBodyProxysqlExporterStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" + ChangeAgentOKBodyProxysqlExporterStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" + + // ChangeAgentOKBodyProxysqlExporterStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" + ChangeAgentOKBodyProxysqlExporterStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" + + // ChangeAgentOKBodyProxysqlExporterStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" + ChangeAgentOKBodyProxysqlExporterStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" + + // ChangeAgentOKBodyProxysqlExporterStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" + ChangeAgentOKBodyProxysqlExporterStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" + + // ChangeAgentOKBodyProxysqlExporterStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" + ChangeAgentOKBodyProxysqlExporterStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" +) + +// prop value enum +func (o *ChangeAgentOKBodyProxysqlExporter) validateStatusEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyProxysqlExporterTypeStatusPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyProxysqlExporter) validateStatus(formats strfmt.Registry) error { + if swag.IsZero(o.Status) { // not required + return nil + } + + // value enum + if err := o.validateStatusEnum("changeAgentOk"+"."+"proxysql_exporter"+"."+"status", "body", *o.Status); err != nil { + return err + } + + return nil +} + +var changeAgentOkBodyProxysqlExporterTypeLogLevelPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyProxysqlExporterTypeLogLevelPropEnum = append(changeAgentOkBodyProxysqlExporterTypeLogLevelPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyProxysqlExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentOKBodyProxysqlExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + + // ChangeAgentOKBodyProxysqlExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentOKBodyProxysqlExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + + // ChangeAgentOKBodyProxysqlExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentOKBodyProxysqlExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + + // ChangeAgentOKBodyProxysqlExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentOKBodyProxysqlExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + + // ChangeAgentOKBodyProxysqlExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentOKBodyProxysqlExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + + // ChangeAgentOKBodyProxysqlExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentOKBodyProxysqlExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" +) + +// prop value enum +func (o *ChangeAgentOKBodyProxysqlExporter) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyProxysqlExporterTypeLogLevelPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyProxysqlExporter) validateLogLevel(formats strfmt.Registry) error { + if swag.IsZero(o.LogLevel) { // not required + return nil + } + + // value enum + if err := o.validateLogLevelEnum("changeAgentOk"+"."+"proxysql_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { + return err + } + + return nil +} + +// ContextValidate validates this change agent OK body proxysql exporter based on context it is used +func (o *ChangeAgentOKBodyProxysqlExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentOKBodyProxysqlExporter) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentOKBodyProxysqlExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentOKBodyProxysqlExporter + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentOKBodyQANMongodbProfilerAgent QANMongoDBProfilerAgent runs within pmm-agent and sends MongoDB Query Analytics data to the PMM Server. +swagger:model ChangeAgentOKBodyQANMongodbProfilerAgent +*/ +type ChangeAgentOKBodyQANMongodbProfilerAgent struct { + // Unique randomly generated instance identifier. + AgentID string `json:"agent_id,omitempty"` + + // The pmm-agent identifier which runs this instance. + PMMAgentID string `json:"pmm_agent_id,omitempty"` + + // Desired Agent status: enabled (false) or disabled (true). + Disabled bool `json:"disabled,omitempty"` + + // Service identifier. + ServiceID string `json:"service_id,omitempty"` + + // MongoDB username for getting profiler data. + Username string `json:"username,omitempty"` + + // Use TLS for database connections. + TLS bool `json:"tls,omitempty"` + + // Skip TLS certificate and hostname validation. + TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` + + // Limit query length in QAN (default: server-defined; -1: no limit). + MaxQueryLength int32 `json:"max_query_length,omitempty"` + + // Custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // AgentStatus represents actual Agent status. + // + // - AGENT_STATUS_STARTING: Agent is starting. + // - AGENT_STATUS_RUNNING: Agent is running. + // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. + // - AGENT_STATUS_STOPPING: Agent is stopping. + // - AGENT_STATUS_DONE: Agent finished. + // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. + // Enum: [AGENT_STATUS_UNSPECIFIED AGENT_STATUS_STARTING AGENT_STATUS_RUNNING AGENT_STATUS_WAITING AGENT_STATUS_STOPPING AGENT_STATUS_DONE AGENT_STATUS_UNKNOWN] + Status *string `json:"status,omitempty"` + + // Path to exec process. + ProcessExecPath string `json:"process_exec_path,omitempty"` + + // Log level for exporters + // + // - LOG_LEVEL_UNSPECIFIED: Auto + // Enum: [LOG_LEVEL_UNSPECIFIED LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARN LOG_LEVEL_INFO LOG_LEVEL_DEBUG] + LogLevel *string `json:"log_level,omitempty"` +} + +// Validate validates this change agent OK body QAN mongodb profiler agent +func (o *ChangeAgentOKBodyQANMongodbProfilerAgent) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateStatus(formats); err != nil { + res = append(res, err) + } + + if err := o.validateLogLevel(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +var changeAgentOkBodyQanMongodbProfilerAgentTypeStatusPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyQanMongodbProfilerAgentTypeStatusPropEnum = append(changeAgentOkBodyQanMongodbProfilerAgentTypeStatusPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" + ChangeAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" + + // ChangeAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" + ChangeAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" + + // ChangeAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" + ChangeAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" + + // ChangeAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" + ChangeAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" + + // ChangeAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" + ChangeAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" + + // ChangeAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" + ChangeAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" + + // ChangeAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" + ChangeAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" +) + +// prop value enum +func (o *ChangeAgentOKBodyQANMongodbProfilerAgent) validateStatusEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyQanMongodbProfilerAgentTypeStatusPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyQANMongodbProfilerAgent) validateStatus(formats strfmt.Registry) error { + if swag.IsZero(o.Status) { // not required + return nil + } + + // value enum + if err := o.validateStatusEnum("changeAgentOk"+"."+"qan_mongodb_profiler_agent"+"."+"status", "body", *o.Status); err != nil { + return err + } + + return nil +} + +var changeAgentOkBodyQanMongodbProfilerAgentTypeLogLevelPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyQanMongodbProfilerAgentTypeLogLevelPropEnum = append(changeAgentOkBodyQanMongodbProfilerAgentTypeLogLevelPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyQANMongodbProfilerAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentOKBodyQANMongodbProfilerAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + + // ChangeAgentOKBodyQANMongodbProfilerAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentOKBodyQANMongodbProfilerAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + + // ChangeAgentOKBodyQANMongodbProfilerAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentOKBodyQANMongodbProfilerAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + + // ChangeAgentOKBodyQANMongodbProfilerAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentOKBodyQANMongodbProfilerAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + + // ChangeAgentOKBodyQANMongodbProfilerAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentOKBodyQANMongodbProfilerAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + + // ChangeAgentOKBodyQANMongodbProfilerAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentOKBodyQANMongodbProfilerAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" +) + +// prop value enum +func (o *ChangeAgentOKBodyQANMongodbProfilerAgent) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyQanMongodbProfilerAgentTypeLogLevelPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyQANMongodbProfilerAgent) validateLogLevel(formats strfmt.Registry) error { + if swag.IsZero(o.LogLevel) { // not required + return nil + } + + // value enum + if err := o.validateLogLevelEnum("changeAgentOk"+"."+"qan_mongodb_profiler_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { + return err + } + + return nil +} + +// ContextValidate validates this change agent OK body QAN mongodb profiler agent based on context it is used +func (o *ChangeAgentOKBodyQANMongodbProfilerAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentOKBodyQANMongodbProfilerAgent) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentOKBodyQANMongodbProfilerAgent) UnmarshalBinary(b []byte) error { + var res ChangeAgentOKBodyQANMongodbProfilerAgent + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentOKBodyQANMysqlPerfschemaAgent QANMySQLPerfSchemaAgent runs within pmm-agent and sends MySQL Query Analytics data to the PMM Server. +swagger:model ChangeAgentOKBodyQANMysqlPerfschemaAgent +*/ +type ChangeAgentOKBodyQANMysqlPerfschemaAgent struct { + // Unique randomly generated instance identifier. + AgentID string `json:"agent_id,omitempty"` + + // The pmm-agent identifier which runs this instance. + PMMAgentID string `json:"pmm_agent_id,omitempty"` + + // Desired Agent status: enabled (false) or disabled (true). + Disabled bool `json:"disabled,omitempty"` + + // Service identifier. + ServiceID string `json:"service_id,omitempty"` + + // MySQL username for getting performance data. + Username string `json:"username,omitempty"` + + // Use TLS for database connections. + TLS bool `json:"tls,omitempty"` + + // Skip TLS certificate and hostname validation. + TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` + + // Certificate Authority certificate chain. + TLSCa string `json:"tls_ca,omitempty"` + + // Client certificate. + TLSCert string `json:"tls_cert,omitempty"` + + // Password for decrypting tls_cert. + TLSKey string `json:"tls_key,omitempty"` + + // Disable parsing comments from queries and showing them in QAN. + DisableCommentsParsing bool `json:"disable_comments_parsing,omitempty"` + + // Limit query length in QAN (default: server-defined; -1: no limit). + MaxQueryLength int32 `json:"max_query_length,omitempty"` + + // True if query examples are disabled. + QueryExamplesDisabled bool `json:"query_examples_disabled,omitempty"` + + // Custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // AgentStatus represents actual Agent status. + // + // - AGENT_STATUS_STARTING: Agent is starting. + // - AGENT_STATUS_RUNNING: Agent is running. + // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. + // - AGENT_STATUS_STOPPING: Agent is stopping. + // - AGENT_STATUS_DONE: Agent finished. + // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. + // Enum: [AGENT_STATUS_UNSPECIFIED AGENT_STATUS_STARTING AGENT_STATUS_RUNNING AGENT_STATUS_WAITING AGENT_STATUS_STOPPING AGENT_STATUS_DONE AGENT_STATUS_UNKNOWN] + Status *string `json:"status,omitempty"` + + // Path to exec process. + ProcessExecPath string `json:"process_exec_path,omitempty"` + + // Log level for exporters + // + // - LOG_LEVEL_UNSPECIFIED: Auto + // Enum: [LOG_LEVEL_UNSPECIFIED LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARN LOG_LEVEL_INFO LOG_LEVEL_DEBUG] + LogLevel *string `json:"log_level,omitempty"` +} + +// Validate validates this change agent OK body QAN mysql perfschema agent +func (o *ChangeAgentOKBodyQANMysqlPerfschemaAgent) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateStatus(formats); err != nil { + res = append(res, err) + } + + if err := o.validateLogLevel(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +var changeAgentOkBodyQanMysqlPerfschemaAgentTypeStatusPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyQanMysqlPerfschemaAgentTypeStatusPropEnum = append(changeAgentOkBodyQanMysqlPerfschemaAgentTypeStatusPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" + ChangeAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" + + // ChangeAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" + ChangeAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" + + // ChangeAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" + ChangeAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" + + // ChangeAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" + ChangeAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" + + // ChangeAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" + ChangeAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" + + // ChangeAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" + ChangeAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" + + // ChangeAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" + ChangeAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" +) + +// prop value enum +func (o *ChangeAgentOKBodyQANMysqlPerfschemaAgent) validateStatusEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyQanMysqlPerfschemaAgentTypeStatusPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyQANMysqlPerfschemaAgent) validateStatus(formats strfmt.Registry) error { + if swag.IsZero(o.Status) { // not required + return nil + } + + // value enum + if err := o.validateStatusEnum("changeAgentOk"+"."+"qan_mysql_perfschema_agent"+"."+"status", "body", *o.Status); err != nil { + return err + } + + return nil +} + +var changeAgentOkBodyQanMysqlPerfschemaAgentTypeLogLevelPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyQanMysqlPerfschemaAgentTypeLogLevelPropEnum = append(changeAgentOkBodyQanMysqlPerfschemaAgentTypeLogLevelPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentOKBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + + // ChangeAgentOKBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentOKBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + + // ChangeAgentOKBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentOKBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + + // ChangeAgentOKBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentOKBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + + // ChangeAgentOKBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentOKBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + + // ChangeAgentOKBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentOKBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" +) + +// prop value enum +func (o *ChangeAgentOKBodyQANMysqlPerfschemaAgent) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyQanMysqlPerfschemaAgentTypeLogLevelPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyQANMysqlPerfschemaAgent) validateLogLevel(formats strfmt.Registry) error { + if swag.IsZero(o.LogLevel) { // not required + return nil + } + + // value enum + if err := o.validateLogLevelEnum("changeAgentOk"+"."+"qan_mysql_perfschema_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { + return err + } + + return nil +} + +// ContextValidate validates this change agent OK body QAN mysql perfschema agent based on context it is used +func (o *ChangeAgentOKBodyQANMysqlPerfschemaAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentOKBodyQANMysqlPerfschemaAgent) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentOKBodyQANMysqlPerfschemaAgent) UnmarshalBinary(b []byte) error { + var res ChangeAgentOKBodyQANMysqlPerfschemaAgent + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentOKBodyQANMysqlSlowlogAgent QANMySQLSlowlogAgent runs within pmm-agent and sends MySQL Query Analytics data to the PMM Server. +swagger:model ChangeAgentOKBodyQANMysqlSlowlogAgent +*/ +type ChangeAgentOKBodyQANMysqlSlowlogAgent struct { + // Unique randomly generated instance identifier. + AgentID string `json:"agent_id,omitempty"` + + // The pmm-agent identifier which runs this instance. + PMMAgentID string `json:"pmm_agent_id,omitempty"` + + // Desired Agent status: enabled (false) or disabled (true). + Disabled bool `json:"disabled,omitempty"` + + // Service identifier. + ServiceID string `json:"service_id,omitempty"` + + // MySQL username for getting performance data. + Username string `json:"username,omitempty"` + + // Use TLS for database connections. + TLS bool `json:"tls,omitempty"` + + // Skip TLS certificate and hostname validation. + TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` + + // Certificate Authority certificate chain. + TLSCa string `json:"tls_ca,omitempty"` + + // Client certificate. + TLSCert string `json:"tls_cert,omitempty"` + + // Password for decrypting tls_cert. + TLSKey string `json:"tls_key,omitempty"` + + // Disable parsing comments from queries and showing them in QAN. + DisableCommentsParsing bool `json:"disable_comments_parsing,omitempty"` + + // Limit query length in QAN (default: server-defined; -1: no limit) + MaxQueryLength int32 `json:"max_query_length,omitempty"` + + // True if query examples are disabled. + QueryExamplesDisabled bool `json:"query_examples_disabled,omitempty"` + + // Slowlog file is rotated at this size if > 0. + MaxSlowlogFileSize string `json:"max_slowlog_file_size,omitempty"` + + // Custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // AgentStatus represents actual Agent status. + // + // - AGENT_STATUS_STARTING: Agent is starting. + // - AGENT_STATUS_RUNNING: Agent is running. + // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. + // - AGENT_STATUS_STOPPING: Agent is stopping. + // - AGENT_STATUS_DONE: Agent finished. + // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. + // Enum: [AGENT_STATUS_UNSPECIFIED AGENT_STATUS_STARTING AGENT_STATUS_RUNNING AGENT_STATUS_WAITING AGENT_STATUS_STOPPING AGENT_STATUS_DONE AGENT_STATUS_UNKNOWN] + Status *string `json:"status,omitempty"` + + // mod tidy + ProcessExecPath string `json:"process_exec_path,omitempty"` + + // Log level for exporters + // + // - LOG_LEVEL_UNSPECIFIED: Auto + // Enum: [LOG_LEVEL_UNSPECIFIED LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARN LOG_LEVEL_INFO LOG_LEVEL_DEBUG] + LogLevel *string `json:"log_level,omitempty"` +} + +// Validate validates this change agent OK body QAN mysql slowlog agent +func (o *ChangeAgentOKBodyQANMysqlSlowlogAgent) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateStatus(formats); err != nil { + res = append(res, err) + } + + if err := o.validateLogLevel(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +var changeAgentOkBodyQanMysqlSlowlogAgentTypeStatusPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyQanMysqlSlowlogAgentTypeStatusPropEnum = append(changeAgentOkBodyQanMysqlSlowlogAgentTypeStatusPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" + ChangeAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" + + // ChangeAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" + ChangeAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" + + // ChangeAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" + ChangeAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" + + // ChangeAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" + ChangeAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" + + // ChangeAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" + ChangeAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" + + // ChangeAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" + ChangeAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" + + // ChangeAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" + ChangeAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" +) + +// prop value enum +func (o *ChangeAgentOKBodyQANMysqlSlowlogAgent) validateStatusEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyQanMysqlSlowlogAgentTypeStatusPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyQANMysqlSlowlogAgent) validateStatus(formats strfmt.Registry) error { + if swag.IsZero(o.Status) { // not required + return nil + } + + // value enum + if err := o.validateStatusEnum("changeAgentOk"+"."+"qan_mysql_slowlog_agent"+"."+"status", "body", *o.Status); err != nil { + return err + } + + return nil +} + +var changeAgentOkBodyQanMysqlSlowlogAgentTypeLogLevelPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyQanMysqlSlowlogAgentTypeLogLevelPropEnum = append(changeAgentOkBodyQanMysqlSlowlogAgentTypeLogLevelPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyQANMysqlSlowlogAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentOKBodyQANMysqlSlowlogAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + + // ChangeAgentOKBodyQANMysqlSlowlogAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentOKBodyQANMysqlSlowlogAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + + // ChangeAgentOKBodyQANMysqlSlowlogAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentOKBodyQANMysqlSlowlogAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + + // ChangeAgentOKBodyQANMysqlSlowlogAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentOKBodyQANMysqlSlowlogAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + + // ChangeAgentOKBodyQANMysqlSlowlogAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentOKBodyQANMysqlSlowlogAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + + // ChangeAgentOKBodyQANMysqlSlowlogAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentOKBodyQANMysqlSlowlogAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" +) + +// prop value enum +func (o *ChangeAgentOKBodyQANMysqlSlowlogAgent) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyQanMysqlSlowlogAgentTypeLogLevelPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyQANMysqlSlowlogAgent) validateLogLevel(formats strfmt.Registry) error { + if swag.IsZero(o.LogLevel) { // not required + return nil + } + + // value enum + if err := o.validateLogLevelEnum("changeAgentOk"+"."+"qan_mysql_slowlog_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { + return err + } + + return nil +} + +// ContextValidate validates this change agent OK body QAN mysql slowlog agent based on context it is used +func (o *ChangeAgentOKBodyQANMysqlSlowlogAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentOKBodyQANMysqlSlowlogAgent) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentOKBodyQANMysqlSlowlogAgent) UnmarshalBinary(b []byte) error { + var res ChangeAgentOKBodyQANMysqlSlowlogAgent + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentOKBodyQANPostgresqlPgstatementsAgent QANPostgreSQLPgStatementsAgent runs within pmm-agent and sends PostgreSQL Query Analytics data to the PMM Server. +swagger:model ChangeAgentOKBodyQANPostgresqlPgstatementsAgent +*/ +type ChangeAgentOKBodyQANPostgresqlPgstatementsAgent struct { + // Unique randomly generated instance identifier. + AgentID string `json:"agent_id,omitempty"` + + // The pmm-agent identifier which runs this instance. + PMMAgentID string `json:"pmm_agent_id,omitempty"` + + // Desired Agent status: enabled (false) or disabled (true). + Disabled bool `json:"disabled,omitempty"` + + // Service identifier. + ServiceID string `json:"service_id,omitempty"` + + // PostgreSQL username for getting pg stat statements data. + Username string `json:"username,omitempty"` + + // Disable parsing comments from queries and showing them in QAN. + DisableCommentsParsing bool `json:"disable_comments_parsing,omitempty"` + + // Limit query length in QAN (default: server-defined; -1: no limit). + MaxQueryLength int32 `json:"max_query_length,omitempty"` + + // Use TLS for database connections. + TLS bool `json:"tls,omitempty"` + + // Skip TLS certificate and hostname validation. + TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` + + // Custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // AgentStatus represents actual Agent status. + // + // - AGENT_STATUS_STARTING: Agent is starting. + // - AGENT_STATUS_RUNNING: Agent is running. + // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. + // - AGENT_STATUS_STOPPING: Agent is stopping. + // - AGENT_STATUS_DONE: Agent finished. + // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. + // Enum: [AGENT_STATUS_UNSPECIFIED AGENT_STATUS_STARTING AGENT_STATUS_RUNNING AGENT_STATUS_WAITING AGENT_STATUS_STOPPING AGENT_STATUS_DONE AGENT_STATUS_UNKNOWN] + Status *string `json:"status,omitempty"` + + // Path to exec process. + ProcessExecPath string `json:"process_exec_path,omitempty"` + + // Log level for exporters + // + // - LOG_LEVEL_UNSPECIFIED: Auto + // Enum: [LOG_LEVEL_UNSPECIFIED LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARN LOG_LEVEL_INFO LOG_LEVEL_DEBUG] + LogLevel *string `json:"log_level,omitempty"` +} + +// Validate validates this change agent OK body QAN postgresql pgstatements agent +func (o *ChangeAgentOKBodyQANPostgresqlPgstatementsAgent) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateStatus(formats); err != nil { + res = append(res, err) + } + + if err := o.validateLogLevel(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +var changeAgentOkBodyQanPostgresqlPgstatementsAgentTypeStatusPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyQanPostgresqlPgstatementsAgentTypeStatusPropEnum = append(changeAgentOkBodyQanPostgresqlPgstatementsAgentTypeStatusPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" + ChangeAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" + + // ChangeAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" + ChangeAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" + + // ChangeAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" + ChangeAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" + + // ChangeAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" + ChangeAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" + + // ChangeAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" + ChangeAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" + + // ChangeAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" + ChangeAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" + + // ChangeAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" + ChangeAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" +) + +// prop value enum +func (o *ChangeAgentOKBodyQANPostgresqlPgstatementsAgent) validateStatusEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyQanPostgresqlPgstatementsAgentTypeStatusPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyQANPostgresqlPgstatementsAgent) validateStatus(formats strfmt.Registry) error { + if swag.IsZero(o.Status) { // not required + return nil + } + + // value enum + if err := o.validateStatusEnum("changeAgentOk"+"."+"qan_postgresql_pgstatements_agent"+"."+"status", "body", *o.Status); err != nil { + return err + } + + return nil +} + +var changeAgentOkBodyQanPostgresqlPgstatementsAgentTypeLogLevelPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyQanPostgresqlPgstatementsAgentTypeLogLevelPropEnum = append(changeAgentOkBodyQanPostgresqlPgstatementsAgentTypeLogLevelPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentOKBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + + // ChangeAgentOKBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentOKBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + + // ChangeAgentOKBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentOKBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + + // ChangeAgentOKBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentOKBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + + // ChangeAgentOKBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentOKBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + + // ChangeAgentOKBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentOKBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" +) + +// prop value enum +func (o *ChangeAgentOKBodyQANPostgresqlPgstatementsAgent) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyQanPostgresqlPgstatementsAgentTypeLogLevelPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyQANPostgresqlPgstatementsAgent) validateLogLevel(formats strfmt.Registry) error { + if swag.IsZero(o.LogLevel) { // not required + return nil + } + + // value enum + if err := o.validateLogLevelEnum("changeAgentOk"+"."+"qan_postgresql_pgstatements_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { + return err + } + + return nil +} + +// ContextValidate validates this change agent OK body QAN postgresql pgstatements agent based on context it is used +func (o *ChangeAgentOKBodyQANPostgresqlPgstatementsAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentOKBodyQANPostgresqlPgstatementsAgent) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentOKBodyQANPostgresqlPgstatementsAgent) UnmarshalBinary(b []byte) error { + var res ChangeAgentOKBodyQANPostgresqlPgstatementsAgent + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgent QANPostgreSQLPgStatMonitorAgent runs within pmm-agent and sends PostgreSQL Query Analytics data to the PMM Server. +swagger:model ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgent +*/ +type ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgent struct { + // Unique randomly generated instance identifier. + AgentID string `json:"agent_id,omitempty"` + + // The pmm-agent identifier which runs this instance. + PMMAgentID string `json:"pmm_agent_id,omitempty"` + + // Desired Agent status: enabled (false) or disabled (true). + Disabled bool `json:"disabled,omitempty"` + + // Service identifier. + ServiceID string `json:"service_id,omitempty"` + + // PostgreSQL username for getting pg stat monitor data. + Username string `json:"username,omitempty"` + + // Use TLS for database connections. + TLS bool `json:"tls,omitempty"` + + // Skip TLS certificate and hostname validation. + TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` + + // Disable parsing comments from queries and showing them in QAN. + DisableCommentsParsing bool `json:"disable_comments_parsing,omitempty"` + + // Limit query length in QAN (default: server-defined; -1: no limit). + MaxQueryLength int32 `json:"max_query_length,omitempty"` + + // True if query examples are disabled. + QueryExamplesDisabled bool `json:"query_examples_disabled,omitempty"` + + // Custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // AgentStatus represents actual Agent status. + // + // - AGENT_STATUS_STARTING: Agent is starting. + // - AGENT_STATUS_RUNNING: Agent is running. + // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. + // - AGENT_STATUS_STOPPING: Agent is stopping. + // - AGENT_STATUS_DONE: Agent finished. + // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. + // Enum: [AGENT_STATUS_UNSPECIFIED AGENT_STATUS_STARTING AGENT_STATUS_RUNNING AGENT_STATUS_WAITING AGENT_STATUS_STOPPING AGENT_STATUS_DONE AGENT_STATUS_UNKNOWN] + Status *string `json:"status,omitempty"` + + // Path to exec process. + ProcessExecPath string `json:"process_exec_path,omitempty"` + + // Log level for exporters + // + // - LOG_LEVEL_UNSPECIFIED: Auto + // Enum: [LOG_LEVEL_UNSPECIFIED LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARN LOG_LEVEL_INFO LOG_LEVEL_DEBUG] + LogLevel *string `json:"log_level,omitempty"` +} + +// Validate validates this change agent OK body QAN postgresql pgstatmonitor agent +func (o *ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgent) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateStatus(formats); err != nil { + res = append(res, err) + } + + if err := o.validateLogLevel(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +var changeAgentOkBodyQanPostgresqlPgstatmonitorAgentTypeStatusPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyQanPostgresqlPgstatmonitorAgentTypeStatusPropEnum = append(changeAgentOkBodyQanPostgresqlPgstatmonitorAgentTypeStatusPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" + ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" + + // ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" + ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" + + // ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" + ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" + + // ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" + ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" + + // ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" + ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" + + // ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" + ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" + + // ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" + ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" +) + +// prop value enum +func (o *ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgent) validateStatusEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyQanPostgresqlPgstatmonitorAgentTypeStatusPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgent) validateStatus(formats strfmt.Registry) error { + if swag.IsZero(o.Status) { // not required + return nil + } + + // value enum + if err := o.validateStatusEnum("changeAgentOk"+"."+"qan_postgresql_pgstatmonitor_agent"+"."+"status", "body", *o.Status); err != nil { + return err + } + + return nil +} + +var changeAgentOkBodyQanPostgresqlPgstatmonitorAgentTypeLogLevelPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyQanPostgresqlPgstatmonitorAgentTypeLogLevelPropEnum = append(changeAgentOkBodyQanPostgresqlPgstatmonitorAgentTypeLogLevelPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + + // ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + + // ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + + // ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + + // ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + + // ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" +) + +// prop value enum +func (o *ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgent) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyQanPostgresqlPgstatmonitorAgentTypeLogLevelPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgent) validateLogLevel(formats strfmt.Registry) error { + if swag.IsZero(o.LogLevel) { // not required + return nil + } + + // value enum + if err := o.validateLogLevelEnum("changeAgentOk"+"."+"qan_postgresql_pgstatmonitor_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { + return err + } + + return nil +} + +// ContextValidate validates this change agent OK body QAN postgresql pgstatmonitor agent based on context it is used +func (o *ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgent) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgent) UnmarshalBinary(b []byte) error { + var res ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgent + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentOKBodyRDSExporter RDSExporter runs on Generic or Container Node and exposes RemoteRDS Node metrics. +swagger:model ChangeAgentOKBodyRDSExporter +*/ +type ChangeAgentOKBodyRDSExporter struct { + // Unique randomly generated instance identifier. + AgentID string `json:"agent_id,omitempty"` + + // The pmm-agent identifier which runs this instance. + PMMAgentID string `json:"pmm_agent_id,omitempty"` + + // Desired Agent status: enabled (false) or disabled (true). + Disabled bool `json:"disabled,omitempty"` + + // Node identifier. + NodeID string `json:"node_id,omitempty"` + + // AWS Access Key. + AWSAccessKey string `json:"aws_access_key,omitempty"` + + // Custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // AgentStatus represents actual Agent status. + // + // - AGENT_STATUS_STARTING: Agent is starting. + // - AGENT_STATUS_RUNNING: Agent is running. + // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. + // - AGENT_STATUS_STOPPING: Agent is stopping. + // - AGENT_STATUS_DONE: Agent finished. + // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. + // Enum: [AGENT_STATUS_UNSPECIFIED AGENT_STATUS_STARTING AGENT_STATUS_RUNNING AGENT_STATUS_WAITING AGENT_STATUS_STOPPING AGENT_STATUS_DONE AGENT_STATUS_UNKNOWN] + Status *string `json:"status,omitempty"` + + // Listen port for scraping metrics (the same for several configurations). + ListenPort int64 `json:"listen_port,omitempty"` + + // Basic metrics are disabled. + BasicMetricsDisabled bool `json:"basic_metrics_disabled,omitempty"` + + // Enhanced metrics are disabled. + EnhancedMetricsDisabled bool `json:"enhanced_metrics_disabled,omitempty"` + + // True if exporter uses push metrics mode. + PushMetricsEnabled bool `json:"push_metrics_enabled,omitempty"` + + // Path to exec process. + ProcessExecPath string `json:"process_exec_path,omitempty"` + + // Log level for exporters + // + // - LOG_LEVEL_UNSPECIFIED: Auto + // Enum: [LOG_LEVEL_UNSPECIFIED LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARN LOG_LEVEL_INFO LOG_LEVEL_DEBUG] + LogLevel *string `json:"log_level,omitempty"` + + // Limit of databases for auto-discovery. + AutoDiscoveryLimit int32 `json:"auto_discovery_limit,omitempty"` +} + +// Validate validates this change agent OK body RDS exporter +func (o *ChangeAgentOKBodyRDSExporter) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateStatus(formats); err != nil { + res = append(res, err) + } + + if err := o.validateLogLevel(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +var changeAgentOkBodyRdsExporterTypeStatusPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyRdsExporterTypeStatusPropEnum = append(changeAgentOkBodyRdsExporterTypeStatusPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyRDSExporterStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" + ChangeAgentOKBodyRDSExporterStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" + + // ChangeAgentOKBodyRDSExporterStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" + ChangeAgentOKBodyRDSExporterStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" + + // ChangeAgentOKBodyRDSExporterStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" + ChangeAgentOKBodyRDSExporterStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" + + // ChangeAgentOKBodyRDSExporterStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" + ChangeAgentOKBodyRDSExporterStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" + + // ChangeAgentOKBodyRDSExporterStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" + ChangeAgentOKBodyRDSExporterStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" + + // ChangeAgentOKBodyRDSExporterStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" + ChangeAgentOKBodyRDSExporterStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" + + // ChangeAgentOKBodyRDSExporterStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" + ChangeAgentOKBodyRDSExporterStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" +) + +// prop value enum +func (o *ChangeAgentOKBodyRDSExporter) validateStatusEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyRdsExporterTypeStatusPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyRDSExporter) validateStatus(formats strfmt.Registry) error { + if swag.IsZero(o.Status) { // not required + return nil + } + + // value enum + if err := o.validateStatusEnum("changeAgentOk"+"."+"rds_exporter"+"."+"status", "body", *o.Status); err != nil { + return err + } + + return nil +} + +var changeAgentOkBodyRdsExporterTypeLogLevelPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyRdsExporterTypeLogLevelPropEnum = append(changeAgentOkBodyRdsExporterTypeLogLevelPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyRDSExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentOKBodyRDSExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + + // ChangeAgentOKBodyRDSExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentOKBodyRDSExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + + // ChangeAgentOKBodyRDSExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentOKBodyRDSExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + + // ChangeAgentOKBodyRDSExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentOKBodyRDSExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + + // ChangeAgentOKBodyRDSExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentOKBodyRDSExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + + // ChangeAgentOKBodyRDSExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentOKBodyRDSExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" +) + +// prop value enum +func (o *ChangeAgentOKBodyRDSExporter) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyRdsExporterTypeLogLevelPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyRDSExporter) validateLogLevel(formats strfmt.Registry) error { + if swag.IsZero(o.LogLevel) { // not required + return nil + } + + // value enum + if err := o.validateLogLevelEnum("changeAgentOk"+"."+"rds_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { + return err + } + + return nil +} + +// ContextValidate validates this change agent OK body RDS exporter based on context it is used +func (o *ChangeAgentOKBodyRDSExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentOKBodyRDSExporter) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentOKBodyRDSExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentOKBodyRDSExporter + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyAzureDatabaseExporter change agent params body azure database exporter +swagger:model ChangeAgentParamsBodyAzureDatabaseExporter +*/ +type ChangeAgentParamsBodyAzureDatabaseExporter struct { + // agent id + AgentID string `json:"agent_id,omitempty"` + + // common + Common *ChangeAgentParamsBodyAzureDatabaseExporterCommon `json:"common,omitempty"` +} + +// Validate validates this change agent params body azure database exporter +func (o *ChangeAgentParamsBodyAzureDatabaseExporter) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCommon(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyAzureDatabaseExporter) validateCommon(formats strfmt.Registry) error { + if swag.IsZero(o.Common) { // not required + return nil + } + + if o.Common != nil { + if err := o.Common.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "azure_database_exporter" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "azure_database_exporter" + "." + "common") + } + return err + } + } + + return nil +} + +// ContextValidate validate this change agent params body azure database exporter based on the context it is used +func (o *ChangeAgentParamsBodyAzureDatabaseExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCommon(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyAzureDatabaseExporter) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { + if o.Common != nil { + if err := o.Common.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "azure_database_exporter" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "azure_database_exporter" + "." + "common") + } + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyAzureDatabaseExporter) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyAzureDatabaseExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyAzureDatabaseExporter + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyAzureDatabaseExporterCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. +swagger:model ChangeAgentParamsBodyAzureDatabaseExporterCommon +*/ +type ChangeAgentParamsBodyAzureDatabaseExporterCommon struct { + // Enable this Agent. Can't be used with disabled. + Enable bool `json:"enable,omitempty"` + + // Disable this Agent. Can't be used with enabled. + Disable bool `json:"disable,omitempty"` + + // Replace all custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // Remove all custom user-assigned labels. + RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` + + // Enables push metrics with vmagent, can't be used with disable_push_metrics. + EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` + + // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. + DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` +} + +// Validate validates this change agent params body azure database exporter common +func (o *ChangeAgentParamsBodyAzureDatabaseExporterCommon) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body azure database exporter common based on context it is used +func (o *ChangeAgentParamsBodyAzureDatabaseExporterCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyAzureDatabaseExporterCommon) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyAzureDatabaseExporterCommon) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyAzureDatabaseExporterCommon + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyExternalExporter change agent params body external exporter +swagger:model ChangeAgentParamsBodyExternalExporter +*/ +type ChangeAgentParamsBodyExternalExporter struct { + // agent id + AgentID string `json:"agent_id,omitempty"` + + // common + Common *ChangeAgentParamsBodyExternalExporterCommon `json:"common,omitempty"` +} + +// Validate validates this change agent params body external exporter +func (o *ChangeAgentParamsBodyExternalExporter) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCommon(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyExternalExporter) validateCommon(formats strfmt.Registry) error { + if swag.IsZero(o.Common) { // not required + return nil + } + + if o.Common != nil { + if err := o.Common.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "external_exporter" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "external_exporter" + "." + "common") + } + return err + } + } + + return nil +} + +// ContextValidate validate this change agent params body external exporter based on the context it is used +func (o *ChangeAgentParamsBodyExternalExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCommon(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyExternalExporter) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { + if o.Common != nil { + if err := o.Common.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "external_exporter" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "external_exporter" + "." + "common") + } + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyExternalExporter) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyExternalExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyExternalExporter + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyExternalExporterCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. +swagger:model ChangeAgentParamsBodyExternalExporterCommon +*/ +type ChangeAgentParamsBodyExternalExporterCommon struct { + // Enable this Agent. Can't be used with disabled. + Enable bool `json:"enable,omitempty"` + + // Disable this Agent. Can't be used with enabled. + Disable bool `json:"disable,omitempty"` + + // Replace all custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // Remove all custom user-assigned labels. + RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` + + // Enables push metrics with vmagent, can't be used with disable_push_metrics. + EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` + + // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. + DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` +} + +// Validate validates this change agent params body external exporter common +func (o *ChangeAgentParamsBodyExternalExporterCommon) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body external exporter common based on context it is used +func (o *ChangeAgentParamsBodyExternalExporterCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyExternalExporterCommon) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyExternalExporterCommon) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyExternalExporterCommon + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyMongodbExporter change agent params body mongodb exporter +swagger:model ChangeAgentParamsBodyMongodbExporter +*/ +type ChangeAgentParamsBodyMongodbExporter struct { + // agent id + AgentID string `json:"agent_id,omitempty"` + + // common + Common *ChangeAgentParamsBodyMongodbExporterCommon `json:"common,omitempty"` +} + +// Validate validates this change agent params body mongodb exporter +func (o *ChangeAgentParamsBodyMongodbExporter) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCommon(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyMongodbExporter) validateCommon(formats strfmt.Registry) error { + if swag.IsZero(o.Common) { // not required + return nil + } + + if o.Common != nil { + if err := o.Common.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "mongodb_exporter" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "mongodb_exporter" + "." + "common") + } + return err + } + } + + return nil +} + +// ContextValidate validate this change agent params body mongodb exporter based on the context it is used +func (o *ChangeAgentParamsBodyMongodbExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCommon(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyMongodbExporter) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { + if o.Common != nil { + if err := o.Common.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "mongodb_exporter" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "mongodb_exporter" + "." + "common") + } + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyMongodbExporter) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyMongodbExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyMongodbExporter + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyMongodbExporterCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. +swagger:model ChangeAgentParamsBodyMongodbExporterCommon +*/ +type ChangeAgentParamsBodyMongodbExporterCommon struct { + // Enable this Agent. Can't be used with disabled. + Enable bool `json:"enable,omitempty"` + + // Disable this Agent. Can't be used with enabled. + Disable bool `json:"disable,omitempty"` + + // Replace all custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // Remove all custom user-assigned labels. + RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` + + // Enables push metrics with vmagent, can't be used with disable_push_metrics. + EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` + + // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. + DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` +} + +// Validate validates this change agent params body mongodb exporter common +func (o *ChangeAgentParamsBodyMongodbExporterCommon) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body mongodb exporter common based on context it is used +func (o *ChangeAgentParamsBodyMongodbExporterCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyMongodbExporterCommon) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyMongodbExporterCommon) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyMongodbExporterCommon + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyMysqldExporter change agent params body mysqld exporter +swagger:model ChangeAgentParamsBodyMysqldExporter +*/ +type ChangeAgentParamsBodyMysqldExporter struct { + // agent id + AgentID string `json:"agent_id,omitempty"` + + // common + Common *ChangeAgentParamsBodyMysqldExporterCommon `json:"common,omitempty"` +} + +// Validate validates this change agent params body mysqld exporter +func (o *ChangeAgentParamsBodyMysqldExporter) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCommon(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyMysqldExporter) validateCommon(formats strfmt.Registry) error { + if swag.IsZero(o.Common) { // not required + return nil + } + + if o.Common != nil { + if err := o.Common.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "mysqld_exporter" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "mysqld_exporter" + "." + "common") + } + return err + } + } + + return nil +} + +// ContextValidate validate this change agent params body mysqld exporter based on the context it is used +func (o *ChangeAgentParamsBodyMysqldExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCommon(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyMysqldExporter) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { + if o.Common != nil { + if err := o.Common.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "mysqld_exporter" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "mysqld_exporter" + "." + "common") + } + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyMysqldExporter) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyMysqldExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyMysqldExporter + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyMysqldExporterCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. +swagger:model ChangeAgentParamsBodyMysqldExporterCommon +*/ +type ChangeAgentParamsBodyMysqldExporterCommon struct { + // Enable this Agent. Can't be used with disabled. + Enable bool `json:"enable,omitempty"` + + // Disable this Agent. Can't be used with enabled. + Disable bool `json:"disable,omitempty"` + + // Replace all custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // Remove all custom user-assigned labels. + RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` + + // Enables push metrics with vmagent, can't be used with disable_push_metrics. + EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` + + // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. + DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` +} + +// Validate validates this change agent params body mysqld exporter common +func (o *ChangeAgentParamsBodyMysqldExporterCommon) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body mysqld exporter common based on context it is used +func (o *ChangeAgentParamsBodyMysqldExporterCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyMysqldExporterCommon) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyMysqldExporterCommon) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyMysqldExporterCommon + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyNodeExporter change agent params body node exporter +swagger:model ChangeAgentParamsBodyNodeExporter +*/ +type ChangeAgentParamsBodyNodeExporter struct { + // agent id + AgentID string `json:"agent_id,omitempty"` + + // common + Common *ChangeAgentParamsBodyNodeExporterCommon `json:"common,omitempty"` +} + +// Validate validates this change agent params body node exporter +func (o *ChangeAgentParamsBodyNodeExporter) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCommon(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyNodeExporter) validateCommon(formats strfmt.Registry) error { + if swag.IsZero(o.Common) { // not required + return nil + } + + if o.Common != nil { + if err := o.Common.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "node_exporter" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "node_exporter" + "." + "common") + } + return err + } + } + + return nil +} + +// ContextValidate validate this change agent params body node exporter based on the context it is used +func (o *ChangeAgentParamsBodyNodeExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCommon(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyNodeExporter) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { + if o.Common != nil { + if err := o.Common.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "node_exporter" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "node_exporter" + "." + "common") + } + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyNodeExporter) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyNodeExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyNodeExporter + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyNodeExporterCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. +swagger:model ChangeAgentParamsBodyNodeExporterCommon +*/ +type ChangeAgentParamsBodyNodeExporterCommon struct { + // Enable this Agent. Can't be used with disabled. + Enable bool `json:"enable,omitempty"` + + // Disable this Agent. Can't be used with enabled. + Disable bool `json:"disable,omitempty"` + + // Replace all custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // Remove all custom user-assigned labels. + RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` + + // Enables push metrics with vmagent, can't be used with disable_push_metrics. + EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` + + // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. + DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` +} + +// Validate validates this change agent params body node exporter common +func (o *ChangeAgentParamsBodyNodeExporterCommon) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body node exporter common based on context it is used +func (o *ChangeAgentParamsBodyNodeExporterCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyNodeExporterCommon) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyNodeExporterCommon) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyNodeExporterCommon + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyPostgresExporter change agent params body postgres exporter +swagger:model ChangeAgentParamsBodyPostgresExporter +*/ +type ChangeAgentParamsBodyPostgresExporter struct { + // agent id + AgentID string `json:"agent_id,omitempty"` + + // common + Common *ChangeAgentParamsBodyPostgresExporterCommon `json:"common,omitempty"` +} + +// Validate validates this change agent params body postgres exporter +func (o *ChangeAgentParamsBodyPostgresExporter) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCommon(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyPostgresExporter) validateCommon(formats strfmt.Registry) error { + if swag.IsZero(o.Common) { // not required + return nil + } + + if o.Common != nil { + if err := o.Common.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "postgres_exporter" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "postgres_exporter" + "." + "common") + } + return err + } + } + + return nil +} + +// ContextValidate validate this change agent params body postgres exporter based on the context it is used +func (o *ChangeAgentParamsBodyPostgresExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCommon(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyPostgresExporter) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { + if o.Common != nil { + if err := o.Common.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "postgres_exporter" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "postgres_exporter" + "." + "common") + } + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyPostgresExporter) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyPostgresExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyPostgresExporter + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyPostgresExporterCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. +swagger:model ChangeAgentParamsBodyPostgresExporterCommon +*/ +type ChangeAgentParamsBodyPostgresExporterCommon struct { + // Enable this Agent. Can't be used with disabled. + Enable bool `json:"enable,omitempty"` + + // Disable this Agent. Can't be used with enabled. + Disable bool `json:"disable,omitempty"` + + // Replace all custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // Remove all custom user-assigned labels. + RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` + + // Enables push metrics with vmagent, can't be used with disable_push_metrics. + EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` + + // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. + DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` +} + +// Validate validates this change agent params body postgres exporter common +func (o *ChangeAgentParamsBodyPostgresExporterCommon) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body postgres exporter common based on context it is used +func (o *ChangeAgentParamsBodyPostgresExporterCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyPostgresExporterCommon) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyPostgresExporterCommon) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyPostgresExporterCommon + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyProxysqlExporter change agent params body proxysql exporter +swagger:model ChangeAgentParamsBodyProxysqlExporter +*/ +type ChangeAgentParamsBodyProxysqlExporter struct { + // agent id + AgentID string `json:"agent_id,omitempty"` + + // common + Common *ChangeAgentParamsBodyProxysqlExporterCommon `json:"common,omitempty"` +} + +// Validate validates this change agent params body proxysql exporter +func (o *ChangeAgentParamsBodyProxysqlExporter) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCommon(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyProxysqlExporter) validateCommon(formats strfmt.Registry) error { + if swag.IsZero(o.Common) { // not required + return nil + } + + if o.Common != nil { + if err := o.Common.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "proxysql_exporter" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "proxysql_exporter" + "." + "common") + } + return err + } + } + + return nil +} + +// ContextValidate validate this change agent params body proxysql exporter based on the context it is used +func (o *ChangeAgentParamsBodyProxysqlExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCommon(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyProxysqlExporter) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { + if o.Common != nil { + if err := o.Common.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "proxysql_exporter" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "proxysql_exporter" + "." + "common") + } + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyProxysqlExporter) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyProxysqlExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyProxysqlExporter + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyProxysqlExporterCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. +swagger:model ChangeAgentParamsBodyProxysqlExporterCommon +*/ +type ChangeAgentParamsBodyProxysqlExporterCommon struct { + // Enable this Agent. Can't be used with disabled. + Enable bool `json:"enable,omitempty"` + + // Disable this Agent. Can't be used with enabled. + Disable bool `json:"disable,omitempty"` + + // Replace all custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // Remove all custom user-assigned labels. + RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` + + // Enables push metrics with vmagent, can't be used with disable_push_metrics. + EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` + + // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. + DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` +} + +// Validate validates this change agent params body proxysql exporter common +func (o *ChangeAgentParamsBodyProxysqlExporterCommon) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body proxysql exporter common based on context it is used +func (o *ChangeAgentParamsBodyProxysqlExporterCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyProxysqlExporterCommon) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyProxysqlExporterCommon) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyProxysqlExporterCommon + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyQANMongodbProfilerAgent change agent params body QAN mongodb profiler agent +swagger:model ChangeAgentParamsBodyQANMongodbProfilerAgent +*/ +type ChangeAgentParamsBodyQANMongodbProfilerAgent struct { + // agent id + AgentID string `json:"agent_id,omitempty"` + + // common + Common *ChangeAgentParamsBodyQANMongodbProfilerAgentCommon `json:"common,omitempty"` +} + +// Validate validates this change agent params body QAN mongodb profiler agent +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCommon(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) validateCommon(formats strfmt.Registry) error { + if swag.IsZero(o.Common) { // not required + return nil + } + + if o.Common != nil { + if err := o.Common.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "common") + } + return err + } + } + + return nil +} + +// ContextValidate validate this change agent params body QAN mongodb profiler agent based on the context it is used +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCommon(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { + if o.Common != nil { + if err := o.Common.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "common") + } + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANMongodbProfilerAgent + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyQANMongodbProfilerAgentCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. +swagger:model ChangeAgentParamsBodyQANMongodbProfilerAgentCommon +*/ +type ChangeAgentParamsBodyQANMongodbProfilerAgentCommon struct { + // Enable this Agent. Can't be used with disabled. + Enable bool `json:"enable,omitempty"` + + // Disable this Agent. Can't be used with enabled. + Disable bool `json:"disable,omitempty"` + + // Replace all custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // Remove all custom user-assigned labels. + RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` + + // Enables push metrics with vmagent, can't be used with disable_push_metrics. + EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` + + // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. + DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` +} + +// Validate validates this change agent params body QAN mongodb profiler agent common +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCommon) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body QAN mongodb profiler agent common based on context it is used +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCommon) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCommon) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANMongodbProfilerAgentCommon + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyQANMysqlPerfschemaAgent change agent params body QAN mysql perfschema agent +swagger:model ChangeAgentParamsBodyQANMysqlPerfschemaAgent +*/ +type ChangeAgentParamsBodyQANMysqlPerfschemaAgent struct { + // agent id + AgentID string `json:"agent_id,omitempty"` + + // common + Common *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon `json:"common,omitempty"` +} + +// Validate validates this change agent params body QAN mysql perfschema agent +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCommon(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) validateCommon(formats strfmt.Registry) error { + if swag.IsZero(o.Common) { // not required + return nil + } + + if o.Common != nil { + if err := o.Common.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "common") + } + return err + } + } + + return nil +} + +// ContextValidate validate this change agent params body QAN mysql perfschema agent based on the context it is used +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCommon(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { + if o.Common != nil { + if err := o.Common.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "common") + } + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANMysqlPerfschemaAgent + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. +swagger:model ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon +*/ +type ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon struct { + // Enable this Agent. Can't be used with disabled. + Enable bool `json:"enable,omitempty"` + + // Disable this Agent. Can't be used with enabled. + Disable bool `json:"disable,omitempty"` + + // Replace all custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // Remove all custom user-assigned labels. + RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` + + // Enables push metrics with vmagent, can't be used with disable_push_metrics. + EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` + + // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. + DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` +} + +// Validate validates this change agent params body QAN mysql perfschema agent common +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body QAN mysql perfschema agent common based on context it is used +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyQANMysqlSlowlogAgent change agent params body QAN mysql slowlog agent +swagger:model ChangeAgentParamsBodyQANMysqlSlowlogAgent +*/ +type ChangeAgentParamsBodyQANMysqlSlowlogAgent struct { + // agent id + AgentID string `json:"agent_id,omitempty"` + + // common + Common *ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon `json:"common,omitempty"` +} + +// Validate validates this change agent params body QAN mysql slowlog agent +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCommon(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) validateCommon(formats strfmt.Registry) error { + if swag.IsZero(o.Common) { // not required + return nil + } + + if o.Common != nil { + if err := o.Common.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "common") + } + return err + } + } + + return nil +} + +// ContextValidate validate this change agent params body QAN mysql slowlog agent based on the context it is used +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCommon(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { + if o.Common != nil { + if err := o.Common.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "common") + } + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANMysqlSlowlogAgent + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. +swagger:model ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon +*/ +type ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon struct { + // Enable this Agent. Can't be used with disabled. + Enable bool `json:"enable,omitempty"` + + // Disable this Agent. Can't be used with enabled. + Disable bool `json:"disable,omitempty"` + + // Replace all custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // Remove all custom user-assigned labels. + RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` + + // Enables push metrics with vmagent, can't be used with disable_push_metrics. + EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` + + // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. + DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` +} + +// Validate validates this change agent params body QAN mysql slowlog agent common +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body QAN mysql slowlog agent common based on context it is used +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent change agent params body QAN postgresql pgstatements agent +swagger:model ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent +*/ +type ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent struct { + // agent id + AgentID string `json:"agent_id,omitempty"` + + // common + Common *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon `json:"common,omitempty"` +} + +// Validate validates this change agent params body QAN postgresql pgstatements agent +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCommon(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) validateCommon(formats strfmt.Registry) error { + if swag.IsZero(o.Common) { // not required + return nil + } + + if o.Common != nil { + if err := o.Common.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent" + "." + "common") + } + return err + } + } + + return nil +} + +// ContextValidate validate this change agent params body QAN postgresql pgstatements agent based on the context it is used +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCommon(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { + if o.Common != nil { + if err := o.Common.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent" + "." + "common") + } + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. +swagger:model ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon +*/ +type ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon struct { + // Enable this Agent. Can't be used with disabled. + Enable bool `json:"enable,omitempty"` + + // Disable this Agent. Can't be used with enabled. + Disable bool `json:"disable,omitempty"` + + // Replace all custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // Remove all custom user-assigned labels. + RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` + + // Enables push metrics with vmagent, can't be used with disable_push_metrics. + EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` + + // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. + DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` +} + +// Validate validates this change agent params body QAN postgresql pgstatements agent common +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body QAN postgresql pgstatements agent common based on context it is used +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent change agent params body QAN postgresql pgstatmonitor agent +swagger:model ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent +*/ +type ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent struct { + // agent id + AgentID string `json:"agent_id,omitempty"` + + // common + Common *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon `json:"common,omitempty"` +} + +// Validate validates this change agent params body QAN postgresql pgstatmonitor agent +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCommon(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) validateCommon(formats strfmt.Registry) error { + if swag.IsZero(o.Common) { // not required + return nil + } + + if o.Common != nil { + if err := o.Common.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent" + "." + "common") + } + return err + } + } + + return nil +} + +// ContextValidate validate this change agent params body QAN postgresql pgstatmonitor agent based on the context it is used +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCommon(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { + if o.Common != nil { + if err := o.Common.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent" + "." + "common") + } + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. +swagger:model ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon +*/ +type ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon struct { + // Enable this Agent. Can't be used with disabled. + Enable bool `json:"enable,omitempty"` + + // Disable this Agent. Can't be used with enabled. + Disable bool `json:"disable,omitempty"` + + // Replace all custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // Remove all custom user-assigned labels. + RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` + + // Enables push metrics with vmagent, can't be used with disable_push_metrics. + EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` + + // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. + DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` +} + +// Validate validates this change agent params body QAN postgresql pgstatmonitor agent common +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body QAN postgresql pgstatmonitor agent common based on context it is used +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyRDSExporter change agent params body RDS exporter +swagger:model ChangeAgentParamsBodyRDSExporter +*/ +type ChangeAgentParamsBodyRDSExporter struct { + // agent id + AgentID string `json:"agent_id,omitempty"` + + // common + Common *ChangeAgentParamsBodyRDSExporterCommon `json:"common,omitempty"` +} + +// Validate validates this change agent params body RDS exporter +func (o *ChangeAgentParamsBodyRDSExporter) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCommon(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyRDSExporter) validateCommon(formats strfmt.Registry) error { + if swag.IsZero(o.Common) { // not required + return nil + } + + if o.Common != nil { + if err := o.Common.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "rds_exporter" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "rds_exporter" + "." + "common") + } + return err + } + } + + return nil +} + +// ContextValidate validate this change agent params body RDS exporter based on the context it is used +func (o *ChangeAgentParamsBodyRDSExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCommon(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyRDSExporter) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { + if o.Common != nil { + if err := o.Common.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "rds_exporter" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "rds_exporter" + "." + "common") + } + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyRDSExporter) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyRDSExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyRDSExporter + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyRDSExporterCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. +swagger:model ChangeAgentParamsBodyRDSExporterCommon +*/ +type ChangeAgentParamsBodyRDSExporterCommon struct { + // Enable this Agent. Can't be used with disabled. + Enable bool `json:"enable,omitempty"` + + // Disable this Agent. Can't be used with enabled. + Disable bool `json:"disable,omitempty"` + + // Replace all custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // Remove all custom user-assigned labels. + RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` + + // Enables push metrics with vmagent, can't be used with disable_push_metrics. + EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` + + // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. + DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` +} + +// Validate validates this change agent params body RDS exporter common +func (o *ChangeAgentParamsBodyRDSExporterCommon) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body RDS exporter common based on context it is used +func (o *ChangeAgentParamsBodyRDSExporterCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyRDSExporterCommon) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyRDSExporterCommon) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyRDSExporterCommon + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} diff --git a/api/inventory/v1/json/client/agents_service/change_azure_database_exporter_parameters.go b/api/inventory/v1/json/client/agents_service/change_azure_database_exporter_parameters.go deleted file mode 100644 index 8b842fbb20..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_azure_database_exporter_parameters.go +++ /dev/null @@ -1,144 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "net/http" - "time" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - cr "github.com/go-openapi/runtime/client" - "github.com/go-openapi/strfmt" -) - -// NewChangeAzureDatabaseExporterParams creates a new ChangeAzureDatabaseExporterParams object, -// with the default timeout for this client. -// -// Default values are not hydrated, since defaults are normally applied by the API server side. -// -// To enforce default values in parameter, use SetDefaults or WithDefaults. -func NewChangeAzureDatabaseExporterParams() *ChangeAzureDatabaseExporterParams { - return &ChangeAzureDatabaseExporterParams{ - timeout: cr.DefaultTimeout, - } -} - -// NewChangeAzureDatabaseExporterParamsWithTimeout creates a new ChangeAzureDatabaseExporterParams object -// with the ability to set a timeout on a request. -func NewChangeAzureDatabaseExporterParamsWithTimeout(timeout time.Duration) *ChangeAzureDatabaseExporterParams { - return &ChangeAzureDatabaseExporterParams{ - timeout: timeout, - } -} - -// NewChangeAzureDatabaseExporterParamsWithContext creates a new ChangeAzureDatabaseExporterParams object -// with the ability to set a context for a request. -func NewChangeAzureDatabaseExporterParamsWithContext(ctx context.Context) *ChangeAzureDatabaseExporterParams { - return &ChangeAzureDatabaseExporterParams{ - Context: ctx, - } -} - -// NewChangeAzureDatabaseExporterParamsWithHTTPClient creates a new ChangeAzureDatabaseExporterParams object -// with the ability to set a custom HTTPClient for a request. -func NewChangeAzureDatabaseExporterParamsWithHTTPClient(client *http.Client) *ChangeAzureDatabaseExporterParams { - return &ChangeAzureDatabaseExporterParams{ - HTTPClient: client, - } -} - -/* -ChangeAzureDatabaseExporterParams contains all the parameters to send to the API endpoint - - for the change azure database exporter operation. - - Typically these are written to a http.Request. -*/ -type ChangeAzureDatabaseExporterParams struct { - // Body. - Body ChangeAzureDatabaseExporterBody - - timeout time.Duration - Context context.Context - HTTPClient *http.Client -} - -// WithDefaults hydrates default values in the change azure database exporter params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangeAzureDatabaseExporterParams) WithDefaults() *ChangeAzureDatabaseExporterParams { - o.SetDefaults() - return o -} - -// SetDefaults hydrates default values in the change azure database exporter params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangeAzureDatabaseExporterParams) SetDefaults() { - // no default values defined for this parameter -} - -// WithTimeout adds the timeout to the change azure database exporter params -func (o *ChangeAzureDatabaseExporterParams) WithTimeout(timeout time.Duration) *ChangeAzureDatabaseExporterParams { - o.SetTimeout(timeout) - return o -} - -// SetTimeout adds the timeout to the change azure database exporter params -func (o *ChangeAzureDatabaseExporterParams) SetTimeout(timeout time.Duration) { - o.timeout = timeout -} - -// WithContext adds the context to the change azure database exporter params -func (o *ChangeAzureDatabaseExporterParams) WithContext(ctx context.Context) *ChangeAzureDatabaseExporterParams { - o.SetContext(ctx) - return o -} - -// SetContext adds the context to the change azure database exporter params -func (o *ChangeAzureDatabaseExporterParams) SetContext(ctx context.Context) { - o.Context = ctx -} - -// WithHTTPClient adds the HTTPClient to the change azure database exporter params -func (o *ChangeAzureDatabaseExporterParams) WithHTTPClient(client *http.Client) *ChangeAzureDatabaseExporterParams { - o.SetHTTPClient(client) - return o -} - -// SetHTTPClient adds the HTTPClient to the change azure database exporter params -func (o *ChangeAzureDatabaseExporterParams) SetHTTPClient(client *http.Client) { - o.HTTPClient = client -} - -// WithBody adds the body to the change azure database exporter params -func (o *ChangeAzureDatabaseExporterParams) WithBody(body ChangeAzureDatabaseExporterBody) *ChangeAzureDatabaseExporterParams { - o.SetBody(body) - return o -} - -// SetBody adds the body to the change azure database exporter params -func (o *ChangeAzureDatabaseExporterParams) SetBody(body ChangeAzureDatabaseExporterBody) { - o.Body = body -} - -// WriteToRequest writes these params to a swagger request -func (o *ChangeAzureDatabaseExporterParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { - if err := r.SetTimeout(o.timeout); err != nil { - return err - } - var res []error - if err := r.SetBodyParam(o.Body); err != nil { - return err - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} diff --git a/api/inventory/v1/json/client/agents_service/change_azure_database_exporter_responses.go b/api/inventory/v1/json/client/agents_service/change_azure_database_exporter_responses.go deleted file mode 100644 index 3f4eaf1b97..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_azure_database_exporter_responses.go +++ /dev/null @@ -1,701 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "encoding/json" - "fmt" - "io" - "strconv" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - "github.com/go-openapi/strfmt" - "github.com/go-openapi/swag" - "github.com/go-openapi/validate" -) - -// ChangeAzureDatabaseExporterReader is a Reader for the ChangeAzureDatabaseExporter structure. -type ChangeAzureDatabaseExporterReader struct { - formats strfmt.Registry -} - -// ReadResponse reads a server response into the received o. -func (o *ChangeAzureDatabaseExporterReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) { - switch response.Code() { - case 200: - result := NewChangeAzureDatabaseExporterOK() - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - return result, nil - default: - result := NewChangeAzureDatabaseExporterDefault(response.Code()) - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - if response.Code()/100 == 2 { - return result, nil - } - return nil, result - } -} - -// NewChangeAzureDatabaseExporterOK creates a ChangeAzureDatabaseExporterOK with default headers values -func NewChangeAzureDatabaseExporterOK() *ChangeAzureDatabaseExporterOK { - return &ChangeAzureDatabaseExporterOK{} -} - -/* -ChangeAzureDatabaseExporterOK describes a response with status code 200, with default header values. - -A successful response. -*/ -type ChangeAzureDatabaseExporterOK struct { - Payload *ChangeAzureDatabaseExporterOKBody -} - -func (o *ChangeAzureDatabaseExporterOK) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangeAzureDatabaseExporter][%d] changeAzureDatabaseExporterOk %+v", 200, o.Payload) -} - -func (o *ChangeAzureDatabaseExporterOK) GetPayload() *ChangeAzureDatabaseExporterOKBody { - return o.Payload -} - -func (o *ChangeAzureDatabaseExporterOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangeAzureDatabaseExporterOKBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -// NewChangeAzureDatabaseExporterDefault creates a ChangeAzureDatabaseExporterDefault with default headers values -func NewChangeAzureDatabaseExporterDefault(code int) *ChangeAzureDatabaseExporterDefault { - return &ChangeAzureDatabaseExporterDefault{ - _statusCode: code, - } -} - -/* -ChangeAzureDatabaseExporterDefault describes a response with status code -1, with default header values. - -An unexpected error response. -*/ -type ChangeAzureDatabaseExporterDefault struct { - _statusCode int - - Payload *ChangeAzureDatabaseExporterDefaultBody -} - -// Code gets the status code for the change azure database exporter default response -func (o *ChangeAzureDatabaseExporterDefault) Code() int { - return o._statusCode -} - -func (o *ChangeAzureDatabaseExporterDefault) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangeAzureDatabaseExporter][%d] ChangeAzureDatabaseExporter default %+v", o._statusCode, o.Payload) -} - -func (o *ChangeAzureDatabaseExporterDefault) GetPayload() *ChangeAzureDatabaseExporterDefaultBody { - return o.Payload -} - -func (o *ChangeAzureDatabaseExporterDefault) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangeAzureDatabaseExporterDefaultBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -/* -ChangeAzureDatabaseExporterBody change azure database exporter body -swagger:model ChangeAzureDatabaseExporterBody -*/ -type ChangeAzureDatabaseExporterBody struct { - // agent id - AgentID string `json:"agent_id,omitempty"` - - // common - Common *ChangeAzureDatabaseExporterParamsBodyCommon `json:"common,omitempty"` -} - -// Validate validates this change azure database exporter body -func (o *ChangeAzureDatabaseExporterBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateCommon(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeAzureDatabaseExporterBody) validateCommon(formats strfmt.Registry) error { - if swag.IsZero(o.Common) { // not required - return nil - } - - if o.Common != nil { - if err := o.Common.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change azure database exporter body based on the context it is used -func (o *ChangeAzureDatabaseExporterBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateCommon(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeAzureDatabaseExporterBody) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { - if o.Common != nil { - if err := o.Common.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeAzureDatabaseExporterBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeAzureDatabaseExporterBody) UnmarshalBinary(b []byte) error { - var res ChangeAzureDatabaseExporterBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeAzureDatabaseExporterDefaultBody change azure database exporter default body -swagger:model ChangeAzureDatabaseExporterDefaultBody -*/ -type ChangeAzureDatabaseExporterDefaultBody struct { - // code - Code int32 `json:"code,omitempty"` - - // message - Message string `json:"message,omitempty"` - - // details - Details []*ChangeAzureDatabaseExporterDefaultBodyDetailsItems0 `json:"details"` -} - -// Validate validates this change azure database exporter default body -func (o *ChangeAzureDatabaseExporterDefaultBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateDetails(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeAzureDatabaseExporterDefaultBody) validateDetails(formats strfmt.Registry) error { - if swag.IsZero(o.Details) { // not required - return nil - } - - for i := 0; i < len(o.Details); i++ { - if swag.IsZero(o.Details[i]) { // not required - continue - } - - if o.Details[i] != nil { - if err := o.Details[i].Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangeAzureDatabaseExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangeAzureDatabaseExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - - } - - return nil -} - -// ContextValidate validate this change azure database exporter default body based on the context it is used -func (o *ChangeAzureDatabaseExporterDefaultBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateDetails(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeAzureDatabaseExporterDefaultBody) contextValidateDetails(ctx context.Context, formats strfmt.Registry) error { - for i := 0; i < len(o.Details); i++ { - if o.Details[i] != nil { - if err := o.Details[i].ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangeAzureDatabaseExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangeAzureDatabaseExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeAzureDatabaseExporterDefaultBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeAzureDatabaseExporterDefaultBody) UnmarshalBinary(b []byte) error { - var res ChangeAzureDatabaseExporterDefaultBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeAzureDatabaseExporterDefaultBodyDetailsItems0 change azure database exporter default body details items0 -swagger:model ChangeAzureDatabaseExporterDefaultBodyDetailsItems0 -*/ -type ChangeAzureDatabaseExporterDefaultBodyDetailsItems0 struct { - // at type - AtType string `json:"@type,omitempty"` -} - -// Validate validates this change azure database exporter default body details items0 -func (o *ChangeAzureDatabaseExporterDefaultBodyDetailsItems0) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change azure database exporter default body details items0 based on context it is used -func (o *ChangeAzureDatabaseExporterDefaultBodyDetailsItems0) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeAzureDatabaseExporterDefaultBodyDetailsItems0) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeAzureDatabaseExporterDefaultBodyDetailsItems0) UnmarshalBinary(b []byte) error { - var res ChangeAzureDatabaseExporterDefaultBodyDetailsItems0 - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeAzureDatabaseExporterOKBody change azure database exporter OK body -swagger:model ChangeAzureDatabaseExporterOKBody -*/ -type ChangeAzureDatabaseExporterOKBody struct { - // azure database exporter - AzureDatabaseExporter *ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporter `json:"azure_database_exporter,omitempty"` -} - -// Validate validates this change azure database exporter OK body -func (o *ChangeAzureDatabaseExporterOKBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateAzureDatabaseExporter(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeAzureDatabaseExporterOKBody) validateAzureDatabaseExporter(formats strfmt.Registry) error { - if swag.IsZero(o.AzureDatabaseExporter) { // not required - return nil - } - - if o.AzureDatabaseExporter != nil { - if err := o.AzureDatabaseExporter.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changeAzureDatabaseExporterOk" + "." + "azure_database_exporter") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changeAzureDatabaseExporterOk" + "." + "azure_database_exporter") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change azure database exporter OK body based on the context it is used -func (o *ChangeAzureDatabaseExporterOKBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateAzureDatabaseExporter(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeAzureDatabaseExporterOKBody) contextValidateAzureDatabaseExporter(ctx context.Context, formats strfmt.Registry) error { - if o.AzureDatabaseExporter != nil { - if err := o.AzureDatabaseExporter.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changeAzureDatabaseExporterOk" + "." + "azure_database_exporter") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changeAzureDatabaseExporterOk" + "." + "azure_database_exporter") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeAzureDatabaseExporterOKBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeAzureDatabaseExporterOKBody) UnmarshalBinary(b []byte) error { - var res ChangeAzureDatabaseExporterOKBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporter AzureDatabaseExporter runs on Generic or Container Node and exposes RemoteAzure Node metrics. -swagger:model ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporter -*/ -type ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporter struct { - // Unique randomly generated instance identifier. - AgentID string `json:"agent_id,omitempty"` - - // The pmm-agent identifier which runs this instance. - PMMAgentID string `json:"pmm_agent_id,omitempty"` - - // Desired Agent status: enabled (false) or disabled (true). - Disabled bool `json:"disabled,omitempty"` - - // Node identifier. - NodeID string `json:"node_id,omitempty"` - - // Azure database subscription ID. - AzureDatabaseSubscriptionID string `json:"azure_database_subscription_id,omitempty"` - - // Azure database resource type (mysql, maria, postgres) - AzureDatabaseResourceType string `json:"azure_database_resource_type,omitempty"` - - // Custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // AgentStatus represents actual Agent status. - // - // - AGENT_STATUS_STARTING: Agent is starting. - // - AGENT_STATUS_RUNNING: Agent is running. - // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. - // - AGENT_STATUS_STOPPING: Agent is stopping. - // - AGENT_STATUS_DONE: Agent finished. - // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. - // Enum: [AGENT_STATUS_UNSPECIFIED AGENT_STATUS_STARTING AGENT_STATUS_RUNNING AGENT_STATUS_WAITING AGENT_STATUS_STOPPING AGENT_STATUS_DONE AGENT_STATUS_UNKNOWN] - Status *string `json:"status,omitempty"` - - // Listen port for scraping metrics (the same for several configurations). - ListenPort int64 `json:"listen_port,omitempty"` - - // True if the exporter operates in push metrics mode. - PushMetricsEnabled bool `json:"push_metrics_enabled,omitempty"` - - // Path to exec process. - ProcessExecPath string `json:"process_exec_path,omitempty"` - - // Log level for exporters - // - // - LOG_LEVEL_UNSPECIFIED: Auto - // Enum: [LOG_LEVEL_UNSPECIFIED LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARN LOG_LEVEL_INFO LOG_LEVEL_DEBUG] - LogLevel *string `json:"log_level,omitempty"` -} - -// Validate validates this change azure database exporter OK body azure database exporter -func (o *ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporter) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateStatus(formats); err != nil { - res = append(res, err) - } - - if err := o.validateLogLevel(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -var changeAzureDatabaseExporterOkBodyAzureDatabaseExporterTypeStatusPropEnum []interface{} - -func init() { - var res []string - if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { - panic(err) - } - for _, v := range res { - changeAzureDatabaseExporterOkBodyAzureDatabaseExporterTypeStatusPropEnum = append(changeAzureDatabaseExporterOkBodyAzureDatabaseExporterTypeStatusPropEnum, v) - } -} - -const ( - - // ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" - ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" - - // ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" - ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" - - // ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" - ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" - - // ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" - ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" - - // ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" - ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" - - // ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" - ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" - - // ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" - ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" -) - -// prop value enum -func (o *ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporter) validateStatusEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeAzureDatabaseExporterOkBodyAzureDatabaseExporterTypeStatusPropEnum, true); err != nil { - return err - } - return nil -} - -func (o *ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporter) validateStatus(formats strfmt.Registry) error { - if swag.IsZero(o.Status) { // not required - return nil - } - - // value enum - if err := o.validateStatusEnum("changeAzureDatabaseExporterOk"+"."+"azure_database_exporter"+"."+"status", "body", *o.Status); err != nil { - return err - } - - return nil -} - -var changeAzureDatabaseExporterOkBodyAzureDatabaseExporterTypeLogLevelPropEnum []interface{} - -func init() { - var res []string - if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { - panic(err) - } - for _, v := range res { - changeAzureDatabaseExporterOkBodyAzureDatabaseExporterTypeLogLevelPropEnum = append(changeAzureDatabaseExporterOkBodyAzureDatabaseExporterTypeLogLevelPropEnum, v) - } -} - -const ( - - // ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" - ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" - - // ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" - ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" - - // ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" - ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" - - // ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" - ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" - - // ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" - ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" - - // ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" - ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" -) - -// prop value enum -func (o *ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporter) validateLogLevelEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeAzureDatabaseExporterOkBodyAzureDatabaseExporterTypeLogLevelPropEnum, true); err != nil { - return err - } - return nil -} - -func (o *ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporter) validateLogLevel(formats strfmt.Registry) error { - if swag.IsZero(o.LogLevel) { // not required - return nil - } - - // value enum - if err := o.validateLogLevelEnum("changeAzureDatabaseExporterOk"+"."+"azure_database_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { - return err - } - - return nil -} - -// ContextValidate validates this change azure database exporter OK body azure database exporter based on context it is used -func (o *ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporter) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporter) UnmarshalBinary(b []byte) error { - var res ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporter - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeAzureDatabaseExporterParamsBodyCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. -swagger:model ChangeAzureDatabaseExporterParamsBodyCommon -*/ -type ChangeAzureDatabaseExporterParamsBodyCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` - - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - // Can't be used with agent version lower then 2.12 and unsupported agents. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` -} - -// Validate validates this change azure database exporter params body common -func (o *ChangeAzureDatabaseExporterParamsBodyCommon) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change azure database exporter params body common based on context it is used -func (o *ChangeAzureDatabaseExporterParamsBodyCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeAzureDatabaseExporterParamsBodyCommon) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeAzureDatabaseExporterParamsBodyCommon) UnmarshalBinary(b []byte) error { - var res ChangeAzureDatabaseExporterParamsBodyCommon - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} diff --git a/api/inventory/v1/json/client/agents_service/change_external_exporter_parameters.go b/api/inventory/v1/json/client/agents_service/change_external_exporter_parameters.go deleted file mode 100644 index 973583771b..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_external_exporter_parameters.go +++ /dev/null @@ -1,144 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "net/http" - "time" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - cr "github.com/go-openapi/runtime/client" - "github.com/go-openapi/strfmt" -) - -// NewChangeExternalExporterParams creates a new ChangeExternalExporterParams object, -// with the default timeout for this client. -// -// Default values are not hydrated, since defaults are normally applied by the API server side. -// -// To enforce default values in parameter, use SetDefaults or WithDefaults. -func NewChangeExternalExporterParams() *ChangeExternalExporterParams { - return &ChangeExternalExporterParams{ - timeout: cr.DefaultTimeout, - } -} - -// NewChangeExternalExporterParamsWithTimeout creates a new ChangeExternalExporterParams object -// with the ability to set a timeout on a request. -func NewChangeExternalExporterParamsWithTimeout(timeout time.Duration) *ChangeExternalExporterParams { - return &ChangeExternalExporterParams{ - timeout: timeout, - } -} - -// NewChangeExternalExporterParamsWithContext creates a new ChangeExternalExporterParams object -// with the ability to set a context for a request. -func NewChangeExternalExporterParamsWithContext(ctx context.Context) *ChangeExternalExporterParams { - return &ChangeExternalExporterParams{ - Context: ctx, - } -} - -// NewChangeExternalExporterParamsWithHTTPClient creates a new ChangeExternalExporterParams object -// with the ability to set a custom HTTPClient for a request. -func NewChangeExternalExporterParamsWithHTTPClient(client *http.Client) *ChangeExternalExporterParams { - return &ChangeExternalExporterParams{ - HTTPClient: client, - } -} - -/* -ChangeExternalExporterParams contains all the parameters to send to the API endpoint - - for the change external exporter operation. - - Typically these are written to a http.Request. -*/ -type ChangeExternalExporterParams struct { - // Body. - Body ChangeExternalExporterBody - - timeout time.Duration - Context context.Context - HTTPClient *http.Client -} - -// WithDefaults hydrates default values in the change external exporter params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangeExternalExporterParams) WithDefaults() *ChangeExternalExporterParams { - o.SetDefaults() - return o -} - -// SetDefaults hydrates default values in the change external exporter params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangeExternalExporterParams) SetDefaults() { - // no default values defined for this parameter -} - -// WithTimeout adds the timeout to the change external exporter params -func (o *ChangeExternalExporterParams) WithTimeout(timeout time.Duration) *ChangeExternalExporterParams { - o.SetTimeout(timeout) - return o -} - -// SetTimeout adds the timeout to the change external exporter params -func (o *ChangeExternalExporterParams) SetTimeout(timeout time.Duration) { - o.timeout = timeout -} - -// WithContext adds the context to the change external exporter params -func (o *ChangeExternalExporterParams) WithContext(ctx context.Context) *ChangeExternalExporterParams { - o.SetContext(ctx) - return o -} - -// SetContext adds the context to the change external exporter params -func (o *ChangeExternalExporterParams) SetContext(ctx context.Context) { - o.Context = ctx -} - -// WithHTTPClient adds the HTTPClient to the change external exporter params -func (o *ChangeExternalExporterParams) WithHTTPClient(client *http.Client) *ChangeExternalExporterParams { - o.SetHTTPClient(client) - return o -} - -// SetHTTPClient adds the HTTPClient to the change external exporter params -func (o *ChangeExternalExporterParams) SetHTTPClient(client *http.Client) { - o.HTTPClient = client -} - -// WithBody adds the body to the change external exporter params -func (o *ChangeExternalExporterParams) WithBody(body ChangeExternalExporterBody) *ChangeExternalExporterParams { - o.SetBody(body) - return o -} - -// SetBody adds the body to the change external exporter params -func (o *ChangeExternalExporterParams) SetBody(body ChangeExternalExporterBody) { - o.Body = body -} - -// WriteToRequest writes these params to a swagger request -func (o *ChangeExternalExporterParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { - if err := r.SetTimeout(o.timeout); err != nil { - return err - } - var res []error - if err := r.SetBodyParam(o.Body); err != nil { - return err - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} diff --git a/api/inventory/v1/json/client/agents_service/change_external_exporter_responses.go b/api/inventory/v1/json/client/agents_service/change_external_exporter_responses.go deleted file mode 100644 index c208e478cf..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_external_exporter_responses.go +++ /dev/null @@ -1,561 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "fmt" - "io" - "strconv" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - "github.com/go-openapi/strfmt" - "github.com/go-openapi/swag" -) - -// ChangeExternalExporterReader is a Reader for the ChangeExternalExporter structure. -type ChangeExternalExporterReader struct { - formats strfmt.Registry -} - -// ReadResponse reads a server response into the received o. -func (o *ChangeExternalExporterReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) { - switch response.Code() { - case 200: - result := NewChangeExternalExporterOK() - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - return result, nil - default: - result := NewChangeExternalExporterDefault(response.Code()) - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - if response.Code()/100 == 2 { - return result, nil - } - return nil, result - } -} - -// NewChangeExternalExporterOK creates a ChangeExternalExporterOK with default headers values -func NewChangeExternalExporterOK() *ChangeExternalExporterOK { - return &ChangeExternalExporterOK{} -} - -/* -ChangeExternalExporterOK describes a response with status code 200, with default header values. - -A successful response. -*/ -type ChangeExternalExporterOK struct { - Payload *ChangeExternalExporterOKBody -} - -func (o *ChangeExternalExporterOK) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangeExternalExporter][%d] changeExternalExporterOk %+v", 200, o.Payload) -} - -func (o *ChangeExternalExporterOK) GetPayload() *ChangeExternalExporterOKBody { - return o.Payload -} - -func (o *ChangeExternalExporterOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangeExternalExporterOKBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -// NewChangeExternalExporterDefault creates a ChangeExternalExporterDefault with default headers values -func NewChangeExternalExporterDefault(code int) *ChangeExternalExporterDefault { - return &ChangeExternalExporterDefault{ - _statusCode: code, - } -} - -/* -ChangeExternalExporterDefault describes a response with status code -1, with default header values. - -An unexpected error response. -*/ -type ChangeExternalExporterDefault struct { - _statusCode int - - Payload *ChangeExternalExporterDefaultBody -} - -// Code gets the status code for the change external exporter default response -func (o *ChangeExternalExporterDefault) Code() int { - return o._statusCode -} - -func (o *ChangeExternalExporterDefault) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangeExternalExporter][%d] ChangeExternalExporter default %+v", o._statusCode, o.Payload) -} - -func (o *ChangeExternalExporterDefault) GetPayload() *ChangeExternalExporterDefaultBody { - return o.Payload -} - -func (o *ChangeExternalExporterDefault) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangeExternalExporterDefaultBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -/* -ChangeExternalExporterBody change external exporter body -swagger:model ChangeExternalExporterBody -*/ -type ChangeExternalExporterBody struct { - // agent id - AgentID string `json:"agent_id,omitempty"` - - // common - Common *ChangeExternalExporterParamsBodyCommon `json:"common,omitempty"` -} - -// Validate validates this change external exporter body -func (o *ChangeExternalExporterBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateCommon(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeExternalExporterBody) validateCommon(formats strfmt.Registry) error { - if swag.IsZero(o.Common) { // not required - return nil - } - - if o.Common != nil { - if err := o.Common.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change external exporter body based on the context it is used -func (o *ChangeExternalExporterBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateCommon(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeExternalExporterBody) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { - if o.Common != nil { - if err := o.Common.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeExternalExporterBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeExternalExporterBody) UnmarshalBinary(b []byte) error { - var res ChangeExternalExporterBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeExternalExporterDefaultBody change external exporter default body -swagger:model ChangeExternalExporterDefaultBody -*/ -type ChangeExternalExporterDefaultBody struct { - // code - Code int32 `json:"code,omitempty"` - - // message - Message string `json:"message,omitempty"` - - // details - Details []*ChangeExternalExporterDefaultBodyDetailsItems0 `json:"details"` -} - -// Validate validates this change external exporter default body -func (o *ChangeExternalExporterDefaultBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateDetails(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeExternalExporterDefaultBody) validateDetails(formats strfmt.Registry) error { - if swag.IsZero(o.Details) { // not required - return nil - } - - for i := 0; i < len(o.Details); i++ { - if swag.IsZero(o.Details[i]) { // not required - continue - } - - if o.Details[i] != nil { - if err := o.Details[i].Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangeExternalExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangeExternalExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - - } - - return nil -} - -// ContextValidate validate this change external exporter default body based on the context it is used -func (o *ChangeExternalExporterDefaultBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateDetails(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeExternalExporterDefaultBody) contextValidateDetails(ctx context.Context, formats strfmt.Registry) error { - for i := 0; i < len(o.Details); i++ { - if o.Details[i] != nil { - if err := o.Details[i].ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangeExternalExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangeExternalExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeExternalExporterDefaultBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeExternalExporterDefaultBody) UnmarshalBinary(b []byte) error { - var res ChangeExternalExporterDefaultBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeExternalExporterDefaultBodyDetailsItems0 change external exporter default body details items0 -swagger:model ChangeExternalExporterDefaultBodyDetailsItems0 -*/ -type ChangeExternalExporterDefaultBodyDetailsItems0 struct { - // at type - AtType string `json:"@type,omitempty"` -} - -// Validate validates this change external exporter default body details items0 -func (o *ChangeExternalExporterDefaultBodyDetailsItems0) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change external exporter default body details items0 based on context it is used -func (o *ChangeExternalExporterDefaultBodyDetailsItems0) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeExternalExporterDefaultBodyDetailsItems0) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeExternalExporterDefaultBodyDetailsItems0) UnmarshalBinary(b []byte) error { - var res ChangeExternalExporterDefaultBodyDetailsItems0 - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeExternalExporterOKBody change external exporter OK body -swagger:model ChangeExternalExporterOKBody -*/ -type ChangeExternalExporterOKBody struct { - // external exporter - ExternalExporter *ChangeExternalExporterOKBodyExternalExporter `json:"external_exporter,omitempty"` -} - -// Validate validates this change external exporter OK body -func (o *ChangeExternalExporterOKBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateExternalExporter(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeExternalExporterOKBody) validateExternalExporter(formats strfmt.Registry) error { - if swag.IsZero(o.ExternalExporter) { // not required - return nil - } - - if o.ExternalExporter != nil { - if err := o.ExternalExporter.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changeExternalExporterOk" + "." + "external_exporter") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changeExternalExporterOk" + "." + "external_exporter") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change external exporter OK body based on the context it is used -func (o *ChangeExternalExporterOKBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateExternalExporter(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeExternalExporterOKBody) contextValidateExternalExporter(ctx context.Context, formats strfmt.Registry) error { - if o.ExternalExporter != nil { - if err := o.ExternalExporter.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changeExternalExporterOk" + "." + "external_exporter") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changeExternalExporterOk" + "." + "external_exporter") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeExternalExporterOKBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeExternalExporterOKBody) UnmarshalBinary(b []byte) error { - var res ChangeExternalExporterOKBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeExternalExporterOKBodyExternalExporter ExternalExporter runs on any Node type, including Remote Node. -swagger:model ChangeExternalExporterOKBodyExternalExporter -*/ -type ChangeExternalExporterOKBodyExternalExporter struct { - // Unique randomly generated instance identifier. - AgentID string `json:"agent_id,omitempty"` - - // Node identifier where this instance runs. - RunsOnNodeID string `json:"runs_on_node_id,omitempty"` - - // If disabled, metrics from this exporter will not be collected. - Disabled bool `json:"disabled,omitempty"` - - // Service identifier. - ServiceID string `json:"service_id,omitempty"` - - // HTTP basic auth username for collecting metrics. - Username string `json:"username,omitempty"` - - // Scheme to generate URI to exporter metrics endpoints. - Scheme string `json:"scheme,omitempty"` - - // Path under which metrics are exposed, used to generate URI. - MetricsPath string `json:"metrics_path,omitempty"` - - // Custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // Listen port for scraping metrics. - ListenPort int64 `json:"listen_port,omitempty"` - - // True if exporter uses push metrics mode. - PushMetricsEnabled bool `json:"push_metrics_enabled,omitempty"` - - // Path to exec process. - ProcessExecPath string `json:"process_exec_path,omitempty"` -} - -// Validate validates this change external exporter OK body external exporter -func (o *ChangeExternalExporterOKBodyExternalExporter) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change external exporter OK body external exporter based on context it is used -func (o *ChangeExternalExporterOKBodyExternalExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeExternalExporterOKBodyExternalExporter) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeExternalExporterOKBodyExternalExporter) UnmarshalBinary(b []byte) error { - var res ChangeExternalExporterOKBodyExternalExporter - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeExternalExporterParamsBodyCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. -swagger:model ChangeExternalExporterParamsBodyCommon -*/ -type ChangeExternalExporterParamsBodyCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` - - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - // Can't be used with agent version lower then 2.12 and unsupported agents. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` -} - -// Validate validates this change external exporter params body common -func (o *ChangeExternalExporterParamsBodyCommon) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change external exporter params body common based on context it is used -func (o *ChangeExternalExporterParamsBodyCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeExternalExporterParamsBodyCommon) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeExternalExporterParamsBodyCommon) UnmarshalBinary(b []byte) error { - var res ChangeExternalExporterParamsBodyCommon - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} diff --git a/api/inventory/v1/json/client/agents_service/change_mongo_db_exporter_parameters.go b/api/inventory/v1/json/client/agents_service/change_mongo_db_exporter_parameters.go deleted file mode 100644 index 9527e5da58..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_mongo_db_exporter_parameters.go +++ /dev/null @@ -1,144 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "net/http" - "time" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - cr "github.com/go-openapi/runtime/client" - "github.com/go-openapi/strfmt" -) - -// NewChangeMongoDBExporterParams creates a new ChangeMongoDBExporterParams object, -// with the default timeout for this client. -// -// Default values are not hydrated, since defaults are normally applied by the API server side. -// -// To enforce default values in parameter, use SetDefaults or WithDefaults. -func NewChangeMongoDBExporterParams() *ChangeMongoDBExporterParams { - return &ChangeMongoDBExporterParams{ - timeout: cr.DefaultTimeout, - } -} - -// NewChangeMongoDBExporterParamsWithTimeout creates a new ChangeMongoDBExporterParams object -// with the ability to set a timeout on a request. -func NewChangeMongoDBExporterParamsWithTimeout(timeout time.Duration) *ChangeMongoDBExporterParams { - return &ChangeMongoDBExporterParams{ - timeout: timeout, - } -} - -// NewChangeMongoDBExporterParamsWithContext creates a new ChangeMongoDBExporterParams object -// with the ability to set a context for a request. -func NewChangeMongoDBExporterParamsWithContext(ctx context.Context) *ChangeMongoDBExporterParams { - return &ChangeMongoDBExporterParams{ - Context: ctx, - } -} - -// NewChangeMongoDBExporterParamsWithHTTPClient creates a new ChangeMongoDBExporterParams object -// with the ability to set a custom HTTPClient for a request. -func NewChangeMongoDBExporterParamsWithHTTPClient(client *http.Client) *ChangeMongoDBExporterParams { - return &ChangeMongoDBExporterParams{ - HTTPClient: client, - } -} - -/* -ChangeMongoDBExporterParams contains all the parameters to send to the API endpoint - - for the change mongo DB exporter operation. - - Typically these are written to a http.Request. -*/ -type ChangeMongoDBExporterParams struct { - // Body. - Body ChangeMongoDBExporterBody - - timeout time.Duration - Context context.Context - HTTPClient *http.Client -} - -// WithDefaults hydrates default values in the change mongo DB exporter params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangeMongoDBExporterParams) WithDefaults() *ChangeMongoDBExporterParams { - o.SetDefaults() - return o -} - -// SetDefaults hydrates default values in the change mongo DB exporter params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangeMongoDBExporterParams) SetDefaults() { - // no default values defined for this parameter -} - -// WithTimeout adds the timeout to the change mongo DB exporter params -func (o *ChangeMongoDBExporterParams) WithTimeout(timeout time.Duration) *ChangeMongoDBExporterParams { - o.SetTimeout(timeout) - return o -} - -// SetTimeout adds the timeout to the change mongo DB exporter params -func (o *ChangeMongoDBExporterParams) SetTimeout(timeout time.Duration) { - o.timeout = timeout -} - -// WithContext adds the context to the change mongo DB exporter params -func (o *ChangeMongoDBExporterParams) WithContext(ctx context.Context) *ChangeMongoDBExporterParams { - o.SetContext(ctx) - return o -} - -// SetContext adds the context to the change mongo DB exporter params -func (o *ChangeMongoDBExporterParams) SetContext(ctx context.Context) { - o.Context = ctx -} - -// WithHTTPClient adds the HTTPClient to the change mongo DB exporter params -func (o *ChangeMongoDBExporterParams) WithHTTPClient(client *http.Client) *ChangeMongoDBExporterParams { - o.SetHTTPClient(client) - return o -} - -// SetHTTPClient adds the HTTPClient to the change mongo DB exporter params -func (o *ChangeMongoDBExporterParams) SetHTTPClient(client *http.Client) { - o.HTTPClient = client -} - -// WithBody adds the body to the change mongo DB exporter params -func (o *ChangeMongoDBExporterParams) WithBody(body ChangeMongoDBExporterBody) *ChangeMongoDBExporterParams { - o.SetBody(body) - return o -} - -// SetBody adds the body to the change mongo DB exporter params -func (o *ChangeMongoDBExporterParams) SetBody(body ChangeMongoDBExporterBody) { - o.Body = body -} - -// WriteToRequest writes these params to a swagger request -func (o *ChangeMongoDBExporterParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { - if err := r.SetTimeout(o.timeout); err != nil { - return err - } - var res []error - if err := r.SetBodyParam(o.Body); err != nil { - return err - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} diff --git a/api/inventory/v1/json/client/agents_service/change_mongo_db_exporter_responses.go b/api/inventory/v1/json/client/agents_service/change_mongo_db_exporter_responses.go deleted file mode 100644 index 9037d264b5..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_mongo_db_exporter_responses.go +++ /dev/null @@ -1,720 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "encoding/json" - "fmt" - "io" - "strconv" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - "github.com/go-openapi/strfmt" - "github.com/go-openapi/swag" - "github.com/go-openapi/validate" -) - -// ChangeMongoDBExporterReader is a Reader for the ChangeMongoDBExporter structure. -type ChangeMongoDBExporterReader struct { - formats strfmt.Registry -} - -// ReadResponse reads a server response into the received o. -func (o *ChangeMongoDBExporterReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) { - switch response.Code() { - case 200: - result := NewChangeMongoDBExporterOK() - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - return result, nil - default: - result := NewChangeMongoDBExporterDefault(response.Code()) - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - if response.Code()/100 == 2 { - return result, nil - } - return nil, result - } -} - -// NewChangeMongoDBExporterOK creates a ChangeMongoDBExporterOK with default headers values -func NewChangeMongoDBExporterOK() *ChangeMongoDBExporterOK { - return &ChangeMongoDBExporterOK{} -} - -/* -ChangeMongoDBExporterOK describes a response with status code 200, with default header values. - -A successful response. -*/ -type ChangeMongoDBExporterOK struct { - Payload *ChangeMongoDBExporterOKBody -} - -func (o *ChangeMongoDBExporterOK) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangeMongoDBExporter][%d] changeMongoDbExporterOk %+v", 200, o.Payload) -} - -func (o *ChangeMongoDBExporterOK) GetPayload() *ChangeMongoDBExporterOKBody { - return o.Payload -} - -func (o *ChangeMongoDBExporterOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangeMongoDBExporterOKBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -// NewChangeMongoDBExporterDefault creates a ChangeMongoDBExporterDefault with default headers values -func NewChangeMongoDBExporterDefault(code int) *ChangeMongoDBExporterDefault { - return &ChangeMongoDBExporterDefault{ - _statusCode: code, - } -} - -/* -ChangeMongoDBExporterDefault describes a response with status code -1, with default header values. - -An unexpected error response. -*/ -type ChangeMongoDBExporterDefault struct { - _statusCode int - - Payload *ChangeMongoDBExporterDefaultBody -} - -// Code gets the status code for the change mongo DB exporter default response -func (o *ChangeMongoDBExporterDefault) Code() int { - return o._statusCode -} - -func (o *ChangeMongoDBExporterDefault) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangeMongoDBExporter][%d] ChangeMongoDBExporter default %+v", o._statusCode, o.Payload) -} - -func (o *ChangeMongoDBExporterDefault) GetPayload() *ChangeMongoDBExporterDefaultBody { - return o.Payload -} - -func (o *ChangeMongoDBExporterDefault) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangeMongoDBExporterDefaultBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -/* -ChangeMongoDBExporterBody change mongo DB exporter body -swagger:model ChangeMongoDBExporterBody -*/ -type ChangeMongoDBExporterBody struct { - // agent id - AgentID string `json:"agent_id,omitempty"` - - // common - Common *ChangeMongoDBExporterParamsBodyCommon `json:"common,omitempty"` -} - -// Validate validates this change mongo DB exporter body -func (o *ChangeMongoDBExporterBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateCommon(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeMongoDBExporterBody) validateCommon(formats strfmt.Registry) error { - if swag.IsZero(o.Common) { // not required - return nil - } - - if o.Common != nil { - if err := o.Common.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change mongo DB exporter body based on the context it is used -func (o *ChangeMongoDBExporterBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateCommon(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeMongoDBExporterBody) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { - if o.Common != nil { - if err := o.Common.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeMongoDBExporterBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeMongoDBExporterBody) UnmarshalBinary(b []byte) error { - var res ChangeMongoDBExporterBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeMongoDBExporterDefaultBody change mongo DB exporter default body -swagger:model ChangeMongoDBExporterDefaultBody -*/ -type ChangeMongoDBExporterDefaultBody struct { - // code - Code int32 `json:"code,omitempty"` - - // message - Message string `json:"message,omitempty"` - - // details - Details []*ChangeMongoDBExporterDefaultBodyDetailsItems0 `json:"details"` -} - -// Validate validates this change mongo DB exporter default body -func (o *ChangeMongoDBExporterDefaultBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateDetails(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeMongoDBExporterDefaultBody) validateDetails(formats strfmt.Registry) error { - if swag.IsZero(o.Details) { // not required - return nil - } - - for i := 0; i < len(o.Details); i++ { - if swag.IsZero(o.Details[i]) { // not required - continue - } - - if o.Details[i] != nil { - if err := o.Details[i].Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangeMongoDBExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangeMongoDBExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - - } - - return nil -} - -// ContextValidate validate this change mongo DB exporter default body based on the context it is used -func (o *ChangeMongoDBExporterDefaultBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateDetails(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeMongoDBExporterDefaultBody) contextValidateDetails(ctx context.Context, formats strfmt.Registry) error { - for i := 0; i < len(o.Details); i++ { - if o.Details[i] != nil { - if err := o.Details[i].ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangeMongoDBExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangeMongoDBExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeMongoDBExporterDefaultBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeMongoDBExporterDefaultBody) UnmarshalBinary(b []byte) error { - var res ChangeMongoDBExporterDefaultBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeMongoDBExporterDefaultBodyDetailsItems0 change mongo DB exporter default body details items0 -swagger:model ChangeMongoDBExporterDefaultBodyDetailsItems0 -*/ -type ChangeMongoDBExporterDefaultBodyDetailsItems0 struct { - // at type - AtType string `json:"@type,omitempty"` -} - -// Validate validates this change mongo DB exporter default body details items0 -func (o *ChangeMongoDBExporterDefaultBodyDetailsItems0) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change mongo DB exporter default body details items0 based on context it is used -func (o *ChangeMongoDBExporterDefaultBodyDetailsItems0) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeMongoDBExporterDefaultBodyDetailsItems0) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeMongoDBExporterDefaultBodyDetailsItems0) UnmarshalBinary(b []byte) error { - var res ChangeMongoDBExporterDefaultBodyDetailsItems0 - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeMongoDBExporterOKBody change mongo DB exporter OK body -swagger:model ChangeMongoDBExporterOKBody -*/ -type ChangeMongoDBExporterOKBody struct { - // mongodb exporter - MongodbExporter *ChangeMongoDBExporterOKBodyMongodbExporter `json:"mongodb_exporter,omitempty"` -} - -// Validate validates this change mongo DB exporter OK body -func (o *ChangeMongoDBExporterOKBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateMongodbExporter(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeMongoDBExporterOKBody) validateMongodbExporter(formats strfmt.Registry) error { - if swag.IsZero(o.MongodbExporter) { // not required - return nil - } - - if o.MongodbExporter != nil { - if err := o.MongodbExporter.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changeMongoDbExporterOk" + "." + "mongodb_exporter") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changeMongoDbExporterOk" + "." + "mongodb_exporter") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change mongo DB exporter OK body based on the context it is used -func (o *ChangeMongoDBExporterOKBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateMongodbExporter(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeMongoDBExporterOKBody) contextValidateMongodbExporter(ctx context.Context, formats strfmt.Registry) error { - if o.MongodbExporter != nil { - if err := o.MongodbExporter.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changeMongoDbExporterOk" + "." + "mongodb_exporter") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changeMongoDbExporterOk" + "." + "mongodb_exporter") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeMongoDBExporterOKBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeMongoDBExporterOKBody) UnmarshalBinary(b []byte) error { - var res ChangeMongoDBExporterOKBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeMongoDBExporterOKBodyMongodbExporter MongoDBExporter runs on Generic or Container Node and exposes MongoDB Service metrics. -swagger:model ChangeMongoDBExporterOKBodyMongodbExporter -*/ -type ChangeMongoDBExporterOKBodyMongodbExporter struct { - // Unique randomly generated instance identifier. - AgentID string `json:"agent_id,omitempty"` - - // The pmm-agent identifier which runs this instance. - PMMAgentID string `json:"pmm_agent_id,omitempty"` - - // Desired Agent status: enabled (false) or disabled (true). - Disabled bool `json:"disabled,omitempty"` - - // Service identifier. - ServiceID string `json:"service_id,omitempty"` - - // MongoDB username for scraping metrics. - Username string `json:"username,omitempty"` - - // Use TLS for database connections. - TLS bool `json:"tls,omitempty"` - - // Skip TLS certificate and hostname validation. - TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` - - // Custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // True if exporter uses push metrics mode. - PushMetricsEnabled bool `json:"push_metrics_enabled,omitempty"` - - // List of disabled collector names. - DisabledCollectors []string `json:"disabled_collectors"` - - // AgentStatus represents actual Agent status. - // - // - AGENT_STATUS_STARTING: Agent is starting. - // - AGENT_STATUS_RUNNING: Agent is running. - // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. - // - AGENT_STATUS_STOPPING: Agent is stopping. - // - AGENT_STATUS_DONE: Agent finished. - // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. - // Enum: [AGENT_STATUS_UNSPECIFIED AGENT_STATUS_STARTING AGENT_STATUS_RUNNING AGENT_STATUS_WAITING AGENT_STATUS_STOPPING AGENT_STATUS_DONE AGENT_STATUS_UNKNOWN] - Status *string `json:"status,omitempty"` - - // Listen port for scraping metrics. - ListenPort int64 `json:"listen_port,omitempty"` - - // List of colletions to get stats from. Can use * - StatsCollections []string `json:"stats_collections"` - - // Collections limit. Only get Databases and collection stats if the total number of collections in the server - // is less than this value. 0: no limit - CollectionsLimit int32 `json:"collections_limit,omitempty"` - - // Enable All collectors. - EnableAllCollectors bool `json:"enable_all_collectors,omitempty"` - - // Path to exec process. - ProcessExecPath string `json:"process_exec_path,omitempty"` - - // Log level for exporters - // - // - LOG_LEVEL_UNSPECIFIED: Auto - // Enum: [LOG_LEVEL_UNSPECIFIED LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARN LOG_LEVEL_INFO LOG_LEVEL_DEBUG] - LogLevel *string `json:"log_level,omitempty"` - - // Optionally expose the exporter process on all public interfaces - ExposeExporter bool `json:"expose_exporter,omitempty"` -} - -// Validate validates this change mongo DB exporter OK body mongodb exporter -func (o *ChangeMongoDBExporterOKBodyMongodbExporter) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateStatus(formats); err != nil { - res = append(res, err) - } - - if err := o.validateLogLevel(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -var changeMongoDbExporterOkBodyMongodbExporterTypeStatusPropEnum []interface{} - -func init() { - var res []string - if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { - panic(err) - } - for _, v := range res { - changeMongoDbExporterOkBodyMongodbExporterTypeStatusPropEnum = append(changeMongoDbExporterOkBodyMongodbExporterTypeStatusPropEnum, v) - } -} - -const ( - - // ChangeMongoDBExporterOKBodyMongodbExporterStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" - ChangeMongoDBExporterOKBodyMongodbExporterStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" - - // ChangeMongoDBExporterOKBodyMongodbExporterStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" - ChangeMongoDBExporterOKBodyMongodbExporterStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" - - // ChangeMongoDBExporterOKBodyMongodbExporterStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" - ChangeMongoDBExporterOKBodyMongodbExporterStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" - - // ChangeMongoDBExporterOKBodyMongodbExporterStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" - ChangeMongoDBExporterOKBodyMongodbExporterStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" - - // ChangeMongoDBExporterOKBodyMongodbExporterStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" - ChangeMongoDBExporterOKBodyMongodbExporterStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" - - // ChangeMongoDBExporterOKBodyMongodbExporterStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" - ChangeMongoDBExporterOKBodyMongodbExporterStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" - - // ChangeMongoDBExporterOKBodyMongodbExporterStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" - ChangeMongoDBExporterOKBodyMongodbExporterStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" -) - -// prop value enum -func (o *ChangeMongoDBExporterOKBodyMongodbExporter) validateStatusEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeMongoDbExporterOkBodyMongodbExporterTypeStatusPropEnum, true); err != nil { - return err - } - return nil -} - -func (o *ChangeMongoDBExporterOKBodyMongodbExporter) validateStatus(formats strfmt.Registry) error { - if swag.IsZero(o.Status) { // not required - return nil - } - - // value enum - if err := o.validateStatusEnum("changeMongoDbExporterOk"+"."+"mongodb_exporter"+"."+"status", "body", *o.Status); err != nil { - return err - } - - return nil -} - -var changeMongoDbExporterOkBodyMongodbExporterTypeLogLevelPropEnum []interface{} - -func init() { - var res []string - if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { - panic(err) - } - for _, v := range res { - changeMongoDbExporterOkBodyMongodbExporterTypeLogLevelPropEnum = append(changeMongoDbExporterOkBodyMongodbExporterTypeLogLevelPropEnum, v) - } -} - -const ( - - // ChangeMongoDBExporterOKBodyMongodbExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" - ChangeMongoDBExporterOKBodyMongodbExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" - - // ChangeMongoDBExporterOKBodyMongodbExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" - ChangeMongoDBExporterOKBodyMongodbExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" - - // ChangeMongoDBExporterOKBodyMongodbExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" - ChangeMongoDBExporterOKBodyMongodbExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" - - // ChangeMongoDBExporterOKBodyMongodbExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" - ChangeMongoDBExporterOKBodyMongodbExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" - - // ChangeMongoDBExporterOKBodyMongodbExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" - ChangeMongoDBExporterOKBodyMongodbExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" - - // ChangeMongoDBExporterOKBodyMongodbExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" - ChangeMongoDBExporterOKBodyMongodbExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" -) - -// prop value enum -func (o *ChangeMongoDBExporterOKBodyMongodbExporter) validateLogLevelEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeMongoDbExporterOkBodyMongodbExporterTypeLogLevelPropEnum, true); err != nil { - return err - } - return nil -} - -func (o *ChangeMongoDBExporterOKBodyMongodbExporter) validateLogLevel(formats strfmt.Registry) error { - if swag.IsZero(o.LogLevel) { // not required - return nil - } - - // value enum - if err := o.validateLogLevelEnum("changeMongoDbExporterOk"+"."+"mongodb_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { - return err - } - - return nil -} - -// ContextValidate validates this change mongo DB exporter OK body mongodb exporter based on context it is used -func (o *ChangeMongoDBExporterOKBodyMongodbExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeMongoDBExporterOKBodyMongodbExporter) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeMongoDBExporterOKBodyMongodbExporter) UnmarshalBinary(b []byte) error { - var res ChangeMongoDBExporterOKBodyMongodbExporter - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeMongoDBExporterParamsBodyCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. -swagger:model ChangeMongoDBExporterParamsBodyCommon -*/ -type ChangeMongoDBExporterParamsBodyCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` - - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - // Can't be used with agent version lower then 2.12 and unsupported agents. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` -} - -// Validate validates this change mongo DB exporter params body common -func (o *ChangeMongoDBExporterParamsBodyCommon) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change mongo DB exporter params body common based on context it is used -func (o *ChangeMongoDBExporterParamsBodyCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeMongoDBExporterParamsBodyCommon) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeMongoDBExporterParamsBodyCommon) UnmarshalBinary(b []byte) error { - var res ChangeMongoDBExporterParamsBodyCommon - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} diff --git a/api/inventory/v1/json/client/agents_service/change_my_s_q_ld_exporter_parameters.go b/api/inventory/v1/json/client/agents_service/change_my_s_q_ld_exporter_parameters.go deleted file mode 100644 index e8739911e8..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_my_s_q_ld_exporter_parameters.go +++ /dev/null @@ -1,144 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "net/http" - "time" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - cr "github.com/go-openapi/runtime/client" - "github.com/go-openapi/strfmt" -) - -// NewChangeMySQLdExporterParams creates a new ChangeMySQLdExporterParams object, -// with the default timeout for this client. -// -// Default values are not hydrated, since defaults are normally applied by the API server side. -// -// To enforce default values in parameter, use SetDefaults or WithDefaults. -func NewChangeMySQLdExporterParams() *ChangeMySQLdExporterParams { - return &ChangeMySQLdExporterParams{ - timeout: cr.DefaultTimeout, - } -} - -// NewChangeMySQLdExporterParamsWithTimeout creates a new ChangeMySQLdExporterParams object -// with the ability to set a timeout on a request. -func NewChangeMySQLdExporterParamsWithTimeout(timeout time.Duration) *ChangeMySQLdExporterParams { - return &ChangeMySQLdExporterParams{ - timeout: timeout, - } -} - -// NewChangeMySQLdExporterParamsWithContext creates a new ChangeMySQLdExporterParams object -// with the ability to set a context for a request. -func NewChangeMySQLdExporterParamsWithContext(ctx context.Context) *ChangeMySQLdExporterParams { - return &ChangeMySQLdExporterParams{ - Context: ctx, - } -} - -// NewChangeMySQLdExporterParamsWithHTTPClient creates a new ChangeMySQLdExporterParams object -// with the ability to set a custom HTTPClient for a request. -func NewChangeMySQLdExporterParamsWithHTTPClient(client *http.Client) *ChangeMySQLdExporterParams { - return &ChangeMySQLdExporterParams{ - HTTPClient: client, - } -} - -/* -ChangeMySQLdExporterParams contains all the parameters to send to the API endpoint - - for the change my s q ld exporter operation. - - Typically these are written to a http.Request. -*/ -type ChangeMySQLdExporterParams struct { - // Body. - Body ChangeMySQLdExporterBody - - timeout time.Duration - Context context.Context - HTTPClient *http.Client -} - -// WithDefaults hydrates default values in the change my s q ld exporter params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangeMySQLdExporterParams) WithDefaults() *ChangeMySQLdExporterParams { - o.SetDefaults() - return o -} - -// SetDefaults hydrates default values in the change my s q ld exporter params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangeMySQLdExporterParams) SetDefaults() { - // no default values defined for this parameter -} - -// WithTimeout adds the timeout to the change my s q ld exporter params -func (o *ChangeMySQLdExporterParams) WithTimeout(timeout time.Duration) *ChangeMySQLdExporterParams { - o.SetTimeout(timeout) - return o -} - -// SetTimeout adds the timeout to the change my s q ld exporter params -func (o *ChangeMySQLdExporterParams) SetTimeout(timeout time.Duration) { - o.timeout = timeout -} - -// WithContext adds the context to the change my s q ld exporter params -func (o *ChangeMySQLdExporterParams) WithContext(ctx context.Context) *ChangeMySQLdExporterParams { - o.SetContext(ctx) - return o -} - -// SetContext adds the context to the change my s q ld exporter params -func (o *ChangeMySQLdExporterParams) SetContext(ctx context.Context) { - o.Context = ctx -} - -// WithHTTPClient adds the HTTPClient to the change my s q ld exporter params -func (o *ChangeMySQLdExporterParams) WithHTTPClient(client *http.Client) *ChangeMySQLdExporterParams { - o.SetHTTPClient(client) - return o -} - -// SetHTTPClient adds the HTTPClient to the change my s q ld exporter params -func (o *ChangeMySQLdExporterParams) SetHTTPClient(client *http.Client) { - o.HTTPClient = client -} - -// WithBody adds the body to the change my s q ld exporter params -func (o *ChangeMySQLdExporterParams) WithBody(body ChangeMySQLdExporterBody) *ChangeMySQLdExporterParams { - o.SetBody(body) - return o -} - -// SetBody adds the body to the change my s q ld exporter params -func (o *ChangeMySQLdExporterParams) SetBody(body ChangeMySQLdExporterBody) { - o.Body = body -} - -// WriteToRequest writes these params to a swagger request -func (o *ChangeMySQLdExporterParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { - if err := r.SetTimeout(o.timeout); err != nil { - return err - } - var res []error - if err := r.SetBodyParam(o.Body); err != nil { - return err - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} diff --git a/api/inventory/v1/json/client/agents_service/change_my_s_q_ld_exporter_responses.go b/api/inventory/v1/json/client/agents_service/change_my_s_q_ld_exporter_responses.go deleted file mode 100644 index e7c4b2651c..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_my_s_q_ld_exporter_responses.go +++ /dev/null @@ -1,727 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "encoding/json" - "fmt" - "io" - "strconv" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - "github.com/go-openapi/strfmt" - "github.com/go-openapi/swag" - "github.com/go-openapi/validate" -) - -// ChangeMySQLdExporterReader is a Reader for the ChangeMySQLdExporter structure. -type ChangeMySQLdExporterReader struct { - formats strfmt.Registry -} - -// ReadResponse reads a server response into the received o. -func (o *ChangeMySQLdExporterReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) { - switch response.Code() { - case 200: - result := NewChangeMySQLdExporterOK() - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - return result, nil - default: - result := NewChangeMySQLdExporterDefault(response.Code()) - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - if response.Code()/100 == 2 { - return result, nil - } - return nil, result - } -} - -// NewChangeMySQLdExporterOK creates a ChangeMySQLdExporterOK with default headers values -func NewChangeMySQLdExporterOK() *ChangeMySQLdExporterOK { - return &ChangeMySQLdExporterOK{} -} - -/* -ChangeMySQLdExporterOK describes a response with status code 200, with default header values. - -A successful response. -*/ -type ChangeMySQLdExporterOK struct { - Payload *ChangeMySQLdExporterOKBody -} - -func (o *ChangeMySQLdExporterOK) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangeMySQLdExporter][%d] changeMySQLdExporterOk %+v", 200, o.Payload) -} - -func (o *ChangeMySQLdExporterOK) GetPayload() *ChangeMySQLdExporterOKBody { - return o.Payload -} - -func (o *ChangeMySQLdExporterOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangeMySQLdExporterOKBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -// NewChangeMySQLdExporterDefault creates a ChangeMySQLdExporterDefault with default headers values -func NewChangeMySQLdExporterDefault(code int) *ChangeMySQLdExporterDefault { - return &ChangeMySQLdExporterDefault{ - _statusCode: code, - } -} - -/* -ChangeMySQLdExporterDefault describes a response with status code -1, with default header values. - -An unexpected error response. -*/ -type ChangeMySQLdExporterDefault struct { - _statusCode int - - Payload *ChangeMySQLdExporterDefaultBody -} - -// Code gets the status code for the change my s q ld exporter default response -func (o *ChangeMySQLdExporterDefault) Code() int { - return o._statusCode -} - -func (o *ChangeMySQLdExporterDefault) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangeMySQLdExporter][%d] ChangeMySQLdExporter default %+v", o._statusCode, o.Payload) -} - -func (o *ChangeMySQLdExporterDefault) GetPayload() *ChangeMySQLdExporterDefaultBody { - return o.Payload -} - -func (o *ChangeMySQLdExporterDefault) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangeMySQLdExporterDefaultBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -/* -ChangeMySQLdExporterBody change my s q ld exporter body -swagger:model ChangeMySQLdExporterBody -*/ -type ChangeMySQLdExporterBody struct { - // agent id - AgentID string `json:"agent_id,omitempty"` - - // common - Common *ChangeMySQLdExporterParamsBodyCommon `json:"common,omitempty"` -} - -// Validate validates this change my s q ld exporter body -func (o *ChangeMySQLdExporterBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateCommon(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeMySQLdExporterBody) validateCommon(formats strfmt.Registry) error { - if swag.IsZero(o.Common) { // not required - return nil - } - - if o.Common != nil { - if err := o.Common.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change my s q ld exporter body based on the context it is used -func (o *ChangeMySQLdExporterBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateCommon(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeMySQLdExporterBody) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { - if o.Common != nil { - if err := o.Common.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeMySQLdExporterBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeMySQLdExporterBody) UnmarshalBinary(b []byte) error { - var res ChangeMySQLdExporterBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeMySQLdExporterDefaultBody change my s q ld exporter default body -swagger:model ChangeMySQLdExporterDefaultBody -*/ -type ChangeMySQLdExporterDefaultBody struct { - // code - Code int32 `json:"code,omitempty"` - - // message - Message string `json:"message,omitempty"` - - // details - Details []*ChangeMySQLdExporterDefaultBodyDetailsItems0 `json:"details"` -} - -// Validate validates this change my s q ld exporter default body -func (o *ChangeMySQLdExporterDefaultBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateDetails(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeMySQLdExporterDefaultBody) validateDetails(formats strfmt.Registry) error { - if swag.IsZero(o.Details) { // not required - return nil - } - - for i := 0; i < len(o.Details); i++ { - if swag.IsZero(o.Details[i]) { // not required - continue - } - - if o.Details[i] != nil { - if err := o.Details[i].Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangeMySQLdExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangeMySQLdExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - - } - - return nil -} - -// ContextValidate validate this change my s q ld exporter default body based on the context it is used -func (o *ChangeMySQLdExporterDefaultBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateDetails(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeMySQLdExporterDefaultBody) contextValidateDetails(ctx context.Context, formats strfmt.Registry) error { - for i := 0; i < len(o.Details); i++ { - if o.Details[i] != nil { - if err := o.Details[i].ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangeMySQLdExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangeMySQLdExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeMySQLdExporterDefaultBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeMySQLdExporterDefaultBody) UnmarshalBinary(b []byte) error { - var res ChangeMySQLdExporterDefaultBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeMySQLdExporterDefaultBodyDetailsItems0 change my s q ld exporter default body details items0 -swagger:model ChangeMySQLdExporterDefaultBodyDetailsItems0 -*/ -type ChangeMySQLdExporterDefaultBodyDetailsItems0 struct { - // at type - AtType string `json:"@type,omitempty"` -} - -// Validate validates this change my s q ld exporter default body details items0 -func (o *ChangeMySQLdExporterDefaultBodyDetailsItems0) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change my s q ld exporter default body details items0 based on context it is used -func (o *ChangeMySQLdExporterDefaultBodyDetailsItems0) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeMySQLdExporterDefaultBodyDetailsItems0) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeMySQLdExporterDefaultBodyDetailsItems0) UnmarshalBinary(b []byte) error { - var res ChangeMySQLdExporterDefaultBodyDetailsItems0 - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeMySQLdExporterOKBody change my s q ld exporter OK body -swagger:model ChangeMySQLdExporterOKBody -*/ -type ChangeMySQLdExporterOKBody struct { - // mysqld exporter - MysqldExporter *ChangeMySQLdExporterOKBodyMysqldExporter `json:"mysqld_exporter,omitempty"` -} - -// Validate validates this change my s q ld exporter OK body -func (o *ChangeMySQLdExporterOKBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateMysqldExporter(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeMySQLdExporterOKBody) validateMysqldExporter(formats strfmt.Registry) error { - if swag.IsZero(o.MysqldExporter) { // not required - return nil - } - - if o.MysqldExporter != nil { - if err := o.MysqldExporter.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changeMySQLdExporterOk" + "." + "mysqld_exporter") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changeMySQLdExporterOk" + "." + "mysqld_exporter") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change my s q ld exporter OK body based on the context it is used -func (o *ChangeMySQLdExporterOKBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateMysqldExporter(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeMySQLdExporterOKBody) contextValidateMysqldExporter(ctx context.Context, formats strfmt.Registry) error { - if o.MysqldExporter != nil { - if err := o.MysqldExporter.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changeMySQLdExporterOk" + "." + "mysqld_exporter") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changeMySQLdExporterOk" + "." + "mysqld_exporter") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeMySQLdExporterOKBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeMySQLdExporterOKBody) UnmarshalBinary(b []byte) error { - var res ChangeMySQLdExporterOKBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeMySQLdExporterOKBodyMysqldExporter MySQLdExporter runs on Generic or Container Node and exposes MySQL Service metrics. -swagger:model ChangeMySQLdExporterOKBodyMysqldExporter -*/ -type ChangeMySQLdExporterOKBodyMysqldExporter struct { - // Unique randomly generated instance identifier. - AgentID string `json:"agent_id,omitempty"` - - // The pmm-agent identifier which runs this instance. - PMMAgentID string `json:"pmm_agent_id,omitempty"` - - // Desired Agent status: enabled (false) or disabled (true). - Disabled bool `json:"disabled,omitempty"` - - // Service identifier. - ServiceID string `json:"service_id,omitempty"` - - // MySQL username for scraping metrics. - Username string `json:"username,omitempty"` - - // Use TLS for database connections. - TLS bool `json:"tls,omitempty"` - - // Skip TLS certificate and hostname validation. - TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` - - // Certificate Authority certificate chain. - TLSCa string `json:"tls_ca,omitempty"` - - // Client certificate. - TLSCert string `json:"tls_cert,omitempty"` - - // Password for decrypting tls_cert. - TLSKey string `json:"tls_key,omitempty"` - - // Tablestats group collectors are disabled if there are more than that number of tables. - // 0 means tablestats group collectors are always enabled (no limit). - // Negative value means tablestats group collectors are always disabled. - TablestatsGroupTableLimit int32 `json:"tablestats_group_table_limit,omitempty"` - - // Custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // True if exporter uses push metrics mode. - PushMetricsEnabled bool `json:"push_metrics_enabled,omitempty"` - - // List of disabled collector names. - DisabledCollectors []string `json:"disabled_collectors"` - - // AgentStatus represents actual Agent status. - // - // - AGENT_STATUS_STARTING: Agent is starting. - // - AGENT_STATUS_RUNNING: Agent is running. - // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. - // - AGENT_STATUS_STOPPING: Agent is stopping. - // - AGENT_STATUS_DONE: Agent finished. - // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. - // Enum: [AGENT_STATUS_UNSPECIFIED AGENT_STATUS_STARTING AGENT_STATUS_RUNNING AGENT_STATUS_WAITING AGENT_STATUS_STOPPING AGENT_STATUS_DONE AGENT_STATUS_UNKNOWN] - Status *string `json:"status,omitempty"` - - // Listen port for scraping metrics. - ListenPort int64 `json:"listen_port,omitempty"` - - // True if tablestats group collectors are currently disabled. - TablestatsGroupDisabled bool `json:"tablestats_group_disabled,omitempty"` - - // Path to exec process. - ProcessExecPath string `json:"process_exec_path,omitempty"` - - // Log level for exporters - // - // - LOG_LEVEL_UNSPECIFIED: Auto - // Enum: [LOG_LEVEL_UNSPECIFIED LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARN LOG_LEVEL_INFO LOG_LEVEL_DEBUG] - LogLevel *string `json:"log_level,omitempty"` - - // Optionally expose the exporter process on all public interfaces - ExposeExporter bool `json:"expose_exporter,omitempty"` -} - -// Validate validates this change my s q ld exporter OK body mysqld exporter -func (o *ChangeMySQLdExporterOKBodyMysqldExporter) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateStatus(formats); err != nil { - res = append(res, err) - } - - if err := o.validateLogLevel(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -var changeMySQLdExporterOkBodyMysqldExporterTypeStatusPropEnum []interface{} - -func init() { - var res []string - if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { - panic(err) - } - for _, v := range res { - changeMySQLdExporterOkBodyMysqldExporterTypeStatusPropEnum = append(changeMySQLdExporterOkBodyMysqldExporterTypeStatusPropEnum, v) - } -} - -const ( - - // ChangeMySQLdExporterOKBodyMysqldExporterStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" - ChangeMySQLdExporterOKBodyMysqldExporterStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" - - // ChangeMySQLdExporterOKBodyMysqldExporterStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" - ChangeMySQLdExporterOKBodyMysqldExporterStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" - - // ChangeMySQLdExporterOKBodyMysqldExporterStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" - ChangeMySQLdExporterOKBodyMysqldExporterStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" - - // ChangeMySQLdExporterOKBodyMysqldExporterStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" - ChangeMySQLdExporterOKBodyMysqldExporterStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" - - // ChangeMySQLdExporterOKBodyMysqldExporterStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" - ChangeMySQLdExporterOKBodyMysqldExporterStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" - - // ChangeMySQLdExporterOKBodyMysqldExporterStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" - ChangeMySQLdExporterOKBodyMysqldExporterStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" - - // ChangeMySQLdExporterOKBodyMysqldExporterStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" - ChangeMySQLdExporterOKBodyMysqldExporterStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" -) - -// prop value enum -func (o *ChangeMySQLdExporterOKBodyMysqldExporter) validateStatusEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeMySQLdExporterOkBodyMysqldExporterTypeStatusPropEnum, true); err != nil { - return err - } - return nil -} - -func (o *ChangeMySQLdExporterOKBodyMysqldExporter) validateStatus(formats strfmt.Registry) error { - if swag.IsZero(o.Status) { // not required - return nil - } - - // value enum - if err := o.validateStatusEnum("changeMySQLdExporterOk"+"."+"mysqld_exporter"+"."+"status", "body", *o.Status); err != nil { - return err - } - - return nil -} - -var changeMySQLdExporterOkBodyMysqldExporterTypeLogLevelPropEnum []interface{} - -func init() { - var res []string - if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { - panic(err) - } - for _, v := range res { - changeMySQLdExporterOkBodyMysqldExporterTypeLogLevelPropEnum = append(changeMySQLdExporterOkBodyMysqldExporterTypeLogLevelPropEnum, v) - } -} - -const ( - - // ChangeMySQLdExporterOKBodyMysqldExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" - ChangeMySQLdExporterOKBodyMysqldExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" - - // ChangeMySQLdExporterOKBodyMysqldExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" - ChangeMySQLdExporterOKBodyMysqldExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" - - // ChangeMySQLdExporterOKBodyMysqldExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" - ChangeMySQLdExporterOKBodyMysqldExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" - - // ChangeMySQLdExporterOKBodyMysqldExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" - ChangeMySQLdExporterOKBodyMysqldExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" - - // ChangeMySQLdExporterOKBodyMysqldExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" - ChangeMySQLdExporterOKBodyMysqldExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" - - // ChangeMySQLdExporterOKBodyMysqldExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" - ChangeMySQLdExporterOKBodyMysqldExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" -) - -// prop value enum -func (o *ChangeMySQLdExporterOKBodyMysqldExporter) validateLogLevelEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeMySQLdExporterOkBodyMysqldExporterTypeLogLevelPropEnum, true); err != nil { - return err - } - return nil -} - -func (o *ChangeMySQLdExporterOKBodyMysqldExporter) validateLogLevel(formats strfmt.Registry) error { - if swag.IsZero(o.LogLevel) { // not required - return nil - } - - // value enum - if err := o.validateLogLevelEnum("changeMySQLdExporterOk"+"."+"mysqld_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { - return err - } - - return nil -} - -// ContextValidate validates this change my s q ld exporter OK body mysqld exporter based on context it is used -func (o *ChangeMySQLdExporterOKBodyMysqldExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeMySQLdExporterOKBodyMysqldExporter) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeMySQLdExporterOKBodyMysqldExporter) UnmarshalBinary(b []byte) error { - var res ChangeMySQLdExporterOKBodyMysqldExporter - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeMySQLdExporterParamsBodyCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. -swagger:model ChangeMySQLdExporterParamsBodyCommon -*/ -type ChangeMySQLdExporterParamsBodyCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` - - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - // Can't be used with agent version lower then 2.12 and unsupported agents. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` -} - -// Validate validates this change my s q ld exporter params body common -func (o *ChangeMySQLdExporterParamsBodyCommon) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change my s q ld exporter params body common based on context it is used -func (o *ChangeMySQLdExporterParamsBodyCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeMySQLdExporterParamsBodyCommon) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeMySQLdExporterParamsBodyCommon) UnmarshalBinary(b []byte) error { - var res ChangeMySQLdExporterParamsBodyCommon - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} diff --git a/api/inventory/v1/json/client/agents_service/change_node_exporter_parameters.go b/api/inventory/v1/json/client/agents_service/change_node_exporter_parameters.go deleted file mode 100644 index ea5581b69b..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_node_exporter_parameters.go +++ /dev/null @@ -1,144 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "net/http" - "time" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - cr "github.com/go-openapi/runtime/client" - "github.com/go-openapi/strfmt" -) - -// NewChangeNodeExporterParams creates a new ChangeNodeExporterParams object, -// with the default timeout for this client. -// -// Default values are not hydrated, since defaults are normally applied by the API server side. -// -// To enforce default values in parameter, use SetDefaults or WithDefaults. -func NewChangeNodeExporterParams() *ChangeNodeExporterParams { - return &ChangeNodeExporterParams{ - timeout: cr.DefaultTimeout, - } -} - -// NewChangeNodeExporterParamsWithTimeout creates a new ChangeNodeExporterParams object -// with the ability to set a timeout on a request. -func NewChangeNodeExporterParamsWithTimeout(timeout time.Duration) *ChangeNodeExporterParams { - return &ChangeNodeExporterParams{ - timeout: timeout, - } -} - -// NewChangeNodeExporterParamsWithContext creates a new ChangeNodeExporterParams object -// with the ability to set a context for a request. -func NewChangeNodeExporterParamsWithContext(ctx context.Context) *ChangeNodeExporterParams { - return &ChangeNodeExporterParams{ - Context: ctx, - } -} - -// NewChangeNodeExporterParamsWithHTTPClient creates a new ChangeNodeExporterParams object -// with the ability to set a custom HTTPClient for a request. -func NewChangeNodeExporterParamsWithHTTPClient(client *http.Client) *ChangeNodeExporterParams { - return &ChangeNodeExporterParams{ - HTTPClient: client, - } -} - -/* -ChangeNodeExporterParams contains all the parameters to send to the API endpoint - - for the change node exporter operation. - - Typically these are written to a http.Request. -*/ -type ChangeNodeExporterParams struct { - // Body. - Body ChangeNodeExporterBody - - timeout time.Duration - Context context.Context - HTTPClient *http.Client -} - -// WithDefaults hydrates default values in the change node exporter params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangeNodeExporterParams) WithDefaults() *ChangeNodeExporterParams { - o.SetDefaults() - return o -} - -// SetDefaults hydrates default values in the change node exporter params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangeNodeExporterParams) SetDefaults() { - // no default values defined for this parameter -} - -// WithTimeout adds the timeout to the change node exporter params -func (o *ChangeNodeExporterParams) WithTimeout(timeout time.Duration) *ChangeNodeExporterParams { - o.SetTimeout(timeout) - return o -} - -// SetTimeout adds the timeout to the change node exporter params -func (o *ChangeNodeExporterParams) SetTimeout(timeout time.Duration) { - o.timeout = timeout -} - -// WithContext adds the context to the change node exporter params -func (o *ChangeNodeExporterParams) WithContext(ctx context.Context) *ChangeNodeExporterParams { - o.SetContext(ctx) - return o -} - -// SetContext adds the context to the change node exporter params -func (o *ChangeNodeExporterParams) SetContext(ctx context.Context) { - o.Context = ctx -} - -// WithHTTPClient adds the HTTPClient to the change node exporter params -func (o *ChangeNodeExporterParams) WithHTTPClient(client *http.Client) *ChangeNodeExporterParams { - o.SetHTTPClient(client) - return o -} - -// SetHTTPClient adds the HTTPClient to the change node exporter params -func (o *ChangeNodeExporterParams) SetHTTPClient(client *http.Client) { - o.HTTPClient = client -} - -// WithBody adds the body to the change node exporter params -func (o *ChangeNodeExporterParams) WithBody(body ChangeNodeExporterBody) *ChangeNodeExporterParams { - o.SetBody(body) - return o -} - -// SetBody adds the body to the change node exporter params -func (o *ChangeNodeExporterParams) SetBody(body ChangeNodeExporterBody) { - o.Body = body -} - -// WriteToRequest writes these params to a swagger request -func (o *ChangeNodeExporterParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { - if err := r.SetTimeout(o.timeout); err != nil { - return err - } - var res []error - if err := r.SetBodyParam(o.Body); err != nil { - return err - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} diff --git a/api/inventory/v1/json/client/agents_service/change_node_exporter_responses.go b/api/inventory/v1/json/client/agents_service/change_node_exporter_responses.go deleted file mode 100644 index 94d6c495d0..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_node_exporter_responses.go +++ /dev/null @@ -1,698 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "encoding/json" - "fmt" - "io" - "strconv" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - "github.com/go-openapi/strfmt" - "github.com/go-openapi/swag" - "github.com/go-openapi/validate" -) - -// ChangeNodeExporterReader is a Reader for the ChangeNodeExporter structure. -type ChangeNodeExporterReader struct { - formats strfmt.Registry -} - -// ReadResponse reads a server response into the received o. -func (o *ChangeNodeExporterReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) { - switch response.Code() { - case 200: - result := NewChangeNodeExporterOK() - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - return result, nil - default: - result := NewChangeNodeExporterDefault(response.Code()) - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - if response.Code()/100 == 2 { - return result, nil - } - return nil, result - } -} - -// NewChangeNodeExporterOK creates a ChangeNodeExporterOK with default headers values -func NewChangeNodeExporterOK() *ChangeNodeExporterOK { - return &ChangeNodeExporterOK{} -} - -/* -ChangeNodeExporterOK describes a response with status code 200, with default header values. - -A successful response. -*/ -type ChangeNodeExporterOK struct { - Payload *ChangeNodeExporterOKBody -} - -func (o *ChangeNodeExporterOK) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangeNodeExporter][%d] changeNodeExporterOk %+v", 200, o.Payload) -} - -func (o *ChangeNodeExporterOK) GetPayload() *ChangeNodeExporterOKBody { - return o.Payload -} - -func (o *ChangeNodeExporterOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangeNodeExporterOKBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -// NewChangeNodeExporterDefault creates a ChangeNodeExporterDefault with default headers values -func NewChangeNodeExporterDefault(code int) *ChangeNodeExporterDefault { - return &ChangeNodeExporterDefault{ - _statusCode: code, - } -} - -/* -ChangeNodeExporterDefault describes a response with status code -1, with default header values. - -An unexpected error response. -*/ -type ChangeNodeExporterDefault struct { - _statusCode int - - Payload *ChangeNodeExporterDefaultBody -} - -// Code gets the status code for the change node exporter default response -func (o *ChangeNodeExporterDefault) Code() int { - return o._statusCode -} - -func (o *ChangeNodeExporterDefault) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangeNodeExporter][%d] ChangeNodeExporter default %+v", o._statusCode, o.Payload) -} - -func (o *ChangeNodeExporterDefault) GetPayload() *ChangeNodeExporterDefaultBody { - return o.Payload -} - -func (o *ChangeNodeExporterDefault) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangeNodeExporterDefaultBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -/* -ChangeNodeExporterBody change node exporter body -swagger:model ChangeNodeExporterBody -*/ -type ChangeNodeExporterBody struct { - // agent id - AgentID string `json:"agent_id,omitempty"` - - // common - Common *ChangeNodeExporterParamsBodyCommon `json:"common,omitempty"` -} - -// Validate validates this change node exporter body -func (o *ChangeNodeExporterBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateCommon(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeNodeExporterBody) validateCommon(formats strfmt.Registry) error { - if swag.IsZero(o.Common) { // not required - return nil - } - - if o.Common != nil { - if err := o.Common.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change node exporter body based on the context it is used -func (o *ChangeNodeExporterBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateCommon(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeNodeExporterBody) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { - if o.Common != nil { - if err := o.Common.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeNodeExporterBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeNodeExporterBody) UnmarshalBinary(b []byte) error { - var res ChangeNodeExporterBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeNodeExporterDefaultBody change node exporter default body -swagger:model ChangeNodeExporterDefaultBody -*/ -type ChangeNodeExporterDefaultBody struct { - // code - Code int32 `json:"code,omitempty"` - - // message - Message string `json:"message,omitempty"` - - // details - Details []*ChangeNodeExporterDefaultBodyDetailsItems0 `json:"details"` -} - -// Validate validates this change node exporter default body -func (o *ChangeNodeExporterDefaultBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateDetails(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeNodeExporterDefaultBody) validateDetails(formats strfmt.Registry) error { - if swag.IsZero(o.Details) { // not required - return nil - } - - for i := 0; i < len(o.Details); i++ { - if swag.IsZero(o.Details[i]) { // not required - continue - } - - if o.Details[i] != nil { - if err := o.Details[i].Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangeNodeExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangeNodeExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - - } - - return nil -} - -// ContextValidate validate this change node exporter default body based on the context it is used -func (o *ChangeNodeExporterDefaultBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateDetails(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeNodeExporterDefaultBody) contextValidateDetails(ctx context.Context, formats strfmt.Registry) error { - for i := 0; i < len(o.Details); i++ { - if o.Details[i] != nil { - if err := o.Details[i].ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangeNodeExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangeNodeExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeNodeExporterDefaultBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeNodeExporterDefaultBody) UnmarshalBinary(b []byte) error { - var res ChangeNodeExporterDefaultBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeNodeExporterDefaultBodyDetailsItems0 change node exporter default body details items0 -swagger:model ChangeNodeExporterDefaultBodyDetailsItems0 -*/ -type ChangeNodeExporterDefaultBodyDetailsItems0 struct { - // at type - AtType string `json:"@type,omitempty"` -} - -// Validate validates this change node exporter default body details items0 -func (o *ChangeNodeExporterDefaultBodyDetailsItems0) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change node exporter default body details items0 based on context it is used -func (o *ChangeNodeExporterDefaultBodyDetailsItems0) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeNodeExporterDefaultBodyDetailsItems0) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeNodeExporterDefaultBodyDetailsItems0) UnmarshalBinary(b []byte) error { - var res ChangeNodeExporterDefaultBodyDetailsItems0 - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeNodeExporterOKBody change node exporter OK body -swagger:model ChangeNodeExporterOKBody -*/ -type ChangeNodeExporterOKBody struct { - // node exporter - NodeExporter *ChangeNodeExporterOKBodyNodeExporter `json:"node_exporter,omitempty"` -} - -// Validate validates this change node exporter OK body -func (o *ChangeNodeExporterOKBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateNodeExporter(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeNodeExporterOKBody) validateNodeExporter(formats strfmt.Registry) error { - if swag.IsZero(o.NodeExporter) { // not required - return nil - } - - if o.NodeExporter != nil { - if err := o.NodeExporter.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changeNodeExporterOk" + "." + "node_exporter") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changeNodeExporterOk" + "." + "node_exporter") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change node exporter OK body based on the context it is used -func (o *ChangeNodeExporterOKBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateNodeExporter(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeNodeExporterOKBody) contextValidateNodeExporter(ctx context.Context, formats strfmt.Registry) error { - if o.NodeExporter != nil { - if err := o.NodeExporter.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changeNodeExporterOk" + "." + "node_exporter") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changeNodeExporterOk" + "." + "node_exporter") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeNodeExporterOKBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeNodeExporterOKBody) UnmarshalBinary(b []byte) error { - var res ChangeNodeExporterOKBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeNodeExporterOKBodyNodeExporter NodeExporter runs on Generic or Container Node and exposes its metrics. -swagger:model ChangeNodeExporterOKBodyNodeExporter -*/ -type ChangeNodeExporterOKBodyNodeExporter struct { - // Unique randomly generated instance identifier. - AgentID string `json:"agent_id,omitempty"` - - // The pmm-agent identifier which runs this instance. - PMMAgentID string `json:"pmm_agent_id,omitempty"` - - // Desired Agent status: enabled (false) or disabled (true). - Disabled bool `json:"disabled,omitempty"` - - // Custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // True if exporter uses push metrics mode. - PushMetricsEnabled bool `json:"push_metrics_enabled,omitempty"` - - // List of disabled collector names. - DisabledCollectors []string `json:"disabled_collectors"` - - // AgentStatus represents actual Agent status. - // - // - AGENT_STATUS_STARTING: Agent is starting. - // - AGENT_STATUS_RUNNING: Agent is running. - // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. - // - AGENT_STATUS_STOPPING: Agent is stopping. - // - AGENT_STATUS_DONE: Agent finished. - // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. - // Enum: [AGENT_STATUS_UNSPECIFIED AGENT_STATUS_STARTING AGENT_STATUS_RUNNING AGENT_STATUS_WAITING AGENT_STATUS_STOPPING AGENT_STATUS_DONE AGENT_STATUS_UNKNOWN] - Status *string `json:"status,omitempty"` - - // Listen port for scraping metrics. - ListenPort int64 `json:"listen_port,omitempty"` - - // Path to exec process. - ProcessExecPath string `json:"process_exec_path,omitempty"` - - // Log level for exporters - // - // - LOG_LEVEL_UNSPECIFIED: Auto - // Enum: [LOG_LEVEL_UNSPECIFIED LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARN LOG_LEVEL_INFO LOG_LEVEL_DEBUG] - LogLevel *string `json:"log_level,omitempty"` - - // Optionally expose the exporter process on all public interfaces - ExposeExporter bool `json:"expose_exporter,omitempty"` -} - -// Validate validates this change node exporter OK body node exporter -func (o *ChangeNodeExporterOKBodyNodeExporter) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateStatus(formats); err != nil { - res = append(res, err) - } - - if err := o.validateLogLevel(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -var changeNodeExporterOkBodyNodeExporterTypeStatusPropEnum []interface{} - -func init() { - var res []string - if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { - panic(err) - } - for _, v := range res { - changeNodeExporterOkBodyNodeExporterTypeStatusPropEnum = append(changeNodeExporterOkBodyNodeExporterTypeStatusPropEnum, v) - } -} - -const ( - - // ChangeNodeExporterOKBodyNodeExporterStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" - ChangeNodeExporterOKBodyNodeExporterStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" - - // ChangeNodeExporterOKBodyNodeExporterStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" - ChangeNodeExporterOKBodyNodeExporterStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" - - // ChangeNodeExporterOKBodyNodeExporterStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" - ChangeNodeExporterOKBodyNodeExporterStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" - - // ChangeNodeExporterOKBodyNodeExporterStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" - ChangeNodeExporterOKBodyNodeExporterStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" - - // ChangeNodeExporterOKBodyNodeExporterStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" - ChangeNodeExporterOKBodyNodeExporterStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" - - // ChangeNodeExporterOKBodyNodeExporterStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" - ChangeNodeExporterOKBodyNodeExporterStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" - - // ChangeNodeExporterOKBodyNodeExporterStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" - ChangeNodeExporterOKBodyNodeExporterStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" -) - -// prop value enum -func (o *ChangeNodeExporterOKBodyNodeExporter) validateStatusEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeNodeExporterOkBodyNodeExporterTypeStatusPropEnum, true); err != nil { - return err - } - return nil -} - -func (o *ChangeNodeExporterOKBodyNodeExporter) validateStatus(formats strfmt.Registry) error { - if swag.IsZero(o.Status) { // not required - return nil - } - - // value enum - if err := o.validateStatusEnum("changeNodeExporterOk"+"."+"node_exporter"+"."+"status", "body", *o.Status); err != nil { - return err - } - - return nil -} - -var changeNodeExporterOkBodyNodeExporterTypeLogLevelPropEnum []interface{} - -func init() { - var res []string - if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { - panic(err) - } - for _, v := range res { - changeNodeExporterOkBodyNodeExporterTypeLogLevelPropEnum = append(changeNodeExporterOkBodyNodeExporterTypeLogLevelPropEnum, v) - } -} - -const ( - - // ChangeNodeExporterOKBodyNodeExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" - ChangeNodeExporterOKBodyNodeExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" - - // ChangeNodeExporterOKBodyNodeExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" - ChangeNodeExporterOKBodyNodeExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" - - // ChangeNodeExporterOKBodyNodeExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" - ChangeNodeExporterOKBodyNodeExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" - - // ChangeNodeExporterOKBodyNodeExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" - ChangeNodeExporterOKBodyNodeExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" - - // ChangeNodeExporterOKBodyNodeExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" - ChangeNodeExporterOKBodyNodeExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" - - // ChangeNodeExporterOKBodyNodeExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" - ChangeNodeExporterOKBodyNodeExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" -) - -// prop value enum -func (o *ChangeNodeExporterOKBodyNodeExporter) validateLogLevelEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeNodeExporterOkBodyNodeExporterTypeLogLevelPropEnum, true); err != nil { - return err - } - return nil -} - -func (o *ChangeNodeExporterOKBodyNodeExporter) validateLogLevel(formats strfmt.Registry) error { - if swag.IsZero(o.LogLevel) { // not required - return nil - } - - // value enum - if err := o.validateLogLevelEnum("changeNodeExporterOk"+"."+"node_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { - return err - } - - return nil -} - -// ContextValidate validates this change node exporter OK body node exporter based on context it is used -func (o *ChangeNodeExporterOKBodyNodeExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeNodeExporterOKBodyNodeExporter) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeNodeExporterOKBodyNodeExporter) UnmarshalBinary(b []byte) error { - var res ChangeNodeExporterOKBodyNodeExporter - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeNodeExporterParamsBodyCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. -swagger:model ChangeNodeExporterParamsBodyCommon -*/ -type ChangeNodeExporterParamsBodyCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` - - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - // Can't be used with agent version lower then 2.12 and unsupported agents. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` -} - -// Validate validates this change node exporter params body common -func (o *ChangeNodeExporterParamsBodyCommon) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change node exporter params body common based on context it is used -func (o *ChangeNodeExporterParamsBodyCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeNodeExporterParamsBodyCommon) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeNodeExporterParamsBodyCommon) UnmarshalBinary(b []byte) error { - var res ChangeNodeExporterParamsBodyCommon - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} diff --git a/api/inventory/v1/json/client/agents_service/change_postgres_exporter_parameters.go b/api/inventory/v1/json/client/agents_service/change_postgres_exporter_parameters.go deleted file mode 100644 index a02454143f..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_postgres_exporter_parameters.go +++ /dev/null @@ -1,144 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "net/http" - "time" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - cr "github.com/go-openapi/runtime/client" - "github.com/go-openapi/strfmt" -) - -// NewChangePostgresExporterParams creates a new ChangePostgresExporterParams object, -// with the default timeout for this client. -// -// Default values are not hydrated, since defaults are normally applied by the API server side. -// -// To enforce default values in parameter, use SetDefaults or WithDefaults. -func NewChangePostgresExporterParams() *ChangePostgresExporterParams { - return &ChangePostgresExporterParams{ - timeout: cr.DefaultTimeout, - } -} - -// NewChangePostgresExporterParamsWithTimeout creates a new ChangePostgresExporterParams object -// with the ability to set a timeout on a request. -func NewChangePostgresExporterParamsWithTimeout(timeout time.Duration) *ChangePostgresExporterParams { - return &ChangePostgresExporterParams{ - timeout: timeout, - } -} - -// NewChangePostgresExporterParamsWithContext creates a new ChangePostgresExporterParams object -// with the ability to set a context for a request. -func NewChangePostgresExporterParamsWithContext(ctx context.Context) *ChangePostgresExporterParams { - return &ChangePostgresExporterParams{ - Context: ctx, - } -} - -// NewChangePostgresExporterParamsWithHTTPClient creates a new ChangePostgresExporterParams object -// with the ability to set a custom HTTPClient for a request. -func NewChangePostgresExporterParamsWithHTTPClient(client *http.Client) *ChangePostgresExporterParams { - return &ChangePostgresExporterParams{ - HTTPClient: client, - } -} - -/* -ChangePostgresExporterParams contains all the parameters to send to the API endpoint - - for the change postgres exporter operation. - - Typically these are written to a http.Request. -*/ -type ChangePostgresExporterParams struct { - // Body. - Body ChangePostgresExporterBody - - timeout time.Duration - Context context.Context - HTTPClient *http.Client -} - -// WithDefaults hydrates default values in the change postgres exporter params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangePostgresExporterParams) WithDefaults() *ChangePostgresExporterParams { - o.SetDefaults() - return o -} - -// SetDefaults hydrates default values in the change postgres exporter params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangePostgresExporterParams) SetDefaults() { - // no default values defined for this parameter -} - -// WithTimeout adds the timeout to the change postgres exporter params -func (o *ChangePostgresExporterParams) WithTimeout(timeout time.Duration) *ChangePostgresExporterParams { - o.SetTimeout(timeout) - return o -} - -// SetTimeout adds the timeout to the change postgres exporter params -func (o *ChangePostgresExporterParams) SetTimeout(timeout time.Duration) { - o.timeout = timeout -} - -// WithContext adds the context to the change postgres exporter params -func (o *ChangePostgresExporterParams) WithContext(ctx context.Context) *ChangePostgresExporterParams { - o.SetContext(ctx) - return o -} - -// SetContext adds the context to the change postgres exporter params -func (o *ChangePostgresExporterParams) SetContext(ctx context.Context) { - o.Context = ctx -} - -// WithHTTPClient adds the HTTPClient to the change postgres exporter params -func (o *ChangePostgresExporterParams) WithHTTPClient(client *http.Client) *ChangePostgresExporterParams { - o.SetHTTPClient(client) - return o -} - -// SetHTTPClient adds the HTTPClient to the change postgres exporter params -func (o *ChangePostgresExporterParams) SetHTTPClient(client *http.Client) { - o.HTTPClient = client -} - -// WithBody adds the body to the change postgres exporter params -func (o *ChangePostgresExporterParams) WithBody(body ChangePostgresExporterBody) *ChangePostgresExporterParams { - o.SetBody(body) - return o -} - -// SetBody adds the body to the change postgres exporter params -func (o *ChangePostgresExporterParams) SetBody(body ChangePostgresExporterBody) { - o.Body = body -} - -// WriteToRequest writes these params to a swagger request -func (o *ChangePostgresExporterParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { - if err := r.SetTimeout(o.timeout); err != nil { - return err - } - var res []error - if err := r.SetBodyParam(o.Body); err != nil { - return err - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} diff --git a/api/inventory/v1/json/client/agents_service/change_postgres_exporter_responses.go b/api/inventory/v1/json/client/agents_service/change_postgres_exporter_responses.go deleted file mode 100644 index afbac8f8cf..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_postgres_exporter_responses.go +++ /dev/null @@ -1,713 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "encoding/json" - "fmt" - "io" - "strconv" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - "github.com/go-openapi/strfmt" - "github.com/go-openapi/swag" - "github.com/go-openapi/validate" -) - -// ChangePostgresExporterReader is a Reader for the ChangePostgresExporter structure. -type ChangePostgresExporterReader struct { - formats strfmt.Registry -} - -// ReadResponse reads a server response into the received o. -func (o *ChangePostgresExporterReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) { - switch response.Code() { - case 200: - result := NewChangePostgresExporterOK() - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - return result, nil - default: - result := NewChangePostgresExporterDefault(response.Code()) - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - if response.Code()/100 == 2 { - return result, nil - } - return nil, result - } -} - -// NewChangePostgresExporterOK creates a ChangePostgresExporterOK with default headers values -func NewChangePostgresExporterOK() *ChangePostgresExporterOK { - return &ChangePostgresExporterOK{} -} - -/* -ChangePostgresExporterOK describes a response with status code 200, with default header values. - -A successful response. -*/ -type ChangePostgresExporterOK struct { - Payload *ChangePostgresExporterOKBody -} - -func (o *ChangePostgresExporterOK) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangePostgresExporter][%d] changePostgresExporterOk %+v", 200, o.Payload) -} - -func (o *ChangePostgresExporterOK) GetPayload() *ChangePostgresExporterOKBody { - return o.Payload -} - -func (o *ChangePostgresExporterOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangePostgresExporterOKBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -// NewChangePostgresExporterDefault creates a ChangePostgresExporterDefault with default headers values -func NewChangePostgresExporterDefault(code int) *ChangePostgresExporterDefault { - return &ChangePostgresExporterDefault{ - _statusCode: code, - } -} - -/* -ChangePostgresExporterDefault describes a response with status code -1, with default header values. - -An unexpected error response. -*/ -type ChangePostgresExporterDefault struct { - _statusCode int - - Payload *ChangePostgresExporterDefaultBody -} - -// Code gets the status code for the change postgres exporter default response -func (o *ChangePostgresExporterDefault) Code() int { - return o._statusCode -} - -func (o *ChangePostgresExporterDefault) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangePostgresExporter][%d] ChangePostgresExporter default %+v", o._statusCode, o.Payload) -} - -func (o *ChangePostgresExporterDefault) GetPayload() *ChangePostgresExporterDefaultBody { - return o.Payload -} - -func (o *ChangePostgresExporterDefault) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangePostgresExporterDefaultBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -/* -ChangePostgresExporterBody change postgres exporter body -swagger:model ChangePostgresExporterBody -*/ -type ChangePostgresExporterBody struct { - // agent id - AgentID string `json:"agent_id,omitempty"` - - // common - Common *ChangePostgresExporterParamsBodyCommon `json:"common,omitempty"` -} - -// Validate validates this change postgres exporter body -func (o *ChangePostgresExporterBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateCommon(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangePostgresExporterBody) validateCommon(formats strfmt.Registry) error { - if swag.IsZero(o.Common) { // not required - return nil - } - - if o.Common != nil { - if err := o.Common.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change postgres exporter body based on the context it is used -func (o *ChangePostgresExporterBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateCommon(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangePostgresExporterBody) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { - if o.Common != nil { - if err := o.Common.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangePostgresExporterBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangePostgresExporterBody) UnmarshalBinary(b []byte) error { - var res ChangePostgresExporterBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangePostgresExporterDefaultBody change postgres exporter default body -swagger:model ChangePostgresExporterDefaultBody -*/ -type ChangePostgresExporterDefaultBody struct { - // code - Code int32 `json:"code,omitempty"` - - // message - Message string `json:"message,omitempty"` - - // details - Details []*ChangePostgresExporterDefaultBodyDetailsItems0 `json:"details"` -} - -// Validate validates this change postgres exporter default body -func (o *ChangePostgresExporterDefaultBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateDetails(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangePostgresExporterDefaultBody) validateDetails(formats strfmt.Registry) error { - if swag.IsZero(o.Details) { // not required - return nil - } - - for i := 0; i < len(o.Details); i++ { - if swag.IsZero(o.Details[i]) { // not required - continue - } - - if o.Details[i] != nil { - if err := o.Details[i].Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangePostgresExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangePostgresExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - - } - - return nil -} - -// ContextValidate validate this change postgres exporter default body based on the context it is used -func (o *ChangePostgresExporterDefaultBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateDetails(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangePostgresExporterDefaultBody) contextValidateDetails(ctx context.Context, formats strfmt.Registry) error { - for i := 0; i < len(o.Details); i++ { - if o.Details[i] != nil { - if err := o.Details[i].ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangePostgresExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangePostgresExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangePostgresExporterDefaultBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangePostgresExporterDefaultBody) UnmarshalBinary(b []byte) error { - var res ChangePostgresExporterDefaultBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangePostgresExporterDefaultBodyDetailsItems0 change postgres exporter default body details items0 -swagger:model ChangePostgresExporterDefaultBodyDetailsItems0 -*/ -type ChangePostgresExporterDefaultBodyDetailsItems0 struct { - // at type - AtType string `json:"@type,omitempty"` -} - -// Validate validates this change postgres exporter default body details items0 -func (o *ChangePostgresExporterDefaultBodyDetailsItems0) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change postgres exporter default body details items0 based on context it is used -func (o *ChangePostgresExporterDefaultBodyDetailsItems0) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangePostgresExporterDefaultBodyDetailsItems0) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangePostgresExporterDefaultBodyDetailsItems0) UnmarshalBinary(b []byte) error { - var res ChangePostgresExporterDefaultBodyDetailsItems0 - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangePostgresExporterOKBody change postgres exporter OK body -swagger:model ChangePostgresExporterOKBody -*/ -type ChangePostgresExporterOKBody struct { - // postgres exporter - PostgresExporter *ChangePostgresExporterOKBodyPostgresExporter `json:"postgres_exporter,omitempty"` -} - -// Validate validates this change postgres exporter OK body -func (o *ChangePostgresExporterOKBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validatePostgresExporter(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangePostgresExporterOKBody) validatePostgresExporter(formats strfmt.Registry) error { - if swag.IsZero(o.PostgresExporter) { // not required - return nil - } - - if o.PostgresExporter != nil { - if err := o.PostgresExporter.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changePostgresExporterOk" + "." + "postgres_exporter") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changePostgresExporterOk" + "." + "postgres_exporter") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change postgres exporter OK body based on the context it is used -func (o *ChangePostgresExporterOKBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidatePostgresExporter(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangePostgresExporterOKBody) contextValidatePostgresExporter(ctx context.Context, formats strfmt.Registry) error { - if o.PostgresExporter != nil { - if err := o.PostgresExporter.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changePostgresExporterOk" + "." + "postgres_exporter") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changePostgresExporterOk" + "." + "postgres_exporter") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangePostgresExporterOKBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangePostgresExporterOKBody) UnmarshalBinary(b []byte) error { - var res ChangePostgresExporterOKBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangePostgresExporterOKBodyPostgresExporter PostgresExporter runs on Generic or Container Node and exposes PostgreSQL Service metrics. -swagger:model ChangePostgresExporterOKBodyPostgresExporter -*/ -type ChangePostgresExporterOKBodyPostgresExporter struct { - // Unique randomly generated instance identifier. - AgentID string `json:"agent_id,omitempty"` - - // The pmm-agent identifier which runs this instance. - PMMAgentID string `json:"pmm_agent_id,omitempty"` - - // Desired Agent status: enabled (false) or disabled (true). - Disabled bool `json:"disabled,omitempty"` - - // Service identifier. - ServiceID string `json:"service_id,omitempty"` - - // PostgreSQL username for scraping metrics. - Username string `json:"username,omitempty"` - - // Use TLS for database connections. - TLS bool `json:"tls,omitempty"` - - // Skip TLS certificate and hostname validation. Uses sslmode=required instead of verify-full. - TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` - - // Custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // True if exporter uses push metrics mode. - PushMetricsEnabled bool `json:"push_metrics_enabled,omitempty"` - - // List of disabled collector names. - DisabledCollectors []string `json:"disabled_collectors"` - - // AgentStatus represents actual Agent status. - // - // - AGENT_STATUS_STARTING: Agent is starting. - // - AGENT_STATUS_RUNNING: Agent is running. - // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. - // - AGENT_STATUS_STOPPING: Agent is stopping. - // - AGENT_STATUS_DONE: Agent finished. - // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. - // Enum: [AGENT_STATUS_UNSPECIFIED AGENT_STATUS_STARTING AGENT_STATUS_RUNNING AGENT_STATUS_WAITING AGENT_STATUS_STOPPING AGENT_STATUS_DONE AGENT_STATUS_UNKNOWN] - Status *string `json:"status,omitempty"` - - // Listen port for scraping metrics. - ListenPort int64 `json:"listen_port,omitempty"` - - // Path to exec process. - ProcessExecPath string `json:"process_exec_path,omitempty"` - - // Log level for exporters - // - // - LOG_LEVEL_UNSPECIFIED: Auto - // Enum: [LOG_LEVEL_UNSPECIFIED LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARN LOG_LEVEL_INFO LOG_LEVEL_DEBUG] - LogLevel *string `json:"log_level,omitempty"` - - // Limit of databases for auto-discovery. - AutoDiscoveryLimit int32 `json:"auto_discovery_limit,omitempty"` - - // Optionally expose the exporter process on all public interfaces - ExposeExporter bool `json:"expose_exporter,omitempty"` -} - -// Validate validates this change postgres exporter OK body postgres exporter -func (o *ChangePostgresExporterOKBodyPostgresExporter) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateStatus(formats); err != nil { - res = append(res, err) - } - - if err := o.validateLogLevel(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -var changePostgresExporterOkBodyPostgresExporterTypeStatusPropEnum []interface{} - -func init() { - var res []string - if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { - panic(err) - } - for _, v := range res { - changePostgresExporterOkBodyPostgresExporterTypeStatusPropEnum = append(changePostgresExporterOkBodyPostgresExporterTypeStatusPropEnum, v) - } -} - -const ( - - // ChangePostgresExporterOKBodyPostgresExporterStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" - ChangePostgresExporterOKBodyPostgresExporterStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" - - // ChangePostgresExporterOKBodyPostgresExporterStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" - ChangePostgresExporterOKBodyPostgresExporterStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" - - // ChangePostgresExporterOKBodyPostgresExporterStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" - ChangePostgresExporterOKBodyPostgresExporterStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" - - // ChangePostgresExporterOKBodyPostgresExporterStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" - ChangePostgresExporterOKBodyPostgresExporterStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" - - // ChangePostgresExporterOKBodyPostgresExporterStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" - ChangePostgresExporterOKBodyPostgresExporterStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" - - // ChangePostgresExporterOKBodyPostgresExporterStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" - ChangePostgresExporterOKBodyPostgresExporterStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" - - // ChangePostgresExporterOKBodyPostgresExporterStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" - ChangePostgresExporterOKBodyPostgresExporterStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" -) - -// prop value enum -func (o *ChangePostgresExporterOKBodyPostgresExporter) validateStatusEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changePostgresExporterOkBodyPostgresExporterTypeStatusPropEnum, true); err != nil { - return err - } - return nil -} - -func (o *ChangePostgresExporterOKBodyPostgresExporter) validateStatus(formats strfmt.Registry) error { - if swag.IsZero(o.Status) { // not required - return nil - } - - // value enum - if err := o.validateStatusEnum("changePostgresExporterOk"+"."+"postgres_exporter"+"."+"status", "body", *o.Status); err != nil { - return err - } - - return nil -} - -var changePostgresExporterOkBodyPostgresExporterTypeLogLevelPropEnum []interface{} - -func init() { - var res []string - if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { - panic(err) - } - for _, v := range res { - changePostgresExporterOkBodyPostgresExporterTypeLogLevelPropEnum = append(changePostgresExporterOkBodyPostgresExporterTypeLogLevelPropEnum, v) - } -} - -const ( - - // ChangePostgresExporterOKBodyPostgresExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" - ChangePostgresExporterOKBodyPostgresExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" - - // ChangePostgresExporterOKBodyPostgresExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" - ChangePostgresExporterOKBodyPostgresExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" - - // ChangePostgresExporterOKBodyPostgresExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" - ChangePostgresExporterOKBodyPostgresExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" - - // ChangePostgresExporterOKBodyPostgresExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" - ChangePostgresExporterOKBodyPostgresExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" - - // ChangePostgresExporterOKBodyPostgresExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" - ChangePostgresExporterOKBodyPostgresExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" - - // ChangePostgresExporterOKBodyPostgresExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" - ChangePostgresExporterOKBodyPostgresExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" -) - -// prop value enum -func (o *ChangePostgresExporterOKBodyPostgresExporter) validateLogLevelEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changePostgresExporterOkBodyPostgresExporterTypeLogLevelPropEnum, true); err != nil { - return err - } - return nil -} - -func (o *ChangePostgresExporterOKBodyPostgresExporter) validateLogLevel(formats strfmt.Registry) error { - if swag.IsZero(o.LogLevel) { // not required - return nil - } - - // value enum - if err := o.validateLogLevelEnum("changePostgresExporterOk"+"."+"postgres_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { - return err - } - - return nil -} - -// ContextValidate validates this change postgres exporter OK body postgres exporter based on context it is used -func (o *ChangePostgresExporterOKBodyPostgresExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangePostgresExporterOKBodyPostgresExporter) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangePostgresExporterOKBodyPostgresExporter) UnmarshalBinary(b []byte) error { - var res ChangePostgresExporterOKBodyPostgresExporter - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangePostgresExporterParamsBodyCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. -swagger:model ChangePostgresExporterParamsBodyCommon -*/ -type ChangePostgresExporterParamsBodyCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` - - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - // Can't be used with agent version lower then 2.12 and unsupported agents. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` -} - -// Validate validates this change postgres exporter params body common -func (o *ChangePostgresExporterParamsBodyCommon) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change postgres exporter params body common based on context it is used -func (o *ChangePostgresExporterParamsBodyCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangePostgresExporterParamsBodyCommon) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangePostgresExporterParamsBodyCommon) UnmarshalBinary(b []byte) error { - var res ChangePostgresExporterParamsBodyCommon - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} diff --git a/api/inventory/v1/json/client/agents_service/change_proxy_sql_exporter_parameters.go b/api/inventory/v1/json/client/agents_service/change_proxy_sql_exporter_parameters.go deleted file mode 100644 index 6b367ec1e7..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_proxy_sql_exporter_parameters.go +++ /dev/null @@ -1,144 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "net/http" - "time" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - cr "github.com/go-openapi/runtime/client" - "github.com/go-openapi/strfmt" -) - -// NewChangeProxySQLExporterParams creates a new ChangeProxySQLExporterParams object, -// with the default timeout for this client. -// -// Default values are not hydrated, since defaults are normally applied by the API server side. -// -// To enforce default values in parameter, use SetDefaults or WithDefaults. -func NewChangeProxySQLExporterParams() *ChangeProxySQLExporterParams { - return &ChangeProxySQLExporterParams{ - timeout: cr.DefaultTimeout, - } -} - -// NewChangeProxySQLExporterParamsWithTimeout creates a new ChangeProxySQLExporterParams object -// with the ability to set a timeout on a request. -func NewChangeProxySQLExporterParamsWithTimeout(timeout time.Duration) *ChangeProxySQLExporterParams { - return &ChangeProxySQLExporterParams{ - timeout: timeout, - } -} - -// NewChangeProxySQLExporterParamsWithContext creates a new ChangeProxySQLExporterParams object -// with the ability to set a context for a request. -func NewChangeProxySQLExporterParamsWithContext(ctx context.Context) *ChangeProxySQLExporterParams { - return &ChangeProxySQLExporterParams{ - Context: ctx, - } -} - -// NewChangeProxySQLExporterParamsWithHTTPClient creates a new ChangeProxySQLExporterParams object -// with the ability to set a custom HTTPClient for a request. -func NewChangeProxySQLExporterParamsWithHTTPClient(client *http.Client) *ChangeProxySQLExporterParams { - return &ChangeProxySQLExporterParams{ - HTTPClient: client, - } -} - -/* -ChangeProxySQLExporterParams contains all the parameters to send to the API endpoint - - for the change proxy SQL exporter operation. - - Typically these are written to a http.Request. -*/ -type ChangeProxySQLExporterParams struct { - // Body. - Body ChangeProxySQLExporterBody - - timeout time.Duration - Context context.Context - HTTPClient *http.Client -} - -// WithDefaults hydrates default values in the change proxy SQL exporter params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangeProxySQLExporterParams) WithDefaults() *ChangeProxySQLExporterParams { - o.SetDefaults() - return o -} - -// SetDefaults hydrates default values in the change proxy SQL exporter params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangeProxySQLExporterParams) SetDefaults() { - // no default values defined for this parameter -} - -// WithTimeout adds the timeout to the change proxy SQL exporter params -func (o *ChangeProxySQLExporterParams) WithTimeout(timeout time.Duration) *ChangeProxySQLExporterParams { - o.SetTimeout(timeout) - return o -} - -// SetTimeout adds the timeout to the change proxy SQL exporter params -func (o *ChangeProxySQLExporterParams) SetTimeout(timeout time.Duration) { - o.timeout = timeout -} - -// WithContext adds the context to the change proxy SQL exporter params -func (o *ChangeProxySQLExporterParams) WithContext(ctx context.Context) *ChangeProxySQLExporterParams { - o.SetContext(ctx) - return o -} - -// SetContext adds the context to the change proxy SQL exporter params -func (o *ChangeProxySQLExporterParams) SetContext(ctx context.Context) { - o.Context = ctx -} - -// WithHTTPClient adds the HTTPClient to the change proxy SQL exporter params -func (o *ChangeProxySQLExporterParams) WithHTTPClient(client *http.Client) *ChangeProxySQLExporterParams { - o.SetHTTPClient(client) - return o -} - -// SetHTTPClient adds the HTTPClient to the change proxy SQL exporter params -func (o *ChangeProxySQLExporterParams) SetHTTPClient(client *http.Client) { - o.HTTPClient = client -} - -// WithBody adds the body to the change proxy SQL exporter params -func (o *ChangeProxySQLExporterParams) WithBody(body ChangeProxySQLExporterBody) *ChangeProxySQLExporterParams { - o.SetBody(body) - return o -} - -// SetBody adds the body to the change proxy SQL exporter params -func (o *ChangeProxySQLExporterParams) SetBody(body ChangeProxySQLExporterBody) { - o.Body = body -} - -// WriteToRequest writes these params to a swagger request -func (o *ChangeProxySQLExporterParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { - if err := r.SetTimeout(o.timeout); err != nil { - return err - } - var res []error - if err := r.SetBodyParam(o.Body); err != nil { - return err - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} diff --git a/api/inventory/v1/json/client/agents_service/change_proxy_sql_exporter_responses.go b/api/inventory/v1/json/client/agents_service/change_proxy_sql_exporter_responses.go deleted file mode 100644 index db3637b548..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_proxy_sql_exporter_responses.go +++ /dev/null @@ -1,710 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "encoding/json" - "fmt" - "io" - "strconv" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - "github.com/go-openapi/strfmt" - "github.com/go-openapi/swag" - "github.com/go-openapi/validate" -) - -// ChangeProxySQLExporterReader is a Reader for the ChangeProxySQLExporter structure. -type ChangeProxySQLExporterReader struct { - formats strfmt.Registry -} - -// ReadResponse reads a server response into the received o. -func (o *ChangeProxySQLExporterReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) { - switch response.Code() { - case 200: - result := NewChangeProxySQLExporterOK() - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - return result, nil - default: - result := NewChangeProxySQLExporterDefault(response.Code()) - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - if response.Code()/100 == 2 { - return result, nil - } - return nil, result - } -} - -// NewChangeProxySQLExporterOK creates a ChangeProxySQLExporterOK with default headers values -func NewChangeProxySQLExporterOK() *ChangeProxySQLExporterOK { - return &ChangeProxySQLExporterOK{} -} - -/* -ChangeProxySQLExporterOK describes a response with status code 200, with default header values. - -A successful response. -*/ -type ChangeProxySQLExporterOK struct { - Payload *ChangeProxySQLExporterOKBody -} - -func (o *ChangeProxySQLExporterOK) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangeProxySQLExporter][%d] changeProxySqlExporterOk %+v", 200, o.Payload) -} - -func (o *ChangeProxySQLExporterOK) GetPayload() *ChangeProxySQLExporterOKBody { - return o.Payload -} - -func (o *ChangeProxySQLExporterOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangeProxySQLExporterOKBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -// NewChangeProxySQLExporterDefault creates a ChangeProxySQLExporterDefault with default headers values -func NewChangeProxySQLExporterDefault(code int) *ChangeProxySQLExporterDefault { - return &ChangeProxySQLExporterDefault{ - _statusCode: code, - } -} - -/* -ChangeProxySQLExporterDefault describes a response with status code -1, with default header values. - -An unexpected error response. -*/ -type ChangeProxySQLExporterDefault struct { - _statusCode int - - Payload *ChangeProxySQLExporterDefaultBody -} - -// Code gets the status code for the change proxy SQL exporter default response -func (o *ChangeProxySQLExporterDefault) Code() int { - return o._statusCode -} - -func (o *ChangeProxySQLExporterDefault) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangeProxySQLExporter][%d] ChangeProxySQLExporter default %+v", o._statusCode, o.Payload) -} - -func (o *ChangeProxySQLExporterDefault) GetPayload() *ChangeProxySQLExporterDefaultBody { - return o.Payload -} - -func (o *ChangeProxySQLExporterDefault) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangeProxySQLExporterDefaultBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -/* -ChangeProxySQLExporterBody change proxy SQL exporter body -swagger:model ChangeProxySQLExporterBody -*/ -type ChangeProxySQLExporterBody struct { - // agent id - AgentID string `json:"agent_id,omitempty"` - - // common - Common *ChangeProxySQLExporterParamsBodyCommon `json:"common,omitempty"` -} - -// Validate validates this change proxy SQL exporter body -func (o *ChangeProxySQLExporterBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateCommon(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeProxySQLExporterBody) validateCommon(formats strfmt.Registry) error { - if swag.IsZero(o.Common) { // not required - return nil - } - - if o.Common != nil { - if err := o.Common.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change proxy SQL exporter body based on the context it is used -func (o *ChangeProxySQLExporterBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateCommon(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeProxySQLExporterBody) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { - if o.Common != nil { - if err := o.Common.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeProxySQLExporterBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeProxySQLExporterBody) UnmarshalBinary(b []byte) error { - var res ChangeProxySQLExporterBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeProxySQLExporterDefaultBody change proxy SQL exporter default body -swagger:model ChangeProxySQLExporterDefaultBody -*/ -type ChangeProxySQLExporterDefaultBody struct { - // code - Code int32 `json:"code,omitempty"` - - // message - Message string `json:"message,omitempty"` - - // details - Details []*ChangeProxySQLExporterDefaultBodyDetailsItems0 `json:"details"` -} - -// Validate validates this change proxy SQL exporter default body -func (o *ChangeProxySQLExporterDefaultBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateDetails(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeProxySQLExporterDefaultBody) validateDetails(formats strfmt.Registry) error { - if swag.IsZero(o.Details) { // not required - return nil - } - - for i := 0; i < len(o.Details); i++ { - if swag.IsZero(o.Details[i]) { // not required - continue - } - - if o.Details[i] != nil { - if err := o.Details[i].Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangeProxySQLExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangeProxySQLExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - - } - - return nil -} - -// ContextValidate validate this change proxy SQL exporter default body based on the context it is used -func (o *ChangeProxySQLExporterDefaultBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateDetails(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeProxySQLExporterDefaultBody) contextValidateDetails(ctx context.Context, formats strfmt.Registry) error { - for i := 0; i < len(o.Details); i++ { - if o.Details[i] != nil { - if err := o.Details[i].ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangeProxySQLExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangeProxySQLExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeProxySQLExporterDefaultBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeProxySQLExporterDefaultBody) UnmarshalBinary(b []byte) error { - var res ChangeProxySQLExporterDefaultBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeProxySQLExporterDefaultBodyDetailsItems0 change proxy SQL exporter default body details items0 -swagger:model ChangeProxySQLExporterDefaultBodyDetailsItems0 -*/ -type ChangeProxySQLExporterDefaultBodyDetailsItems0 struct { - // at type - AtType string `json:"@type,omitempty"` -} - -// Validate validates this change proxy SQL exporter default body details items0 -func (o *ChangeProxySQLExporterDefaultBodyDetailsItems0) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change proxy SQL exporter default body details items0 based on context it is used -func (o *ChangeProxySQLExporterDefaultBodyDetailsItems0) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeProxySQLExporterDefaultBodyDetailsItems0) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeProxySQLExporterDefaultBodyDetailsItems0) UnmarshalBinary(b []byte) error { - var res ChangeProxySQLExporterDefaultBodyDetailsItems0 - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeProxySQLExporterOKBody change proxy SQL exporter OK body -swagger:model ChangeProxySQLExporterOKBody -*/ -type ChangeProxySQLExporterOKBody struct { - // proxysql exporter - ProxysqlExporter *ChangeProxySQLExporterOKBodyProxysqlExporter `json:"proxysql_exporter,omitempty"` -} - -// Validate validates this change proxy SQL exporter OK body -func (o *ChangeProxySQLExporterOKBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateProxysqlExporter(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeProxySQLExporterOKBody) validateProxysqlExporter(formats strfmt.Registry) error { - if swag.IsZero(o.ProxysqlExporter) { // not required - return nil - } - - if o.ProxysqlExporter != nil { - if err := o.ProxysqlExporter.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changeProxySqlExporterOk" + "." + "proxysql_exporter") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changeProxySqlExporterOk" + "." + "proxysql_exporter") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change proxy SQL exporter OK body based on the context it is used -func (o *ChangeProxySQLExporterOKBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateProxysqlExporter(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeProxySQLExporterOKBody) contextValidateProxysqlExporter(ctx context.Context, formats strfmt.Registry) error { - if o.ProxysqlExporter != nil { - if err := o.ProxysqlExporter.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changeProxySqlExporterOk" + "." + "proxysql_exporter") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changeProxySqlExporterOk" + "." + "proxysql_exporter") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeProxySQLExporterOKBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeProxySQLExporterOKBody) UnmarshalBinary(b []byte) error { - var res ChangeProxySQLExporterOKBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeProxySQLExporterOKBodyProxysqlExporter ProxySQLExporter runs on Generic or Container Node and exposes ProxySQL Service metrics. -swagger:model ChangeProxySQLExporterOKBodyProxysqlExporter -*/ -type ChangeProxySQLExporterOKBodyProxysqlExporter struct { - // Unique randomly generated instance identifier. - AgentID string `json:"agent_id,omitempty"` - - // The pmm-agent identifier which runs this instance. - PMMAgentID string `json:"pmm_agent_id,omitempty"` - - // Desired Agent status: enabled (false) or disabled (true). - Disabled bool `json:"disabled,omitempty"` - - // Service identifier. - ServiceID string `json:"service_id,omitempty"` - - // ProxySQL username for scraping metrics. - Username string `json:"username,omitempty"` - - // Use TLS for database connections. - TLS bool `json:"tls,omitempty"` - - // Skip TLS certificate and hostname validation. - TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` - - // Custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // True if exporter uses push metrics mode. - PushMetricsEnabled bool `json:"push_metrics_enabled,omitempty"` - - // List of disabled collector names. - DisabledCollectors []string `json:"disabled_collectors"` - - // AgentStatus represents actual Agent status. - // - // - AGENT_STATUS_STARTING: Agent is starting. - // - AGENT_STATUS_RUNNING: Agent is running. - // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. - // - AGENT_STATUS_STOPPING: Agent is stopping. - // - AGENT_STATUS_DONE: Agent finished. - // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. - // Enum: [AGENT_STATUS_UNSPECIFIED AGENT_STATUS_STARTING AGENT_STATUS_RUNNING AGENT_STATUS_WAITING AGENT_STATUS_STOPPING AGENT_STATUS_DONE AGENT_STATUS_UNKNOWN] - Status *string `json:"status,omitempty"` - - // Listen port for scraping metrics. - ListenPort int64 `json:"listen_port,omitempty"` - - // Path to exec process. - ProcessExecPath string `json:"process_exec_path,omitempty"` - - // Log level for exporters - // - // - LOG_LEVEL_UNSPECIFIED: Auto - // Enum: [LOG_LEVEL_UNSPECIFIED LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARN LOG_LEVEL_INFO LOG_LEVEL_DEBUG] - LogLevel *string `json:"log_level,omitempty"` - - // Optionally expose the exporter process on all public interfaces - ExposeExporter bool `json:"expose_exporter,omitempty"` -} - -// Validate validates this change proxy SQL exporter OK body proxysql exporter -func (o *ChangeProxySQLExporterOKBodyProxysqlExporter) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateStatus(formats); err != nil { - res = append(res, err) - } - - if err := o.validateLogLevel(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -var changeProxySqlExporterOkBodyProxysqlExporterTypeStatusPropEnum []interface{} - -func init() { - var res []string - if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { - panic(err) - } - for _, v := range res { - changeProxySqlExporterOkBodyProxysqlExporterTypeStatusPropEnum = append(changeProxySqlExporterOkBodyProxysqlExporterTypeStatusPropEnum, v) - } -} - -const ( - - // ChangeProxySQLExporterOKBodyProxysqlExporterStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" - ChangeProxySQLExporterOKBodyProxysqlExporterStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" - - // ChangeProxySQLExporterOKBodyProxysqlExporterStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" - ChangeProxySQLExporterOKBodyProxysqlExporterStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" - - // ChangeProxySQLExporterOKBodyProxysqlExporterStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" - ChangeProxySQLExporterOKBodyProxysqlExporterStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" - - // ChangeProxySQLExporterOKBodyProxysqlExporterStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" - ChangeProxySQLExporterOKBodyProxysqlExporterStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" - - // ChangeProxySQLExporterOKBodyProxysqlExporterStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" - ChangeProxySQLExporterOKBodyProxysqlExporterStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" - - // ChangeProxySQLExporterOKBodyProxysqlExporterStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" - ChangeProxySQLExporterOKBodyProxysqlExporterStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" - - // ChangeProxySQLExporterOKBodyProxysqlExporterStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" - ChangeProxySQLExporterOKBodyProxysqlExporterStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" -) - -// prop value enum -func (o *ChangeProxySQLExporterOKBodyProxysqlExporter) validateStatusEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeProxySqlExporterOkBodyProxysqlExporterTypeStatusPropEnum, true); err != nil { - return err - } - return nil -} - -func (o *ChangeProxySQLExporterOKBodyProxysqlExporter) validateStatus(formats strfmt.Registry) error { - if swag.IsZero(o.Status) { // not required - return nil - } - - // value enum - if err := o.validateStatusEnum("changeProxySqlExporterOk"+"."+"proxysql_exporter"+"."+"status", "body", *o.Status); err != nil { - return err - } - - return nil -} - -var changeProxySqlExporterOkBodyProxysqlExporterTypeLogLevelPropEnum []interface{} - -func init() { - var res []string - if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { - panic(err) - } - for _, v := range res { - changeProxySqlExporterOkBodyProxysqlExporterTypeLogLevelPropEnum = append(changeProxySqlExporterOkBodyProxysqlExporterTypeLogLevelPropEnum, v) - } -} - -const ( - - // ChangeProxySQLExporterOKBodyProxysqlExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" - ChangeProxySQLExporterOKBodyProxysqlExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" - - // ChangeProxySQLExporterOKBodyProxysqlExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" - ChangeProxySQLExporterOKBodyProxysqlExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" - - // ChangeProxySQLExporterOKBodyProxysqlExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" - ChangeProxySQLExporterOKBodyProxysqlExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" - - // ChangeProxySQLExporterOKBodyProxysqlExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" - ChangeProxySQLExporterOKBodyProxysqlExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" - - // ChangeProxySQLExporterOKBodyProxysqlExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" - ChangeProxySQLExporterOKBodyProxysqlExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" - - // ChangeProxySQLExporterOKBodyProxysqlExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" - ChangeProxySQLExporterOKBodyProxysqlExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" -) - -// prop value enum -func (o *ChangeProxySQLExporterOKBodyProxysqlExporter) validateLogLevelEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeProxySqlExporterOkBodyProxysqlExporterTypeLogLevelPropEnum, true); err != nil { - return err - } - return nil -} - -func (o *ChangeProxySQLExporterOKBodyProxysqlExporter) validateLogLevel(formats strfmt.Registry) error { - if swag.IsZero(o.LogLevel) { // not required - return nil - } - - // value enum - if err := o.validateLogLevelEnum("changeProxySqlExporterOk"+"."+"proxysql_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { - return err - } - - return nil -} - -// ContextValidate validates this change proxy SQL exporter OK body proxysql exporter based on context it is used -func (o *ChangeProxySQLExporterOKBodyProxysqlExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeProxySQLExporterOKBodyProxysqlExporter) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeProxySQLExporterOKBodyProxysqlExporter) UnmarshalBinary(b []byte) error { - var res ChangeProxySQLExporterOKBodyProxysqlExporter - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeProxySQLExporterParamsBodyCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. -swagger:model ChangeProxySQLExporterParamsBodyCommon -*/ -type ChangeProxySQLExporterParamsBodyCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` - - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - // Can't be used with agent version lower then 2.12 and unsupported agents. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` -} - -// Validate validates this change proxy SQL exporter params body common -func (o *ChangeProxySQLExporterParamsBodyCommon) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change proxy SQL exporter params body common based on context it is used -func (o *ChangeProxySQLExporterParamsBodyCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeProxySQLExporterParamsBodyCommon) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeProxySQLExporterParamsBodyCommon) UnmarshalBinary(b []byte) error { - var res ChangeProxySQLExporterParamsBodyCommon - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} diff --git a/api/inventory/v1/json/client/agents_service/change_qan_mongo_db_profiler_agent_parameters.go b/api/inventory/v1/json/client/agents_service/change_qan_mongo_db_profiler_agent_parameters.go deleted file mode 100644 index 82133b8e07..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_qan_mongo_db_profiler_agent_parameters.go +++ /dev/null @@ -1,144 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "net/http" - "time" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - cr "github.com/go-openapi/runtime/client" - "github.com/go-openapi/strfmt" -) - -// NewChangeQANMongoDBProfilerAgentParams creates a new ChangeQANMongoDBProfilerAgentParams object, -// with the default timeout for this client. -// -// Default values are not hydrated, since defaults are normally applied by the API server side. -// -// To enforce default values in parameter, use SetDefaults or WithDefaults. -func NewChangeQANMongoDBProfilerAgentParams() *ChangeQANMongoDBProfilerAgentParams { - return &ChangeQANMongoDBProfilerAgentParams{ - timeout: cr.DefaultTimeout, - } -} - -// NewChangeQANMongoDBProfilerAgentParamsWithTimeout creates a new ChangeQANMongoDBProfilerAgentParams object -// with the ability to set a timeout on a request. -func NewChangeQANMongoDBProfilerAgentParamsWithTimeout(timeout time.Duration) *ChangeQANMongoDBProfilerAgentParams { - return &ChangeQANMongoDBProfilerAgentParams{ - timeout: timeout, - } -} - -// NewChangeQANMongoDBProfilerAgentParamsWithContext creates a new ChangeQANMongoDBProfilerAgentParams object -// with the ability to set a context for a request. -func NewChangeQANMongoDBProfilerAgentParamsWithContext(ctx context.Context) *ChangeQANMongoDBProfilerAgentParams { - return &ChangeQANMongoDBProfilerAgentParams{ - Context: ctx, - } -} - -// NewChangeQANMongoDBProfilerAgentParamsWithHTTPClient creates a new ChangeQANMongoDBProfilerAgentParams object -// with the ability to set a custom HTTPClient for a request. -func NewChangeQANMongoDBProfilerAgentParamsWithHTTPClient(client *http.Client) *ChangeQANMongoDBProfilerAgentParams { - return &ChangeQANMongoDBProfilerAgentParams{ - HTTPClient: client, - } -} - -/* -ChangeQANMongoDBProfilerAgentParams contains all the parameters to send to the API endpoint - - for the change QAN mongo DB profiler agent operation. - - Typically these are written to a http.Request. -*/ -type ChangeQANMongoDBProfilerAgentParams struct { - // Body. - Body ChangeQANMongoDBProfilerAgentBody - - timeout time.Duration - Context context.Context - HTTPClient *http.Client -} - -// WithDefaults hydrates default values in the change QAN mongo DB profiler agent params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangeQANMongoDBProfilerAgentParams) WithDefaults() *ChangeQANMongoDBProfilerAgentParams { - o.SetDefaults() - return o -} - -// SetDefaults hydrates default values in the change QAN mongo DB profiler agent params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangeQANMongoDBProfilerAgentParams) SetDefaults() { - // no default values defined for this parameter -} - -// WithTimeout adds the timeout to the change QAN mongo DB profiler agent params -func (o *ChangeQANMongoDBProfilerAgentParams) WithTimeout(timeout time.Duration) *ChangeQANMongoDBProfilerAgentParams { - o.SetTimeout(timeout) - return o -} - -// SetTimeout adds the timeout to the change QAN mongo DB profiler agent params -func (o *ChangeQANMongoDBProfilerAgentParams) SetTimeout(timeout time.Duration) { - o.timeout = timeout -} - -// WithContext adds the context to the change QAN mongo DB profiler agent params -func (o *ChangeQANMongoDBProfilerAgentParams) WithContext(ctx context.Context) *ChangeQANMongoDBProfilerAgentParams { - o.SetContext(ctx) - return o -} - -// SetContext adds the context to the change QAN mongo DB profiler agent params -func (o *ChangeQANMongoDBProfilerAgentParams) SetContext(ctx context.Context) { - o.Context = ctx -} - -// WithHTTPClient adds the HTTPClient to the change QAN mongo DB profiler agent params -func (o *ChangeQANMongoDBProfilerAgentParams) WithHTTPClient(client *http.Client) *ChangeQANMongoDBProfilerAgentParams { - o.SetHTTPClient(client) - return o -} - -// SetHTTPClient adds the HTTPClient to the change QAN mongo DB profiler agent params -func (o *ChangeQANMongoDBProfilerAgentParams) SetHTTPClient(client *http.Client) { - o.HTTPClient = client -} - -// WithBody adds the body to the change QAN mongo DB profiler agent params -func (o *ChangeQANMongoDBProfilerAgentParams) WithBody(body ChangeQANMongoDBProfilerAgentBody) *ChangeQANMongoDBProfilerAgentParams { - o.SetBody(body) - return o -} - -// SetBody adds the body to the change QAN mongo DB profiler agent params -func (o *ChangeQANMongoDBProfilerAgentParams) SetBody(body ChangeQANMongoDBProfilerAgentBody) { - o.Body = body -} - -// WriteToRequest writes these params to a swagger request -func (o *ChangeQANMongoDBProfilerAgentParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { - if err := r.SetTimeout(o.timeout); err != nil { - return err - } - var res []error - if err := r.SetBodyParam(o.Body); err != nil { - return err - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} diff --git a/api/inventory/v1/json/client/agents_service/change_qan_mongo_db_profiler_agent_responses.go b/api/inventory/v1/json/client/agents_service/change_qan_mongo_db_profiler_agent_responses.go deleted file mode 100644 index cb47482918..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_qan_mongo_db_profiler_agent_responses.go +++ /dev/null @@ -1,701 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "encoding/json" - "fmt" - "io" - "strconv" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - "github.com/go-openapi/strfmt" - "github.com/go-openapi/swag" - "github.com/go-openapi/validate" -) - -// ChangeQANMongoDBProfilerAgentReader is a Reader for the ChangeQANMongoDBProfilerAgent structure. -type ChangeQANMongoDBProfilerAgentReader struct { - formats strfmt.Registry -} - -// ReadResponse reads a server response into the received o. -func (o *ChangeQANMongoDBProfilerAgentReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) { - switch response.Code() { - case 200: - result := NewChangeQANMongoDBProfilerAgentOK() - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - return result, nil - default: - result := NewChangeQANMongoDBProfilerAgentDefault(response.Code()) - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - if response.Code()/100 == 2 { - return result, nil - } - return nil, result - } -} - -// NewChangeQANMongoDBProfilerAgentOK creates a ChangeQANMongoDBProfilerAgentOK with default headers values -func NewChangeQANMongoDBProfilerAgentOK() *ChangeQANMongoDBProfilerAgentOK { - return &ChangeQANMongoDBProfilerAgentOK{} -} - -/* -ChangeQANMongoDBProfilerAgentOK describes a response with status code 200, with default header values. - -A successful response. -*/ -type ChangeQANMongoDBProfilerAgentOK struct { - Payload *ChangeQANMongoDBProfilerAgentOKBody -} - -func (o *ChangeQANMongoDBProfilerAgentOK) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangeQANMongoDBProfilerAgent][%d] changeQanMongoDbProfilerAgentOk %+v", 200, o.Payload) -} - -func (o *ChangeQANMongoDBProfilerAgentOK) GetPayload() *ChangeQANMongoDBProfilerAgentOKBody { - return o.Payload -} - -func (o *ChangeQANMongoDBProfilerAgentOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangeQANMongoDBProfilerAgentOKBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -// NewChangeQANMongoDBProfilerAgentDefault creates a ChangeQANMongoDBProfilerAgentDefault with default headers values -func NewChangeQANMongoDBProfilerAgentDefault(code int) *ChangeQANMongoDBProfilerAgentDefault { - return &ChangeQANMongoDBProfilerAgentDefault{ - _statusCode: code, - } -} - -/* -ChangeQANMongoDBProfilerAgentDefault describes a response with status code -1, with default header values. - -An unexpected error response. -*/ -type ChangeQANMongoDBProfilerAgentDefault struct { - _statusCode int - - Payload *ChangeQANMongoDBProfilerAgentDefaultBody -} - -// Code gets the status code for the change QAN mongo DB profiler agent default response -func (o *ChangeQANMongoDBProfilerAgentDefault) Code() int { - return o._statusCode -} - -func (o *ChangeQANMongoDBProfilerAgentDefault) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangeQANMongoDBProfilerAgent][%d] ChangeQANMongoDBProfilerAgent default %+v", o._statusCode, o.Payload) -} - -func (o *ChangeQANMongoDBProfilerAgentDefault) GetPayload() *ChangeQANMongoDBProfilerAgentDefaultBody { - return o.Payload -} - -func (o *ChangeQANMongoDBProfilerAgentDefault) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangeQANMongoDBProfilerAgentDefaultBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -/* -ChangeQANMongoDBProfilerAgentBody change QAN mongo DB profiler agent body -swagger:model ChangeQANMongoDBProfilerAgentBody -*/ -type ChangeQANMongoDBProfilerAgentBody struct { - // agent id - AgentID string `json:"agent_id,omitempty"` - - // common - Common *ChangeQANMongoDBProfilerAgentParamsBodyCommon `json:"common,omitempty"` -} - -// Validate validates this change QAN mongo DB profiler agent body -func (o *ChangeQANMongoDBProfilerAgentBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateCommon(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANMongoDBProfilerAgentBody) validateCommon(formats strfmt.Registry) error { - if swag.IsZero(o.Common) { // not required - return nil - } - - if o.Common != nil { - if err := o.Common.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change QAN mongo DB profiler agent body based on the context it is used -func (o *ChangeQANMongoDBProfilerAgentBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateCommon(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANMongoDBProfilerAgentBody) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { - if o.Common != nil { - if err := o.Common.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANMongoDBProfilerAgentBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANMongoDBProfilerAgentBody) UnmarshalBinary(b []byte) error { - var res ChangeQANMongoDBProfilerAgentBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeQANMongoDBProfilerAgentDefaultBody change QAN mongo DB profiler agent default body -swagger:model ChangeQANMongoDBProfilerAgentDefaultBody -*/ -type ChangeQANMongoDBProfilerAgentDefaultBody struct { - // code - Code int32 `json:"code,omitempty"` - - // message - Message string `json:"message,omitempty"` - - // details - Details []*ChangeQANMongoDBProfilerAgentDefaultBodyDetailsItems0 `json:"details"` -} - -// Validate validates this change QAN mongo DB profiler agent default body -func (o *ChangeQANMongoDBProfilerAgentDefaultBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateDetails(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANMongoDBProfilerAgentDefaultBody) validateDetails(formats strfmt.Registry) error { - if swag.IsZero(o.Details) { // not required - return nil - } - - for i := 0; i < len(o.Details); i++ { - if swag.IsZero(o.Details[i]) { // not required - continue - } - - if o.Details[i] != nil { - if err := o.Details[i].Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangeQANMongoDBProfilerAgent default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangeQANMongoDBProfilerAgent default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - - } - - return nil -} - -// ContextValidate validate this change QAN mongo DB profiler agent default body based on the context it is used -func (o *ChangeQANMongoDBProfilerAgentDefaultBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateDetails(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANMongoDBProfilerAgentDefaultBody) contextValidateDetails(ctx context.Context, formats strfmt.Registry) error { - for i := 0; i < len(o.Details); i++ { - if o.Details[i] != nil { - if err := o.Details[i].ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangeQANMongoDBProfilerAgent default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangeQANMongoDBProfilerAgent default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANMongoDBProfilerAgentDefaultBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANMongoDBProfilerAgentDefaultBody) UnmarshalBinary(b []byte) error { - var res ChangeQANMongoDBProfilerAgentDefaultBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeQANMongoDBProfilerAgentDefaultBodyDetailsItems0 change QAN mongo DB profiler agent default body details items0 -swagger:model ChangeQANMongoDBProfilerAgentDefaultBodyDetailsItems0 -*/ -type ChangeQANMongoDBProfilerAgentDefaultBodyDetailsItems0 struct { - // at type - AtType string `json:"@type,omitempty"` -} - -// Validate validates this change QAN mongo DB profiler agent default body details items0 -func (o *ChangeQANMongoDBProfilerAgentDefaultBodyDetailsItems0) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change QAN mongo DB profiler agent default body details items0 based on context it is used -func (o *ChangeQANMongoDBProfilerAgentDefaultBodyDetailsItems0) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANMongoDBProfilerAgentDefaultBodyDetailsItems0) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANMongoDBProfilerAgentDefaultBodyDetailsItems0) UnmarshalBinary(b []byte) error { - var res ChangeQANMongoDBProfilerAgentDefaultBodyDetailsItems0 - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeQANMongoDBProfilerAgentOKBody change QAN mongo DB profiler agent OK body -swagger:model ChangeQANMongoDBProfilerAgentOKBody -*/ -type ChangeQANMongoDBProfilerAgentOKBody struct { - // qan mongodb profiler agent - QANMongodbProfilerAgent *ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgent `json:"qan_mongodb_profiler_agent,omitempty"` -} - -// Validate validates this change QAN mongo DB profiler agent OK body -func (o *ChangeQANMongoDBProfilerAgentOKBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateQANMongodbProfilerAgent(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANMongoDBProfilerAgentOKBody) validateQANMongodbProfilerAgent(formats strfmt.Registry) error { - if swag.IsZero(o.QANMongodbProfilerAgent) { // not required - return nil - } - - if o.QANMongodbProfilerAgent != nil { - if err := o.QANMongodbProfilerAgent.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changeQanMongoDbProfilerAgentOk" + "." + "qan_mongodb_profiler_agent") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changeQanMongoDbProfilerAgentOk" + "." + "qan_mongodb_profiler_agent") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change QAN mongo DB profiler agent OK body based on the context it is used -func (o *ChangeQANMongoDBProfilerAgentOKBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateQANMongodbProfilerAgent(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANMongoDBProfilerAgentOKBody) contextValidateQANMongodbProfilerAgent(ctx context.Context, formats strfmt.Registry) error { - if o.QANMongodbProfilerAgent != nil { - if err := o.QANMongodbProfilerAgent.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changeQanMongoDbProfilerAgentOk" + "." + "qan_mongodb_profiler_agent") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changeQanMongoDbProfilerAgentOk" + "." + "qan_mongodb_profiler_agent") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANMongoDBProfilerAgentOKBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANMongoDBProfilerAgentOKBody) UnmarshalBinary(b []byte) error { - var res ChangeQANMongoDBProfilerAgentOKBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgent QANMongoDBProfilerAgent runs within pmm-agent and sends MongoDB Query Analytics data to the PMM Server. -swagger:model ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgent -*/ -type ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgent struct { - // Unique randomly generated instance identifier. - AgentID string `json:"agent_id,omitempty"` - - // The pmm-agent identifier which runs this instance. - PMMAgentID string `json:"pmm_agent_id,omitempty"` - - // Desired Agent status: enabled (false) or disabled (true). - Disabled bool `json:"disabled,omitempty"` - - // Service identifier. - ServiceID string `json:"service_id,omitempty"` - - // MongoDB username for getting profiler data. - Username string `json:"username,omitempty"` - - // Use TLS for database connections. - TLS bool `json:"tls,omitempty"` - - // Skip TLS certificate and hostname validation. - TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` - - // Limit query length in QAN (default: server-defined; -1: no limit). - MaxQueryLength int32 `json:"max_query_length,omitempty"` - - // Custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // AgentStatus represents actual Agent status. - // - // - AGENT_STATUS_STARTING: Agent is starting. - // - AGENT_STATUS_RUNNING: Agent is running. - // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. - // - AGENT_STATUS_STOPPING: Agent is stopping. - // - AGENT_STATUS_DONE: Agent finished. - // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. - // Enum: [AGENT_STATUS_UNSPECIFIED AGENT_STATUS_STARTING AGENT_STATUS_RUNNING AGENT_STATUS_WAITING AGENT_STATUS_STOPPING AGENT_STATUS_DONE AGENT_STATUS_UNKNOWN] - Status *string `json:"status,omitempty"` - - // Path to exec process. - ProcessExecPath string `json:"process_exec_path,omitempty"` - - // Log level for exporters - // - // - LOG_LEVEL_UNSPECIFIED: Auto - // Enum: [LOG_LEVEL_UNSPECIFIED LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARN LOG_LEVEL_INFO LOG_LEVEL_DEBUG] - LogLevel *string `json:"log_level,omitempty"` -} - -// Validate validates this change QAN mongo DB profiler agent OK body QAN mongodb profiler agent -func (o *ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgent) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateStatus(formats); err != nil { - res = append(res, err) - } - - if err := o.validateLogLevel(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -var changeQanMongoDbProfilerAgentOkBodyQanMongodbProfilerAgentTypeStatusPropEnum []interface{} - -func init() { - var res []string - if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { - panic(err) - } - for _, v := range res { - changeQanMongoDbProfilerAgentOkBodyQanMongodbProfilerAgentTypeStatusPropEnum = append(changeQanMongoDbProfilerAgentOkBodyQanMongodbProfilerAgentTypeStatusPropEnum, v) - } -} - -const ( - - // ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" - ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" - - // ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" - ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" - - // ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" - ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" - - // ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" - ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" - - // ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" - ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" - - // ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" - ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" - - // ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" - ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" -) - -// prop value enum -func (o *ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgent) validateStatusEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeQanMongoDbProfilerAgentOkBodyQanMongodbProfilerAgentTypeStatusPropEnum, true); err != nil { - return err - } - return nil -} - -func (o *ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgent) validateStatus(formats strfmt.Registry) error { - if swag.IsZero(o.Status) { // not required - return nil - } - - // value enum - if err := o.validateStatusEnum("changeQanMongoDbProfilerAgentOk"+"."+"qan_mongodb_profiler_agent"+"."+"status", "body", *o.Status); err != nil { - return err - } - - return nil -} - -var changeQanMongoDbProfilerAgentOkBodyQanMongodbProfilerAgentTypeLogLevelPropEnum []interface{} - -func init() { - var res []string - if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { - panic(err) - } - for _, v := range res { - changeQanMongoDbProfilerAgentOkBodyQanMongodbProfilerAgentTypeLogLevelPropEnum = append(changeQanMongoDbProfilerAgentOkBodyQanMongodbProfilerAgentTypeLogLevelPropEnum, v) - } -} - -const ( - - // ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" - ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" - - // ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" - ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" - - // ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" - ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" - - // ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" - ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" - - // ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" - ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" - - // ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" - ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" -) - -// prop value enum -func (o *ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgent) validateLogLevelEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeQanMongoDbProfilerAgentOkBodyQanMongodbProfilerAgentTypeLogLevelPropEnum, true); err != nil { - return err - } - return nil -} - -func (o *ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgent) validateLogLevel(formats strfmt.Registry) error { - if swag.IsZero(o.LogLevel) { // not required - return nil - } - - // value enum - if err := o.validateLogLevelEnum("changeQanMongoDbProfilerAgentOk"+"."+"qan_mongodb_profiler_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { - return err - } - - return nil -} - -// ContextValidate validates this change QAN mongo DB profiler agent OK body QAN mongodb profiler agent based on context it is used -func (o *ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgent) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgent) UnmarshalBinary(b []byte) error { - var res ChangeQANMongoDBProfilerAgentOKBodyQANMongodbProfilerAgent - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeQANMongoDBProfilerAgentParamsBodyCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. -swagger:model ChangeQANMongoDBProfilerAgentParamsBodyCommon -*/ -type ChangeQANMongoDBProfilerAgentParamsBodyCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` - - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - // Can't be used with agent version lower then 2.12 and unsupported agents. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` -} - -// Validate validates this change QAN mongo DB profiler agent params body common -func (o *ChangeQANMongoDBProfilerAgentParamsBodyCommon) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change QAN mongo DB profiler agent params body common based on context it is used -func (o *ChangeQANMongoDBProfilerAgentParamsBodyCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANMongoDBProfilerAgentParamsBodyCommon) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANMongoDBProfilerAgentParamsBodyCommon) UnmarshalBinary(b []byte) error { - var res ChangeQANMongoDBProfilerAgentParamsBodyCommon - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} diff --git a/api/inventory/v1/json/client/agents_service/change_qan_my_sql_perf_schema_agent_parameters.go b/api/inventory/v1/json/client/agents_service/change_qan_my_sql_perf_schema_agent_parameters.go deleted file mode 100644 index 292aba9756..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_qan_my_sql_perf_schema_agent_parameters.go +++ /dev/null @@ -1,144 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "net/http" - "time" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - cr "github.com/go-openapi/runtime/client" - "github.com/go-openapi/strfmt" -) - -// NewChangeQANMySQLPerfSchemaAgentParams creates a new ChangeQANMySQLPerfSchemaAgentParams object, -// with the default timeout for this client. -// -// Default values are not hydrated, since defaults are normally applied by the API server side. -// -// To enforce default values in parameter, use SetDefaults or WithDefaults. -func NewChangeQANMySQLPerfSchemaAgentParams() *ChangeQANMySQLPerfSchemaAgentParams { - return &ChangeQANMySQLPerfSchemaAgentParams{ - timeout: cr.DefaultTimeout, - } -} - -// NewChangeQANMySQLPerfSchemaAgentParamsWithTimeout creates a new ChangeQANMySQLPerfSchemaAgentParams object -// with the ability to set a timeout on a request. -func NewChangeQANMySQLPerfSchemaAgentParamsWithTimeout(timeout time.Duration) *ChangeQANMySQLPerfSchemaAgentParams { - return &ChangeQANMySQLPerfSchemaAgentParams{ - timeout: timeout, - } -} - -// NewChangeQANMySQLPerfSchemaAgentParamsWithContext creates a new ChangeQANMySQLPerfSchemaAgentParams object -// with the ability to set a context for a request. -func NewChangeQANMySQLPerfSchemaAgentParamsWithContext(ctx context.Context) *ChangeQANMySQLPerfSchemaAgentParams { - return &ChangeQANMySQLPerfSchemaAgentParams{ - Context: ctx, - } -} - -// NewChangeQANMySQLPerfSchemaAgentParamsWithHTTPClient creates a new ChangeQANMySQLPerfSchemaAgentParams object -// with the ability to set a custom HTTPClient for a request. -func NewChangeQANMySQLPerfSchemaAgentParamsWithHTTPClient(client *http.Client) *ChangeQANMySQLPerfSchemaAgentParams { - return &ChangeQANMySQLPerfSchemaAgentParams{ - HTTPClient: client, - } -} - -/* -ChangeQANMySQLPerfSchemaAgentParams contains all the parameters to send to the API endpoint - - for the change QAN my SQL perf schema agent operation. - - Typically these are written to a http.Request. -*/ -type ChangeQANMySQLPerfSchemaAgentParams struct { - // Body. - Body ChangeQANMySQLPerfSchemaAgentBody - - timeout time.Duration - Context context.Context - HTTPClient *http.Client -} - -// WithDefaults hydrates default values in the change QAN my SQL perf schema agent params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangeQANMySQLPerfSchemaAgentParams) WithDefaults() *ChangeQANMySQLPerfSchemaAgentParams { - o.SetDefaults() - return o -} - -// SetDefaults hydrates default values in the change QAN my SQL perf schema agent params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangeQANMySQLPerfSchemaAgentParams) SetDefaults() { - // no default values defined for this parameter -} - -// WithTimeout adds the timeout to the change QAN my SQL perf schema agent params -func (o *ChangeQANMySQLPerfSchemaAgentParams) WithTimeout(timeout time.Duration) *ChangeQANMySQLPerfSchemaAgentParams { - o.SetTimeout(timeout) - return o -} - -// SetTimeout adds the timeout to the change QAN my SQL perf schema agent params -func (o *ChangeQANMySQLPerfSchemaAgentParams) SetTimeout(timeout time.Duration) { - o.timeout = timeout -} - -// WithContext adds the context to the change QAN my SQL perf schema agent params -func (o *ChangeQANMySQLPerfSchemaAgentParams) WithContext(ctx context.Context) *ChangeQANMySQLPerfSchemaAgentParams { - o.SetContext(ctx) - return o -} - -// SetContext adds the context to the change QAN my SQL perf schema agent params -func (o *ChangeQANMySQLPerfSchemaAgentParams) SetContext(ctx context.Context) { - o.Context = ctx -} - -// WithHTTPClient adds the HTTPClient to the change QAN my SQL perf schema agent params -func (o *ChangeQANMySQLPerfSchemaAgentParams) WithHTTPClient(client *http.Client) *ChangeQANMySQLPerfSchemaAgentParams { - o.SetHTTPClient(client) - return o -} - -// SetHTTPClient adds the HTTPClient to the change QAN my SQL perf schema agent params -func (o *ChangeQANMySQLPerfSchemaAgentParams) SetHTTPClient(client *http.Client) { - o.HTTPClient = client -} - -// WithBody adds the body to the change QAN my SQL perf schema agent params -func (o *ChangeQANMySQLPerfSchemaAgentParams) WithBody(body ChangeQANMySQLPerfSchemaAgentBody) *ChangeQANMySQLPerfSchemaAgentParams { - o.SetBody(body) - return o -} - -// SetBody adds the body to the change QAN my SQL perf schema agent params -func (o *ChangeQANMySQLPerfSchemaAgentParams) SetBody(body ChangeQANMySQLPerfSchemaAgentBody) { - o.Body = body -} - -// WriteToRequest writes these params to a swagger request -func (o *ChangeQANMySQLPerfSchemaAgentParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { - if err := r.SetTimeout(o.timeout); err != nil { - return err - } - var res []error - if err := r.SetBodyParam(o.Body); err != nil { - return err - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} diff --git a/api/inventory/v1/json/client/agents_service/change_qan_my_sql_perf_schema_agent_responses.go b/api/inventory/v1/json/client/agents_service/change_qan_my_sql_perf_schema_agent_responses.go deleted file mode 100644 index 177a6671d6..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_qan_my_sql_perf_schema_agent_responses.go +++ /dev/null @@ -1,716 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "encoding/json" - "fmt" - "io" - "strconv" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - "github.com/go-openapi/strfmt" - "github.com/go-openapi/swag" - "github.com/go-openapi/validate" -) - -// ChangeQANMySQLPerfSchemaAgentReader is a Reader for the ChangeQANMySQLPerfSchemaAgent structure. -type ChangeQANMySQLPerfSchemaAgentReader struct { - formats strfmt.Registry -} - -// ReadResponse reads a server response into the received o. -func (o *ChangeQANMySQLPerfSchemaAgentReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) { - switch response.Code() { - case 200: - result := NewChangeQANMySQLPerfSchemaAgentOK() - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - return result, nil - default: - result := NewChangeQANMySQLPerfSchemaAgentDefault(response.Code()) - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - if response.Code()/100 == 2 { - return result, nil - } - return nil, result - } -} - -// NewChangeQANMySQLPerfSchemaAgentOK creates a ChangeQANMySQLPerfSchemaAgentOK with default headers values -func NewChangeQANMySQLPerfSchemaAgentOK() *ChangeQANMySQLPerfSchemaAgentOK { - return &ChangeQANMySQLPerfSchemaAgentOK{} -} - -/* -ChangeQANMySQLPerfSchemaAgentOK describes a response with status code 200, with default header values. - -A successful response. -*/ -type ChangeQANMySQLPerfSchemaAgentOK struct { - Payload *ChangeQANMySQLPerfSchemaAgentOKBody -} - -func (o *ChangeQANMySQLPerfSchemaAgentOK) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangeQANMySQLPerfSchemaAgent][%d] changeQanMySqlPerfSchemaAgentOk %+v", 200, o.Payload) -} - -func (o *ChangeQANMySQLPerfSchemaAgentOK) GetPayload() *ChangeQANMySQLPerfSchemaAgentOKBody { - return o.Payload -} - -func (o *ChangeQANMySQLPerfSchemaAgentOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangeQANMySQLPerfSchemaAgentOKBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -// NewChangeQANMySQLPerfSchemaAgentDefault creates a ChangeQANMySQLPerfSchemaAgentDefault with default headers values -func NewChangeQANMySQLPerfSchemaAgentDefault(code int) *ChangeQANMySQLPerfSchemaAgentDefault { - return &ChangeQANMySQLPerfSchemaAgentDefault{ - _statusCode: code, - } -} - -/* -ChangeQANMySQLPerfSchemaAgentDefault describes a response with status code -1, with default header values. - -An unexpected error response. -*/ -type ChangeQANMySQLPerfSchemaAgentDefault struct { - _statusCode int - - Payload *ChangeQANMySQLPerfSchemaAgentDefaultBody -} - -// Code gets the status code for the change QAN my SQL perf schema agent default response -func (o *ChangeQANMySQLPerfSchemaAgentDefault) Code() int { - return o._statusCode -} - -func (o *ChangeQANMySQLPerfSchemaAgentDefault) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangeQANMySQLPerfSchemaAgent][%d] ChangeQANMySQLPerfSchemaAgent default %+v", o._statusCode, o.Payload) -} - -func (o *ChangeQANMySQLPerfSchemaAgentDefault) GetPayload() *ChangeQANMySQLPerfSchemaAgentDefaultBody { - return o.Payload -} - -func (o *ChangeQANMySQLPerfSchemaAgentDefault) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangeQANMySQLPerfSchemaAgentDefaultBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -/* -ChangeQANMySQLPerfSchemaAgentBody change QAN my SQL perf schema agent body -swagger:model ChangeQANMySQLPerfSchemaAgentBody -*/ -type ChangeQANMySQLPerfSchemaAgentBody struct { - // agent id - AgentID string `json:"agent_id,omitempty"` - - // common - Common *ChangeQANMySQLPerfSchemaAgentParamsBodyCommon `json:"common,omitempty"` -} - -// Validate validates this change QAN my SQL perf schema agent body -func (o *ChangeQANMySQLPerfSchemaAgentBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateCommon(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANMySQLPerfSchemaAgentBody) validateCommon(formats strfmt.Registry) error { - if swag.IsZero(o.Common) { // not required - return nil - } - - if o.Common != nil { - if err := o.Common.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change QAN my SQL perf schema agent body based on the context it is used -func (o *ChangeQANMySQLPerfSchemaAgentBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateCommon(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANMySQLPerfSchemaAgentBody) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { - if o.Common != nil { - if err := o.Common.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANMySQLPerfSchemaAgentBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANMySQLPerfSchemaAgentBody) UnmarshalBinary(b []byte) error { - var res ChangeQANMySQLPerfSchemaAgentBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeQANMySQLPerfSchemaAgentDefaultBody change QAN my SQL perf schema agent default body -swagger:model ChangeQANMySQLPerfSchemaAgentDefaultBody -*/ -type ChangeQANMySQLPerfSchemaAgentDefaultBody struct { - // code - Code int32 `json:"code,omitempty"` - - // message - Message string `json:"message,omitempty"` - - // details - Details []*ChangeQANMySQLPerfSchemaAgentDefaultBodyDetailsItems0 `json:"details"` -} - -// Validate validates this change QAN my SQL perf schema agent default body -func (o *ChangeQANMySQLPerfSchemaAgentDefaultBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateDetails(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANMySQLPerfSchemaAgentDefaultBody) validateDetails(formats strfmt.Registry) error { - if swag.IsZero(o.Details) { // not required - return nil - } - - for i := 0; i < len(o.Details); i++ { - if swag.IsZero(o.Details[i]) { // not required - continue - } - - if o.Details[i] != nil { - if err := o.Details[i].Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangeQANMySQLPerfSchemaAgent default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangeQANMySQLPerfSchemaAgent default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - - } - - return nil -} - -// ContextValidate validate this change QAN my SQL perf schema agent default body based on the context it is used -func (o *ChangeQANMySQLPerfSchemaAgentDefaultBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateDetails(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANMySQLPerfSchemaAgentDefaultBody) contextValidateDetails(ctx context.Context, formats strfmt.Registry) error { - for i := 0; i < len(o.Details); i++ { - if o.Details[i] != nil { - if err := o.Details[i].ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangeQANMySQLPerfSchemaAgent default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangeQANMySQLPerfSchemaAgent default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANMySQLPerfSchemaAgentDefaultBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANMySQLPerfSchemaAgentDefaultBody) UnmarshalBinary(b []byte) error { - var res ChangeQANMySQLPerfSchemaAgentDefaultBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeQANMySQLPerfSchemaAgentDefaultBodyDetailsItems0 change QAN my SQL perf schema agent default body details items0 -swagger:model ChangeQANMySQLPerfSchemaAgentDefaultBodyDetailsItems0 -*/ -type ChangeQANMySQLPerfSchemaAgentDefaultBodyDetailsItems0 struct { - // at type - AtType string `json:"@type,omitempty"` -} - -// Validate validates this change QAN my SQL perf schema agent default body details items0 -func (o *ChangeQANMySQLPerfSchemaAgentDefaultBodyDetailsItems0) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change QAN my SQL perf schema agent default body details items0 based on context it is used -func (o *ChangeQANMySQLPerfSchemaAgentDefaultBodyDetailsItems0) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANMySQLPerfSchemaAgentDefaultBodyDetailsItems0) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANMySQLPerfSchemaAgentDefaultBodyDetailsItems0) UnmarshalBinary(b []byte) error { - var res ChangeQANMySQLPerfSchemaAgentDefaultBodyDetailsItems0 - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeQANMySQLPerfSchemaAgentOKBody change QAN my SQL perf schema agent OK body -swagger:model ChangeQANMySQLPerfSchemaAgentOKBody -*/ -type ChangeQANMySQLPerfSchemaAgentOKBody struct { - // qan mysql perfschema agent - QANMysqlPerfschemaAgent *ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgent `json:"qan_mysql_perfschema_agent,omitempty"` -} - -// Validate validates this change QAN my SQL perf schema agent OK body -func (o *ChangeQANMySQLPerfSchemaAgentOKBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateQANMysqlPerfschemaAgent(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANMySQLPerfSchemaAgentOKBody) validateQANMysqlPerfschemaAgent(formats strfmt.Registry) error { - if swag.IsZero(o.QANMysqlPerfschemaAgent) { // not required - return nil - } - - if o.QANMysqlPerfschemaAgent != nil { - if err := o.QANMysqlPerfschemaAgent.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changeQanMySqlPerfSchemaAgentOk" + "." + "qan_mysql_perfschema_agent") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changeQanMySqlPerfSchemaAgentOk" + "." + "qan_mysql_perfschema_agent") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change QAN my SQL perf schema agent OK body based on the context it is used -func (o *ChangeQANMySQLPerfSchemaAgentOKBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateQANMysqlPerfschemaAgent(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANMySQLPerfSchemaAgentOKBody) contextValidateQANMysqlPerfschemaAgent(ctx context.Context, formats strfmt.Registry) error { - if o.QANMysqlPerfschemaAgent != nil { - if err := o.QANMysqlPerfschemaAgent.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changeQanMySqlPerfSchemaAgentOk" + "." + "qan_mysql_perfschema_agent") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changeQanMySqlPerfSchemaAgentOk" + "." + "qan_mysql_perfschema_agent") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANMySQLPerfSchemaAgentOKBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANMySQLPerfSchemaAgentOKBody) UnmarshalBinary(b []byte) error { - var res ChangeQANMySQLPerfSchemaAgentOKBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgent QANMySQLPerfSchemaAgent runs within pmm-agent and sends MySQL Query Analytics data to the PMM Server. -swagger:model ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgent -*/ -type ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgent struct { - // Unique randomly generated instance identifier. - AgentID string `json:"agent_id,omitempty"` - - // The pmm-agent identifier which runs this instance. - PMMAgentID string `json:"pmm_agent_id,omitempty"` - - // Desired Agent status: enabled (false) or disabled (true). - Disabled bool `json:"disabled,omitempty"` - - // Service identifier. - ServiceID string `json:"service_id,omitempty"` - - // MySQL username for getting performance data. - Username string `json:"username,omitempty"` - - // Use TLS for database connections. - TLS bool `json:"tls,omitempty"` - - // Skip TLS certificate and hostname validation. - TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` - - // Certificate Authority certificate chain. - TLSCa string `json:"tls_ca,omitempty"` - - // Client certificate. - TLSCert string `json:"tls_cert,omitempty"` - - // Password for decrypting tls_cert. - TLSKey string `json:"tls_key,omitempty"` - - // Disable parsing comments from queries and showing them in QAN. - DisableCommentsParsing bool `json:"disable_comments_parsing,omitempty"` - - // Limit query length in QAN (default: server-defined; -1: no limit). - MaxQueryLength int32 `json:"max_query_length,omitempty"` - - // True if query examples are disabled. - QueryExamplesDisabled bool `json:"query_examples_disabled,omitempty"` - - // Custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // AgentStatus represents actual Agent status. - // - // - AGENT_STATUS_STARTING: Agent is starting. - // - AGENT_STATUS_RUNNING: Agent is running. - // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. - // - AGENT_STATUS_STOPPING: Agent is stopping. - // - AGENT_STATUS_DONE: Agent finished. - // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. - // Enum: [AGENT_STATUS_UNSPECIFIED AGENT_STATUS_STARTING AGENT_STATUS_RUNNING AGENT_STATUS_WAITING AGENT_STATUS_STOPPING AGENT_STATUS_DONE AGENT_STATUS_UNKNOWN] - Status *string `json:"status,omitempty"` - - // Path to exec process. - ProcessExecPath string `json:"process_exec_path,omitempty"` - - // Log level for exporters - // - // - LOG_LEVEL_UNSPECIFIED: Auto - // Enum: [LOG_LEVEL_UNSPECIFIED LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARN LOG_LEVEL_INFO LOG_LEVEL_DEBUG] - LogLevel *string `json:"log_level,omitempty"` -} - -// Validate validates this change QAN my SQL perf schema agent OK body QAN mysql perfschema agent -func (o *ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgent) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateStatus(formats); err != nil { - res = append(res, err) - } - - if err := o.validateLogLevel(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -var changeQanMySqlPerfSchemaAgentOkBodyQanMysqlPerfschemaAgentTypeStatusPropEnum []interface{} - -func init() { - var res []string - if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { - panic(err) - } - for _, v := range res { - changeQanMySqlPerfSchemaAgentOkBodyQanMysqlPerfschemaAgentTypeStatusPropEnum = append(changeQanMySqlPerfSchemaAgentOkBodyQanMysqlPerfschemaAgentTypeStatusPropEnum, v) - } -} - -const ( - - // ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" - ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" - - // ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" - ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" - - // ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" - ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" - - // ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" - ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" - - // ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" - ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" - - // ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" - ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" - - // ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" - ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" -) - -// prop value enum -func (o *ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgent) validateStatusEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeQanMySqlPerfSchemaAgentOkBodyQanMysqlPerfschemaAgentTypeStatusPropEnum, true); err != nil { - return err - } - return nil -} - -func (o *ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgent) validateStatus(formats strfmt.Registry) error { - if swag.IsZero(o.Status) { // not required - return nil - } - - // value enum - if err := o.validateStatusEnum("changeQanMySqlPerfSchemaAgentOk"+"."+"qan_mysql_perfschema_agent"+"."+"status", "body", *o.Status); err != nil { - return err - } - - return nil -} - -var changeQanMySqlPerfSchemaAgentOkBodyQanMysqlPerfschemaAgentTypeLogLevelPropEnum []interface{} - -func init() { - var res []string - if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { - panic(err) - } - for _, v := range res { - changeQanMySqlPerfSchemaAgentOkBodyQanMysqlPerfschemaAgentTypeLogLevelPropEnum = append(changeQanMySqlPerfSchemaAgentOkBodyQanMysqlPerfschemaAgentTypeLogLevelPropEnum, v) - } -} - -const ( - - // ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" - ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" - - // ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" - ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" - - // ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" - ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" - - // ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" - ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" - - // ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" - ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" - - // ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" - ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" -) - -// prop value enum -func (o *ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgent) validateLogLevelEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeQanMySqlPerfSchemaAgentOkBodyQanMysqlPerfschemaAgentTypeLogLevelPropEnum, true); err != nil { - return err - } - return nil -} - -func (o *ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgent) validateLogLevel(formats strfmt.Registry) error { - if swag.IsZero(o.LogLevel) { // not required - return nil - } - - // value enum - if err := o.validateLogLevelEnum("changeQanMySqlPerfSchemaAgentOk"+"."+"qan_mysql_perfschema_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { - return err - } - - return nil -} - -// ContextValidate validates this change QAN my SQL perf schema agent OK body QAN mysql perfschema agent based on context it is used -func (o *ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgent) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgent) UnmarshalBinary(b []byte) error { - var res ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgent - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeQANMySQLPerfSchemaAgentParamsBodyCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. -swagger:model ChangeQANMySQLPerfSchemaAgentParamsBodyCommon -*/ -type ChangeQANMySQLPerfSchemaAgentParamsBodyCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` - - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - // Can't be used with agent version lower then 2.12 and unsupported agents. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` -} - -// Validate validates this change QAN my SQL perf schema agent params body common -func (o *ChangeQANMySQLPerfSchemaAgentParamsBodyCommon) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change QAN my SQL perf schema agent params body common based on context it is used -func (o *ChangeQANMySQLPerfSchemaAgentParamsBodyCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANMySQLPerfSchemaAgentParamsBodyCommon) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANMySQLPerfSchemaAgentParamsBodyCommon) UnmarshalBinary(b []byte) error { - var res ChangeQANMySQLPerfSchemaAgentParamsBodyCommon - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} diff --git a/api/inventory/v1/json/client/agents_service/change_qan_my_sql_slowlog_agent_parameters.go b/api/inventory/v1/json/client/agents_service/change_qan_my_sql_slowlog_agent_parameters.go deleted file mode 100644 index 9c02dbb8bf..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_qan_my_sql_slowlog_agent_parameters.go +++ /dev/null @@ -1,144 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "net/http" - "time" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - cr "github.com/go-openapi/runtime/client" - "github.com/go-openapi/strfmt" -) - -// NewChangeQANMySQLSlowlogAgentParams creates a new ChangeQANMySQLSlowlogAgentParams object, -// with the default timeout for this client. -// -// Default values are not hydrated, since defaults are normally applied by the API server side. -// -// To enforce default values in parameter, use SetDefaults or WithDefaults. -func NewChangeQANMySQLSlowlogAgentParams() *ChangeQANMySQLSlowlogAgentParams { - return &ChangeQANMySQLSlowlogAgentParams{ - timeout: cr.DefaultTimeout, - } -} - -// NewChangeQANMySQLSlowlogAgentParamsWithTimeout creates a new ChangeQANMySQLSlowlogAgentParams object -// with the ability to set a timeout on a request. -func NewChangeQANMySQLSlowlogAgentParamsWithTimeout(timeout time.Duration) *ChangeQANMySQLSlowlogAgentParams { - return &ChangeQANMySQLSlowlogAgentParams{ - timeout: timeout, - } -} - -// NewChangeQANMySQLSlowlogAgentParamsWithContext creates a new ChangeQANMySQLSlowlogAgentParams object -// with the ability to set a context for a request. -func NewChangeQANMySQLSlowlogAgentParamsWithContext(ctx context.Context) *ChangeQANMySQLSlowlogAgentParams { - return &ChangeQANMySQLSlowlogAgentParams{ - Context: ctx, - } -} - -// NewChangeQANMySQLSlowlogAgentParamsWithHTTPClient creates a new ChangeQANMySQLSlowlogAgentParams object -// with the ability to set a custom HTTPClient for a request. -func NewChangeQANMySQLSlowlogAgentParamsWithHTTPClient(client *http.Client) *ChangeQANMySQLSlowlogAgentParams { - return &ChangeQANMySQLSlowlogAgentParams{ - HTTPClient: client, - } -} - -/* -ChangeQANMySQLSlowlogAgentParams contains all the parameters to send to the API endpoint - - for the change QAN my SQL slowlog agent operation. - - Typically these are written to a http.Request. -*/ -type ChangeQANMySQLSlowlogAgentParams struct { - // Body. - Body ChangeQANMySQLSlowlogAgentBody - - timeout time.Duration - Context context.Context - HTTPClient *http.Client -} - -// WithDefaults hydrates default values in the change QAN my SQL slowlog agent params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangeQANMySQLSlowlogAgentParams) WithDefaults() *ChangeQANMySQLSlowlogAgentParams { - o.SetDefaults() - return o -} - -// SetDefaults hydrates default values in the change QAN my SQL slowlog agent params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangeQANMySQLSlowlogAgentParams) SetDefaults() { - // no default values defined for this parameter -} - -// WithTimeout adds the timeout to the change QAN my SQL slowlog agent params -func (o *ChangeQANMySQLSlowlogAgentParams) WithTimeout(timeout time.Duration) *ChangeQANMySQLSlowlogAgentParams { - o.SetTimeout(timeout) - return o -} - -// SetTimeout adds the timeout to the change QAN my SQL slowlog agent params -func (o *ChangeQANMySQLSlowlogAgentParams) SetTimeout(timeout time.Duration) { - o.timeout = timeout -} - -// WithContext adds the context to the change QAN my SQL slowlog agent params -func (o *ChangeQANMySQLSlowlogAgentParams) WithContext(ctx context.Context) *ChangeQANMySQLSlowlogAgentParams { - o.SetContext(ctx) - return o -} - -// SetContext adds the context to the change QAN my SQL slowlog agent params -func (o *ChangeQANMySQLSlowlogAgentParams) SetContext(ctx context.Context) { - o.Context = ctx -} - -// WithHTTPClient adds the HTTPClient to the change QAN my SQL slowlog agent params -func (o *ChangeQANMySQLSlowlogAgentParams) WithHTTPClient(client *http.Client) *ChangeQANMySQLSlowlogAgentParams { - o.SetHTTPClient(client) - return o -} - -// SetHTTPClient adds the HTTPClient to the change QAN my SQL slowlog agent params -func (o *ChangeQANMySQLSlowlogAgentParams) SetHTTPClient(client *http.Client) { - o.HTTPClient = client -} - -// WithBody adds the body to the change QAN my SQL slowlog agent params -func (o *ChangeQANMySQLSlowlogAgentParams) WithBody(body ChangeQANMySQLSlowlogAgentBody) *ChangeQANMySQLSlowlogAgentParams { - o.SetBody(body) - return o -} - -// SetBody adds the body to the change QAN my SQL slowlog agent params -func (o *ChangeQANMySQLSlowlogAgentParams) SetBody(body ChangeQANMySQLSlowlogAgentBody) { - o.Body = body -} - -// WriteToRequest writes these params to a swagger request -func (o *ChangeQANMySQLSlowlogAgentParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { - if err := r.SetTimeout(o.timeout); err != nil { - return err - } - var res []error - if err := r.SetBodyParam(o.Body); err != nil { - return err - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} diff --git a/api/inventory/v1/json/client/agents_service/change_qan_my_sql_slowlog_agent_responses.go b/api/inventory/v1/json/client/agents_service/change_qan_my_sql_slowlog_agent_responses.go deleted file mode 100644 index ece7c93232..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_qan_my_sql_slowlog_agent_responses.go +++ /dev/null @@ -1,719 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "encoding/json" - "fmt" - "io" - "strconv" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - "github.com/go-openapi/strfmt" - "github.com/go-openapi/swag" - "github.com/go-openapi/validate" -) - -// ChangeQANMySQLSlowlogAgentReader is a Reader for the ChangeQANMySQLSlowlogAgent structure. -type ChangeQANMySQLSlowlogAgentReader struct { - formats strfmt.Registry -} - -// ReadResponse reads a server response into the received o. -func (o *ChangeQANMySQLSlowlogAgentReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) { - switch response.Code() { - case 200: - result := NewChangeQANMySQLSlowlogAgentOK() - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - return result, nil - default: - result := NewChangeQANMySQLSlowlogAgentDefault(response.Code()) - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - if response.Code()/100 == 2 { - return result, nil - } - return nil, result - } -} - -// NewChangeQANMySQLSlowlogAgentOK creates a ChangeQANMySQLSlowlogAgentOK with default headers values -func NewChangeQANMySQLSlowlogAgentOK() *ChangeQANMySQLSlowlogAgentOK { - return &ChangeQANMySQLSlowlogAgentOK{} -} - -/* -ChangeQANMySQLSlowlogAgentOK describes a response with status code 200, with default header values. - -A successful response. -*/ -type ChangeQANMySQLSlowlogAgentOK struct { - Payload *ChangeQANMySQLSlowlogAgentOKBody -} - -func (o *ChangeQANMySQLSlowlogAgentOK) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangeQANMySQLSlowlogAgent][%d] changeQanMySqlSlowlogAgentOk %+v", 200, o.Payload) -} - -func (o *ChangeQANMySQLSlowlogAgentOK) GetPayload() *ChangeQANMySQLSlowlogAgentOKBody { - return o.Payload -} - -func (o *ChangeQANMySQLSlowlogAgentOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangeQANMySQLSlowlogAgentOKBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -// NewChangeQANMySQLSlowlogAgentDefault creates a ChangeQANMySQLSlowlogAgentDefault with default headers values -func NewChangeQANMySQLSlowlogAgentDefault(code int) *ChangeQANMySQLSlowlogAgentDefault { - return &ChangeQANMySQLSlowlogAgentDefault{ - _statusCode: code, - } -} - -/* -ChangeQANMySQLSlowlogAgentDefault describes a response with status code -1, with default header values. - -An unexpected error response. -*/ -type ChangeQANMySQLSlowlogAgentDefault struct { - _statusCode int - - Payload *ChangeQANMySQLSlowlogAgentDefaultBody -} - -// Code gets the status code for the change QAN my SQL slowlog agent default response -func (o *ChangeQANMySQLSlowlogAgentDefault) Code() int { - return o._statusCode -} - -func (o *ChangeQANMySQLSlowlogAgentDefault) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangeQANMySQLSlowlogAgent][%d] ChangeQANMySQLSlowlogAgent default %+v", o._statusCode, o.Payload) -} - -func (o *ChangeQANMySQLSlowlogAgentDefault) GetPayload() *ChangeQANMySQLSlowlogAgentDefaultBody { - return o.Payload -} - -func (o *ChangeQANMySQLSlowlogAgentDefault) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangeQANMySQLSlowlogAgentDefaultBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -/* -ChangeQANMySQLSlowlogAgentBody change QAN my SQL slowlog agent body -swagger:model ChangeQANMySQLSlowlogAgentBody -*/ -type ChangeQANMySQLSlowlogAgentBody struct { - // agent id - AgentID string `json:"agent_id,omitempty"` - - // common - Common *ChangeQANMySQLSlowlogAgentParamsBodyCommon `json:"common,omitempty"` -} - -// Validate validates this change QAN my SQL slowlog agent body -func (o *ChangeQANMySQLSlowlogAgentBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateCommon(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANMySQLSlowlogAgentBody) validateCommon(formats strfmt.Registry) error { - if swag.IsZero(o.Common) { // not required - return nil - } - - if o.Common != nil { - if err := o.Common.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change QAN my SQL slowlog agent body based on the context it is used -func (o *ChangeQANMySQLSlowlogAgentBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateCommon(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANMySQLSlowlogAgentBody) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { - if o.Common != nil { - if err := o.Common.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANMySQLSlowlogAgentBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANMySQLSlowlogAgentBody) UnmarshalBinary(b []byte) error { - var res ChangeQANMySQLSlowlogAgentBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeQANMySQLSlowlogAgentDefaultBody change QAN my SQL slowlog agent default body -swagger:model ChangeQANMySQLSlowlogAgentDefaultBody -*/ -type ChangeQANMySQLSlowlogAgentDefaultBody struct { - // code - Code int32 `json:"code,omitempty"` - - // message - Message string `json:"message,omitempty"` - - // details - Details []*ChangeQANMySQLSlowlogAgentDefaultBodyDetailsItems0 `json:"details"` -} - -// Validate validates this change QAN my SQL slowlog agent default body -func (o *ChangeQANMySQLSlowlogAgentDefaultBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateDetails(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANMySQLSlowlogAgentDefaultBody) validateDetails(formats strfmt.Registry) error { - if swag.IsZero(o.Details) { // not required - return nil - } - - for i := 0; i < len(o.Details); i++ { - if swag.IsZero(o.Details[i]) { // not required - continue - } - - if o.Details[i] != nil { - if err := o.Details[i].Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangeQANMySQLSlowlogAgent default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangeQANMySQLSlowlogAgent default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - - } - - return nil -} - -// ContextValidate validate this change QAN my SQL slowlog agent default body based on the context it is used -func (o *ChangeQANMySQLSlowlogAgentDefaultBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateDetails(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANMySQLSlowlogAgentDefaultBody) contextValidateDetails(ctx context.Context, formats strfmt.Registry) error { - for i := 0; i < len(o.Details); i++ { - if o.Details[i] != nil { - if err := o.Details[i].ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangeQANMySQLSlowlogAgent default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangeQANMySQLSlowlogAgent default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANMySQLSlowlogAgentDefaultBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANMySQLSlowlogAgentDefaultBody) UnmarshalBinary(b []byte) error { - var res ChangeQANMySQLSlowlogAgentDefaultBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeQANMySQLSlowlogAgentDefaultBodyDetailsItems0 change QAN my SQL slowlog agent default body details items0 -swagger:model ChangeQANMySQLSlowlogAgentDefaultBodyDetailsItems0 -*/ -type ChangeQANMySQLSlowlogAgentDefaultBodyDetailsItems0 struct { - // at type - AtType string `json:"@type,omitempty"` -} - -// Validate validates this change QAN my SQL slowlog agent default body details items0 -func (o *ChangeQANMySQLSlowlogAgentDefaultBodyDetailsItems0) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change QAN my SQL slowlog agent default body details items0 based on context it is used -func (o *ChangeQANMySQLSlowlogAgentDefaultBodyDetailsItems0) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANMySQLSlowlogAgentDefaultBodyDetailsItems0) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANMySQLSlowlogAgentDefaultBodyDetailsItems0) UnmarshalBinary(b []byte) error { - var res ChangeQANMySQLSlowlogAgentDefaultBodyDetailsItems0 - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeQANMySQLSlowlogAgentOKBody change QAN my SQL slowlog agent OK body -swagger:model ChangeQANMySQLSlowlogAgentOKBody -*/ -type ChangeQANMySQLSlowlogAgentOKBody struct { - // qan mysql slowlog agent - QANMysqlSlowlogAgent *ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgent `json:"qan_mysql_slowlog_agent,omitempty"` -} - -// Validate validates this change QAN my SQL slowlog agent OK body -func (o *ChangeQANMySQLSlowlogAgentOKBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateQANMysqlSlowlogAgent(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANMySQLSlowlogAgentOKBody) validateQANMysqlSlowlogAgent(formats strfmt.Registry) error { - if swag.IsZero(o.QANMysqlSlowlogAgent) { // not required - return nil - } - - if o.QANMysqlSlowlogAgent != nil { - if err := o.QANMysqlSlowlogAgent.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changeQanMySqlSlowlogAgentOk" + "." + "qan_mysql_slowlog_agent") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changeQanMySqlSlowlogAgentOk" + "." + "qan_mysql_slowlog_agent") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change QAN my SQL slowlog agent OK body based on the context it is used -func (o *ChangeQANMySQLSlowlogAgentOKBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateQANMysqlSlowlogAgent(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANMySQLSlowlogAgentOKBody) contextValidateQANMysqlSlowlogAgent(ctx context.Context, formats strfmt.Registry) error { - if o.QANMysqlSlowlogAgent != nil { - if err := o.QANMysqlSlowlogAgent.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changeQanMySqlSlowlogAgentOk" + "." + "qan_mysql_slowlog_agent") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changeQanMySqlSlowlogAgentOk" + "." + "qan_mysql_slowlog_agent") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANMySQLSlowlogAgentOKBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANMySQLSlowlogAgentOKBody) UnmarshalBinary(b []byte) error { - var res ChangeQANMySQLSlowlogAgentOKBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgent QANMySQLSlowlogAgent runs within pmm-agent and sends MySQL Query Analytics data to the PMM Server. -swagger:model ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgent -*/ -type ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgent struct { - // Unique randomly generated instance identifier. - AgentID string `json:"agent_id,omitempty"` - - // The pmm-agent identifier which runs this instance. - PMMAgentID string `json:"pmm_agent_id,omitempty"` - - // Desired Agent status: enabled (false) or disabled (true). - Disabled bool `json:"disabled,omitempty"` - - // Service identifier. - ServiceID string `json:"service_id,omitempty"` - - // MySQL username for getting performance data. - Username string `json:"username,omitempty"` - - // Use TLS for database connections. - TLS bool `json:"tls,omitempty"` - - // Skip TLS certificate and hostname validation. - TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` - - // Certificate Authority certificate chain. - TLSCa string `json:"tls_ca,omitempty"` - - // Client certificate. - TLSCert string `json:"tls_cert,omitempty"` - - // Password for decrypting tls_cert. - TLSKey string `json:"tls_key,omitempty"` - - // Disable parsing comments from queries and showing them in QAN. - DisableCommentsParsing bool `json:"disable_comments_parsing,omitempty"` - - // Limit query length in QAN (default: server-defined; -1: no limit) - MaxQueryLength int32 `json:"max_query_length,omitempty"` - - // True if query examples are disabled. - QueryExamplesDisabled bool `json:"query_examples_disabled,omitempty"` - - // Slowlog file is rotated at this size if > 0. - MaxSlowlogFileSize string `json:"max_slowlog_file_size,omitempty"` - - // Custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // AgentStatus represents actual Agent status. - // - // - AGENT_STATUS_STARTING: Agent is starting. - // - AGENT_STATUS_RUNNING: Agent is running. - // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. - // - AGENT_STATUS_STOPPING: Agent is stopping. - // - AGENT_STATUS_DONE: Agent finished. - // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. - // Enum: [AGENT_STATUS_UNSPECIFIED AGENT_STATUS_STARTING AGENT_STATUS_RUNNING AGENT_STATUS_WAITING AGENT_STATUS_STOPPING AGENT_STATUS_DONE AGENT_STATUS_UNKNOWN] - Status *string `json:"status,omitempty"` - - // mod tidy - ProcessExecPath string `json:"process_exec_path,omitempty"` - - // Log level for exporters - // - // - LOG_LEVEL_UNSPECIFIED: Auto - // Enum: [LOG_LEVEL_UNSPECIFIED LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARN LOG_LEVEL_INFO LOG_LEVEL_DEBUG] - LogLevel *string `json:"log_level,omitempty"` -} - -// Validate validates this change QAN my SQL slowlog agent OK body QAN mysql slowlog agent -func (o *ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgent) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateStatus(formats); err != nil { - res = append(res, err) - } - - if err := o.validateLogLevel(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -var changeQanMySqlSlowlogAgentOkBodyQanMysqlSlowlogAgentTypeStatusPropEnum []interface{} - -func init() { - var res []string - if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { - panic(err) - } - for _, v := range res { - changeQanMySqlSlowlogAgentOkBodyQanMysqlSlowlogAgentTypeStatusPropEnum = append(changeQanMySqlSlowlogAgentOkBodyQanMysqlSlowlogAgentTypeStatusPropEnum, v) - } -} - -const ( - - // ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" - ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" - - // ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" - ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" - - // ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" - ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" - - // ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" - ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" - - // ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" - ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" - - // ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" - ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" - - // ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" - ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" -) - -// prop value enum -func (o *ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgent) validateStatusEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeQanMySqlSlowlogAgentOkBodyQanMysqlSlowlogAgentTypeStatusPropEnum, true); err != nil { - return err - } - return nil -} - -func (o *ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgent) validateStatus(formats strfmt.Registry) error { - if swag.IsZero(o.Status) { // not required - return nil - } - - // value enum - if err := o.validateStatusEnum("changeQanMySqlSlowlogAgentOk"+"."+"qan_mysql_slowlog_agent"+"."+"status", "body", *o.Status); err != nil { - return err - } - - return nil -} - -var changeQanMySqlSlowlogAgentOkBodyQanMysqlSlowlogAgentTypeLogLevelPropEnum []interface{} - -func init() { - var res []string - if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { - panic(err) - } - for _, v := range res { - changeQanMySqlSlowlogAgentOkBodyQanMysqlSlowlogAgentTypeLogLevelPropEnum = append(changeQanMySqlSlowlogAgentOkBodyQanMysqlSlowlogAgentTypeLogLevelPropEnum, v) - } -} - -const ( - - // ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" - ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" - - // ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" - ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" - - // ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" - ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" - - // ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" - ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" - - // ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" - ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" - - // ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" - ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" -) - -// prop value enum -func (o *ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgent) validateLogLevelEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeQanMySqlSlowlogAgentOkBodyQanMysqlSlowlogAgentTypeLogLevelPropEnum, true); err != nil { - return err - } - return nil -} - -func (o *ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgent) validateLogLevel(formats strfmt.Registry) error { - if swag.IsZero(o.LogLevel) { // not required - return nil - } - - // value enum - if err := o.validateLogLevelEnum("changeQanMySqlSlowlogAgentOk"+"."+"qan_mysql_slowlog_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { - return err - } - - return nil -} - -// ContextValidate validates this change QAN my SQL slowlog agent OK body QAN mysql slowlog agent based on context it is used -func (o *ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgent) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgent) UnmarshalBinary(b []byte) error { - var res ChangeQANMySQLSlowlogAgentOKBodyQANMysqlSlowlogAgent - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeQANMySQLSlowlogAgentParamsBodyCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. -swagger:model ChangeQANMySQLSlowlogAgentParamsBodyCommon -*/ -type ChangeQANMySQLSlowlogAgentParamsBodyCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` - - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - // Can't be used with agent version lower then 2.12 and unsupported agents. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` -} - -// Validate validates this change QAN my SQL slowlog agent params body common -func (o *ChangeQANMySQLSlowlogAgentParamsBodyCommon) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change QAN my SQL slowlog agent params body common based on context it is used -func (o *ChangeQANMySQLSlowlogAgentParamsBodyCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANMySQLSlowlogAgentParamsBodyCommon) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANMySQLSlowlogAgentParamsBodyCommon) UnmarshalBinary(b []byte) error { - var res ChangeQANMySQLSlowlogAgentParamsBodyCommon - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} diff --git a/api/inventory/v1/json/client/agents_service/change_qan_postgre_sql_pg_stat_monitor_agent_parameters.go b/api/inventory/v1/json/client/agents_service/change_qan_postgre_sql_pg_stat_monitor_agent_parameters.go deleted file mode 100644 index 6d7088971c..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_qan_postgre_sql_pg_stat_monitor_agent_parameters.go +++ /dev/null @@ -1,144 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "net/http" - "time" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - cr "github.com/go-openapi/runtime/client" - "github.com/go-openapi/strfmt" -) - -// NewChangeQANPostgreSQLPgStatMonitorAgentParams creates a new ChangeQANPostgreSQLPgStatMonitorAgentParams object, -// with the default timeout for this client. -// -// Default values are not hydrated, since defaults are normally applied by the API server side. -// -// To enforce default values in parameter, use SetDefaults or WithDefaults. -func NewChangeQANPostgreSQLPgStatMonitorAgentParams() *ChangeQANPostgreSQLPgStatMonitorAgentParams { - return &ChangeQANPostgreSQLPgStatMonitorAgentParams{ - timeout: cr.DefaultTimeout, - } -} - -// NewChangeQANPostgreSQLPgStatMonitorAgentParamsWithTimeout creates a new ChangeQANPostgreSQLPgStatMonitorAgentParams object -// with the ability to set a timeout on a request. -func NewChangeQANPostgreSQLPgStatMonitorAgentParamsWithTimeout(timeout time.Duration) *ChangeQANPostgreSQLPgStatMonitorAgentParams { - return &ChangeQANPostgreSQLPgStatMonitorAgentParams{ - timeout: timeout, - } -} - -// NewChangeQANPostgreSQLPgStatMonitorAgentParamsWithContext creates a new ChangeQANPostgreSQLPgStatMonitorAgentParams object -// with the ability to set a context for a request. -func NewChangeQANPostgreSQLPgStatMonitorAgentParamsWithContext(ctx context.Context) *ChangeQANPostgreSQLPgStatMonitorAgentParams { - return &ChangeQANPostgreSQLPgStatMonitorAgentParams{ - Context: ctx, - } -} - -// NewChangeQANPostgreSQLPgStatMonitorAgentParamsWithHTTPClient creates a new ChangeQANPostgreSQLPgStatMonitorAgentParams object -// with the ability to set a custom HTTPClient for a request. -func NewChangeQANPostgreSQLPgStatMonitorAgentParamsWithHTTPClient(client *http.Client) *ChangeQANPostgreSQLPgStatMonitorAgentParams { - return &ChangeQANPostgreSQLPgStatMonitorAgentParams{ - HTTPClient: client, - } -} - -/* -ChangeQANPostgreSQLPgStatMonitorAgentParams contains all the parameters to send to the API endpoint - - for the change QAN postgre SQL pg stat monitor agent operation. - - Typically these are written to a http.Request. -*/ -type ChangeQANPostgreSQLPgStatMonitorAgentParams struct { - // Body. - Body ChangeQANPostgreSQLPgStatMonitorAgentBody - - timeout time.Duration - Context context.Context - HTTPClient *http.Client -} - -// WithDefaults hydrates default values in the change QAN postgre SQL pg stat monitor agent params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangeQANPostgreSQLPgStatMonitorAgentParams) WithDefaults() *ChangeQANPostgreSQLPgStatMonitorAgentParams { - o.SetDefaults() - return o -} - -// SetDefaults hydrates default values in the change QAN postgre SQL pg stat monitor agent params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangeQANPostgreSQLPgStatMonitorAgentParams) SetDefaults() { - // no default values defined for this parameter -} - -// WithTimeout adds the timeout to the change QAN postgre SQL pg stat monitor agent params -func (o *ChangeQANPostgreSQLPgStatMonitorAgentParams) WithTimeout(timeout time.Duration) *ChangeQANPostgreSQLPgStatMonitorAgentParams { - o.SetTimeout(timeout) - return o -} - -// SetTimeout adds the timeout to the change QAN postgre SQL pg stat monitor agent params -func (o *ChangeQANPostgreSQLPgStatMonitorAgentParams) SetTimeout(timeout time.Duration) { - o.timeout = timeout -} - -// WithContext adds the context to the change QAN postgre SQL pg stat monitor agent params -func (o *ChangeQANPostgreSQLPgStatMonitorAgentParams) WithContext(ctx context.Context) *ChangeQANPostgreSQLPgStatMonitorAgentParams { - o.SetContext(ctx) - return o -} - -// SetContext adds the context to the change QAN postgre SQL pg stat monitor agent params -func (o *ChangeQANPostgreSQLPgStatMonitorAgentParams) SetContext(ctx context.Context) { - o.Context = ctx -} - -// WithHTTPClient adds the HTTPClient to the change QAN postgre SQL pg stat monitor agent params -func (o *ChangeQANPostgreSQLPgStatMonitorAgentParams) WithHTTPClient(client *http.Client) *ChangeQANPostgreSQLPgStatMonitorAgentParams { - o.SetHTTPClient(client) - return o -} - -// SetHTTPClient adds the HTTPClient to the change QAN postgre SQL pg stat monitor agent params -func (o *ChangeQANPostgreSQLPgStatMonitorAgentParams) SetHTTPClient(client *http.Client) { - o.HTTPClient = client -} - -// WithBody adds the body to the change QAN postgre SQL pg stat monitor agent params -func (o *ChangeQANPostgreSQLPgStatMonitorAgentParams) WithBody(body ChangeQANPostgreSQLPgStatMonitorAgentBody) *ChangeQANPostgreSQLPgStatMonitorAgentParams { - o.SetBody(body) - return o -} - -// SetBody adds the body to the change QAN postgre SQL pg stat monitor agent params -func (o *ChangeQANPostgreSQLPgStatMonitorAgentParams) SetBody(body ChangeQANPostgreSQLPgStatMonitorAgentBody) { - o.Body = body -} - -// WriteToRequest writes these params to a swagger request -func (o *ChangeQANPostgreSQLPgStatMonitorAgentParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { - if err := r.SetTimeout(o.timeout); err != nil { - return err - } - var res []error - if err := r.SetBodyParam(o.Body); err != nil { - return err - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} diff --git a/api/inventory/v1/json/client/agents_service/change_qan_postgre_sql_pg_stat_monitor_agent_responses.go b/api/inventory/v1/json/client/agents_service/change_qan_postgre_sql_pg_stat_monitor_agent_responses.go deleted file mode 100644 index bd7d47d8a4..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_qan_postgre_sql_pg_stat_monitor_agent_responses.go +++ /dev/null @@ -1,707 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "encoding/json" - "fmt" - "io" - "strconv" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - "github.com/go-openapi/strfmt" - "github.com/go-openapi/swag" - "github.com/go-openapi/validate" -) - -// ChangeQANPostgreSQLPgStatMonitorAgentReader is a Reader for the ChangeQANPostgreSQLPgStatMonitorAgent structure. -type ChangeQANPostgreSQLPgStatMonitorAgentReader struct { - formats strfmt.Registry -} - -// ReadResponse reads a server response into the received o. -func (o *ChangeQANPostgreSQLPgStatMonitorAgentReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) { - switch response.Code() { - case 200: - result := NewChangeQANPostgreSQLPgStatMonitorAgentOK() - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - return result, nil - default: - result := NewChangeQANPostgreSQLPgStatMonitorAgentDefault(response.Code()) - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - if response.Code()/100 == 2 { - return result, nil - } - return nil, result - } -} - -// NewChangeQANPostgreSQLPgStatMonitorAgentOK creates a ChangeQANPostgreSQLPgStatMonitorAgentOK with default headers values -func NewChangeQANPostgreSQLPgStatMonitorAgentOK() *ChangeQANPostgreSQLPgStatMonitorAgentOK { - return &ChangeQANPostgreSQLPgStatMonitorAgentOK{} -} - -/* -ChangeQANPostgreSQLPgStatMonitorAgentOK describes a response with status code 200, with default header values. - -A successful response. -*/ -type ChangeQANPostgreSQLPgStatMonitorAgentOK struct { - Payload *ChangeQANPostgreSQLPgStatMonitorAgentOKBody -} - -func (o *ChangeQANPostgreSQLPgStatMonitorAgentOK) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangeQANPostgreSQLPgStatMonitorAgent][%d] changeQanPostgreSqlPgStatMonitorAgentOk %+v", 200, o.Payload) -} - -func (o *ChangeQANPostgreSQLPgStatMonitorAgentOK) GetPayload() *ChangeQANPostgreSQLPgStatMonitorAgentOKBody { - return o.Payload -} - -func (o *ChangeQANPostgreSQLPgStatMonitorAgentOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangeQANPostgreSQLPgStatMonitorAgentOKBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -// NewChangeQANPostgreSQLPgStatMonitorAgentDefault creates a ChangeQANPostgreSQLPgStatMonitorAgentDefault with default headers values -func NewChangeQANPostgreSQLPgStatMonitorAgentDefault(code int) *ChangeQANPostgreSQLPgStatMonitorAgentDefault { - return &ChangeQANPostgreSQLPgStatMonitorAgentDefault{ - _statusCode: code, - } -} - -/* -ChangeQANPostgreSQLPgStatMonitorAgentDefault describes a response with status code -1, with default header values. - -An unexpected error response. -*/ -type ChangeQANPostgreSQLPgStatMonitorAgentDefault struct { - _statusCode int - - Payload *ChangeQANPostgreSQLPgStatMonitorAgentDefaultBody -} - -// Code gets the status code for the change QAN postgre SQL pg stat monitor agent default response -func (o *ChangeQANPostgreSQLPgStatMonitorAgentDefault) Code() int { - return o._statusCode -} - -func (o *ChangeQANPostgreSQLPgStatMonitorAgentDefault) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangeQANPostgreSQLPgStatMonitorAgent][%d] ChangeQANPostgreSQLPgStatMonitorAgent default %+v", o._statusCode, o.Payload) -} - -func (o *ChangeQANPostgreSQLPgStatMonitorAgentDefault) GetPayload() *ChangeQANPostgreSQLPgStatMonitorAgentDefaultBody { - return o.Payload -} - -func (o *ChangeQANPostgreSQLPgStatMonitorAgentDefault) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangeQANPostgreSQLPgStatMonitorAgentDefaultBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -/* -ChangeQANPostgreSQLPgStatMonitorAgentBody change QAN postgre SQL pg stat monitor agent body -swagger:model ChangeQANPostgreSQLPgStatMonitorAgentBody -*/ -type ChangeQANPostgreSQLPgStatMonitorAgentBody struct { - // agent id - AgentID string `json:"agent_id,omitempty"` - - // common - Common *ChangeQANPostgreSQLPgStatMonitorAgentParamsBodyCommon `json:"common,omitempty"` -} - -// Validate validates this change QAN postgre SQL pg stat monitor agent body -func (o *ChangeQANPostgreSQLPgStatMonitorAgentBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateCommon(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANPostgreSQLPgStatMonitorAgentBody) validateCommon(formats strfmt.Registry) error { - if swag.IsZero(o.Common) { // not required - return nil - } - - if o.Common != nil { - if err := o.Common.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change QAN postgre SQL pg stat monitor agent body based on the context it is used -func (o *ChangeQANPostgreSQLPgStatMonitorAgentBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateCommon(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANPostgreSQLPgStatMonitorAgentBody) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { - if o.Common != nil { - if err := o.Common.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANPostgreSQLPgStatMonitorAgentBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANPostgreSQLPgStatMonitorAgentBody) UnmarshalBinary(b []byte) error { - var res ChangeQANPostgreSQLPgStatMonitorAgentBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeQANPostgreSQLPgStatMonitorAgentDefaultBody change QAN postgre SQL pg stat monitor agent default body -swagger:model ChangeQANPostgreSQLPgStatMonitorAgentDefaultBody -*/ -type ChangeQANPostgreSQLPgStatMonitorAgentDefaultBody struct { - // code - Code int32 `json:"code,omitempty"` - - // message - Message string `json:"message,omitempty"` - - // details - Details []*ChangeQANPostgreSQLPgStatMonitorAgentDefaultBodyDetailsItems0 `json:"details"` -} - -// Validate validates this change QAN postgre SQL pg stat monitor agent default body -func (o *ChangeQANPostgreSQLPgStatMonitorAgentDefaultBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateDetails(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANPostgreSQLPgStatMonitorAgentDefaultBody) validateDetails(formats strfmt.Registry) error { - if swag.IsZero(o.Details) { // not required - return nil - } - - for i := 0; i < len(o.Details); i++ { - if swag.IsZero(o.Details[i]) { // not required - continue - } - - if o.Details[i] != nil { - if err := o.Details[i].Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangeQANPostgreSQLPgStatMonitorAgent default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangeQANPostgreSQLPgStatMonitorAgent default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - - } - - return nil -} - -// ContextValidate validate this change QAN postgre SQL pg stat monitor agent default body based on the context it is used -func (o *ChangeQANPostgreSQLPgStatMonitorAgentDefaultBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateDetails(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANPostgreSQLPgStatMonitorAgentDefaultBody) contextValidateDetails(ctx context.Context, formats strfmt.Registry) error { - for i := 0; i < len(o.Details); i++ { - if o.Details[i] != nil { - if err := o.Details[i].ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangeQANPostgreSQLPgStatMonitorAgent default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangeQANPostgreSQLPgStatMonitorAgent default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANPostgreSQLPgStatMonitorAgentDefaultBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANPostgreSQLPgStatMonitorAgentDefaultBody) UnmarshalBinary(b []byte) error { - var res ChangeQANPostgreSQLPgStatMonitorAgentDefaultBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeQANPostgreSQLPgStatMonitorAgentDefaultBodyDetailsItems0 change QAN postgre SQL pg stat monitor agent default body details items0 -swagger:model ChangeQANPostgreSQLPgStatMonitorAgentDefaultBodyDetailsItems0 -*/ -type ChangeQANPostgreSQLPgStatMonitorAgentDefaultBodyDetailsItems0 struct { - // at type - AtType string `json:"@type,omitempty"` -} - -// Validate validates this change QAN postgre SQL pg stat monitor agent default body details items0 -func (o *ChangeQANPostgreSQLPgStatMonitorAgentDefaultBodyDetailsItems0) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change QAN postgre SQL pg stat monitor agent default body details items0 based on context it is used -func (o *ChangeQANPostgreSQLPgStatMonitorAgentDefaultBodyDetailsItems0) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANPostgreSQLPgStatMonitorAgentDefaultBodyDetailsItems0) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANPostgreSQLPgStatMonitorAgentDefaultBodyDetailsItems0) UnmarshalBinary(b []byte) error { - var res ChangeQANPostgreSQLPgStatMonitorAgentDefaultBodyDetailsItems0 - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeQANPostgreSQLPgStatMonitorAgentOKBody change QAN postgre SQL pg stat monitor agent OK body -swagger:model ChangeQANPostgreSQLPgStatMonitorAgentOKBody -*/ -type ChangeQANPostgreSQLPgStatMonitorAgentOKBody struct { - // qan postgresql pgstatmonitor agent - QANPostgresqlPgstatmonitorAgent *ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgent `json:"qan_postgresql_pgstatmonitor_agent,omitempty"` -} - -// Validate validates this change QAN postgre SQL pg stat monitor agent OK body -func (o *ChangeQANPostgreSQLPgStatMonitorAgentOKBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateQANPostgresqlPgstatmonitorAgent(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANPostgreSQLPgStatMonitorAgentOKBody) validateQANPostgresqlPgstatmonitorAgent(formats strfmt.Registry) error { - if swag.IsZero(o.QANPostgresqlPgstatmonitorAgent) { // not required - return nil - } - - if o.QANPostgresqlPgstatmonitorAgent != nil { - if err := o.QANPostgresqlPgstatmonitorAgent.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changeQanPostgreSqlPgStatMonitorAgentOk" + "." + "qan_postgresql_pgstatmonitor_agent") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changeQanPostgreSqlPgStatMonitorAgentOk" + "." + "qan_postgresql_pgstatmonitor_agent") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change QAN postgre SQL pg stat monitor agent OK body based on the context it is used -func (o *ChangeQANPostgreSQLPgStatMonitorAgentOKBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateQANPostgresqlPgstatmonitorAgent(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANPostgreSQLPgStatMonitorAgentOKBody) contextValidateQANPostgresqlPgstatmonitorAgent(ctx context.Context, formats strfmt.Registry) error { - if o.QANPostgresqlPgstatmonitorAgent != nil { - if err := o.QANPostgresqlPgstatmonitorAgent.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changeQanPostgreSqlPgStatMonitorAgentOk" + "." + "qan_postgresql_pgstatmonitor_agent") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changeQanPostgreSqlPgStatMonitorAgentOk" + "." + "qan_postgresql_pgstatmonitor_agent") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANPostgreSQLPgStatMonitorAgentOKBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANPostgreSQLPgStatMonitorAgentOKBody) UnmarshalBinary(b []byte) error { - var res ChangeQANPostgreSQLPgStatMonitorAgentOKBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgent QANPostgreSQLPgStatMonitorAgent runs within pmm-agent and sends PostgreSQL Query Analytics data to the PMM Server. -swagger:model ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgent -*/ -type ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgent struct { - // Unique randomly generated instance identifier. - AgentID string `json:"agent_id,omitempty"` - - // The pmm-agent identifier which runs this instance. - PMMAgentID string `json:"pmm_agent_id,omitempty"` - - // Desired Agent status: enabled (false) or disabled (true). - Disabled bool `json:"disabled,omitempty"` - - // Service identifier. - ServiceID string `json:"service_id,omitempty"` - - // PostgreSQL username for getting pg stat monitor data. - Username string `json:"username,omitempty"` - - // Use TLS for database connections. - TLS bool `json:"tls,omitempty"` - - // Skip TLS certificate and hostname validation. - TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` - - // Disable parsing comments from queries and showing them in QAN. - DisableCommentsParsing bool `json:"disable_comments_parsing,omitempty"` - - // Limit query length in QAN (default: server-defined; -1: no limit). - MaxQueryLength int32 `json:"max_query_length,omitempty"` - - // True if query examples are disabled. - QueryExamplesDisabled bool `json:"query_examples_disabled,omitempty"` - - // Custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // AgentStatus represents actual Agent status. - // - // - AGENT_STATUS_STARTING: Agent is starting. - // - AGENT_STATUS_RUNNING: Agent is running. - // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. - // - AGENT_STATUS_STOPPING: Agent is stopping. - // - AGENT_STATUS_DONE: Agent finished. - // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. - // Enum: [AGENT_STATUS_UNSPECIFIED AGENT_STATUS_STARTING AGENT_STATUS_RUNNING AGENT_STATUS_WAITING AGENT_STATUS_STOPPING AGENT_STATUS_DONE AGENT_STATUS_UNKNOWN] - Status *string `json:"status,omitempty"` - - // Path to exec process. - ProcessExecPath string `json:"process_exec_path,omitempty"` - - // Log level for exporters - // - // - LOG_LEVEL_UNSPECIFIED: Auto - // Enum: [LOG_LEVEL_UNSPECIFIED LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARN LOG_LEVEL_INFO LOG_LEVEL_DEBUG] - LogLevel *string `json:"log_level,omitempty"` -} - -// Validate validates this change QAN postgre SQL pg stat monitor agent OK body QAN postgresql pgstatmonitor agent -func (o *ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgent) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateStatus(formats); err != nil { - res = append(res, err) - } - - if err := o.validateLogLevel(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -var changeQanPostgreSqlPgStatMonitorAgentOkBodyQanPostgresqlPgstatmonitorAgentTypeStatusPropEnum []interface{} - -func init() { - var res []string - if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { - panic(err) - } - for _, v := range res { - changeQanPostgreSqlPgStatMonitorAgentOkBodyQanPostgresqlPgstatmonitorAgentTypeStatusPropEnum = append(changeQanPostgreSqlPgStatMonitorAgentOkBodyQanPostgresqlPgstatmonitorAgentTypeStatusPropEnum, v) - } -} - -const ( - - // ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" - ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" - - // ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" - ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" - - // ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" - ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" - - // ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" - ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" - - // ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" - ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" - - // ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" - ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" - - // ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" - ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" -) - -// prop value enum -func (o *ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgent) validateStatusEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeQanPostgreSqlPgStatMonitorAgentOkBodyQanPostgresqlPgstatmonitorAgentTypeStatusPropEnum, true); err != nil { - return err - } - return nil -} - -func (o *ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgent) validateStatus(formats strfmt.Registry) error { - if swag.IsZero(o.Status) { // not required - return nil - } - - // value enum - if err := o.validateStatusEnum("changeQanPostgreSqlPgStatMonitorAgentOk"+"."+"qan_postgresql_pgstatmonitor_agent"+"."+"status", "body", *o.Status); err != nil { - return err - } - - return nil -} - -var changeQanPostgreSqlPgStatMonitorAgentOkBodyQanPostgresqlPgstatmonitorAgentTypeLogLevelPropEnum []interface{} - -func init() { - var res []string - if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { - panic(err) - } - for _, v := range res { - changeQanPostgreSqlPgStatMonitorAgentOkBodyQanPostgresqlPgstatmonitorAgentTypeLogLevelPropEnum = append(changeQanPostgreSqlPgStatMonitorAgentOkBodyQanPostgresqlPgstatmonitorAgentTypeLogLevelPropEnum, v) - } -} - -const ( - - // ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" - ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" - - // ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" - ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" - - // ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" - ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" - - // ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" - ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" - - // ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" - ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" - - // ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" - ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" -) - -// prop value enum -func (o *ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgent) validateLogLevelEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeQanPostgreSqlPgStatMonitorAgentOkBodyQanPostgresqlPgstatmonitorAgentTypeLogLevelPropEnum, true); err != nil { - return err - } - return nil -} - -func (o *ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgent) validateLogLevel(formats strfmt.Registry) error { - if swag.IsZero(o.LogLevel) { // not required - return nil - } - - // value enum - if err := o.validateLogLevelEnum("changeQanPostgreSqlPgStatMonitorAgentOk"+"."+"qan_postgresql_pgstatmonitor_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { - return err - } - - return nil -} - -// ContextValidate validates this change QAN postgre SQL pg stat monitor agent OK body QAN postgresql pgstatmonitor agent based on context it is used -func (o *ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgent) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgent) UnmarshalBinary(b []byte) error { - var res ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgent - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeQANPostgreSQLPgStatMonitorAgentParamsBodyCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. -swagger:model ChangeQANPostgreSQLPgStatMonitorAgentParamsBodyCommon -*/ -type ChangeQANPostgreSQLPgStatMonitorAgentParamsBodyCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` - - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - // Can't be used with agent version lower then 2.12 and unsupported agents. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` -} - -// Validate validates this change QAN postgre SQL pg stat monitor agent params body common -func (o *ChangeQANPostgreSQLPgStatMonitorAgentParamsBodyCommon) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change QAN postgre SQL pg stat monitor agent params body common based on context it is used -func (o *ChangeQANPostgreSQLPgStatMonitorAgentParamsBodyCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANPostgreSQLPgStatMonitorAgentParamsBodyCommon) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANPostgreSQLPgStatMonitorAgentParamsBodyCommon) UnmarshalBinary(b []byte) error { - var res ChangeQANPostgreSQLPgStatMonitorAgentParamsBodyCommon - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} diff --git a/api/inventory/v1/json/client/agents_service/change_qan_postgre_sql_pg_statements_agent_parameters.go b/api/inventory/v1/json/client/agents_service/change_qan_postgre_sql_pg_statements_agent_parameters.go deleted file mode 100644 index 810b52c838..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_qan_postgre_sql_pg_statements_agent_parameters.go +++ /dev/null @@ -1,144 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "net/http" - "time" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - cr "github.com/go-openapi/runtime/client" - "github.com/go-openapi/strfmt" -) - -// NewChangeQANPostgreSQLPgStatementsAgentParams creates a new ChangeQANPostgreSQLPgStatementsAgentParams object, -// with the default timeout for this client. -// -// Default values are not hydrated, since defaults are normally applied by the API server side. -// -// To enforce default values in parameter, use SetDefaults or WithDefaults. -func NewChangeQANPostgreSQLPgStatementsAgentParams() *ChangeQANPostgreSQLPgStatementsAgentParams { - return &ChangeQANPostgreSQLPgStatementsAgentParams{ - timeout: cr.DefaultTimeout, - } -} - -// NewChangeQANPostgreSQLPgStatementsAgentParamsWithTimeout creates a new ChangeQANPostgreSQLPgStatementsAgentParams object -// with the ability to set a timeout on a request. -func NewChangeQANPostgreSQLPgStatementsAgentParamsWithTimeout(timeout time.Duration) *ChangeQANPostgreSQLPgStatementsAgentParams { - return &ChangeQANPostgreSQLPgStatementsAgentParams{ - timeout: timeout, - } -} - -// NewChangeQANPostgreSQLPgStatementsAgentParamsWithContext creates a new ChangeQANPostgreSQLPgStatementsAgentParams object -// with the ability to set a context for a request. -func NewChangeQANPostgreSQLPgStatementsAgentParamsWithContext(ctx context.Context) *ChangeQANPostgreSQLPgStatementsAgentParams { - return &ChangeQANPostgreSQLPgStatementsAgentParams{ - Context: ctx, - } -} - -// NewChangeQANPostgreSQLPgStatementsAgentParamsWithHTTPClient creates a new ChangeQANPostgreSQLPgStatementsAgentParams object -// with the ability to set a custom HTTPClient for a request. -func NewChangeQANPostgreSQLPgStatementsAgentParamsWithHTTPClient(client *http.Client) *ChangeQANPostgreSQLPgStatementsAgentParams { - return &ChangeQANPostgreSQLPgStatementsAgentParams{ - HTTPClient: client, - } -} - -/* -ChangeQANPostgreSQLPgStatementsAgentParams contains all the parameters to send to the API endpoint - - for the change QAN postgre SQL pg statements agent operation. - - Typically these are written to a http.Request. -*/ -type ChangeQANPostgreSQLPgStatementsAgentParams struct { - // Body. - Body ChangeQANPostgreSQLPgStatementsAgentBody - - timeout time.Duration - Context context.Context - HTTPClient *http.Client -} - -// WithDefaults hydrates default values in the change QAN postgre SQL pg statements agent params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangeQANPostgreSQLPgStatementsAgentParams) WithDefaults() *ChangeQANPostgreSQLPgStatementsAgentParams { - o.SetDefaults() - return o -} - -// SetDefaults hydrates default values in the change QAN postgre SQL pg statements agent params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangeQANPostgreSQLPgStatementsAgentParams) SetDefaults() { - // no default values defined for this parameter -} - -// WithTimeout adds the timeout to the change QAN postgre SQL pg statements agent params -func (o *ChangeQANPostgreSQLPgStatementsAgentParams) WithTimeout(timeout time.Duration) *ChangeQANPostgreSQLPgStatementsAgentParams { - o.SetTimeout(timeout) - return o -} - -// SetTimeout adds the timeout to the change QAN postgre SQL pg statements agent params -func (o *ChangeQANPostgreSQLPgStatementsAgentParams) SetTimeout(timeout time.Duration) { - o.timeout = timeout -} - -// WithContext adds the context to the change QAN postgre SQL pg statements agent params -func (o *ChangeQANPostgreSQLPgStatementsAgentParams) WithContext(ctx context.Context) *ChangeQANPostgreSQLPgStatementsAgentParams { - o.SetContext(ctx) - return o -} - -// SetContext adds the context to the change QAN postgre SQL pg statements agent params -func (o *ChangeQANPostgreSQLPgStatementsAgentParams) SetContext(ctx context.Context) { - o.Context = ctx -} - -// WithHTTPClient adds the HTTPClient to the change QAN postgre SQL pg statements agent params -func (o *ChangeQANPostgreSQLPgStatementsAgentParams) WithHTTPClient(client *http.Client) *ChangeQANPostgreSQLPgStatementsAgentParams { - o.SetHTTPClient(client) - return o -} - -// SetHTTPClient adds the HTTPClient to the change QAN postgre SQL pg statements agent params -func (o *ChangeQANPostgreSQLPgStatementsAgentParams) SetHTTPClient(client *http.Client) { - o.HTTPClient = client -} - -// WithBody adds the body to the change QAN postgre SQL pg statements agent params -func (o *ChangeQANPostgreSQLPgStatementsAgentParams) WithBody(body ChangeQANPostgreSQLPgStatementsAgentBody) *ChangeQANPostgreSQLPgStatementsAgentParams { - o.SetBody(body) - return o -} - -// SetBody adds the body to the change QAN postgre SQL pg statements agent params -func (o *ChangeQANPostgreSQLPgStatementsAgentParams) SetBody(body ChangeQANPostgreSQLPgStatementsAgentBody) { - o.Body = body -} - -// WriteToRequest writes these params to a swagger request -func (o *ChangeQANPostgreSQLPgStatementsAgentParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { - if err := r.SetTimeout(o.timeout); err != nil { - return err - } - var res []error - if err := r.SetBodyParam(o.Body); err != nil { - return err - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} diff --git a/api/inventory/v1/json/client/agents_service/change_qan_postgre_sql_pg_statements_agent_responses.go b/api/inventory/v1/json/client/agents_service/change_qan_postgre_sql_pg_statements_agent_responses.go deleted file mode 100644 index 89dbdff33b..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_qan_postgre_sql_pg_statements_agent_responses.go +++ /dev/null @@ -1,704 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "encoding/json" - "fmt" - "io" - "strconv" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - "github.com/go-openapi/strfmt" - "github.com/go-openapi/swag" - "github.com/go-openapi/validate" -) - -// ChangeQANPostgreSQLPgStatementsAgentReader is a Reader for the ChangeQANPostgreSQLPgStatementsAgent structure. -type ChangeQANPostgreSQLPgStatementsAgentReader struct { - formats strfmt.Registry -} - -// ReadResponse reads a server response into the received o. -func (o *ChangeQANPostgreSQLPgStatementsAgentReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) { - switch response.Code() { - case 200: - result := NewChangeQANPostgreSQLPgStatementsAgentOK() - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - return result, nil - default: - result := NewChangeQANPostgreSQLPgStatementsAgentDefault(response.Code()) - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - if response.Code()/100 == 2 { - return result, nil - } - return nil, result - } -} - -// NewChangeQANPostgreSQLPgStatementsAgentOK creates a ChangeQANPostgreSQLPgStatementsAgentOK with default headers values -func NewChangeQANPostgreSQLPgStatementsAgentOK() *ChangeQANPostgreSQLPgStatementsAgentOK { - return &ChangeQANPostgreSQLPgStatementsAgentOK{} -} - -/* -ChangeQANPostgreSQLPgStatementsAgentOK describes a response with status code 200, with default header values. - -A successful response. -*/ -type ChangeQANPostgreSQLPgStatementsAgentOK struct { - Payload *ChangeQANPostgreSQLPgStatementsAgentOKBody -} - -func (o *ChangeQANPostgreSQLPgStatementsAgentOK) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangeQANPostgreSQLPgStatementsAgent][%d] changeQanPostgreSqlPgStatementsAgentOk %+v", 200, o.Payload) -} - -func (o *ChangeQANPostgreSQLPgStatementsAgentOK) GetPayload() *ChangeQANPostgreSQLPgStatementsAgentOKBody { - return o.Payload -} - -func (o *ChangeQANPostgreSQLPgStatementsAgentOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangeQANPostgreSQLPgStatementsAgentOKBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -// NewChangeQANPostgreSQLPgStatementsAgentDefault creates a ChangeQANPostgreSQLPgStatementsAgentDefault with default headers values -func NewChangeQANPostgreSQLPgStatementsAgentDefault(code int) *ChangeQANPostgreSQLPgStatementsAgentDefault { - return &ChangeQANPostgreSQLPgStatementsAgentDefault{ - _statusCode: code, - } -} - -/* -ChangeQANPostgreSQLPgStatementsAgentDefault describes a response with status code -1, with default header values. - -An unexpected error response. -*/ -type ChangeQANPostgreSQLPgStatementsAgentDefault struct { - _statusCode int - - Payload *ChangeQANPostgreSQLPgStatementsAgentDefaultBody -} - -// Code gets the status code for the change QAN postgre SQL pg statements agent default response -func (o *ChangeQANPostgreSQLPgStatementsAgentDefault) Code() int { - return o._statusCode -} - -func (o *ChangeQANPostgreSQLPgStatementsAgentDefault) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangeQANPostgreSQLPgStatementsAgent][%d] ChangeQANPostgreSQLPgStatementsAgent default %+v", o._statusCode, o.Payload) -} - -func (o *ChangeQANPostgreSQLPgStatementsAgentDefault) GetPayload() *ChangeQANPostgreSQLPgStatementsAgentDefaultBody { - return o.Payload -} - -func (o *ChangeQANPostgreSQLPgStatementsAgentDefault) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangeQANPostgreSQLPgStatementsAgentDefaultBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -/* -ChangeQANPostgreSQLPgStatementsAgentBody change QAN postgre SQL pg statements agent body -swagger:model ChangeQANPostgreSQLPgStatementsAgentBody -*/ -type ChangeQANPostgreSQLPgStatementsAgentBody struct { - // agent id - AgentID string `json:"agent_id,omitempty"` - - // common - Common *ChangeQANPostgreSQLPgStatementsAgentParamsBodyCommon `json:"common,omitempty"` -} - -// Validate validates this change QAN postgre SQL pg statements agent body -func (o *ChangeQANPostgreSQLPgStatementsAgentBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateCommon(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANPostgreSQLPgStatementsAgentBody) validateCommon(formats strfmt.Registry) error { - if swag.IsZero(o.Common) { // not required - return nil - } - - if o.Common != nil { - if err := o.Common.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change QAN postgre SQL pg statements agent body based on the context it is used -func (o *ChangeQANPostgreSQLPgStatementsAgentBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateCommon(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANPostgreSQLPgStatementsAgentBody) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { - if o.Common != nil { - if err := o.Common.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANPostgreSQLPgStatementsAgentBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANPostgreSQLPgStatementsAgentBody) UnmarshalBinary(b []byte) error { - var res ChangeQANPostgreSQLPgStatementsAgentBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeQANPostgreSQLPgStatementsAgentDefaultBody change QAN postgre SQL pg statements agent default body -swagger:model ChangeQANPostgreSQLPgStatementsAgentDefaultBody -*/ -type ChangeQANPostgreSQLPgStatementsAgentDefaultBody struct { - // code - Code int32 `json:"code,omitempty"` - - // message - Message string `json:"message,omitempty"` - - // details - Details []*ChangeQANPostgreSQLPgStatementsAgentDefaultBodyDetailsItems0 `json:"details"` -} - -// Validate validates this change QAN postgre SQL pg statements agent default body -func (o *ChangeQANPostgreSQLPgStatementsAgentDefaultBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateDetails(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANPostgreSQLPgStatementsAgentDefaultBody) validateDetails(formats strfmt.Registry) error { - if swag.IsZero(o.Details) { // not required - return nil - } - - for i := 0; i < len(o.Details); i++ { - if swag.IsZero(o.Details[i]) { // not required - continue - } - - if o.Details[i] != nil { - if err := o.Details[i].Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangeQANPostgreSQLPgStatementsAgent default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangeQANPostgreSQLPgStatementsAgent default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - - } - - return nil -} - -// ContextValidate validate this change QAN postgre SQL pg statements agent default body based on the context it is used -func (o *ChangeQANPostgreSQLPgStatementsAgentDefaultBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateDetails(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANPostgreSQLPgStatementsAgentDefaultBody) contextValidateDetails(ctx context.Context, formats strfmt.Registry) error { - for i := 0; i < len(o.Details); i++ { - if o.Details[i] != nil { - if err := o.Details[i].ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangeQANPostgreSQLPgStatementsAgent default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangeQANPostgreSQLPgStatementsAgent default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANPostgreSQLPgStatementsAgentDefaultBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANPostgreSQLPgStatementsAgentDefaultBody) UnmarshalBinary(b []byte) error { - var res ChangeQANPostgreSQLPgStatementsAgentDefaultBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeQANPostgreSQLPgStatementsAgentDefaultBodyDetailsItems0 change QAN postgre SQL pg statements agent default body details items0 -swagger:model ChangeQANPostgreSQLPgStatementsAgentDefaultBodyDetailsItems0 -*/ -type ChangeQANPostgreSQLPgStatementsAgentDefaultBodyDetailsItems0 struct { - // at type - AtType string `json:"@type,omitempty"` -} - -// Validate validates this change QAN postgre SQL pg statements agent default body details items0 -func (o *ChangeQANPostgreSQLPgStatementsAgentDefaultBodyDetailsItems0) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change QAN postgre SQL pg statements agent default body details items0 based on context it is used -func (o *ChangeQANPostgreSQLPgStatementsAgentDefaultBodyDetailsItems0) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANPostgreSQLPgStatementsAgentDefaultBodyDetailsItems0) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANPostgreSQLPgStatementsAgentDefaultBodyDetailsItems0) UnmarshalBinary(b []byte) error { - var res ChangeQANPostgreSQLPgStatementsAgentDefaultBodyDetailsItems0 - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeQANPostgreSQLPgStatementsAgentOKBody change QAN postgre SQL pg statements agent OK body -swagger:model ChangeQANPostgreSQLPgStatementsAgentOKBody -*/ -type ChangeQANPostgreSQLPgStatementsAgentOKBody struct { - // qan postgresql pgstatements agent - QANPostgresqlPgstatementsAgent *ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgent `json:"qan_postgresql_pgstatements_agent,omitempty"` -} - -// Validate validates this change QAN postgre SQL pg statements agent OK body -func (o *ChangeQANPostgreSQLPgStatementsAgentOKBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateQANPostgresqlPgstatementsAgent(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANPostgreSQLPgStatementsAgentOKBody) validateQANPostgresqlPgstatementsAgent(formats strfmt.Registry) error { - if swag.IsZero(o.QANPostgresqlPgstatementsAgent) { // not required - return nil - } - - if o.QANPostgresqlPgstatementsAgent != nil { - if err := o.QANPostgresqlPgstatementsAgent.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changeQanPostgreSqlPgStatementsAgentOk" + "." + "qan_postgresql_pgstatements_agent") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changeQanPostgreSqlPgStatementsAgentOk" + "." + "qan_postgresql_pgstatements_agent") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change QAN postgre SQL pg statements agent OK body based on the context it is used -func (o *ChangeQANPostgreSQLPgStatementsAgentOKBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateQANPostgresqlPgstatementsAgent(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeQANPostgreSQLPgStatementsAgentOKBody) contextValidateQANPostgresqlPgstatementsAgent(ctx context.Context, formats strfmt.Registry) error { - if o.QANPostgresqlPgstatementsAgent != nil { - if err := o.QANPostgresqlPgstatementsAgent.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changeQanPostgreSqlPgStatementsAgentOk" + "." + "qan_postgresql_pgstatements_agent") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changeQanPostgreSqlPgStatementsAgentOk" + "." + "qan_postgresql_pgstatements_agent") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANPostgreSQLPgStatementsAgentOKBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANPostgreSQLPgStatementsAgentOKBody) UnmarshalBinary(b []byte) error { - var res ChangeQANPostgreSQLPgStatementsAgentOKBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgent QANPostgreSQLPgStatementsAgent runs within pmm-agent and sends PostgreSQL Query Analytics data to the PMM Server. -swagger:model ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgent -*/ -type ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgent struct { - // Unique randomly generated instance identifier. - AgentID string `json:"agent_id,omitempty"` - - // The pmm-agent identifier which runs this instance. - PMMAgentID string `json:"pmm_agent_id,omitempty"` - - // Desired Agent status: enabled (false) or disabled (true). - Disabled bool `json:"disabled,omitempty"` - - // Service identifier. - ServiceID string `json:"service_id,omitempty"` - - // PostgreSQL username for getting pg stat statements data. - Username string `json:"username,omitempty"` - - // Disable parsing comments from queries and showing them in QAN. - DisableCommentsParsing bool `json:"disable_comments_parsing,omitempty"` - - // Limit query length in QAN (default: server-defined; -1: no limit). - MaxQueryLength int32 `json:"max_query_length,omitempty"` - - // Use TLS for database connections. - TLS bool `json:"tls,omitempty"` - - // Skip TLS certificate and hostname validation. - TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` - - // Custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // AgentStatus represents actual Agent status. - // - // - AGENT_STATUS_STARTING: Agent is starting. - // - AGENT_STATUS_RUNNING: Agent is running. - // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. - // - AGENT_STATUS_STOPPING: Agent is stopping. - // - AGENT_STATUS_DONE: Agent finished. - // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. - // Enum: [AGENT_STATUS_UNSPECIFIED AGENT_STATUS_STARTING AGENT_STATUS_RUNNING AGENT_STATUS_WAITING AGENT_STATUS_STOPPING AGENT_STATUS_DONE AGENT_STATUS_UNKNOWN] - Status *string `json:"status,omitempty"` - - // Path to exec process. - ProcessExecPath string `json:"process_exec_path,omitempty"` - - // Log level for exporters - // - // - LOG_LEVEL_UNSPECIFIED: Auto - // Enum: [LOG_LEVEL_UNSPECIFIED LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARN LOG_LEVEL_INFO LOG_LEVEL_DEBUG] - LogLevel *string `json:"log_level,omitempty"` -} - -// Validate validates this change QAN postgre SQL pg statements agent OK body QAN postgresql pgstatements agent -func (o *ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgent) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateStatus(formats); err != nil { - res = append(res, err) - } - - if err := o.validateLogLevel(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -var changeQanPostgreSqlPgStatementsAgentOkBodyQanPostgresqlPgstatementsAgentTypeStatusPropEnum []interface{} - -func init() { - var res []string - if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { - panic(err) - } - for _, v := range res { - changeQanPostgreSqlPgStatementsAgentOkBodyQanPostgresqlPgstatementsAgentTypeStatusPropEnum = append(changeQanPostgreSqlPgStatementsAgentOkBodyQanPostgresqlPgstatementsAgentTypeStatusPropEnum, v) - } -} - -const ( - - // ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" - ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" - - // ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" - ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" - - // ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" - ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" - - // ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" - ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" - - // ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" - ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" - - // ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" - ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" - - // ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" - ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" -) - -// prop value enum -func (o *ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgent) validateStatusEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeQanPostgreSqlPgStatementsAgentOkBodyQanPostgresqlPgstatementsAgentTypeStatusPropEnum, true); err != nil { - return err - } - return nil -} - -func (o *ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgent) validateStatus(formats strfmt.Registry) error { - if swag.IsZero(o.Status) { // not required - return nil - } - - // value enum - if err := o.validateStatusEnum("changeQanPostgreSqlPgStatementsAgentOk"+"."+"qan_postgresql_pgstatements_agent"+"."+"status", "body", *o.Status); err != nil { - return err - } - - return nil -} - -var changeQanPostgreSqlPgStatementsAgentOkBodyQanPostgresqlPgstatementsAgentTypeLogLevelPropEnum []interface{} - -func init() { - var res []string - if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { - panic(err) - } - for _, v := range res { - changeQanPostgreSqlPgStatementsAgentOkBodyQanPostgresqlPgstatementsAgentTypeLogLevelPropEnum = append(changeQanPostgreSqlPgStatementsAgentOkBodyQanPostgresqlPgstatementsAgentTypeLogLevelPropEnum, v) - } -} - -const ( - - // ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" - ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" - - // ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" - ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" - - // ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" - ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" - - // ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" - ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" - - // ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" - ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" - - // ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" - ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" -) - -// prop value enum -func (o *ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgent) validateLogLevelEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeQanPostgreSqlPgStatementsAgentOkBodyQanPostgresqlPgstatementsAgentTypeLogLevelPropEnum, true); err != nil { - return err - } - return nil -} - -func (o *ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgent) validateLogLevel(formats strfmt.Registry) error { - if swag.IsZero(o.LogLevel) { // not required - return nil - } - - // value enum - if err := o.validateLogLevelEnum("changeQanPostgreSqlPgStatementsAgentOk"+"."+"qan_postgresql_pgstatements_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { - return err - } - - return nil -} - -// ContextValidate validates this change QAN postgre SQL pg statements agent OK body QAN postgresql pgstatements agent based on context it is used -func (o *ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgent) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgent) UnmarshalBinary(b []byte) error { - var res ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgent - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeQANPostgreSQLPgStatementsAgentParamsBodyCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. -swagger:model ChangeQANPostgreSQLPgStatementsAgentParamsBodyCommon -*/ -type ChangeQANPostgreSQLPgStatementsAgentParamsBodyCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` - - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - // Can't be used with agent version lower then 2.12 and unsupported agents. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` -} - -// Validate validates this change QAN postgre SQL pg statements agent params body common -func (o *ChangeQANPostgreSQLPgStatementsAgentParamsBodyCommon) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change QAN postgre SQL pg statements agent params body common based on context it is used -func (o *ChangeQANPostgreSQLPgStatementsAgentParamsBodyCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeQANPostgreSQLPgStatementsAgentParamsBodyCommon) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeQANPostgreSQLPgStatementsAgentParamsBodyCommon) UnmarshalBinary(b []byte) error { - var res ChangeQANPostgreSQLPgStatementsAgentParamsBodyCommon - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} diff --git a/api/inventory/v1/json/client/agents_service/change_rds_exporter_parameters.go b/api/inventory/v1/json/client/agents_service/change_rds_exporter_parameters.go deleted file mode 100644 index e72c5cb4db..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_rds_exporter_parameters.go +++ /dev/null @@ -1,144 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "net/http" - "time" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - cr "github.com/go-openapi/runtime/client" - "github.com/go-openapi/strfmt" -) - -// NewChangeRDSExporterParams creates a new ChangeRDSExporterParams object, -// with the default timeout for this client. -// -// Default values are not hydrated, since defaults are normally applied by the API server side. -// -// To enforce default values in parameter, use SetDefaults or WithDefaults. -func NewChangeRDSExporterParams() *ChangeRDSExporterParams { - return &ChangeRDSExporterParams{ - timeout: cr.DefaultTimeout, - } -} - -// NewChangeRDSExporterParamsWithTimeout creates a new ChangeRDSExporterParams object -// with the ability to set a timeout on a request. -func NewChangeRDSExporterParamsWithTimeout(timeout time.Duration) *ChangeRDSExporterParams { - return &ChangeRDSExporterParams{ - timeout: timeout, - } -} - -// NewChangeRDSExporterParamsWithContext creates a new ChangeRDSExporterParams object -// with the ability to set a context for a request. -func NewChangeRDSExporterParamsWithContext(ctx context.Context) *ChangeRDSExporterParams { - return &ChangeRDSExporterParams{ - Context: ctx, - } -} - -// NewChangeRDSExporterParamsWithHTTPClient creates a new ChangeRDSExporterParams object -// with the ability to set a custom HTTPClient for a request. -func NewChangeRDSExporterParamsWithHTTPClient(client *http.Client) *ChangeRDSExporterParams { - return &ChangeRDSExporterParams{ - HTTPClient: client, - } -} - -/* -ChangeRDSExporterParams contains all the parameters to send to the API endpoint - - for the change RDS exporter operation. - - Typically these are written to a http.Request. -*/ -type ChangeRDSExporterParams struct { - // Body. - Body ChangeRDSExporterBody - - timeout time.Duration - Context context.Context - HTTPClient *http.Client -} - -// WithDefaults hydrates default values in the change RDS exporter params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangeRDSExporterParams) WithDefaults() *ChangeRDSExporterParams { - o.SetDefaults() - return o -} - -// SetDefaults hydrates default values in the change RDS exporter params (not the query body). -// -// All values with no default are reset to their zero value. -func (o *ChangeRDSExporterParams) SetDefaults() { - // no default values defined for this parameter -} - -// WithTimeout adds the timeout to the change RDS exporter params -func (o *ChangeRDSExporterParams) WithTimeout(timeout time.Duration) *ChangeRDSExporterParams { - o.SetTimeout(timeout) - return o -} - -// SetTimeout adds the timeout to the change RDS exporter params -func (o *ChangeRDSExporterParams) SetTimeout(timeout time.Duration) { - o.timeout = timeout -} - -// WithContext adds the context to the change RDS exporter params -func (o *ChangeRDSExporterParams) WithContext(ctx context.Context) *ChangeRDSExporterParams { - o.SetContext(ctx) - return o -} - -// SetContext adds the context to the change RDS exporter params -func (o *ChangeRDSExporterParams) SetContext(ctx context.Context) { - o.Context = ctx -} - -// WithHTTPClient adds the HTTPClient to the change RDS exporter params -func (o *ChangeRDSExporterParams) WithHTTPClient(client *http.Client) *ChangeRDSExporterParams { - o.SetHTTPClient(client) - return o -} - -// SetHTTPClient adds the HTTPClient to the change RDS exporter params -func (o *ChangeRDSExporterParams) SetHTTPClient(client *http.Client) { - o.HTTPClient = client -} - -// WithBody adds the body to the change RDS exporter params -func (o *ChangeRDSExporterParams) WithBody(body ChangeRDSExporterBody) *ChangeRDSExporterParams { - o.SetBody(body) - return o -} - -// SetBody adds the body to the change RDS exporter params -func (o *ChangeRDSExporterParams) SetBody(body ChangeRDSExporterBody) { - o.Body = body -} - -// WriteToRequest writes these params to a swagger request -func (o *ChangeRDSExporterParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { - if err := r.SetTimeout(o.timeout); err != nil { - return err - } - var res []error - if err := r.SetBodyParam(o.Body); err != nil { - return err - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} diff --git a/api/inventory/v1/json/client/agents_service/change_rds_exporter_responses.go b/api/inventory/v1/json/client/agents_service/change_rds_exporter_responses.go deleted file mode 100644 index 7240002b15..0000000000 --- a/api/inventory/v1/json/client/agents_service/change_rds_exporter_responses.go +++ /dev/null @@ -1,707 +0,0 @@ -// Code generated by go-swagger; DO NOT EDIT. - -package agents_service - -// This file was generated by the swagger tool. -// Editing this file might prove futile when you re-run the swagger generate command - -import ( - "context" - "encoding/json" - "fmt" - "io" - "strconv" - - "github.com/go-openapi/errors" - "github.com/go-openapi/runtime" - "github.com/go-openapi/strfmt" - "github.com/go-openapi/swag" - "github.com/go-openapi/validate" -) - -// ChangeRDSExporterReader is a Reader for the ChangeRDSExporter structure. -type ChangeRDSExporterReader struct { - formats strfmt.Registry -} - -// ReadResponse reads a server response into the received o. -func (o *ChangeRDSExporterReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) { - switch response.Code() { - case 200: - result := NewChangeRDSExporterOK() - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - return result, nil - default: - result := NewChangeRDSExporterDefault(response.Code()) - if err := result.readResponse(response, consumer, o.formats); err != nil { - return nil, err - } - if response.Code()/100 == 2 { - return result, nil - } - return nil, result - } -} - -// NewChangeRDSExporterOK creates a ChangeRDSExporterOK with default headers values -func NewChangeRDSExporterOK() *ChangeRDSExporterOK { - return &ChangeRDSExporterOK{} -} - -/* -ChangeRDSExporterOK describes a response with status code 200, with default header values. - -A successful response. -*/ -type ChangeRDSExporterOK struct { - Payload *ChangeRDSExporterOKBody -} - -func (o *ChangeRDSExporterOK) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangeRDSExporter][%d] changeRdsExporterOk %+v", 200, o.Payload) -} - -func (o *ChangeRDSExporterOK) GetPayload() *ChangeRDSExporterOKBody { - return o.Payload -} - -func (o *ChangeRDSExporterOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangeRDSExporterOKBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -// NewChangeRDSExporterDefault creates a ChangeRDSExporterDefault with default headers values -func NewChangeRDSExporterDefault(code int) *ChangeRDSExporterDefault { - return &ChangeRDSExporterDefault{ - _statusCode: code, - } -} - -/* -ChangeRDSExporterDefault describes a response with status code -1, with default header values. - -An unexpected error response. -*/ -type ChangeRDSExporterDefault struct { - _statusCode int - - Payload *ChangeRDSExporterDefaultBody -} - -// Code gets the status code for the change RDS exporter default response -func (o *ChangeRDSExporterDefault) Code() int { - return o._statusCode -} - -func (o *ChangeRDSExporterDefault) Error() string { - return fmt.Sprintf("[POST /v1/inventory/Agents/ChangeRDSExporter][%d] ChangeRDSExporter default %+v", o._statusCode, o.Payload) -} - -func (o *ChangeRDSExporterDefault) GetPayload() *ChangeRDSExporterDefaultBody { - return o.Payload -} - -func (o *ChangeRDSExporterDefault) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { - o.Payload = new(ChangeRDSExporterDefaultBody) - - // response payload - if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { - return err - } - - return nil -} - -/* -ChangeRDSExporterBody change RDS exporter body -swagger:model ChangeRDSExporterBody -*/ -type ChangeRDSExporterBody struct { - // agent id - AgentID string `json:"agent_id,omitempty"` - - // common - Common *ChangeRDSExporterParamsBodyCommon `json:"common,omitempty"` -} - -// Validate validates this change RDS exporter body -func (o *ChangeRDSExporterBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateCommon(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeRDSExporterBody) validateCommon(formats strfmt.Registry) error { - if swag.IsZero(o.Common) { // not required - return nil - } - - if o.Common != nil { - if err := o.Common.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change RDS exporter body based on the context it is used -func (o *ChangeRDSExporterBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateCommon(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeRDSExporterBody) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { - if o.Common != nil { - if err := o.Common.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "common") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "common") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeRDSExporterBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeRDSExporterBody) UnmarshalBinary(b []byte) error { - var res ChangeRDSExporterBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeRDSExporterDefaultBody change RDS exporter default body -swagger:model ChangeRDSExporterDefaultBody -*/ -type ChangeRDSExporterDefaultBody struct { - // code - Code int32 `json:"code,omitempty"` - - // message - Message string `json:"message,omitempty"` - - // details - Details []*ChangeRDSExporterDefaultBodyDetailsItems0 `json:"details"` -} - -// Validate validates this change RDS exporter default body -func (o *ChangeRDSExporterDefaultBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateDetails(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeRDSExporterDefaultBody) validateDetails(formats strfmt.Registry) error { - if swag.IsZero(o.Details) { // not required - return nil - } - - for i := 0; i < len(o.Details); i++ { - if swag.IsZero(o.Details[i]) { // not required - continue - } - - if o.Details[i] != nil { - if err := o.Details[i].Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangeRDSExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangeRDSExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - - } - - return nil -} - -// ContextValidate validate this change RDS exporter default body based on the context it is used -func (o *ChangeRDSExporterDefaultBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateDetails(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeRDSExporterDefaultBody) contextValidateDetails(ctx context.Context, formats strfmt.Registry) error { - for i := 0; i < len(o.Details); i++ { - if o.Details[i] != nil { - if err := o.Details[i].ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("ChangeRDSExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("ChangeRDSExporter default" + "." + "details" + "." + strconv.Itoa(i)) - } - return err - } - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeRDSExporterDefaultBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeRDSExporterDefaultBody) UnmarshalBinary(b []byte) error { - var res ChangeRDSExporterDefaultBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeRDSExporterDefaultBodyDetailsItems0 change RDS exporter default body details items0 -swagger:model ChangeRDSExporterDefaultBodyDetailsItems0 -*/ -type ChangeRDSExporterDefaultBodyDetailsItems0 struct { - // at type - AtType string `json:"@type,omitempty"` -} - -// Validate validates this change RDS exporter default body details items0 -func (o *ChangeRDSExporterDefaultBodyDetailsItems0) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change RDS exporter default body details items0 based on context it is used -func (o *ChangeRDSExporterDefaultBodyDetailsItems0) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeRDSExporterDefaultBodyDetailsItems0) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeRDSExporterDefaultBodyDetailsItems0) UnmarshalBinary(b []byte) error { - var res ChangeRDSExporterDefaultBodyDetailsItems0 - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeRDSExporterOKBody change RDS exporter OK body -swagger:model ChangeRDSExporterOKBody -*/ -type ChangeRDSExporterOKBody struct { - // rds exporter - RDSExporter *ChangeRDSExporterOKBodyRDSExporter `json:"rds_exporter,omitempty"` -} - -// Validate validates this change RDS exporter OK body -func (o *ChangeRDSExporterOKBody) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateRDSExporter(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeRDSExporterOKBody) validateRDSExporter(formats strfmt.Registry) error { - if swag.IsZero(o.RDSExporter) { // not required - return nil - } - - if o.RDSExporter != nil { - if err := o.RDSExporter.Validate(formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changeRdsExporterOk" + "." + "rds_exporter") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changeRdsExporterOk" + "." + "rds_exporter") - } - return err - } - } - - return nil -} - -// ContextValidate validate this change RDS exporter OK body based on the context it is used -func (o *ChangeRDSExporterOKBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - var res []error - - if err := o.contextValidateRDSExporter(ctx, formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -func (o *ChangeRDSExporterOKBody) contextValidateRDSExporter(ctx context.Context, formats strfmt.Registry) error { - if o.RDSExporter != nil { - if err := o.RDSExporter.ContextValidate(ctx, formats); err != nil { - if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("changeRdsExporterOk" + "." + "rds_exporter") - } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("changeRdsExporterOk" + "." + "rds_exporter") - } - return err - } - } - - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeRDSExporterOKBody) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeRDSExporterOKBody) UnmarshalBinary(b []byte) error { - var res ChangeRDSExporterOKBody - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeRDSExporterOKBodyRDSExporter RDSExporter runs on Generic or Container Node and exposes RemoteRDS Node metrics. -swagger:model ChangeRDSExporterOKBodyRDSExporter -*/ -type ChangeRDSExporterOKBodyRDSExporter struct { - // Unique randomly generated instance identifier. - AgentID string `json:"agent_id,omitempty"` - - // The pmm-agent identifier which runs this instance. - PMMAgentID string `json:"pmm_agent_id,omitempty"` - - // Desired Agent status: enabled (false) or disabled (true). - Disabled bool `json:"disabled,omitempty"` - - // Node identifier. - NodeID string `json:"node_id,omitempty"` - - // AWS Access Key. - AWSAccessKey string `json:"aws_access_key,omitempty"` - - // Custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // AgentStatus represents actual Agent status. - // - // - AGENT_STATUS_STARTING: Agent is starting. - // - AGENT_STATUS_RUNNING: Agent is running. - // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. - // - AGENT_STATUS_STOPPING: Agent is stopping. - // - AGENT_STATUS_DONE: Agent finished. - // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. - // Enum: [AGENT_STATUS_UNSPECIFIED AGENT_STATUS_STARTING AGENT_STATUS_RUNNING AGENT_STATUS_WAITING AGENT_STATUS_STOPPING AGENT_STATUS_DONE AGENT_STATUS_UNKNOWN] - Status *string `json:"status,omitempty"` - - // Listen port for scraping metrics (the same for several configurations). - ListenPort int64 `json:"listen_port,omitempty"` - - // Basic metrics are disabled. - BasicMetricsDisabled bool `json:"basic_metrics_disabled,omitempty"` - - // Enhanced metrics are disabled. - EnhancedMetricsDisabled bool `json:"enhanced_metrics_disabled,omitempty"` - - // True if exporter uses push metrics mode. - PushMetricsEnabled bool `json:"push_metrics_enabled,omitempty"` - - // Path to exec process. - ProcessExecPath string `json:"process_exec_path,omitempty"` - - // Log level for exporters - // - // - LOG_LEVEL_UNSPECIFIED: Auto - // Enum: [LOG_LEVEL_UNSPECIFIED LOG_LEVEL_FATAL LOG_LEVEL_ERROR LOG_LEVEL_WARN LOG_LEVEL_INFO LOG_LEVEL_DEBUG] - LogLevel *string `json:"log_level,omitempty"` - - // Limit of databases for auto-discovery. - AutoDiscoveryLimit int32 `json:"auto_discovery_limit,omitempty"` -} - -// Validate validates this change RDS exporter OK body RDS exporter -func (o *ChangeRDSExporterOKBodyRDSExporter) Validate(formats strfmt.Registry) error { - var res []error - - if err := o.validateStatus(formats); err != nil { - res = append(res, err) - } - - if err := o.validateLogLevel(formats); err != nil { - res = append(res, err) - } - - if len(res) > 0 { - return errors.CompositeValidationError(res...) - } - return nil -} - -var changeRdsExporterOkBodyRdsExporterTypeStatusPropEnum []interface{} - -func init() { - var res []string - if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { - panic(err) - } - for _, v := range res { - changeRdsExporterOkBodyRdsExporterTypeStatusPropEnum = append(changeRdsExporterOkBodyRdsExporterTypeStatusPropEnum, v) - } -} - -const ( - - // ChangeRDSExporterOKBodyRDSExporterStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" - ChangeRDSExporterOKBodyRDSExporterStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" - - // ChangeRDSExporterOKBodyRDSExporterStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" - ChangeRDSExporterOKBodyRDSExporterStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" - - // ChangeRDSExporterOKBodyRDSExporterStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" - ChangeRDSExporterOKBodyRDSExporterStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" - - // ChangeRDSExporterOKBodyRDSExporterStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" - ChangeRDSExporterOKBodyRDSExporterStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" - - // ChangeRDSExporterOKBodyRDSExporterStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" - ChangeRDSExporterOKBodyRDSExporterStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" - - // ChangeRDSExporterOKBodyRDSExporterStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" - ChangeRDSExporterOKBodyRDSExporterStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" - - // ChangeRDSExporterOKBodyRDSExporterStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" - ChangeRDSExporterOKBodyRDSExporterStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" -) - -// prop value enum -func (o *ChangeRDSExporterOKBodyRDSExporter) validateStatusEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeRdsExporterOkBodyRdsExporterTypeStatusPropEnum, true); err != nil { - return err - } - return nil -} - -func (o *ChangeRDSExporterOKBodyRDSExporter) validateStatus(formats strfmt.Registry) error { - if swag.IsZero(o.Status) { // not required - return nil - } - - // value enum - if err := o.validateStatusEnum("changeRdsExporterOk"+"."+"rds_exporter"+"."+"status", "body", *o.Status); err != nil { - return err - } - - return nil -} - -var changeRdsExporterOkBodyRdsExporterTypeLogLevelPropEnum []interface{} - -func init() { - var res []string - if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { - panic(err) - } - for _, v := range res { - changeRdsExporterOkBodyRdsExporterTypeLogLevelPropEnum = append(changeRdsExporterOkBodyRdsExporterTypeLogLevelPropEnum, v) - } -} - -const ( - - // ChangeRDSExporterOKBodyRDSExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" - ChangeRDSExporterOKBodyRDSExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" - - // ChangeRDSExporterOKBodyRDSExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" - ChangeRDSExporterOKBodyRDSExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" - - // ChangeRDSExporterOKBodyRDSExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" - ChangeRDSExporterOKBodyRDSExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" - - // ChangeRDSExporterOKBodyRDSExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" - ChangeRDSExporterOKBodyRDSExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" - - // ChangeRDSExporterOKBodyRDSExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" - ChangeRDSExporterOKBodyRDSExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" - - // ChangeRDSExporterOKBodyRDSExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" - ChangeRDSExporterOKBodyRDSExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" -) - -// prop value enum -func (o *ChangeRDSExporterOKBodyRDSExporter) validateLogLevelEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeRdsExporterOkBodyRdsExporterTypeLogLevelPropEnum, true); err != nil { - return err - } - return nil -} - -func (o *ChangeRDSExporterOKBodyRDSExporter) validateLogLevel(formats strfmt.Registry) error { - if swag.IsZero(o.LogLevel) { // not required - return nil - } - - // value enum - if err := o.validateLogLevelEnum("changeRdsExporterOk"+"."+"rds_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { - return err - } - - return nil -} - -// ContextValidate validates this change RDS exporter OK body RDS exporter based on context it is used -func (o *ChangeRDSExporterOKBodyRDSExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeRDSExporterOKBodyRDSExporter) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeRDSExporterOKBodyRDSExporter) UnmarshalBinary(b []byte) error { - var res ChangeRDSExporterOKBodyRDSExporter - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeRDSExporterParamsBodyCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. -swagger:model ChangeRDSExporterParamsBodyCommon -*/ -type ChangeRDSExporterParamsBodyCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` - - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - // Can't be used with agent version lower then 2.12 and unsupported agents. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` -} - -// Validate validates this change RDS exporter params body common -func (o *ChangeRDSExporterParamsBodyCommon) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change RDS exporter params body common based on context it is used -func (o *ChangeRDSExporterParamsBodyCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeRDSExporterParamsBodyCommon) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeRDSExporterParamsBodyCommon) UnmarshalBinary(b []byte) error { - var res ChangeRDSExporterParamsBodyCommon - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} diff --git a/api/inventory/v1/json/v1.json b/api/inventory/v1/json/v1.json index cd21aac591..d51099a62a 100644 --- a/api/inventory/v1/json/v1.json +++ b/api/inventory/v1/json/v1.json @@ -17,7 +17,7 @@ "paths": { "/v1/inventory/Agents/Add": { "post": { - "description": "Adds an Agent from Inventory.", + "description": "Adds an Agent to Inventory.", "tags": [ "AgentsService" ], @@ -2659,14 +2659,14 @@ } } }, - "/v1/inventory/Agents/ChangeAzureDatabaseExporter": { + "/v1/inventory/Agents/Change": { "post": { - "description": "Changes azure_database_exporter Agent.", + "description": "Updates an Agent in Inventory.", "tags": [ "AgentsService" ], - "summary": "Change Azure Database Exporter", - "operationId": "ChangeAzureDatabaseExporter", + "summary": "Update an Agent in Inventory", + "operationId": "ChangeAgent", "parameters": [ { "name": "body", @@ -2675,49 +2675,655 @@ "schema": { "type": "object", "properties": { - "agent_id": { - "type": "string", + "azure_database_exporter": { + "type": "object", + "properties": { + "agent_id": { + "type": "string", + "x-order": 0 + }, + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "type": "object", + "properties": { + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + }, + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + } + }, + "x-order": 1 + } + }, + "x-order": 7 + }, + "external_exporter": { + "type": "object", + "properties": { + "agent_id": { + "type": "string", + "x-order": 0 + }, + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "type": "object", + "properties": { + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + }, + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + } + }, + "x-order": 1 + } + }, + "x-order": 5 + }, + "mongodb_exporter": { + "type": "object", + "properties": { + "agent_id": { + "type": "string", + "x-order": 0 + }, + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "type": "object", + "properties": { + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + }, + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + } + }, + "x-order": 1 + } + }, + "x-order": 2 + }, + "mysqld_exporter": { + "type": "object", + "properties": { + "agent_id": { + "type": "string", + "x-order": 0 + }, + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "type": "object", + "properties": { + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + }, + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + } + }, + "x-order": 1 + } + }, + "x-order": 1 + }, + "node_exporter": { + "type": "object", + "properties": { + "agent_id": { + "type": "string", + "x-order": 0 + }, + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "type": "object", + "properties": { + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + }, + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + } + }, + "x-order": 1 + } + }, "x-order": 0 }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "postgres_exporter": { "type": "object", "properties": { - "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "agent_id": { + "type": "string", + "x-order": 0 + }, + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + }, + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + } }, - "x-order": 2 + "x-order": 1 + } + }, + "x-order": 3 + }, + "proxysql_exporter": { + "type": "object", + "properties": { + "agent_id": { + "type": "string", + "x-order": 0 }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "type": "object", + "properties": { + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + }, + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + } + }, "x-order": 1 + } + }, + "x-order": 4 + }, + "qan_mongodb_profiler_agent": { + "type": "object", + "properties": { + "agent_id": { + "type": "string", + "x-order": 0 }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "type": "object", + "properties": { + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + }, + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + } + }, + "x-order": 1 + } + }, + "x-order": 10 + }, + "qan_mysql_perfschema_agent": { + "type": "object", + "properties": { + "agent_id": { + "type": "string", + "x-order": 0 }, - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", - "type": "boolean", + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "type": "object", + "properties": { + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + }, + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + } + }, + "x-order": 1 + } + }, + "x-order": 8 + }, + "qan_mysql_slowlog_agent": { + "type": "object", + "properties": { + "agent_id": { + "type": "string", "x-order": 0 }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", - "type": "boolean", - "x-order": 4 + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "type": "object", + "properties": { + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + }, + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + } + }, + "x-order": 1 + } + }, + "x-order": 9 + }, + "qan_postgresql_pgstatements_agent": { + "type": "object", + "properties": { + "agent_id": { + "type": "string", + "x-order": 0 }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 3 + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "type": "object", + "properties": { + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + }, + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + } + }, + "x-order": 1 } }, - "x-order": 1 + "x-order": 11 + }, + "qan_postgresql_pgstatmonitor_agent": { + "type": "object", + "properties": { + "agent_id": { + "type": "string", + "x-order": 0 + }, + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "type": "object", + "properties": { + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + }, + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + } + }, + "x-order": 1 + } + }, + "x-order": 12 + }, + "rds_exporter": { + "type": "object", + "properties": { + "agent_id": { + "type": "string", + "x-order": 0 + }, + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "type": "object", + "properties": { + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + }, + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + } + }, + "x-order": 1 + } + }, + "x-order": 6 } } } @@ -2818,115 +3424,8 @@ "x-order": 7 } }, - "x-order": 0 - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "x-order": 0 - }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "x-order": 0 - } - }, - "additionalProperties": false - }, - "x-order": 2 - }, - "message": { - "type": "string", - "x-order": 1 - } - } - } - } - } - } - }, - "/v1/inventory/Agents/ChangeExternalExporter": { - "post": { - "description": "Changes external_exporter Agent.", - "tags": [ - "AgentsService" - ], - "summary": "Change External Exporter", - "operationId": "ChangeExternalExporter", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "x-order": 0 + "x-order": 7 }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", - "type": "object", - "properties": { - "custom_labels": { - "description": "Replace all custom user-assigned labels.", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-order": 2 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - }, - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", - "type": "boolean", - "x-order": 0 - }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", - "type": "boolean", - "x-order": 4 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 3 - } - }, - "x-order": 1 - } - } - } - } - ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object", - "properties": { "external_exporter": { "description": "ExternalExporter runs on any Node type, including Remote Node.", "type": "object", @@ -2991,115 +3490,8 @@ "x-order": 4 } }, - "x-order": 0 - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "x-order": 0 - }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "x-order": 0 - } - }, - "additionalProperties": false - }, - "x-order": 2 - }, - "message": { - "type": "string", - "x-order": 1 - } - } - } - } - } - } - }, - "/v1/inventory/Agents/ChangeMongoDBExporter": { - "post": { - "description": "Changes mongodb_exporter Agent.", - "tags": [ - "AgentsService" - ], - "summary": "Change MongoDB Exporter", - "operationId": "ChangeMongoDBExporter", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "x-order": 0 + "x-order": 5 }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", - "type": "object", - "properties": { - "custom_labels": { - "description": "Replace all custom user-assigned labels.", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-order": 2 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - }, - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", - "type": "boolean", - "x-order": 0 - }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", - "type": "boolean", - "x-order": 4 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 3 - } - }, - "x-order": 1 - } - } - } - } - ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object", - "properties": { "mongodb_exporter": { "description": "MongoDBExporter runs on Generic or Container Node and exposes MongoDB Service metrics.", "type": "object", @@ -3156,625 +3548,80 @@ "description": "- LOG_LEVEL_UNSPECIFIED: Auto", "type": "string", "title": "Log level for exporters", - "default": "LOG_LEVEL_UNSPECIFIED", - "enum": [ - "LOG_LEVEL_UNSPECIFIED", - "LOG_LEVEL_FATAL", - "LOG_LEVEL_ERROR", - "LOG_LEVEL_WARN", - "LOG_LEVEL_INFO", - "LOG_LEVEL_DEBUG" - ], - "x-order": 16 - }, - "pmm_agent_id": { - "description": "The pmm-agent identifier which runs this instance.", - "type": "string", - "x-order": 1 - }, - "process_exec_path": { - "description": "Path to exec process.", - "type": "string", - "x-order": 15 - }, - "push_metrics_enabled": { - "description": "True if exporter uses push metrics mode.", - "type": "boolean", - "x-order": 8 - }, - "service_id": { - "description": "Service identifier.", - "type": "string", - "x-order": 3 - }, - "stats_collections": { - "type": "array", - "title": "List of colletions to get stats from. Can use *", - "items": { - "type": "string" - }, - "x-order": 12 - }, - "status": { - "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent finished.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", - "type": "string", - "default": "AGENT_STATUS_UNSPECIFIED", - "enum": [ - "AGENT_STATUS_UNSPECIFIED", - "AGENT_STATUS_STARTING", - "AGENT_STATUS_RUNNING", - "AGENT_STATUS_WAITING", - "AGENT_STATUS_STOPPING", - "AGENT_STATUS_DONE", - "AGENT_STATUS_UNKNOWN" - ], - "x-order": 10 - }, - "tls": { - "description": "Use TLS for database connections.", - "type": "boolean", - "x-order": 5 - }, - "tls_skip_verify": { - "description": "Skip TLS certificate and hostname validation.", - "type": "boolean", - "x-order": 6 - }, - "username": { - "description": "MongoDB username for scraping metrics.", - "type": "string", - "x-order": 4 - } - }, - "x-order": 0 - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "x-order": 0 - }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "x-order": 0 - } - }, - "additionalProperties": false - }, - "x-order": 2 - }, - "message": { - "type": "string", - "x-order": 1 - } - } - } - } - } - } - }, - "/v1/inventory/Agents/ChangeMySQLdExporter": { - "post": { - "description": "Changes mysqld_exporter Agent.", - "tags": [ - "AgentsService" - ], - "summary": "Change mysqld Exporter", - "operationId": "ChangeMySQLdExporter", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "x-order": 0 - }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", - "type": "object", - "properties": { - "custom_labels": { - "description": "Replace all custom user-assigned labels.", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-order": 2 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - }, - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", - "type": "boolean", - "x-order": 0 - }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", - "type": "boolean", - "x-order": 4 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 3 - } - }, - "x-order": 1 - } - } - } - } - ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object", - "properties": { - "mysqld_exporter": { - "description": "MySQLdExporter runs on Generic or Container Node and exposes MySQL Service metrics.", - "type": "object", - "properties": { - "agent_id": { - "description": "Unique randomly generated instance identifier.", - "type": "string", - "x-order": 0 - }, - "custom_labels": { - "description": "Custom user-assigned labels.", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-order": 11 - }, - "disabled": { - "description": "Desired Agent status: enabled (false) or disabled (true).", - "type": "boolean", - "x-order": 2 - }, - "disabled_collectors": { - "description": "List of disabled collector names.", - "type": "array", - "items": { - "type": "string" - }, - "x-order": 13 - }, - "expose_exporter": { - "type": "boolean", - "title": "Optionally expose the exporter process on all public interfaces", - "x-order": 19 - }, - "listen_port": { - "description": "Listen port for scraping metrics.", - "type": "integer", - "format": "int64", - "x-order": 15 - }, - "log_level": { - "description": "- LOG_LEVEL_UNSPECIFIED: Auto", - "type": "string", - "title": "Log level for exporters", - "default": "LOG_LEVEL_UNSPECIFIED", - "enum": [ - "LOG_LEVEL_UNSPECIFIED", - "LOG_LEVEL_FATAL", - "LOG_LEVEL_ERROR", - "LOG_LEVEL_WARN", - "LOG_LEVEL_INFO", - "LOG_LEVEL_DEBUG" - ], - "x-order": 18 - }, - "pmm_agent_id": { - "description": "The pmm-agent identifier which runs this instance.", - "type": "string", - "x-order": 1 - }, - "process_exec_path": { - "description": "Path to exec process.", - "type": "string", - "x-order": 17 - }, - "push_metrics_enabled": { - "description": "True if exporter uses push metrics mode.", - "type": "boolean", - "x-order": 12 - }, - "service_id": { - "description": "Service identifier.", - "type": "string", - "x-order": 3 - }, - "status": { - "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent finished.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", - "type": "string", - "default": "AGENT_STATUS_UNSPECIFIED", - "enum": [ - "AGENT_STATUS_UNSPECIFIED", - "AGENT_STATUS_STARTING", - "AGENT_STATUS_RUNNING", - "AGENT_STATUS_WAITING", - "AGENT_STATUS_STOPPING", - "AGENT_STATUS_DONE", - "AGENT_STATUS_UNKNOWN" - ], - "x-order": 14 - }, - "tablestats_group_disabled": { - "description": "True if tablestats group collectors are currently disabled.", - "type": "boolean", - "x-order": 16 - }, - "tablestats_group_table_limit": { - "description": "Tablestats group collectors are disabled if there are more than that number of tables.\n0 means tablestats group collectors are always enabled (no limit).\nNegative value means tablestats group collectors are always disabled.", - "type": "integer", - "format": "int32", - "x-order": 10 - }, - "tls": { - "description": "Use TLS for database connections.", - "type": "boolean", - "x-order": 5 - }, - "tls_ca": { - "description": "Certificate Authority certificate chain.", - "type": "string", - "x-order": 7 - }, - "tls_cert": { - "description": "Client certificate.", - "type": "string", - "x-order": 8 - }, - "tls_key": { - "description": "Password for decrypting tls_cert.", - "type": "string", - "x-order": 9 - }, - "tls_skip_verify": { - "description": "Skip TLS certificate and hostname validation.", - "type": "boolean", - "x-order": 6 - }, - "username": { - "description": "MySQL username for scraping metrics.", - "type": "string", - "x-order": 4 - } - }, - "x-order": 0 - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "x-order": 0 - }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "x-order": 0 - } - }, - "additionalProperties": false - }, - "x-order": 2 - }, - "message": { - "type": "string", - "x-order": 1 - } - } - } - } - } - } - }, - "/v1/inventory/Agents/ChangeNodeExporter": { - "post": { - "description": "Changes node_exporter Agent.", - "tags": [ - "AgentsService" - ], - "summary": "Change Node Exporter", - "operationId": "ChangeNodeExporter", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "x-order": 0 - }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", - "type": "object", - "properties": { - "custom_labels": { - "description": "Replace all custom user-assigned labels.", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-order": 2 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - }, - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", - "type": "boolean", - "x-order": 0 - }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", - "type": "boolean", - "x-order": 4 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 3 - } - }, - "x-order": 1 - } - } - } - } - ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object", - "properties": { - "node_exporter": { - "description": "NodeExporter runs on Generic or Container Node and exposes its metrics.", - "type": "object", - "properties": { - "agent_id": { - "description": "Unique randomly generated instance identifier.", - "type": "string", - "x-order": 0 - }, - "custom_labels": { - "description": "Custom user-assigned labels.", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-order": 3 - }, - "disabled": { - "description": "Desired Agent status: enabled (false) or disabled (true).", - "type": "boolean", - "x-order": 2 - }, - "disabled_collectors": { - "description": "List of disabled collector names.", - "type": "array", - "items": { - "type": "string" - }, - "x-order": 5 - }, - "expose_exporter": { - "type": "boolean", - "title": "Optionally expose the exporter process on all public interfaces", - "x-order": 10 - }, - "listen_port": { - "description": "Listen port for scraping metrics.", - "type": "integer", - "format": "int64", - "x-order": 7 - }, - "log_level": { - "description": "- LOG_LEVEL_UNSPECIFIED: Auto", - "type": "string", - "title": "Log level for exporters", - "default": "LOG_LEVEL_UNSPECIFIED", - "enum": [ - "LOG_LEVEL_UNSPECIFIED", - "LOG_LEVEL_FATAL", - "LOG_LEVEL_ERROR", - "LOG_LEVEL_WARN", - "LOG_LEVEL_INFO", - "LOG_LEVEL_DEBUG" - ], - "x-order": 9 - }, - "pmm_agent_id": { - "description": "The pmm-agent identifier which runs this instance.", - "type": "string", - "x-order": 1 - }, - "process_exec_path": { - "description": "Path to exec process.", - "type": "string", - "x-order": 8 - }, - "push_metrics_enabled": { - "description": "True if exporter uses push metrics mode.", - "type": "boolean", - "x-order": 4 - }, - "status": { - "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent finished.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", - "type": "string", - "default": "AGENT_STATUS_UNSPECIFIED", - "enum": [ - "AGENT_STATUS_UNSPECIFIED", - "AGENT_STATUS_STARTING", - "AGENT_STATUS_RUNNING", - "AGENT_STATUS_WAITING", - "AGENT_STATUS_STOPPING", - "AGENT_STATUS_DONE", - "AGENT_STATUS_UNKNOWN" - ], - "x-order": 6 - } - }, - "x-order": 0 - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "x-order": 0 - }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "x-order": 0 - } - }, - "additionalProperties": false - }, - "x-order": 2 - }, - "message": { - "type": "string", - "x-order": 1 - } - } - } - } - } - } - }, - "/v1/inventory/Agents/ChangePostgresExporter": { - "post": { - "description": "Changes postgres_exporter Agent.", - "tags": [ - "AgentsService" - ], - "summary": "Change Postgres Exporter", - "operationId": "ChangePostgresExporter", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "x-order": 0 - }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", - "type": "object", - "properties": { - "custom_labels": { - "description": "Replace all custom user-assigned labels.", - "type": "object", - "additionalProperties": { + "default": "LOG_LEVEL_UNSPECIFIED", + "enum": [ + "LOG_LEVEL_UNSPECIFIED", + "LOG_LEVEL_FATAL", + "LOG_LEVEL_ERROR", + "LOG_LEVEL_WARN", + "LOG_LEVEL_INFO", + "LOG_LEVEL_DEBUG" + ], + "x-order": 16 + }, + "pmm_agent_id": { + "description": "The pmm-agent identifier which runs this instance.", + "type": "string", + "x-order": 1 + }, + "process_exec_path": { + "description": "Path to exec process.", + "type": "string", + "x-order": 15 + }, + "push_metrics_enabled": { + "description": "True if exporter uses push metrics mode.", + "type": "boolean", + "x-order": 8 + }, + "service_id": { + "description": "Service identifier.", + "type": "string", + "x-order": 3 + }, + "stats_collections": { + "type": "array", + "title": "List of colletions to get stats from. Can use *", + "items": { "type": "string" }, - "x-order": 2 + "x-order": 12 }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent finished.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 10 }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "tls": { + "description": "Use TLS for database connections.", "type": "boolean", "x-order": 5 }, - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "tls_skip_verify": { + "description": "Skip TLS certificate and hostname validation.", "type": "boolean", - "x-order": 0 + "x-order": 6 }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", - "type": "boolean", + "username": { + "description": "MongoDB username for scraping metrics.", + "type": "string", "x-order": 4 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 3 } }, - "x-order": 1 - } - } - } - } - ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object", - "properties": { - "postgres_exporter": { - "description": "PostgresExporter runs on Generic or Container Node and exposes PostgreSQL Service metrics.", + "x-order": 2 + }, + "mysqld_exporter": { + "description": "MySQLdExporter runs on Generic or Container Node and exposes MySQL Service metrics.", "type": "object", "properties": { "agent_id": { @@ -3782,19 +3629,13 @@ "type": "string", "x-order": 0 }, - "auto_discovery_limit": { - "description": "Limit of databases for auto-discovery.", - "type": "integer", - "format": "int32", - "x-order": 14 - }, "custom_labels": { "description": "Custom user-assigned labels.", "type": "object", "additionalProperties": { "type": "string" }, - "x-order": 7 + "x-order": 11 }, "disabled": { "description": "Desired Agent status: enabled (false) or disabled (true).", @@ -3807,18 +3648,18 @@ "items": { "type": "string" }, - "x-order": 9 + "x-order": 13 }, "expose_exporter": { "type": "boolean", "title": "Optionally expose the exporter process on all public interfaces", - "x-order": 15 + "x-order": 19 }, "listen_port": { "description": "Listen port for scraping metrics.", "type": "integer", "format": "int64", - "x-order": 11 + "x-order": 15 }, "log_level": { "description": "- LOG_LEVEL_UNSPECIFIED: Auto", @@ -3833,7 +3674,7 @@ "LOG_LEVEL_INFO", "LOG_LEVEL_DEBUG" ], - "x-order": 13 + "x-order": 18 }, "pmm_agent_id": { "description": "The pmm-agent identifier which runs this instance.", @@ -3843,12 +3684,12 @@ "process_exec_path": { "description": "Path to exec process.", "type": "string", - "x-order": 12 + "x-order": 17 }, "push_metrics_enabled": { "description": "True if exporter uses push metrics mode.", "type": "boolean", - "x-order": 8 + "x-order": 12 }, "service_id": { "description": "Service identifier.", @@ -3868,6 +3709,17 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], + "x-order": 14 + }, + "tablestats_group_disabled": { + "description": "True if tablestats group collectors are currently disabled.", + "type": "boolean", + "x-order": 16 + }, + "tablestats_group_table_limit": { + "description": "Tablestats group collectors are disabled if there are more than that number of tables.\n0 means tablestats group collectors are always enabled (no limit).\nNegative value means tablestats group collectors are always disabled.", + "type": "integer", + "format": "int32", "x-order": 10 }, "tls": { @@ -3875,128 +3727,125 @@ "type": "boolean", "x-order": 5 }, + "tls_ca": { + "description": "Certificate Authority certificate chain.", + "type": "string", + "x-order": 7 + }, + "tls_cert": { + "description": "Client certificate.", + "type": "string", + "x-order": 8 + }, + "tls_key": { + "description": "Password for decrypting tls_cert.", + "type": "string", + "x-order": 9 + }, "tls_skip_verify": { - "description": "Skip TLS certificate and hostname validation. Uses sslmode=required instead of verify-full.", + "description": "Skip TLS certificate and hostname validation.", "type": "boolean", "x-order": 6 }, "username": { - "description": "PostgreSQL username for scraping metrics.", + "description": "MySQL username for scraping metrics.", "type": "string", "x-order": 4 } }, - "x-order": 0 - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "x-order": 0 - }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "x-order": 0 - } - }, - "additionalProperties": false - }, - "x-order": 2 - }, - "message": { - "type": "string", "x-order": 1 - } - } - } - } - } - } - }, - "/v1/inventory/Agents/ChangeProxySQLExporter": { - "post": { - "description": "Changes proxysql_exporter Agent.", - "tags": [ - "AgentsService" - ], - "summary": "Change ProxySQL Exporter", - "operationId": "ChangeProxySQLExporter", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "x-order": 0 }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "node_exporter": { + "description": "NodeExporter runs on Generic or Container Node and exposes its metrics.", "type": "object", "properties": { + "agent_id": { + "description": "Unique randomly generated instance identifier.", + "type": "string", + "x-order": 0 + }, "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "Custom user-assigned labels.", "type": "object", "additionalProperties": { "type": "string" }, - "x-order": 2 + "x-order": 3 }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", + "disabled": { + "description": "Desired Agent status: enabled (false) or disabled (true).", "type": "boolean", - "x-order": 1 + "x-order": 2 }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", + "disabled_collectors": { + "description": "List of disabled collector names.", + "type": "array", + "items": { + "type": "string" + }, "x-order": 5 }, - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "expose_exporter": { "type": "boolean", - "x-order": 0 + "title": "Optionally expose the exporter process on all public interfaces", + "x-order": 10 + }, + "listen_port": { + "description": "Listen port for scraping metrics.", + "type": "integer", + "format": "int64", + "x-order": 7 + }, + "log_level": { + "description": "- LOG_LEVEL_UNSPECIFIED: Auto", + "type": "string", + "title": "Log level for exporters", + "default": "LOG_LEVEL_UNSPECIFIED", + "enum": [ + "LOG_LEVEL_UNSPECIFIED", + "LOG_LEVEL_FATAL", + "LOG_LEVEL_ERROR", + "LOG_LEVEL_WARN", + "LOG_LEVEL_INFO", + "LOG_LEVEL_DEBUG" + ], + "x-order": 9 + }, + "pmm_agent_id": { + "description": "The pmm-agent identifier which runs this instance.", + "type": "string", + "x-order": 1 + }, + "process_exec_path": { + "description": "Path to exec process.", + "type": "string", + "x-order": 8 }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", + "push_metrics_enabled": { + "description": "True if exporter uses push metrics mode.", "type": "boolean", "x-order": 4 }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 3 + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent finished.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 6 } }, - "x-order": 1 - } - } - } - } - ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object", - "properties": { - "proxysql_exporter": { - "description": "ProxySQLExporter runs on Generic or Container Node and exposes ProxySQL Service metrics.", + "x-order": 0 + }, + "postgres_exporter": { + "description": "PostgresExporter runs on Generic or Container Node and exposes PostgreSQL Service metrics.", "type": "object", "properties": { "agent_id": { @@ -4004,6 +3853,12 @@ "type": "string", "x-order": 0 }, + "auto_discovery_limit": { + "description": "Limit of databases for auto-discovery.", + "type": "integer", + "format": "int32", + "x-order": 14 + }, "custom_labels": { "description": "Custom user-assigned labels.", "type": "object", @@ -4028,7 +3883,7 @@ "expose_exporter": { "type": "boolean", "title": "Optionally expose the exporter process on all public interfaces", - "x-order": 14 + "x-order": 15 }, "listen_port": { "description": "Listen port for scraping metrics.", @@ -4092,127 +3947,20 @@ "x-order": 5 }, "tls_skip_verify": { - "description": "Skip TLS certificate and hostname validation.", + "description": "Skip TLS certificate and hostname validation. Uses sslmode=required instead of verify-full.", "type": "boolean", "x-order": 6 }, "username": { - "description": "ProxySQL username for scraping metrics.", + "description": "PostgreSQL username for scraping metrics.", "type": "string", "x-order": 4 } }, - "x-order": 0 - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "x-order": 0 - }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "x-order": 0 - } - }, - "additionalProperties": false - }, - "x-order": 2 - }, - "message": { - "type": "string", - "x-order": 1 - } - } - } - } - } - } - }, - "/v1/inventory/Agents/ChangeQANMongoDBProfilerAgent": { - "post": { - "description": "Changes 'Query Analytics MongoDB Profiler' Agent.", - "tags": [ - "AgentsService" - ], - "summary": "Change 'QAN MongoDB Profiler' Agent", - "operationId": "ChangeQANMongoDBProfilerAgent", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "x-order": 0 + "x-order": 3 }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", - "type": "object", - "properties": { - "custom_labels": { - "description": "Replace all custom user-assigned labels.", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-order": 2 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - }, - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", - "type": "boolean", - "x-order": 0 - }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", - "type": "boolean", - "x-order": 4 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 3 - } - }, - "x-order": 1 - } - } - } - } - ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object", - "properties": { - "qan_mongodb_profiler_agent": { - "description": "QANMongoDBProfilerAgent runs within pmm-agent and sends MongoDB Query Analytics data to the PMM Server.", + "proxysql_exporter": { + "description": "ProxySQLExporter runs on Generic or Container Node and exposes ProxySQL Service metrics.", "type": "object", "properties": { "agent_id": { @@ -4226,13 +3974,32 @@ "additionalProperties": { "type": "string" }, - "x-order": 8 + "x-order": 7 }, "disabled": { "description": "Desired Agent status: enabled (false) or disabled (true).", "type": "boolean", "x-order": 2 }, + "disabled_collectors": { + "description": "List of disabled collector names.", + "type": "array", + "items": { + "type": "string" + }, + "x-order": 9 + }, + "expose_exporter": { + "type": "boolean", + "title": "Optionally expose the exporter process on all public interfaces", + "x-order": 14 + }, + "listen_port": { + "description": "Listen port for scraping metrics.", + "type": "integer", + "format": "int64", + "x-order": 11 + }, "log_level": { "description": "- LOG_LEVEL_UNSPECIFIED: Auto", "type": "string", @@ -4246,13 +4013,7 @@ "LOG_LEVEL_INFO", "LOG_LEVEL_DEBUG" ], - "x-order": 11 - }, - "max_query_length": { - "description": "Limit query length in QAN (default: server-defined; -1: no limit).", - "type": "integer", - "format": "int32", - "x-order": 7 + "x-order": 13 }, "pmm_agent_id": { "description": "The pmm-agent identifier which runs this instance.", @@ -4262,7 +4023,12 @@ "process_exec_path": { "description": "Path to exec process.", "type": "string", - "x-order": 10 + "x-order": 12 + }, + "push_metrics_enabled": { + "description": "True if exporter uses push metrics mode.", + "type": "boolean", + "x-order": 8 }, "service_id": { "description": "Service identifier.", @@ -4282,7 +4048,7 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], - "x-order": 9 + "x-order": 10 }, "tls": { "description": "Use TLS for database connections.", @@ -4295,120 +4061,104 @@ "x-order": 6 }, "username": { - "description": "MongoDB username for getting profiler data.", + "description": "ProxySQL username for scraping metrics.", "type": "string", "x-order": 4 } }, - "x-order": 0 - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "x-order": 0 - }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "x-order": 0 - } - }, - "additionalProperties": false - }, - "x-order": 2 - }, - "message": { - "type": "string", - "x-order": 1 - } - } - } - } - } - } - }, - "/v1/inventory/Agents/ChangeQANMySQLPerfSchemaAgent": { - "post": { - "description": "Changes 'Query Analytics MySQL PerfSchema' Agent.", - "tags": [ - "AgentsService" - ], - "summary": "Change 'QAN MySQL PerfSchema' Agent", - "operationId": "ChangeQANMySQLPerfSchemaAgent", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "x-order": 0 + "x-order": 4 }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "qan_mongodb_profiler_agent": { + "description": "QANMongoDBProfilerAgent runs within pmm-agent and sends MongoDB Query Analytics data to the PMM Server.", "type": "object", "properties": { + "agent_id": { + "description": "Unique randomly generated instance identifier.", + "type": "string", + "x-order": 0 + }, "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "Custom user-assigned labels.", "type": "object", "additionalProperties": { "type": "string" }, + "x-order": 8 + }, + "disabled": { + "description": "Desired Agent status: enabled (false) or disabled (true).", + "type": "boolean", "x-order": 2 }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", + "log_level": { + "description": "- LOG_LEVEL_UNSPECIFIED: Auto", + "type": "string", + "title": "Log level for exporters", + "default": "LOG_LEVEL_UNSPECIFIED", + "enum": [ + "LOG_LEVEL_UNSPECIFIED", + "LOG_LEVEL_FATAL", + "LOG_LEVEL_ERROR", + "LOG_LEVEL_WARN", + "LOG_LEVEL_INFO", + "LOG_LEVEL_DEBUG" + ], + "x-order": 11 + }, + "max_query_length": { + "description": "Limit query length in QAN (default: server-defined; -1: no limit).", + "type": "integer", + "format": "int32", + "x-order": 7 + }, + "pmm_agent_id": { + "description": "The pmm-agent identifier which runs this instance.", + "type": "string", "x-order": 1 }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "process_exec_path": { + "description": "Path to exec process.", + "type": "string", + "x-order": 10 + }, + "service_id": { + "description": "Service identifier.", + "type": "string", + "x-order": 3 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent finished.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 9 + }, + "tls": { + "description": "Use TLS for database connections.", "type": "boolean", "x-order": 5 }, - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "tls_skip_verify": { + "description": "Skip TLS certificate and hostname validation.", "type": "boolean", - "x-order": 0 + "x-order": 6 }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", - "type": "boolean", + "username": { + "description": "MongoDB username for getting profiler data.", + "type": "string", "x-order": 4 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 3 } }, - "x-order": 1 - } - } - } - } - ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object", - "properties": { + "x-order": 10 + }, "qan_mysql_perfschema_agent": { "description": "QANMySQLPerfSchemaAgent runs within pmm-agent and sends MySQL Query Analytics data to the PMM Server.", "type": "object", @@ -4523,115 +4273,8 @@ "x-order": 4 } }, - "x-order": 0 - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "x-order": 0 - }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "x-order": 0 - } - }, - "additionalProperties": false - }, - "x-order": 2 - }, - "message": { - "type": "string", - "x-order": 1 - } - } - } - } - } - } - }, - "/v1/inventory/Agents/ChangeQANMySQLSlowlogAgent": { - "post": { - "description": "Changes 'Query Analytics MySQL Slowlog' Agent.", - "tags": [ - "AgentsService" - ], - "summary": "Change 'QAN MySQL Slowlog' Agent", - "operationId": "ChangeQANMySQLSlowlogAgent", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "x-order": 0 + "x-order": 8 }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", - "type": "object", - "properties": { - "custom_labels": { - "description": "Replace all custom user-assigned labels.", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-order": 2 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - }, - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", - "type": "boolean", - "x-order": 0 - }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", - "type": "boolean", - "x-order": 4 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 3 - } - }, - "x-order": 1 - } - } - } - } - ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object", - "properties": { "qan_mysql_slowlog_agent": { "description": "QANMySQLSlowlogAgent runs within pmm-agent and sends MySQL Query Analytics data to the PMM Server.", "type": "object", @@ -4742,127 +4385,20 @@ "x-order": 9 }, "tls_skip_verify": { - "description": "Skip TLS certificate and hostname validation.", - "type": "boolean", - "x-order": 6 - }, - "username": { - "description": "MySQL username for getting performance data.", - "type": "string", - "x-order": 4 - } - }, - "x-order": 0 - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "x-order": 0 - }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "x-order": 0 - } - }, - "additionalProperties": false - }, - "x-order": 2 - }, - "message": { - "type": "string", - "x-order": 1 - } - } - } - } - } - } - }, - "/v1/inventory/Agents/ChangeQANPostgreSQLPgStatMonitorAgent": { - "post": { - "description": "Changes 'Query Analytics PostgreSQL pg_stat_monitor' Agent.", - "tags": [ - "AgentsService" - ], - "summary": "Change 'QAN PostgreSQL pg_stat_monitor' Agent", - "operationId": "ChangeQANPostgreSQLPgStatMonitorAgent", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "x-order": 0 - }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", - "type": "object", - "properties": { - "custom_labels": { - "description": "Replace all custom user-assigned labels.", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-order": 2 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - }, - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", - "type": "boolean", - "x-order": 0 - }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", - "type": "boolean", - "x-order": 4 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 3 - } - }, - "x-order": 1 - } - } - } - } - ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object", - "properties": { - "qan_postgresql_pgstatmonitor_agent": { - "description": "QANPostgreSQLPgStatMonitorAgent runs within pmm-agent and sends PostgreSQL Query Analytics data to the PMM Server.", + "description": "Skip TLS certificate and hostname validation.", + "type": "boolean", + "x-order": 6 + }, + "username": { + "description": "MySQL username for getting performance data.", + "type": "string", + "x-order": 4 + } + }, + "x-order": 9 + }, + "qan_postgresql_pgstatements_agent": { + "description": "QANPostgreSQLPgStatementsAgent runs within pmm-agent and sends PostgreSQL Query Analytics data to the PMM Server.", "type": "object", "properties": { "agent_id": { @@ -4876,12 +4412,12 @@ "additionalProperties": { "type": "string" }, - "x-order": 10 + "x-order": 9 }, "disable_comments_parsing": { "description": "Disable parsing comments from queries and showing them in QAN.", "type": "boolean", - "x-order": 7 + "x-order": 5 }, "disabled": { "description": "Desired Agent status: enabled (false) or disabled (true).", @@ -4901,13 +4437,13 @@ "LOG_LEVEL_INFO", "LOG_LEVEL_DEBUG" ], - "x-order": 13 + "x-order": 12 }, "max_query_length": { "description": "Limit query length in QAN (default: server-defined; -1: no limit).", "type": "integer", "format": "int32", - "x-order": 8 + "x-order": 6 }, "pmm_agent_id": { "description": "The pmm-agent identifier which runs this instance.", @@ -4917,12 +4453,7 @@ "process_exec_path": { "description": "Path to exec process.", "type": "string", - "x-order": 12 - }, - "query_examples_disabled": { - "description": "True if query examples are disabled.", - "type": "boolean", - "x-order": 9 + "x-order": 11 }, "service_id": { "description": "Service identifier.", @@ -4942,135 +4473,28 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], - "x-order": 11 + "x-order": 10 }, "tls": { "description": "Use TLS for database connections.", "type": "boolean", - "x-order": 5 + "x-order": 7 }, "tls_skip_verify": { "description": "Skip TLS certificate and hostname validation.", "type": "boolean", - "x-order": 6 + "x-order": 8 }, "username": { - "description": "PostgreSQL username for getting pg stat monitor data.", + "description": "PostgreSQL username for getting pg stat statements data.", "type": "string", "x-order": 4 } }, - "x-order": 0 - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "x-order": 0 - }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "x-order": 0 - } - }, - "additionalProperties": false - }, - "x-order": 2 - }, - "message": { - "type": "string", - "x-order": 1 - } - } - } - } - } - } - }, - "/v1/inventory/Agents/ChangeQANPostgreSQLPgStatementsAgent": { - "post": { - "description": "Changes 'Query Analytics PostgreSQL pg_stat_statements' Agent.", - "tags": [ - "AgentsService" - ], - "summary": "Change 'QAN PostgreSQL pg_stat_statements' Agent", - "operationId": "ChangeQANPostgreSQLPgStatementsAgent", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "x-order": 0 + "x-order": 11 }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", - "type": "object", - "properties": { - "custom_labels": { - "description": "Replace all custom user-assigned labels.", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-order": 2 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - }, - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", - "type": "boolean", - "x-order": 0 - }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", - "type": "boolean", - "x-order": 4 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 3 - } - }, - "x-order": 1 - } - } - } - } - ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object", - "properties": { - "qan_postgresql_pgstatements_agent": { - "description": "QANPostgreSQLPgStatementsAgent runs within pmm-agent and sends PostgreSQL Query Analytics data to the PMM Server.", + "qan_postgresql_pgstatmonitor_agent": { + "description": "QANPostgreSQLPgStatMonitorAgent runs within pmm-agent and sends PostgreSQL Query Analytics data to the PMM Server.", "type": "object", "properties": { "agent_id": { @@ -5084,12 +4508,12 @@ "additionalProperties": { "type": "string" }, - "x-order": 9 + "x-order": 10 }, "disable_comments_parsing": { "description": "Disable parsing comments from queries and showing them in QAN.", "type": "boolean", - "x-order": 5 + "x-order": 7 }, "disabled": { "description": "Desired Agent status: enabled (false) or disabled (true).", @@ -5109,13 +4533,13 @@ "LOG_LEVEL_INFO", "LOG_LEVEL_DEBUG" ], - "x-order": 12 + "x-order": 13 }, "max_query_length": { "description": "Limit query length in QAN (default: server-defined; -1: no limit).", "type": "integer", "format": "int32", - "x-order": 6 + "x-order": 8 }, "pmm_agent_id": { "description": "The pmm-agent identifier which runs this instance.", @@ -5125,7 +4549,12 @@ "process_exec_path": { "description": "Path to exec process.", "type": "string", - "x-order": 11 + "x-order": 12 + }, + "query_examples_disabled": { + "description": "True if query examples are disabled.", + "type": "boolean", + "x-order": 9 }, "service_id": { "description": "Service identifier.", @@ -5145,133 +4574,26 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], - "x-order": 10 + "x-order": 11 }, "tls": { "description": "Use TLS for database connections.", "type": "boolean", - "x-order": 7 + "x-order": 5 }, "tls_skip_verify": { "description": "Skip TLS certificate and hostname validation.", "type": "boolean", - "x-order": 8 + "x-order": 6 }, "username": { - "description": "PostgreSQL username for getting pg stat statements data.", + "description": "PostgreSQL username for getting pg stat monitor data.", "type": "string", "x-order": 4 } }, - "x-order": 0 - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "x-order": 0 - }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "x-order": 0 - } - }, - "additionalProperties": false - }, - "x-order": 2 - }, - "message": { - "type": "string", - "x-order": 1 - } - } - } - } - } - } - }, - "/v1/inventory/Agents/ChangeRDSExporter": { - "post": { - "description": "Changes rds_exporter Agent.", - "tags": [ - "AgentsService" - ], - "summary": "Change RDS Exporter", - "operationId": "ChangeRDSExporter", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "x-order": 0 + "x-order": 12 }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", - "type": "object", - "properties": { - "custom_labels": { - "description": "Replace all custom user-assigned labels.", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-order": 2 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - }, - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", - "type": "boolean", - "x-order": 0 - }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", - "type": "boolean", - "x-order": 4 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 3 - } - }, - "x-order": 1 - } - } - } - } - ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object", - "properties": { "rds_exporter": { "description": "RDSExporter runs on Generic or Container Node and exposes RemoteRDS Node metrics.", "type": "object", @@ -5372,7 +4694,13 @@ "x-order": 6 } }, - "x-order": 0 + "x-order": 6 + }, + "table_count": { + "description": "Actual table count for SQL databases at the moment of adding.", + "type": "integer", + "format": "int32", + "x-order": 13 } } } diff --git a/api/swagger/swagger-dev.json b/api/swagger/swagger-dev.json index a468c94e23..73f403c8e6 100644 --- a/api/swagger/swagger-dev.json +++ b/api/swagger/swagger-dev.json @@ -3776,7 +3776,7 @@ }, "/v1/inventory/Agents/Add": { "post": { - "description": "Adds an Agent from Inventory.", + "description": "Adds an Agent to Inventory.", "tags": [ "AgentsService" ], @@ -6418,14 +6418,14 @@ } } }, - "/v1/inventory/Agents/ChangeAzureDatabaseExporter": { + "/v1/inventory/Agents/Change": { "post": { - "description": "Changes azure_database_exporter Agent.", + "description": "Updates an Agent in Inventory.", "tags": [ "AgentsService" ], - "summary": "Change Azure Database Exporter", - "operationId": "ChangeAzureDatabaseExporter", + "summary": "Update an Agent in Inventory", + "operationId": "ChangeAgent", "parameters": [ { "name": "body", @@ -6434,655 +6434,655 @@ "schema": { "type": "object", "properties": { - "agent_id": { - "type": "string", - "x-order": 0 - }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "node_exporter": { "type": "object", "properties": { - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", - "type": "boolean", + "agent_id": { + "type": "string", "x-order": 0 }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, - "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + } }, - "x-order": 2 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 3 - }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", - "type": "boolean", - "x-order": 4 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 + "x-order": 1 } }, - "x-order": 1 - } - } - } - } - ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object", - "properties": { - "azure_database_exporter": { - "description": "AzureDatabaseExporter runs on Generic or Container Node and exposes RemoteAzure Node metrics.", + "x-order": 0 + }, + "mysqld_exporter": { "type": "object", "properties": { "agent_id": { - "description": "Unique randomly generated instance identifier.", "type": "string", "x-order": 0 }, - "pmm_agent_id": { - "description": "The pmm-agent identifier which runs this instance.", - "type": "string", - "x-order": 1 - }, - "disabled": { - "description": "Desired Agent status: enabled (false) or disabled (true).", - "type": "boolean", - "x-order": 2 - }, - "node_id": { - "description": "Node identifier.", - "type": "string", - "x-order": 3 - }, - "azure_database_subscription_id": { - "description": "Azure database subscription ID.", - "type": "string", - "x-order": 4 - }, - "azure_database_resource_type": { - "type": "string", - "title": "Azure database resource type (mysql, maria, postgres)", - "x-order": 5 - }, - "custom_labels": { - "description": "Custom user-assigned labels.", + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + } }, - "x-order": 6 - }, - "status": { - "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent finished.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", - "type": "string", - "default": "AGENT_STATUS_UNSPECIFIED", - "enum": [ - "AGENT_STATUS_UNSPECIFIED", - "AGENT_STATUS_STARTING", - "AGENT_STATUS_RUNNING", - "AGENT_STATUS_WAITING", - "AGENT_STATUS_STOPPING", - "AGENT_STATUS_DONE", - "AGENT_STATUS_UNKNOWN" - ], - "x-order": 7 - }, - "listen_port": { - "description": "Listen port for scraping metrics (the same for several configurations).", - "type": "integer", - "format": "int64", - "x-order": 8 - }, - "push_metrics_enabled": { - "description": "True if the exporter operates in push metrics mode.", - "type": "boolean", - "x-order": 9 - }, - "process_exec_path": { - "description": "Path to exec process.", - "type": "string", - "x-order": 10 - }, - "log_level": { - "description": "- LOG_LEVEL_UNSPECIFIED: Auto", - "type": "string", - "title": "Log level for exporters", - "default": "LOG_LEVEL_UNSPECIFIED", - "enum": [ - "LOG_LEVEL_UNSPECIFIED", - "LOG_LEVEL_FATAL", - "LOG_LEVEL_ERROR", - "LOG_LEVEL_WARN", - "LOG_LEVEL_INFO", - "LOG_LEVEL_DEBUG" - ], - "x-order": 11 + "x-order": 1 } }, - "x-order": 0 - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "x-order": 0 - }, - "message": { - "type": "string", "x-order": 1 }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "x-order": 0 - } - }, - "additionalProperties": false - }, - "x-order": 2 - } - } - } - } - } - } - }, - "/v1/inventory/Agents/ChangeExternalExporter": { - "post": { - "description": "Changes external_exporter Agent.", - "tags": [ - "AgentsService" - ], - "summary": "Change External Exporter", - "operationId": "ChangeExternalExporter", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "x-order": 0 - }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "mongodb_exporter": { "type": "object", "properties": { - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", - "type": "boolean", + "agent_id": { + "type": "string", "x-order": 0 }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, - "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + } }, - "x-order": 2 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 3 - }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", - "type": "boolean", - "x-order": 4 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 + "x-order": 1 } }, - "x-order": 1 - } - } - } - } - ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object", - "properties": { - "external_exporter": { - "description": "ExternalExporter runs on any Node type, including Remote Node.", + "x-order": 2 + }, + "postgres_exporter": { "type": "object", "properties": { "agent_id": { - "description": "Unique randomly generated instance identifier.", "type": "string", "x-order": 0 }, - "runs_on_node_id": { - "description": "Node identifier where this instance runs.", - "type": "string", - "x-order": 1 - }, - "disabled": { - "description": "If disabled, metrics from this exporter will not be collected.", - "type": "boolean", - "x-order": 2 - }, - "service_id": { - "description": "Service identifier.", - "type": "string", - "x-order": 3 - }, - "username": { - "description": "HTTP basic auth username for collecting metrics.", - "type": "string", - "x-order": 4 - }, - "scheme": { - "description": "Scheme to generate URI to exporter metrics endpoints.", - "type": "string", - "x-order": 5 - }, - "metrics_path": { - "description": "Path under which metrics are exposed, used to generate URI.", - "type": "string", - "x-order": 6 - }, - "custom_labels": { - "description": "Custom user-assigned labels.", + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + } }, - "x-order": 7 - }, - "listen_port": { - "description": "Listen port for scraping metrics.", - "type": "integer", - "format": "int64", - "x-order": 8 - }, - "push_metrics_enabled": { - "description": "True if exporter uses push metrics mode.", - "type": "boolean", - "x-order": 9 - }, - "process_exec_path": { - "description": "Path to exec process.", - "type": "string", - "x-order": 10 + "x-order": 1 } }, - "x-order": 0 - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "x-order": 0 - }, - "message": { - "type": "string", - "x-order": 1 + "x-order": 3 }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "x-order": 0 - } + "proxysql_exporter": { + "type": "object", + "properties": { + "agent_id": { + "type": "string", + "x-order": 0 }, - "additionalProperties": false + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "type": "object", + "properties": { + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + } + }, + "x-order": 1 + } }, - "x-order": 2 - } - } - } - } - } - } - }, - "/v1/inventory/Agents/ChangeMongoDBExporter": { - "post": { - "description": "Changes mongodb_exporter Agent.", - "tags": [ - "AgentsService" - ], - "summary": "Change MongoDB Exporter", - "operationId": "ChangeMongoDBExporter", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "x-order": 0 + "x-order": 4 }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "external_exporter": { "type": "object", "properties": { - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", - "type": "boolean", + "agent_id": { + "type": "string", "x-order": 0 }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, - "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + } }, - "x-order": 2 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 3 - }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", - "type": "boolean", - "x-order": 4 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 + "x-order": 1 } }, - "x-order": 1 - } - } - } - } - ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object", - "properties": { - "mongodb_exporter": { - "description": "MongoDBExporter runs on Generic or Container Node and exposes MongoDB Service metrics.", + "x-order": 5 + }, + "rds_exporter": { "type": "object", "properties": { "agent_id": { - "description": "Unique randomly generated instance identifier.", "type": "string", "x-order": 0 }, - "pmm_agent_id": { - "description": "The pmm-agent identifier which runs this instance.", - "type": "string", + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "type": "object", + "properties": { + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + } + }, "x-order": 1 - }, - "disabled": { - "description": "Desired Agent status: enabled (false) or disabled (true).", - "type": "boolean", - "x-order": 2 - }, - "service_id": { - "description": "Service identifier.", - "type": "string", - "x-order": 3 - }, - "username": { - "description": "MongoDB username for scraping metrics.", + } + }, + "x-order": 6 + }, + "azure_database_exporter": { + "type": "object", + "properties": { + "agent_id": { "type": "string", - "x-order": 4 - }, - "tls": { - "description": "Use TLS for database connections.", - "type": "boolean", - "x-order": 5 - }, - "tls_skip_verify": { - "description": "Skip TLS certificate and hostname validation.", - "type": "boolean", - "x-order": 6 + "x-order": 0 }, - "custom_labels": { - "description": "Custom user-assigned labels.", + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-order": 7 - }, - "push_metrics_enabled": { - "description": "True if exporter uses push metrics mode.", - "type": "boolean", - "x-order": 8 - }, - "disabled_collectors": { - "description": "List of disabled collector names.", - "type": "array", - "items": { - "type": "string" + "properties": { + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + } }, - "x-order": 9 - }, - "status": { - "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent finished.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "x-order": 1 + } + }, + "x-order": 7 + }, + "qan_mysql_perfschema_agent": { + "type": "object", + "properties": { + "agent_id": { "type": "string", - "default": "AGENT_STATUS_UNSPECIFIED", - "enum": [ - "AGENT_STATUS_UNSPECIFIED", - "AGENT_STATUS_STARTING", - "AGENT_STATUS_RUNNING", - "AGENT_STATUS_WAITING", - "AGENT_STATUS_STOPPING", - "AGENT_STATUS_DONE", - "AGENT_STATUS_UNKNOWN" - ], - "x-order": 10 - }, - "listen_port": { - "description": "Listen port for scraping metrics.", - "type": "integer", - "format": "int64", - "x-order": 11 + "x-order": 0 }, - "stats_collections": { - "type": "array", - "title": "List of colletions to get stats from. Can use *", - "items": { - "type": "string" + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "type": "object", + "properties": { + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + } }, - "x-order": 12 - }, - "collections_limit": { - "type": "integer", - "format": "int32", - "title": "Collections limit. Only get Databases and collection stats if the total number of collections in the server\nis less than this value. 0: no limit", - "x-order": 13 - }, - "enable_all_collectors": { - "description": "Enable All collectors.", - "type": "boolean", - "x-order": 14 - }, - "process_exec_path": { - "description": "Path to exec process.", - "type": "string", - "x-order": 15 - }, - "log_level": { - "description": "- LOG_LEVEL_UNSPECIFIED: Auto", - "type": "string", - "title": "Log level for exporters", - "default": "LOG_LEVEL_UNSPECIFIED", - "enum": [ - "LOG_LEVEL_UNSPECIFIED", - "LOG_LEVEL_FATAL", - "LOG_LEVEL_ERROR", - "LOG_LEVEL_WARN", - "LOG_LEVEL_INFO", - "LOG_LEVEL_DEBUG" - ], - "x-order": 16 - }, - "expose_exporter": { - "type": "boolean", - "title": "Optionally expose the exporter process on all public interfaces", - "x-order": 17 + "x-order": 1 } }, - "x-order": 0 - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "x-order": 0 - }, - "message": { - "type": "string", - "x-order": 1 + "x-order": 8 }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "x-order": 0 - } + "qan_mysql_slowlog_agent": { + "type": "object", + "properties": { + "agent_id": { + "type": "string", + "x-order": 0 }, - "additionalProperties": false + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "type": "object", + "properties": { + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + } + }, + "x-order": 1 + } }, - "x-order": 2 - } - } - } - } - } - } - }, - "/v1/inventory/Agents/ChangeMySQLdExporter": { - "post": { - "description": "Changes mysqld_exporter Agent.", - "tags": [ - "AgentsService" - ], - "summary": "Change mysqld Exporter", - "operationId": "ChangeMySQLdExporter", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "x-order": 0 + "x-order": 9 + }, + "qan_mongodb_profiler_agent": { + "type": "object", + "properties": { + "agent_id": { + "type": "string", + "x-order": 0 + }, + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "type": "object", + "properties": { + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + } + }, + "x-order": 1 + } + }, + "x-order": 10 }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "qan_postgresql_pgstatements_agent": { "type": "object", "properties": { - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", - "type": "boolean", + "agent_id": { + "type": "string", "x-order": 0 }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "type": "object", + "properties": { + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + } + }, "x-order": 1 + } + }, + "x-order": 11 + }, + "qan_postgresql_pgstatmonitor_agent": { + "type": "object", + "properties": { + "agent_id": { + "type": "string", + "x-order": 0 }, - "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "common": { + "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "enable": { + "description": "Enable this Agent. Can't be used with disabled.", + "type": "boolean", + "x-order": 0 + }, + "disable": { + "description": "Disable this Agent. Can't be used with enabled.", + "type": "boolean", + "x-order": 1 + }, + "custom_labels": { + "description": "Replace all custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 2 + }, + "remove_custom_labels": { + "description": "Remove all custom user-assigned labels.", + "type": "boolean", + "x-order": 3 + }, + "enable_push_metrics": { + "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "type": "boolean", + "x-order": 4 + }, + "disable_push_metrics": { + "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "type": "boolean", + "x-order": 5 + } }, - "x-order": 2 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 3 - }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", - "type": "boolean", - "x-order": 4 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 + "x-order": 1 } }, - "x-order": 1 + "x-order": 12 } } } @@ -7094,8 +7094,8 @@ "schema": { "type": "object", "properties": { - "mysqld_exporter": { - "description": "MySQLdExporter runs on Generic or Container Node and exposes MySQL Service metrics.", + "node_exporter": { + "description": "NodeExporter runs on Generic or Container Node and exposes its metrics.", "type": "object", "properties": { "agent_id": { @@ -7113,59 +7113,18 @@ "type": "boolean", "x-order": 2 }, - "service_id": { - "description": "Service identifier.", - "type": "string", - "x-order": 3 - }, - "username": { - "description": "MySQL username for scraping metrics.", - "type": "string", - "x-order": 4 - }, - "tls": { - "description": "Use TLS for database connections.", - "type": "boolean", - "x-order": 5 - }, - "tls_skip_verify": { - "description": "Skip TLS certificate and hostname validation.", - "type": "boolean", - "x-order": 6 - }, - "tls_ca": { - "description": "Certificate Authority certificate chain.", - "type": "string", - "x-order": 7 - }, - "tls_cert": { - "description": "Client certificate.", - "type": "string", - "x-order": 8 - }, - "tls_key": { - "description": "Password for decrypting tls_cert.", - "type": "string", - "x-order": 9 - }, - "tablestats_group_table_limit": { - "description": "Tablestats group collectors are disabled if there are more than that number of tables.\n0 means tablestats group collectors are always enabled (no limit).\nNegative value means tablestats group collectors are always disabled.", - "type": "integer", - "format": "int32", - "x-order": 10 - }, "custom_labels": { "description": "Custom user-assigned labels.", "type": "object", "additionalProperties": { "type": "string" }, - "x-order": 11 + "x-order": 3 }, "push_metrics_enabled": { "description": "True if exporter uses push metrics mode.", "type": "boolean", - "x-order": 12 + "x-order": 4 }, "disabled_collectors": { "description": "List of disabled collector names.", @@ -7173,7 +7132,7 @@ "items": { "type": "string" }, - "x-order": 13 + "x-order": 5 }, "status": { "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent finished.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", @@ -7188,23 +7147,18 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], - "x-order": 14 + "x-order": 6 }, "listen_port": { "description": "Listen port for scraping metrics.", "type": "integer", "format": "int64", - "x-order": 15 - }, - "tablestats_group_disabled": { - "description": "True if tablestats group collectors are currently disabled.", - "type": "boolean", - "x-order": 16 + "x-order": 7 }, "process_exec_path": { "description": "Path to exec process.", "type": "string", - "x-order": 17 + "x-order": 8 }, "log_level": { "description": "- LOG_LEVEL_UNSPECIFIED: Auto", @@ -7219,141 +7173,75 @@ "LOG_LEVEL_INFO", "LOG_LEVEL_DEBUG" ], - "x-order": 18 + "x-order": 9 }, "expose_exporter": { "type": "boolean", "title": "Optionally expose the exporter process on all public interfaces", - "x-order": 19 + "x-order": 10 } }, "x-order": 0 - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "x-order": 0 - }, - "message": { - "type": "string", - "x-order": 1 - }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "x-order": 0 - } - }, - "additionalProperties": false - }, - "x-order": 2 - } - } - } - } - } - } - }, - "/v1/inventory/Agents/ChangeNodeExporter": { - "post": { - "description": "Changes node_exporter Agent.", - "tags": [ - "AgentsService" - ], - "summary": "Change Node Exporter", - "operationId": "ChangeNodeExporter", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "x-order": 0 }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "mysqld_exporter": { + "description": "MySQLdExporter runs on Generic or Container Node and exposes MySQL Service metrics.", "type": "object", "properties": { - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", - "type": "boolean", + "agent_id": { + "description": "Unique randomly generated instance identifier.", + "type": "string", "x-order": 0 }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", + "pmm_agent_id": { + "description": "The pmm-agent identifier which runs this instance.", + "type": "string", "x-order": 1 }, - "custom_labels": { - "description": "Replace all custom user-assigned labels.", - "type": "object", - "additionalProperties": { - "type": "string" - }, + "disabled": { + "description": "Desired Agent status: enabled (false) or disabled (true).", + "type": "boolean", "x-order": 2 }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", + "service_id": { + "description": "Service identifier.", + "type": "string", "x-order": 3 }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", - "type": "boolean", + "username": { + "description": "MySQL username for scraping metrics.", + "type": "string", "x-order": 4 }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "tls": { + "description": "Use TLS for database connections.", "type": "boolean", "x-order": 5 - } - }, - "x-order": 1 - } - } - } - } - ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object", - "properties": { - "node_exporter": { - "description": "NodeExporter runs on Generic or Container Node and exposes its metrics.", - "type": "object", - "properties": { - "agent_id": { - "description": "Unique randomly generated instance identifier.", + }, + "tls_skip_verify": { + "description": "Skip TLS certificate and hostname validation.", + "type": "boolean", + "x-order": 6 + }, + "tls_ca": { + "description": "Certificate Authority certificate chain.", + "type": "string", + "x-order": 7 + }, + "tls_cert": { + "description": "Client certificate.", "type": "string", - "x-order": 0 + "x-order": 8 }, - "pmm_agent_id": { - "description": "The pmm-agent identifier which runs this instance.", + "tls_key": { + "description": "Password for decrypting tls_cert.", "type": "string", - "x-order": 1 + "x-order": 9 }, - "disabled": { - "description": "Desired Agent status: enabled (false) or disabled (true).", - "type": "boolean", - "x-order": 2 + "tablestats_group_table_limit": { + "description": "Tablestats group collectors are disabled if there are more than that number of tables.\n0 means tablestats group collectors are always enabled (no limit).\nNegative value means tablestats group collectors are always disabled.", + "type": "integer", + "format": "int32", + "x-order": 10 }, "custom_labels": { "description": "Custom user-assigned labels.", @@ -7361,12 +7249,12 @@ "additionalProperties": { "type": "string" }, - "x-order": 3 + "x-order": 11 }, "push_metrics_enabled": { "description": "True if exporter uses push metrics mode.", "type": "boolean", - "x-order": 4 + "x-order": 12 }, "disabled_collectors": { "description": "List of disabled collector names.", @@ -7374,7 +7262,7 @@ "items": { "type": "string" }, - "x-order": 5 + "x-order": 13 }, "status": { "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent finished.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", @@ -7389,18 +7277,23 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], - "x-order": 6 + "x-order": 14 }, "listen_port": { "description": "Listen port for scraping metrics.", "type": "integer", "format": "int64", - "x-order": 7 + "x-order": 15 + }, + "tablestats_group_disabled": { + "description": "True if tablestats group collectors are currently disabled.", + "type": "boolean", + "x-order": 16 }, "process_exec_path": { "description": "Path to exec process.", "type": "string", - "x-order": 8 + "x-order": 17 }, "log_level": { "description": "- LOG_LEVEL_UNSPECIFIED: Auto", @@ -7415,125 +7308,18 @@ "LOG_LEVEL_INFO", "LOG_LEVEL_DEBUG" ], - "x-order": 9 + "x-order": 18 }, "expose_exporter": { "type": "boolean", "title": "Optionally expose the exporter process on all public interfaces", - "x-order": 10 + "x-order": 19 } }, - "x-order": 0 - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "x-order": 0 - }, - "message": { - "type": "string", "x-order": 1 }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "x-order": 0 - } - }, - "additionalProperties": false - }, - "x-order": 2 - } - } - } - } - } - } - }, - "/v1/inventory/Agents/ChangePostgresExporter": { - "post": { - "description": "Changes postgres_exporter Agent.", - "tags": [ - "AgentsService" - ], - "summary": "Change Postgres Exporter", - "operationId": "ChangePostgresExporter", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "x-order": 0 - }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", - "type": "object", - "properties": { - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", - "type": "boolean", - "x-order": 0 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, - "custom_labels": { - "description": "Replace all custom user-assigned labels.", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-order": 2 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 3 - }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", - "type": "boolean", - "x-order": 4 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - } - }, - "x-order": 1 - } - } - } - } - ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object", - "properties": { - "postgres_exporter": { - "description": "PostgresExporter runs on Generic or Container Node and exposes PostgreSQL Service metrics.", + "mongodb_exporter": { + "description": "MongoDBExporter runs on Generic or Container Node and exposes MongoDB Service metrics.", "type": "object", "properties": { "agent_id": { @@ -7557,7 +7343,7 @@ "x-order": 3 }, "username": { - "description": "PostgreSQL username for scraping metrics.", + "description": "MongoDB username for scraping metrics.", "type": "string", "x-order": 4 }, @@ -7567,7 +7353,7 @@ "x-order": 5 }, "tls_skip_verify": { - "description": "Skip TLS certificate and hostname validation. Uses sslmode=required instead of verify-full.", + "description": "Skip TLS certificate and hostname validation.", "type": "boolean", "x-order": 6 }, @@ -7613,149 +7399,55 @@ "format": "int64", "x-order": 11 }, - "process_exec_path": { - "description": "Path to exec process.", - "type": "string", + "stats_collections": { + "type": "array", + "title": "List of colletions to get stats from. Can use *", + "items": { + "type": "string" + }, "x-order": 12 }, - "log_level": { - "description": "- LOG_LEVEL_UNSPECIFIED: Auto", - "type": "string", - "title": "Log level for exporters", - "default": "LOG_LEVEL_UNSPECIFIED", - "enum": [ - "LOG_LEVEL_UNSPECIFIED", - "LOG_LEVEL_FATAL", - "LOG_LEVEL_ERROR", - "LOG_LEVEL_WARN", - "LOG_LEVEL_INFO", - "LOG_LEVEL_DEBUG" - ], - "x-order": 13 - }, - "auto_discovery_limit": { - "description": "Limit of databases for auto-discovery.", + "collections_limit": { "type": "integer", "format": "int32", - "x-order": 14 - }, - "expose_exporter": { - "type": "boolean", - "title": "Optionally expose the exporter process on all public interfaces", - "x-order": 15 - } - }, - "x-order": 0 - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "x-order": 0 - }, - "message": { - "type": "string", - "x-order": 1 - }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "x-order": 0 - } - }, - "additionalProperties": false - }, - "x-order": 2 - } - } - } - } - } - } - }, - "/v1/inventory/Agents/ChangeProxySQLExporter": { - "post": { - "description": "Changes proxysql_exporter Agent.", - "tags": [ - "AgentsService" - ], - "summary": "Change ProxySQL Exporter", - "operationId": "ChangeProxySQLExporter", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "x-order": 0 - }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", - "type": "object", - "properties": { - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", - "type": "boolean", - "x-order": 0 + "title": "Collections limit. Only get Databases and collection stats if the total number of collections in the server\nis less than this value. 0: no limit", + "x-order": 13 }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", + "enable_all_collectors": { + "description": "Enable All collectors.", "type": "boolean", - "x-order": 1 - }, - "custom_labels": { - "description": "Replace all custom user-assigned labels.", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-order": 2 + "x-order": 14 }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 3 + "process_exec_path": { + "description": "Path to exec process.", + "type": "string", + "x-order": 15 }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", - "type": "boolean", - "x-order": 4 + "log_level": { + "description": "- LOG_LEVEL_UNSPECIFIED: Auto", + "type": "string", + "title": "Log level for exporters", + "default": "LOG_LEVEL_UNSPECIFIED", + "enum": [ + "LOG_LEVEL_UNSPECIFIED", + "LOG_LEVEL_FATAL", + "LOG_LEVEL_ERROR", + "LOG_LEVEL_WARN", + "LOG_LEVEL_INFO", + "LOG_LEVEL_DEBUG" + ], + "x-order": 16 }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "expose_exporter": { "type": "boolean", - "x-order": 5 + "title": "Optionally expose the exporter process on all public interfaces", + "x-order": 17 } }, - "x-order": 1 - } - } - } - } - ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object", - "properties": { - "proxysql_exporter": { - "description": "ProxySQLExporter runs on Generic or Container Node and exposes ProxySQL Service metrics.", + "x-order": 2 + }, + "postgres_exporter": { + "description": "PostgresExporter runs on Generic or Container Node and exposes PostgreSQL Service metrics.", "type": "object", "properties": { "agent_id": { @@ -7779,7 +7471,7 @@ "x-order": 3 }, "username": { - "description": "ProxySQL username for scraping metrics.", + "description": "PostgreSQL username for scraping metrics.", "type": "string", "x-order": 4 }, @@ -7789,7 +7481,7 @@ "x-order": 5 }, "tls_skip_verify": { - "description": "Skip TLS certificate and hostname validation.", + "description": "Skip TLS certificate and hostname validation. Uses sslmode=required instead of verify-full.", "type": "boolean", "x-order": 6 }, @@ -7855,123 +7547,22 @@ ], "x-order": 13 }, + "auto_discovery_limit": { + "description": "Limit of databases for auto-discovery.", + "type": "integer", + "format": "int32", + "x-order": 14 + }, "expose_exporter": { "type": "boolean", "title": "Optionally expose the exporter process on all public interfaces", - "x-order": 14 + "x-order": 15 } }, - "x-order": 0 - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "x-order": 0 - }, - "message": { - "type": "string", - "x-order": 1 - }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "x-order": 0 - } - }, - "additionalProperties": false - }, - "x-order": 2 - } - } - } - } - } - } - }, - "/v1/inventory/Agents/ChangeQANMongoDBProfilerAgent": { - "post": { - "description": "Changes 'Query Analytics MongoDB Profiler' Agent.", - "tags": [ - "AgentsService" - ], - "summary": "Change 'QAN MongoDB Profiler' Agent", - "operationId": "ChangeQANMongoDBProfilerAgent", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "x-order": 0 + "x-order": 3 }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", - "type": "object", - "properties": { - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", - "type": "boolean", - "x-order": 0 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, - "custom_labels": { - "description": "Replace all custom user-assigned labels.", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-order": 2 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 3 - }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", - "type": "boolean", - "x-order": 4 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - } - }, - "x-order": 1 - } - } - } - } - ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object", - "properties": { - "qan_mongodb_profiler_agent": { - "description": "QANMongoDBProfilerAgent runs within pmm-agent and sends MongoDB Query Analytics data to the PMM Server.", + "proxysql_exporter": { + "description": "ProxySQLExporter runs on Generic or Container Node and exposes ProxySQL Service metrics.", "type": "object", "properties": { "agent_id": { @@ -7995,7 +7586,7 @@ "x-order": 3 }, "username": { - "description": "MongoDB username for getting profiler data.", + "description": "ProxySQL username for scraping metrics.", "type": "string", "x-order": 4 }, @@ -8009,20 +7600,27 @@ "type": "boolean", "x-order": 6 }, - "max_query_length": { - "description": "Limit query length in QAN (default: server-defined; -1: no limit).", - "type": "integer", - "format": "int32", - "x-order": 7 - }, "custom_labels": { "description": "Custom user-assigned labels.", "type": "object", "additionalProperties": { "type": "string" }, + "x-order": 7 + }, + "push_metrics_enabled": { + "description": "True if exporter uses push metrics mode.", + "type": "boolean", "x-order": 8 }, + "disabled_collectors": { + "description": "List of disabled collector names.", + "type": "array", + "items": { + "type": "string" + }, + "x-order": 9 + }, "status": { "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent finished.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", "type": "string", @@ -8036,12 +7634,18 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], - "x-order": 9 + "x-order": 10 + }, + "listen_port": { + "description": "Listen port for scraping metrics.", + "type": "integer", + "format": "int64", + "x-order": 11 }, "process_exec_path": { "description": "Path to exec process.", "type": "string", - "x-order": 10 + "x-order": 12 }, "log_level": { "description": "- LOG_LEVEL_UNSPECIFIED: Auto", @@ -8056,120 +7660,18 @@ "LOG_LEVEL_INFO", "LOG_LEVEL_DEBUG" ], - "x-order": 11 - } - }, - "x-order": 0 - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "x-order": 0 - }, - "message": { - "type": "string", - "x-order": 1 - }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "x-order": 0 - } - }, - "additionalProperties": false - }, - "x-order": 2 - } - } - } - } - } - } - }, - "/v1/inventory/Agents/ChangeQANMySQLPerfSchemaAgent": { - "post": { - "description": "Changes 'Query Analytics MySQL PerfSchema' Agent.", - "tags": [ - "AgentsService" - ], - "summary": "Change 'QAN MySQL PerfSchema' Agent", - "operationId": "ChangeQANMySQLPerfSchemaAgent", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "x-order": 0 - }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", - "type": "object", - "properties": { - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", - "type": "boolean", - "x-order": 0 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, - "custom_labels": { - "description": "Replace all custom user-assigned labels.", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-order": 2 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 3 - }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", - "type": "boolean", - "x-order": 4 + "x-order": 13 }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "expose_exporter": { "type": "boolean", - "x-order": 5 + "title": "Optionally expose the exporter process on all public interfaces", + "x-order": 14 } }, - "x-order": 1 - } - } - } - } - ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object", - "properties": { - "qan_mysql_perfschema_agent": { - "description": "QANMySQLPerfSchemaAgent runs within pmm-agent and sends MySQL Query Analytics data to the PMM Server.", + "x-order": 4 + }, + "external_exporter": { + "description": "ExternalExporter runs on any Node type, including Remote Node.", "type": "object", "properties": { "agent_id": { @@ -8177,13 +7679,13 @@ "type": "string", "x-order": 0 }, - "pmm_agent_id": { - "description": "The pmm-agent identifier which runs this instance.", + "runs_on_node_id": { + "description": "Node identifier where this instance runs.", "type": "string", "x-order": 1 }, "disabled": { - "description": "Desired Agent status: enabled (false) or disabled (true).", + "description": "If disabled, metrics from this exporter will not be collected.", "type": "boolean", "x-order": 2 }, @@ -8193,50 +7695,75 @@ "x-order": 3 }, "username": { - "description": "MySQL username for getting performance data.", + "description": "HTTP basic auth username for collecting metrics.", "type": "string", "x-order": 4 }, - "tls": { - "description": "Use TLS for database connections.", - "type": "boolean", + "scheme": { + "description": "Scheme to generate URI to exporter metrics endpoints.", + "type": "string", "x-order": 5 }, - "tls_skip_verify": { - "description": "Skip TLS certificate and hostname validation.", - "type": "boolean", + "metrics_path": { + "description": "Path under which metrics are exposed, used to generate URI.", + "type": "string", "x-order": 6 }, - "tls_ca": { - "description": "Certificate Authority certificate chain.", - "type": "string", + "custom_labels": { + "description": "Custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, "x-order": 7 }, - "tls_cert": { - "description": "Client certificate.", - "type": "string", + "listen_port": { + "description": "Listen port for scraping metrics.", + "type": "integer", + "format": "int64", "x-order": 8 }, - "tls_key": { - "description": "Password for decrypting tls_cert.", - "type": "string", + "push_metrics_enabled": { + "description": "True if exporter uses push metrics mode.", + "type": "boolean", "x-order": 9 }, - "disable_comments_parsing": { - "description": "Disable parsing comments from queries and showing them in QAN.", - "type": "boolean", + "process_exec_path": { + "description": "Path to exec process.", + "type": "string", "x-order": 10 + } + }, + "x-order": 5 + }, + "rds_exporter": { + "description": "RDSExporter runs on Generic or Container Node and exposes RemoteRDS Node metrics.", + "type": "object", + "properties": { + "agent_id": { + "description": "Unique randomly generated instance identifier.", + "type": "string", + "x-order": 0 }, - "max_query_length": { - "description": "Limit query length in QAN (default: server-defined; -1: no limit).", - "type": "integer", - "format": "int32", - "x-order": 11 + "pmm_agent_id": { + "description": "The pmm-agent identifier which runs this instance.", + "type": "string", + "x-order": 1 }, - "query_examples_disabled": { - "description": "True if query examples are disabled.", + "disabled": { + "description": "Desired Agent status: enabled (false) or disabled (true).", "type": "boolean", - "x-order": 12 + "x-order": 2 + }, + "node_id": { + "description": "Node identifier.", + "type": "string", + "x-order": 3 + }, + "aws_access_key": { + "description": "AWS Access Key.", + "type": "string", + "x-order": 4 }, "custom_labels": { "description": "Custom user-assigned labels.", @@ -8244,7 +7771,7 @@ "additionalProperties": { "type": "string" }, - "x-order": 13 + "x-order": 5 }, "status": { "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent finished.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", @@ -8259,12 +7786,33 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], - "x-order": 14 + "x-order": 6 + }, + "listen_port": { + "description": "Listen port for scraping metrics (the same for several configurations).", + "type": "integer", + "format": "int64", + "x-order": 7 + }, + "basic_metrics_disabled": { + "description": "Basic metrics are disabled.", + "type": "boolean", + "x-order": 8 + }, + "enhanced_metrics_disabled": { + "description": "Enhanced metrics are disabled.", + "type": "boolean", + "x-order": 9 + }, + "push_metrics_enabled": { + "description": "True if exporter uses push metrics mode.", + "type": "boolean", + "x-order": 10 }, "process_exec_path": { "description": "Path to exec process.", "type": "string", - "x-order": 15 + "x-order": 11 }, "log_level": { "description": "- LOG_LEVEL_UNSPECIFIED: Auto", @@ -8279,120 +7827,110 @@ "LOG_LEVEL_INFO", "LOG_LEVEL_DEBUG" ], - "x-order": 16 - } - }, - "x-order": 0 - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "x-order": 0 - }, - "message": { - "type": "string", - "x-order": 1 - }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "x-order": 0 - } + "x-order": 12 }, - "additionalProperties": false + "auto_discovery_limit": { + "description": "Limit of databases for auto-discovery.", + "type": "integer", + "format": "int32", + "x-order": 13 + } }, - "x-order": 2 - } - } - } - } - } - } - }, - "/v1/inventory/Agents/ChangeQANMySQLSlowlogAgent": { - "post": { - "description": "Changes 'Query Analytics MySQL Slowlog' Agent.", - "tags": [ - "AgentsService" - ], - "summary": "Change 'QAN MySQL Slowlog' Agent", - "operationId": "ChangeQANMySQLSlowlogAgent", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "x-order": 0 + "x-order": 6 }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "azure_database_exporter": { + "description": "AzureDatabaseExporter runs on Generic or Container Node and exposes RemoteAzure Node metrics.", "type": "object", "properties": { - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", - "type": "boolean", + "agent_id": { + "description": "Unique randomly generated instance identifier.", + "type": "string", "x-order": 0 }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", + "pmm_agent_id": { + "description": "The pmm-agent identifier which runs this instance.", + "type": "string", "x-order": 1 }, + "disabled": { + "description": "Desired Agent status: enabled (false) or disabled (true).", + "type": "boolean", + "x-order": 2 + }, + "node_id": { + "description": "Node identifier.", + "type": "string", + "x-order": 3 + }, + "azure_database_subscription_id": { + "description": "Azure database subscription ID.", + "type": "string", + "x-order": 4 + }, + "azure_database_resource_type": { + "type": "string", + "title": "Azure database resource type (mysql, maria, postgres)", + "x-order": 5 + }, "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "Custom user-assigned labels.", "type": "object", "additionalProperties": { "type": "string" }, - "x-order": 2 + "x-order": 6 }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 3 + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent finished.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 7 + }, + "listen_port": { + "description": "Listen port for scraping metrics (the same for several configurations).", + "type": "integer", + "format": "int64", + "x-order": 8 }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", + "push_metrics_enabled": { + "description": "True if the exporter operates in push metrics mode.", "type": "boolean", - "x-order": 4 + "x-order": 9 + }, + "process_exec_path": { + "description": "Path to exec process.", + "type": "string", + "x-order": 10 }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 + "log_level": { + "description": "- LOG_LEVEL_UNSPECIFIED: Auto", + "type": "string", + "title": "Log level for exporters", + "default": "LOG_LEVEL_UNSPECIFIED", + "enum": [ + "LOG_LEVEL_UNSPECIFIED", + "LOG_LEVEL_FATAL", + "LOG_LEVEL_ERROR", + "LOG_LEVEL_WARN", + "LOG_LEVEL_INFO", + "LOG_LEVEL_DEBUG" + ], + "x-order": 11 } }, - "x-order": 1 - } - } - } - } - ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object", - "properties": { - "qan_mysql_slowlog_agent": { - "description": "QANMySQLSlowlogAgent runs within pmm-agent and sends MySQL Query Analytics data to the PMM Server.", + "x-order": 7 + }, + "qan_mysql_perfschema_agent": { + "description": "QANMySQLPerfSchemaAgent runs within pmm-agent and sends MySQL Query Analytics data to the PMM Server.", "type": "object", "properties": { "agent_id": { @@ -8451,9 +7989,9 @@ "x-order": 10 }, "max_query_length": { + "description": "Limit query length in QAN (default: server-defined; -1: no limit).", "type": "integer", "format": "int32", - "title": "Limit query length in QAN (default: server-defined; -1: no limit)", "x-order": 11 }, "query_examples_disabled": { @@ -8461,19 +7999,13 @@ "type": "boolean", "x-order": 12 }, - "max_slowlog_file_size": { - "description": "Slowlog file is rotated at this size if \u003e 0.", - "type": "string", - "format": "int64", - "x-order": 13 - }, "custom_labels": { "description": "Custom user-assigned labels.", "type": "object", "additionalProperties": { "type": "string" }, - "x-order": 14 + "x-order": 13 }, "status": { "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent finished.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", @@ -8488,12 +8020,12 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], - "x-order": 15 + "x-order": 14 }, "process_exec_path": { + "description": "Path to exec process.", "type": "string", - "title": "mod tidy", - "x-order": 16 + "x-order": 15 }, "log_level": { "description": "- LOG_LEVEL_UNSPECIFIED: Auto", @@ -8508,120 +8040,13 @@ "LOG_LEVEL_INFO", "LOG_LEVEL_DEBUG" ], - "x-order": 17 + "x-order": 16 } }, - "x-order": 0 - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "x-order": 0 - }, - "message": { - "type": "string", - "x-order": 1 - }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "x-order": 0 - } - }, - "additionalProperties": false - }, - "x-order": 2 - } - } - } - } - } - } - }, - "/v1/inventory/Agents/ChangeQANPostgreSQLPgStatMonitorAgent": { - "post": { - "description": "Changes 'Query Analytics PostgreSQL pg_stat_monitor' Agent.", - "tags": [ - "AgentsService" - ], - "summary": "Change 'QAN PostgreSQL pg_stat_monitor' Agent", - "operationId": "ChangeQANPostgreSQLPgStatMonitorAgent", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "x-order": 0 + "x-order": 8 }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", - "type": "object", - "properties": { - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", - "type": "boolean", - "x-order": 0 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, - "custom_labels": { - "description": "Replace all custom user-assigned labels.", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-order": 2 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 3 - }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", - "type": "boolean", - "x-order": 4 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - } - }, - "x-order": 1 - } - } - } - } - ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object", - "properties": { - "qan_postgresql_pgstatmonitor_agent": { - "description": "QANPostgreSQLPgStatMonitorAgent runs within pmm-agent and sends PostgreSQL Query Analytics data to the PMM Server.", + "qan_mysql_slowlog_agent": { + "description": "QANMySQLSlowlogAgent runs within pmm-agent and sends MySQL Query Analytics data to the PMM Server.", "type": "object", "properties": { "agent_id": { @@ -8645,7 +8070,7 @@ "x-order": 3 }, "username": { - "description": "PostgreSQL username for getting pg stat monitor data.", + "description": "MySQL username for getting performance data.", "type": "string", "x-order": 4 }, @@ -8659,21 +8084,42 @@ "type": "boolean", "x-order": 6 }, + "tls_ca": { + "description": "Certificate Authority certificate chain.", + "type": "string", + "x-order": 7 + }, + "tls_cert": { + "description": "Client certificate.", + "type": "string", + "x-order": 8 + }, + "tls_key": { + "description": "Password for decrypting tls_cert.", + "type": "string", + "x-order": 9 + }, "disable_comments_parsing": { "description": "Disable parsing comments from queries and showing them in QAN.", "type": "boolean", - "x-order": 7 + "x-order": 10 }, "max_query_length": { - "description": "Limit query length in QAN (default: server-defined; -1: no limit).", "type": "integer", "format": "int32", - "x-order": 8 + "title": "Limit query length in QAN (default: server-defined; -1: no limit)", + "x-order": 11 }, "query_examples_disabled": { "description": "True if query examples are disabled.", "type": "boolean", - "x-order": 9 + "x-order": 12 + }, + "max_slowlog_file_size": { + "description": "Slowlog file is rotated at this size if \u003e 0.", + "type": "string", + "format": "int64", + "x-order": 13 }, "custom_labels": { "description": "Custom user-assigned labels.", @@ -8681,7 +8127,7 @@ "additionalProperties": { "type": "string" }, - "x-order": 10 + "x-order": 14 }, "status": { "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent finished.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", @@ -8696,12 +8142,12 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], - "x-order": 11 + "x-order": 15 }, "process_exec_path": { - "description": "Path to exec process.", "type": "string", - "x-order": 12 + "title": "mod tidy", + "x-order": 16 }, "log_level": { "description": "- LOG_LEVEL_UNSPECIFIED: Auto", @@ -8716,118 +8162,102 @@ "LOG_LEVEL_INFO", "LOG_LEVEL_DEBUG" ], - "x-order": 13 + "x-order": 17 } }, - "x-order": 0 - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "x-order": 0 - }, - "message": { - "type": "string", - "x-order": 1 - }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "x-order": 0 - } - }, - "additionalProperties": false - }, - "x-order": 2 - } - } - } - } - } - } - }, - "/v1/inventory/Agents/ChangeQANPostgreSQLPgStatementsAgent": { - "post": { - "description": "Changes 'Query Analytics PostgreSQL pg_stat_statements' Agent.", - "tags": [ - "AgentsService" - ], - "summary": "Change 'QAN PostgreSQL pg_stat_statements' Agent", - "operationId": "ChangeQANPostgreSQLPgStatementsAgent", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "x-order": 0 + "x-order": 9 }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", + "qan_mongodb_profiler_agent": { + "description": "QANMongoDBProfilerAgent runs within pmm-agent and sends MongoDB Query Analytics data to the PMM Server.", "type": "object", "properties": { - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "agent_id": { + "description": "Unique randomly generated instance identifier.", + "type": "string", + "x-order": 0 + }, + "pmm_agent_id": { + "description": "The pmm-agent identifier which runs this instance.", + "type": "string", + "x-order": 1 + }, + "disabled": { + "description": "Desired Agent status: enabled (false) or disabled (true).", "type": "boolean", - "x-order": 0 + "x-order": 2 + }, + "service_id": { + "description": "Service identifier.", + "type": "string", + "x-order": 3 + }, + "username": { + "description": "MongoDB username for getting profiler data.", + "type": "string", + "x-order": 4 + }, + "tls": { + "description": "Use TLS for database connections.", + "type": "boolean", + "x-order": 5 }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", + "tls_skip_verify": { + "description": "Skip TLS certificate and hostname validation.", "type": "boolean", - "x-order": 1 + "x-order": 6 + }, + "max_query_length": { + "description": "Limit query length in QAN (default: server-defined; -1: no limit).", + "type": "integer", + "format": "int32", + "x-order": 7 }, "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "Custom user-assigned labels.", "type": "object", "additionalProperties": { "type": "string" }, - "x-order": 2 + "x-order": 8 }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 3 + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent finished.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 9 }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", - "type": "boolean", - "x-order": 4 + "process_exec_path": { + "description": "Path to exec process.", + "type": "string", + "x-order": 10 }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 + "log_level": { + "description": "- LOG_LEVEL_UNSPECIFIED: Auto", + "type": "string", + "title": "Log level for exporters", + "default": "LOG_LEVEL_UNSPECIFIED", + "enum": [ + "LOG_LEVEL_UNSPECIFIED", + "LOG_LEVEL_FATAL", + "LOG_LEVEL_ERROR", + "LOG_LEVEL_WARN", + "LOG_LEVEL_INFO", + "LOG_LEVEL_DEBUG" + ], + "x-order": 11 } }, - "x-order": 1 - } - } - } - } - ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object", - "properties": { + "x-order": 10 + }, "qan_postgresql_pgstatements_agent": { "description": "QANPostgreSQLPgStatementsAgent runs within pmm-agent and sends PostgreSQL Query Analytics data to the PMM Server.", "type": "object", @@ -8922,117 +8352,10 @@ "x-order": 12 } }, - "x-order": 0 - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "x-order": 0 - }, - "message": { - "type": "string", - "x-order": 1 - }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "x-order": 0 - } - }, - "additionalProperties": false - }, - "x-order": 2 - } - } - } - } - } - } - }, - "/v1/inventory/Agents/ChangeRDSExporter": { - "post": { - "description": "Changes rds_exporter Agent.", - "tags": [ - "AgentsService" - ], - "summary": "Change RDS Exporter", - "operationId": "ChangeRDSExporter", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "agent_id": { - "type": "string", - "x-order": 0 + "x-order": 11 }, - "common": { - "description": "ChangeCommonAgentParams contains parameters that can be changed for all Agents.", - "type": "object", - "properties": { - "enable": { - "description": "Enable this Agent. Can't be used with disabled.", - "type": "boolean", - "x-order": 0 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, - "custom_labels": { - "description": "Replace all custom user-assigned labels.", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-order": 2 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 3 - }, - "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.\nCan't be used with agent version lower then 2.12 and unsupported agents.", - "type": "boolean", - "x-order": 4 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - } - }, - "x-order": 1 - } - } - } - } - ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object", - "properties": { - "rds_exporter": { - "description": "RDSExporter runs on Generic or Container Node and exposes RemoteRDS Node metrics.", + "qan_postgresql_pgstatmonitor_agent": { + "description": "QANPostgreSQLPgStatMonitorAgent runs within pmm-agent and sends PostgreSQL Query Analytics data to the PMM Server.", "type": "object", "properties": { "agent_id": { @@ -9050,23 +8373,49 @@ "type": "boolean", "x-order": 2 }, - "node_id": { - "description": "Node identifier.", + "service_id": { + "description": "Service identifier.", "type": "string", "x-order": 3 }, - "aws_access_key": { - "description": "AWS Access Key.", + "username": { + "description": "PostgreSQL username for getting pg stat monitor data.", "type": "string", "x-order": 4 }, + "tls": { + "description": "Use TLS for database connections.", + "type": "boolean", + "x-order": 5 + }, + "tls_skip_verify": { + "description": "Skip TLS certificate and hostname validation.", + "type": "boolean", + "x-order": 6 + }, + "disable_comments_parsing": { + "description": "Disable parsing comments from queries and showing them in QAN.", + "type": "boolean", + "x-order": 7 + }, + "max_query_length": { + "description": "Limit query length in QAN (default: server-defined; -1: no limit).", + "type": "integer", + "format": "int32", + "x-order": 8 + }, + "query_examples_disabled": { + "description": "True if query examples are disabled.", + "type": "boolean", + "x-order": 9 + }, "custom_labels": { "description": "Custom user-assigned labels.", "type": "object", "additionalProperties": { "type": "string" }, - "x-order": 5 + "x-order": 10 }, "status": { "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent finished.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", @@ -9081,33 +8430,12 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], - "x-order": 6 - }, - "listen_port": { - "description": "Listen port for scraping metrics (the same for several configurations).", - "type": "integer", - "format": "int64", - "x-order": 7 - }, - "basic_metrics_disabled": { - "description": "Basic metrics are disabled.", - "type": "boolean", - "x-order": 8 - }, - "enhanced_metrics_disabled": { - "description": "Enhanced metrics are disabled.", - "type": "boolean", - "x-order": 9 - }, - "push_metrics_enabled": { - "description": "True if exporter uses push metrics mode.", - "type": "boolean", - "x-order": 10 + "x-order": 11 }, "process_exec_path": { "description": "Path to exec process.", "type": "string", - "x-order": 11 + "x-order": 12 }, "log_level": { "description": "- LOG_LEVEL_UNSPECIFIED: Auto", @@ -9122,16 +8450,16 @@ "LOG_LEVEL_INFO", "LOG_LEVEL_DEBUG" ], - "x-order": 12 - }, - "auto_discovery_limit": { - "description": "Limit of databases for auto-discovery.", - "type": "integer", - "format": "int32", "x-order": 13 } }, - "x-order": 0 + "x-order": 12 + }, + "table_count": { + "description": "Actual table count for SQL databases at the moment of adding.", + "type": "integer", + "format": "int32", + "x-order": 13 } } } diff --git a/descriptor.bin b/descriptor.bin index 5a6dfaf987bb49b00d4c7b576ab1f8c67df9e179..4ad19774cabe2f78407a352940bbb8d51d291c72 100644 GIT binary patch delta 21232 zcmZ{sd7M?%mG7(WnGf>?YNV=eQ4~c{6h%>h;*3KQlNc4nm~SVAjaM44x~}-q+%;SMKR*$q>Y38GqT}AJxn*q~$M*96IW2o8P4lPxa{RX&)1qWCB3nb7MK1%={4U4{=9H+@vqIIpLAI`36t z?OH}5dp$jm>!rQ*^?&Mgee2J-eks>`eLw9w>7vUom~iD~mrlB3!lbfT?HlP;s9`_z zx|E(Ze$x0$F8^N9*e(<~&6dbttZx4yCH~Ue3yWKH^><(3^;MO9yh8D1>bO2$U2&^A z`=?&1y0Vqf?j7od>b5>!zv5r0h2@kPYK(_|?DbOj4#)UKA6j^s>eV-6UiuT5KkMuD zFTP$~)z@n(K3Yh_Rrg~l{|*KH8;jHa>Q^UFareaQ9(LEgq0aiLH%Q(4PhMB`uO;5# z{!to?m%i`6DoJ~PYb-9m?9z#sPsoqagVFI-iFbz|n$qegJ-rm zOD~$>I>7XbS~1eQs3WfS3ZB=VR;c~w$S_nhc+ZUVF6_wn_dfLetBTV~8PUFBXVOOl zy}q9Mrrt}{7w4LB3yr%2gS~rl#&VR5T(>6Y@0y|B?wmBbPF>pSRY|X!nxd&;S~cdP zi&X9TUY`#7^Q)YHeQ{b)`+v+JflV?0k0IACJK8IBtR3Zro^f@-FY(EO)@v_YLz z;+3fNeHk8#o~wS|;QglK-DADg#s2NZ>0mYH1aE*0gmru%NCydJP*z%%exB>2?)f5D zqP9;VD+ZqAJz1>oKVIUNvFUcAYgYeLyzk{I{wpmt-8}ZxbN)du`|G^4T>W!zue@XY zcf2LVrh^`{Q`mH!zb;6t)%x#y)oM|tH>BhI)4l6*YQ{+V`28RJP5%8x^r(IIdFDcIZe+c5zw0r9NC2>(coD<~!6nJU3G!Tq=P7wD@yNWqi zl=tro`~k+8D+)F2>mX(C3rcDn^aS>=vs8?81AmA$7KizE!Q~EXb47!LaOVbtn=Ch% z_vZ!vFl)?FEwIu-sPlq;O%6hx7YuE&RL~y-f4DVzP=Wmfw$mOD?jM7yW@px=hqYR+ zpZDhn{s?RI;R351ggQT{ZgCLm{9t&Sr3QI_K}HRr0v$Dgx*%vj!VTaq$hZ`~KjVf5 zI&KK}{;b*%>irot%KHxl{$LwZ1Ql53Ak+tf@_Gx~Be)L)gBoqfao&G0@K3bX7%s5C zgK!@V>W*;`>Vv`YCs=Bd_a6%U)2uOp3Usq1f%;HT?;Iyk9|}%BHElOjD$V;3XVs=~ zfwk6E3isil|7Zu{J{%n9s_l~Z7iQIVfeLihc7eJutF{Z&g;K4lwQJsQUljP~SjS!A z0^JHb#XBET&Ov}G#@Sr ziq-_^0-4udO3@`jT&7d6R8sG;Ah*h<9vJguF7-+!^*Y?72T?1qtF8t}*^Z!FiG$SI z5tLWxfJ<{29}oOGYb5mq_H1`pn|oC|2>0=zw!h_)dQSwt$;;B5q#iJD%ZleGg5GA5 zV1@cbP(RR8K~DyLqb)0`2kh-&al7C?X1Gdoo-W-m$Z|=&rEWY*bCP<%K9=iK?b4v{ zKnI~N4H^eqDyg?Dqe|)l9aU0qnW44^erZlpZ&}8r@bZi+sRwjiNxkJ+wUTnV`)xOZ$;40IhNF05sW_8P}_5)-ZNRXl6pX+7Nt2!y=Q`Q zBf3Di&jf9*T2k-XtXfGupsQ9=@7b(cNxf%}RGTC9RtEm}({@>5N^_EWU^j;(^;QOT zr`iT}g}XBN?&-F*q~3FZ|3hn()C0PSEvffhFyK4R3iY|*^dF>WuymE?y664XL9V>w z#KM>hulV)&e=n#nH^p65k4@gNcC5@A%#r1G$JOc}c9XR`u2u&nWkiwl%kts#LD8Ew zi_0kad=OXYBrcOAej&)cVUrk)`Gp|vmbMW@nI!Q`f!|V5Uog9xv(7kU%r7RiPrSlx z0t=U2a>)hbWm{S}zR-GXs-uBLJE57`1H|V`L6uQ?Ai=#9G!NBXR3<6;a^SaFsw6wm zBsWHFtr_a9P+tyO+lN~&$-XY|M_Q{SJJ77>WjXP@E-07@0ff6QXd7Xvp!I=&l%-0t z0}Bp9T_4n%Rk%#&`ubqxC`#`%hHb$l;tGZ!DbEv;l2{|8)RD`$^J^vG{lBXvcDSmCtIT=JJ2kwWjRUq zSA&7aJ1f*zgOkQsD!Kkz;D65=CD&i0ej~7DI@w}dZLKH)A#cj6m1N(PRZFsO4*c_M$dc?pH-{wI zHwP_eIV;r7!8zk>#3cKcz(3y_CD(yw&s3I^T;CE58*5e~Fx)M{xF5sK`Q`cWt)OV1 zO|x=}z7@okI?c)@&9()(k8GNOF>jMJYaq?aCC#>@3l-%BlVIf2Kgui$63}*bf<1MB zVEk+k>{DWK&bD!MG2@2+qJMf$1=Jzqe^B09aS=Gr%<&LQyA_} zx1g2hNUirWuA~;waV53h%c_;sdM~3=_IxO?4NST5`6hi)wdK?Rz%5D4`{w-y4Se(2W1@*Kh~{ur6m;<{49ve)6t}0g{0ttAa{!D z^{6*|91ySIST__%;R8Wp`WJ}T13{%(;D8L|fuQQ-v{#ylt9W7Dodh}%RF6rAXz$Pu zs={V((5MQXhX;e4IfVkn7L=Hd0OI;!Ft7n-$oZA|@UKD9&0(=Ru+A&=sif#%gSaX^ z8K;#J^5H<8{e^e@c>n@F>;eW-^l*@vN`QDh9F&=92_)ddLB)wWV1Xv!!$IWs@qKkj#7F6M*`tq8%9P+ zfN-x3OG?vIH5YV!m}^usCdQ*rm+e+%&O;KoX0{eU++81b>1ExCnp_{|&60vuJ3xp; zRx3qKCWpClRourfi~!OMuyZAHGCAyG6ap*U$zf?(db;LP&rP9va*KCrdu1-r=tv_( zOl}Gzb9%uF^QKUrUUGiFe0WP(bbDydO#LW%OBkDdb3YleTf>}L@j!S5nmGof?5$y9 zng+z{tznL|gVac(2%mkV-yEQC5Mz3A{q-$>rb7oZs(ORGxa-gD8GwkVxrl)jofg_j2E^yI z&`vTS0Z$9geMt30Q^djL@(CDFELp^DXhJFfkJaE54OX6zL2gzExOu zyzUHv#$Vr@L;)YHOM<-EL~4{ESc?-s-iqRq6RTBl9iub4KP{=I0FY-Kt|`e$G_y?DLvO zRONh{Khxz25aLX3a?T99bx)7iM9R)$Q114QhAESCR>qXcIm=B>tT1QEb26qZb91t0 z$}%@6YbHH77xhp>?(hbWuFA!5!LIvdotqmbW=De+?%c3m zHLO-JIZq%SQBp_*f9eMh1ZRSP(WeYAvgh_3i<6_AYM_O_tT}0VicZh!2ET z%773b2nP;I2kN?6?H=MDeZjA#$}Uv-P}a?|);$zPW(mLw^P#Y&R*PVjtaS@j@oujT zVpoU@Goq|?3!MUDg}5+eff5C*l9g_;+W(1n(kXmqek^u+1;o!{Cw)NtEOycd#Lr@B z^NHFIr^iP^b=i`5l-mB4=M#pU7$3>HT~3UTgo#TiIWayGR`k=#S(WR-ogTH}L$8i5 z>p_<-$-?LXafy>ntPq!krRC|Fy564L$O+XQQ@roDSLJ$AWk=TXo-jMInb{L&M_68| zchA-N@X4@fxs}aoNA%d$CWzJojcfw7)ygIi@5@9s2P2y``S6*r=p%L3POq`&GotdcF4su7E3IS# zh<2rm7Kp!h|}%qnlS}PNl}xu6t{=IG1Q z=&f~XP$P@-3r6(#OaoqU69fqH1t)qyh%Y$NtC5YwOGflY0W`8JG7#oVZfXHxz9gd8 zq#MSNt_yRuYS?jc;b@Wd8ZCWXGm{7ie_fcEYzD$#7jnDnIL$};HiT+JPyeV9HCp;M zWK5C14Pi1^3pG}l8$xbwh}_o5;_-@+TUEWw3!7ibh@yM1IJKoD#8*UZWy4q_+xyo< zvxW|R&8Za^p}gkQ3JB#jr&cv0bDNA>sh6d$O&$$`&V6HKK2C8kyoVBl@P(2OuN!rjscke%^F41;o#rB2)K?yw`}{y{-1_ z_T~+JJL?*ewztE?+*GFwoVUXP1Jgm8g0#I8s^XL48uiv5FCF?$MifzdCrr#HrzR(& z_D)z=uQjnoMD5*9nyAj)>xDz#&Df%B?>b4OIP7;t5=BvKawyw-p<4bM@0e2nwE4ZP z%_4N~Wo;IrdoRqJEj@*C^q!2Qj>~TU&87O<45ZB~-bAYl!3?RM_v$5?B^TRA#dc*wC32`AG zejFBkVuiRs$&bU>JQFL3vh8z148kkWptf2e2I76c2yqiaT$>LMghkUMwdgNieVr^W(J#0Q-k*Gj~PtQrIGeJJxS0UvT|j1}L9oEii1 zeaNY?K;!$6sIeSKYvm5i*XrYsy^-hh8P{KDuBG0uT~A}h_1DtV($PR%f9*P2pmF`R zbhL3z`ENp=Xdgd49;!FRBWm@=m5XLDfmHELR)uKzH%`NAMZ>R()c$GSkfQ+vcU5Gi z7zp#K$nIQ$Ft3W(x&E7O6=ko9a+MW7Q)4dkhN{6c<6%dcutm`^nS)}jR`hEkd&UCd z=9&ma7kR9e`%%}aUWYhO^I1S-Pp3fYzb>*{Iv~XBB2K5WrK^>@H8(^o1y|?&nl>Pn zf?cH|<~KxkQ->Aq4H3(LoNQ~QUvE^;9AfLtXNWguL=p2FBYUjH3h~Cs9&2kw%x{iV z&!5M~e%G`$p#yJ@>`4?m&TfwEp%#d)@H2+5Q~Q?1DSEs;8^!mn-zz`P|o zGHRmpw?uXaj}_)EQNB-FqnYUZZBeeYqF3SEAD&Yv{8qJg_3Idm?o5E+X1ytkz;7da zuEz@Tw-Fmu*|F5hB5-%4w*Sd%h1r8D?~d#-0toZ&C^owQAk4cX_Vlu~t(67fp2%!% z0Wj~$#$Ocwo@};?;@=b5t!@8&I3p_hePr$k^rz&Eh@*-;*X=Lr^t;I35dh&8Xa)dC z+26SV0OIv`5qYlfe}b8izl-c00f8pbe;3(10{ulNW=8go0Em798bt+at5sAW-e*Qu zQS0*IAEKh=QStDq0$&zsF;9OAXHB~F%Ktp)Y&G-?uSf4X_x1WbYFQG|jj#viAwqKSe)BkGG;&_ObLZTP7<)Rq{AXUtF zqX49e`7#Qo3Q>jmZV<5AD(1@|m?|iLzk2&1vQej1_WsPZsO&AG_o28g!!5FPxX1}>oe1lnjtDD|O2I~0fpGuigcS()Pfl3tqzfN4!pdiek7h&> z)<>PNVukpq6V^Hr*2g*tD;Maq$D9-ZarT%KRv^wEbHWP5*<&KCvcanpVST)_B5?)! z|*$iXw@w)X83Ynbj2lRW8e# zFB-Zm8!XY#WlmQHUfM%xEBGSGZ{h#On%~cKLD<%B*o30>tYYry)Q>UgI=Gpb2@6(~x=z z`FX7&Q>JfFFifS-37f)&@#I}HKi`gx}z0*&kEMMLCxST7p#qB`!dcQmdg^WJHv;zopz0;0*X~0IK9ctT`9FR6066! z^;$f@W}XA#Zgx8mAl%Inw-(RV@gg2?D4rsoLEnl{yx}$iK!|TdeA7u10toSqsIp3* z#_B~VwnnPv_^4WMe7FF6Yt~Jo6I-Lmd;<fD~yDMGQ`2`pBa+hyzWBi&RsTRYS&&;LGsB-^YV z8Bw-bJEF*ZX#y+69Z~-QwyA8hc4|>;uh-kGolew%5O+FJ147&>q9)J62j;^MqM|)k zng&wxgD5s%jvOfIy~{}xh;V>r$bgjH<%S!G*IhE)`XLCI0pH~^Mxe=nvIkrmvkaVTJj%6Q%|crf;k;0bqWUF-4fZ z$=WHx^i9@Idhn{)3KQ|lt_EyoIS}quu{|0A;a(LZOk?%9AxziAYQ_2S>FTUIJs-Nr z(>1X@rvRZ}6I*!#Lcb=q^3)*mbX}au6Bl4#7u&rU5cYMkl_wzV>tf{TVqH1%G&xq6 zr2a+JE6+S8XZ4CaO^$i~EV76d=44^YnY=;d>84l zD{KvN7M!BC7ySNIDe^QW3s&T5N^DQ$SRqb{t*$l5De%@<-Rt?M!;}Xcw`NSyr(0ty zY*=C58e3s&kYnKOv0D7!UjKFg!QLL*<2VrJ?Xf*T0%6`BTV)%R5ATYLrp4wkH;9sV z#cW*UFgHkKVrpy;b0FdYnlT4bc4}--(?GmVjh(WAnK4sidzcewa&BsD4|9VgWq%vn z!yJg1fkxSY+G>>zi1**dcGK0E52wdPPpUh+`OUo>DL7q1mS+`>67meSp__lgd3+|| z87^QTC1=F;)CR=mjM$#qfW$i^wx>3MCf*sbJ+(DTyfb6-bQgf{nVD}1cV=vlZCLR= zGq%SzAiihD_Sh!S_?{UfZO7=ak+xZJuB2j!dTORuul}uv-?gn#iyW6tj{~V>mg{jK zmCTYJH!eW4)tDass1c1?!e(bgk+9hrQ6y}(5an3bC=xa&);GUkiiFK^lMV=TPHb;} z0b$OG?Xj#;By4W1k7c6(8riG_!kio1`&~eob7T7iqfsR6kFkA%q3@S*2|m|cV@1gR z7~3ZpSmFOMwofn`MaUMY^*#Ng30ZV(K}HlETM*j^7+4`Li0uQ6Mp+3Sh|Q)B0P}&2 zDJu3rZ0|NQO;%$byhL1K!3=o2@v{2PQ`%G9}*Q4HE9$TTWHk;K>HUu zH37n0=+p!VbD>j{M%iF3)@m}6&s4cM8y*p`#ZFDILR>6rq8~;yih?bP)!yCSEV@ZH zSWB|Tih?bP?K26iP?yB^nM9)~SVyd%N$4#h7hrc}Y>}~!*glxR3cDlb!GwHIrBP(; z2`feb+WLeOBOuHtoEQONKHsoXfP$0#de!DSTcLL6C)7u0L^RxQg*qU z;Xu4DKO#n8hJCpcBY`FXmpd^UEUERB6C)5Y1C1B~wbhCd5bsaLh|y@aSxxzHWn8pf z{k*R~qIVMoSH^LR7NaH!d6f|(J`?aN7ch{LtDG1CakDWy|QLC4jTaiC}=u0jUxC-Ybr&B;UFFBoRl9sHCRj=4TVd%PyBMP<7 zDHMg^tP_Qjd~Fhi+7O#Bi~%&Vt3MFt2A8ium>c4O=9YYuXwxgAZC7(keiV?}!RF2p z5bi53Wr1*C5nYpmO_OxvYjJLXny7+PbmnmhKGz&yMCvuS4ZsTjwU{4yiAXhxNNwsQ zQf*v;zR8Ic5c(!3Qb6dNM5N?ie3OXO7B#BEuW9Eq#4XvVh(>L3;)oUEme}5kZxW4q zGyb1%#Zv%plyGA#!u4i0#v)vA#`acx6T0R3Z^hZIc&P8 zfRugLH3x{-cV)`z8{1%p^<9@80!?*QyMB-c(SKOkZT8umM`vAn`4#HketvcDX860~c$ikDW@*V@qe^_H9eZ6nfRx

earw<9HkbQ_>Jm!)qd}BT%{5&n}GmQ$;WOWfK>9aQz;;oeC)efrX!rm#Z%GA`6=Rcw|H{K}{zRmvBh@;}QN1@J}*H|<1^u1)M& z2rJ&MO{|AP)gpM#OC+0Lq!CpB=%?rA|9Y=4v?}_TyubUosuAD z|0;_;m{~9-u}3?BCXJ>f_GmX$vhbF~9_>KH3^Z~E)K)8JK)m0QAZG)Svlex@&Tr_` zLXkTY9$dotE@HMt@sZpz%5_DH*LFO}B_xsYJCd z^eTn|h*)L5rFT?f9|U8?w@NB14O87v&v(09wD?TVI3hmNGmePQbm7QerA5SNMxysB z)F$5wpOM(T3J~Uu#NMd@!km%Vy-JH}8R$2_5!soU*gXai&dkK#qyWO1nXpHZuN<_f z>kLN(XI91$!I_nDL~v#ar%`jZ4D<(6k7&*8j3ZhzJF&Mku)>+0u$PhNj4i6Qf#Y3^ z-v7+WIHEFh68p^rtZ?QeoU}#QT0~{$+FSw96LVdz0AbE`xdMba*X7Evd^kTTdcfw& zFiOr(_{zB41{o&PZ-L7d5N!aOTme#cfy)&jUKdEN=o`FXrpf}BD+0|_S>SSIn9PRz zU9NzL8EA3^sI4|vfOx-Oaz(x+)S3?$CPk~%*Mt0ly;~``FyY~~Jo{^vkQb|wjsCIc z^O=AbyMTd|T%6dSegJW~II%zd021%w#QyX{pow>J!cRX$Ra+(AM-qMyac1cE8wJEW z*mMU_o9&GdAl@I5;W3U({K+Egap}suKh3xZ-+=>q@L}mq=F{E~rD@FxWp1 zqWo&2BO^+7bYw)yjt(K7t1Bfto=~3;_RoSSEAtZ>QIg{cw+di|_(Z~q|L2-W*`?~r zCjX~Lx9SX8nh_;KmO9nJ3UR5Zj{M5Bm4!K6p5#^}f%?@I-r%2b0asjc4V7G3o+L(2 zu)1ez(g#-+$`nHOtaihyV>(4+`Z zTWyK}@xE44WEd&ZmJeS}iaua>+`segc+CI(^`r@>j#m?h`hEJe!GAf42kNz^O~RtRA|9X_7$9Z$I0*pab z{>Ow=zx`t*oP9||F;{Gh|JqXfYkSC(xYdZ(x6d1 ze@u$1bt6Vm?m)t?vVV}~LVlC|Wg;&g8aC2DJ^y7A>n8(Y5lsufN^;k!DI@*S?O!FK z{%Mk2M>M`ldg))g3Z#~=lI9a-84~E{!><$na1y4y(?nlb^!zfu{AVv_rLIc-YtxYA zh;*sDSikHg9T{=&U1aU*!L#Mnzg18}V9BqRr zCWy(Ye>3h)5XHU;!d^5%NU15Qf7_8Dig}84Q6foM9v0bFPb2v)ZM8+{YVfw9fZBawv5(!`EX{Mn@12W z1vU35fAq04v!3t>VrJG8BDXWMp5S+*;qOy__K_ewHU22S&&hKA52-)*NVT4>)?WId zu9hP6)7)aJJ+5HB`8Y<;zYFy%@YG`bv`?CF;iZ!9PxL6FR^5ZIBvL<&}47EKHhk#jht#yu2_--tkqDG!}l7YKndb zT=5|DD!7wsz35wI^$X%|Ime4T5#-fy5ct>cTV=UW+QYmwtdsY1d2Jxx`KOx4{jGPo zdhg(Gd2c;W6ZluwQ@?w#bLd>H?i7i!kX_2NSvmxy!?RgB$fo7lEFE}3MYuBc|9m7J0-Fx@qDcoSwL0~mcj=G| fbT-JP;&gJ)Q+)mc{zCpD{$l=;j-IEa_YC|0V7-k` delta 24229 zcmb81dz@9pmG8Uvd+)<@qfK|y&`m=_LqkK;%~KKa5jDQ>nM`h8Mu~AoB>|I3=6-Hk zRDwnk0dZ>-6$zurprT;o0}(+*L=hDqNDvuBMS}<`8f3WNRgbgLm^*X-fKUIb>bGju zs#?FQ+UK0T>6L!>yw~sYt4fzRS8Vofe8Eq$8-5>Ew%xhedAvDW-P?V;?T4M*A0~zA zZgTk83obZq!Uf~Am3`e&ZSU8)rKV zamW1K5KheI*0^0tOS8oVw^w#w;CA+FX9fh~h0bn;^s~P0fx&J+$Gf65>7Mg>YA?RV2y_h|3h(xgs`>YVgv*^j!o-EpjEgL_!^@yAZr?9ZWF(e}|ux2v1AALl07 z?4jOa+4#h55U$&r)MnF%dX?Gkp5=W564m&%pZiIDcHZG`ecOuT+!q{ghGAA@%d1&}c0k_3(qy1m zH09S1mtp-|)}hj^!|E9w+~#at?DlNyaiV*Y6zm%nedzO*-sO9aNGKE?r$AuZO^uo&T>7cbYXVdIqu2cPiKxDmCZTFt@65y z+atcmNH(40R+qnAnxuc9{Au6plM|SS{gs4xT(cKu-`nGL$_}332CD27JM*;{%^cg3 z9;PkShM~b4aEK&UJ&%hYC=- zr8GHA^x`ll?Wf&2rJLI!yAO9tE3>gxkfdN-(U%D`$BszLj4xVWa&LNAZ@wWshx*ef z{`AZJ$)0KUI&@37mnMg6_BRA3)n1ggcx6sygYxmbZ!{@7H<1}gyBg<)Erkhs@Bcki%o^p)-`P0B>8%A8btlkM;3c8bp&|Eph*pLAK}05hqSWpi4* z=#<)D&m4PXT5g;gH(}Cc7fu{MDfg~k zcSg$2E(YoA{)j-Hb;c>*=Fc~^^UyH;oj=ltpU!j8cGR-FlMc~=Sl1n$I(?`YI+e|b zl>8n=yr}l((wSqwpY}4b>3hc5(`rst-i#YR@#klq|BLaLoYz`N+eqy33n?W(EclU6+ z79BNlm9p02EPq>Q_0C;0ZsLTWUv%;KiPqEqM`*vDacF1<{ibQqMVI~txtTEWcZ0H{ z&T&H}Gnu&Kr*As!sO%WMophv*=e^Z#7qwA^I$=hAy|_zj?IT2ZVmkQHRbkRb7V0lA z{K=%t&bv(gH~td(on*&x)IW^)|Aejwb<`-2DHwUk6x=<`>*1%bI~)UwJD-#0URM|A z;fUf$sx#RdTWgmvl8e)U|IJ7)nQ-YvM9&W6i2t8qe4VSuFh*9|W8q_ghf%;V0o`$*bH``$L(OPxxyF#+12s5jNxpU)gSB<*4b0x{Q%Zr0sH zH}XTJqCwp0lSj1v(0)ZtwSnV*%Ym4rF1lpYwaW;vt7Byqke+E=`kIbecJ5bESH~N} z|07*J+!`vnajnBiTMi3OY82te-QB~Blis8QCuNzO90u3^fk{6xHCtiL*nj)=#PK!9 zop;%JKRa*IAscre8@8Jgw`+Q6yoO4=2Iuk0x{ky4!{@rI3iF?KlQ8v5N?s^rXY36R z%l>zBP?in;WmL#E)klT4)!%d9zGOsI;&^3gaJyeJ&o3R)p@zdq&A3xfRcC@EDI~5} zR+@UZ`%y(QGV$2RN>cAm-#IqxxzHVQF3?vvO4=vB)YAA)KQ6b>71*uH!bo8EW0KBE zERCc4qYjP~^%$EBP}ZT}# zey>p$!fo?MA7!X<>MirV<4t7@6=+vU40V}bXAQ?tm-)vWr>U(@l6sHi-6n8>J&maZ z?jwHfNDJXU;vZ?dEu`L~dA9|qK-+Br>Z5tL1*ne}yLH;7-ebOZR?@0R+YT<+uAz2t zAM*#CYPxL)_c4FmnP#-@Q}1!#JI7SEhYGX{yFJv${eh?3TBwivXPyn!@ygTSNx$S3 zzf=iEIW3=T^`ml?dgYROD}CoBlX_t4SK8Dom(+X8E_x8X0^6x>fV6$eZ(n91y*}kv zR4Rwd9V%D(o)!cURA497wiT?ZJNGc$Qn;)9p0$Qc>aF%YotNc~q#iIeZN>6xzl&ZZ z)IweD*Yz<}(9^!x&$N})19q_x>eK#Vt$Mo39apvPTW`3e-ZOSS${k5P;9-XA!F|R* zypM%YpYi+kH&jyZ*_OE%{ zZn-0=2kdBEl+=69@1%8yTBy(Y)ip`GR%Er@A@$b!-Z0ZxQV&>RA>6foWs`+)*ZM6( z&1gxz=Y8);Qz@wj)Y4e)Na{WBS6Rc7de8eKk1$j+Zyow$YbEv8S+yv4B=y$$6ha@@`4J7k%%$+T&J7QV(p`kfh#=ey`)qfF$)^ z^iMd+xJ>G;_q|h0rKBFvE^JA?^?vW~*jlLT{gX~kPE|4Pka{osPDSOInz83!_UrR5 zuHp1>@%Zeo>)hdIlsg?*HB^U&+W}KA`;lF&9WeE>UsjG6j#rTe8~u`PCW|X*xzUfh zC&$oBg=FdLzH@Xo`8Vzn=K?Vc*4sXi#;^Oa-Y|ifecdnD6Afe;yzWz9vKQ5L9e@AWH= zOj?v}7WQY%VP&7J)a5yGr&FRXKh|7XyP`K(f_{4<$P)0mDvv(rhf>F6_= zPTdiX?em>7I{N8XJYk$pMa)2t^kxNJW@{S}2_DM%g%3pHeOFt`}<_>77ay*z{ z+C&7x{L&9~MgU=c>9_BYj8;tA?kD-Dxg%go3hd9Bk^=i}3Q!Akzoftj#bk{f@UzK( zaGPNUFc0M3%BFU}kM%}HEzARc+QrNqo7zD?tMR=a%~eha^I*=DJ?&sVPTA8A=Hn!u zle3pLy94Pmf;c%S1}K6!If(TEgj$G`gD!_9pO-3c+0mwCO@DFsz>Hx|35+ZQVNMAm zEiXWrQ-Z$zlsZ<)NpfnCy>pS<7iVQRn;Mu)5fJ9oz^Ee-=G351ebPsD$!>N{ws?zM zJFLnn(B(CO5f>oDYl2W`6cFMyL3K|ht5tH0yf$zuvL{}12jgx#xL_@;K)BZiMp%Jx zuMOBmL|CgF_OfX~Hh8x?<`@9$Vp?Ft5Qw2^fss`phNcBZR)H9rCgUEX46(CK&vw1- z9)Sn4k4?`*E&JH?Ahziw``GlLvP$W3mD4fxW(3*F8E!4ijs$E*?m7@$t{6C0e7e6 zO+ln@h}}hmvcSkO2&+JyRY2Nifstb%RTV%neFj$hN=Z_DkmmQH_$~YKg+Uz?>k?0TKqV4g(O2^8#~%0Ag`oU``M~ zqA)KoCkTN$3iARZ#nlpp`Pu#3+`4h|bE7i)`GL`3+F*2kU^Ezr(fNVVV1e4``~VFe zMi8nUH2CfyyM2P&)C|DkyK~#pUFc$_!K!Gq921Y=u#j!__dqKH1joZZPEj+*#4j`-52PL$%V+`vZ2|BNY+-TpT!qDjTzL|K;|~Hn;QA zmTD!W6x%r!Azd8A{nb`PEqyNz1~w}3u9myOLxC1=0A4?oGet=s3XFJD3-h4>@s@`~ z)eb_s)aW6AF)X!u2!y%R>LC#3Qmcp6qNHtF5BZxe+wu^LkhWPpq!wbE)x&BBA$_E% zhd{Vst%pFkk61kf!hOW*VYRxFYdt&`z%)N*)d+~8$E+R#G4z<#Lm-A86FvO1>>$;m ztShqLzvuq@z!iC{L_=2uu|7D_2F{A0cb}wQQP9wp*%|M<{RghhDWaY$gIK3;wIk}e zGU!#OWVc$>bCs4|{>HymIZ?!Om6cs;A+8eH6}_%@5YMNB?1hQ$sN(<(^yz${qNPvg z0~IZOI!N^mhsGFsTBhkPJIH35$!<%|M^xhAOU zp_IScNx4HBQV1+rE`vAHP!Kw<&bu>jI| zvz31!W;a{;2NH_SR{jO*P;9pHUn`;5l70N9TYV0HV|q(&S^}}fZUWR|dW+ozfSBH5 zHvxg#^cL9!0LjBR$ysFf{ayV)`TFt^(^3xv7dZW%zB z+hxo67d0r_?g+BWcey`ru2oycj+`l5#tysMsfD>iwhR&9T6s|Re)iMX-1=esEx>9o z5aRn*dw~$&54fqzS+v$+%h(w>J+s|O)NQzqkQ}@z(=tj6_&cox1L5zKEk|zpwGz#b zvd3QItk2&NKgx-+U3_Hqms*G)$rQ_Zv{tr@T}FQa#B7(<1R#cXSy=*NXqVMrAcl5{ z{>pW)R(6lwLH5@wuLmy3_OUykDA_)C+Z~Hqn7f1Yu%ucs**^9J*_iHLB}~~o_T)_2 zJoe;MEStxk;IOi!w_=>WsY}qkBwRetMwPSo5bU9opa;QawJ^UB9hH+$t?V9u3$on{ z+$M%9+sEImb^~GlEr|4)0toYOvd7BVyH>W3uZ#i%V1AX)u zY+oOmV>l4o*N5g9E>PRPK16{f^Xo)`Z^*`c<~Czm6!?bRwDfy}ok40beS^%P=nD|j zH`oajs7>D>6R1toerEP8rd#Ti^v=vpi}cRSO^fu-6w`8AuM_FLG1RAZ08ZT)8XW_| zyfHMVbs)?eLvvcMlL6cms?&P*lLKzhcvDUk<-I91H%wYWyeTxwTPMnUGekZc9R^Uy zJO%*5yg4+F0e~=X4vqBIiS+&{G}5c~8H#X&GA+G8_m-b~h3X+| zGXUmoIa9Rvw$MBapcdwBGP$C?b)vnuXM=XTM<2uA#O(IaJPH6}=l0M%3IJl~_Ru^E z0AlC%&^!vL6Y0G(oACvY0{9!^o%uY8^4=MmM*-AAyfZY90_x=8epjd;1po-zUAYIM zymy7>Q2@0t?+VSMfI2z0|2fo;0s!>+=X}tjx_{0mO3vwj4$Y&0K51}wSaPpP?LM@; zJ2Z!@K9Yp@SUCb=6{vF%NZWhtiUVTxo}wIqnTC7pY8I$h^F3CM`baV?uyO=qv_LIK zKviqx2#ECsR*w3n!GDA$_Zgr2((*s79Q9Rlw8+X45VJrnM?e}cvT_8(>>`n)A;?jE z8ax=5Y{;hm%^g@)Ps0bps9v21>m?FPigE-b6kr_+AdQz;IRavJiIpQDkyv8oNT80y z5-Ugb5{ZY6909QXaBf=y@vxO6YO(#Wl_MawAGUHNP}_c34aDlJMZE(v z+ppSm5vbGURjYUXB-=Jxy#oH}sx^8C#QH|7cm31gjj&{s@wq=O-w30D%IE${ z@7@fZk!n2vF$>gYfi!+ItZcEhn0+%GJ|Y=JC>qjWOIUJwwyf0aU)DgwEu#E#|80;+ zY%S^?kWheiD1bEHYV{6?)vZ?VfJ9=e)jNSY5?ig_HAp138NCBwds}W>0L^ePomm0P~~VTT#A`tnyI{^CPQ# z4WfLzwDR#c#9cX2ly6r)Oi{jF`7jCPZmoO-NR)4P&J^X_ZIzE&n7c*!&Q#Nf^6d$; z%bTNQc4+wpa)xQSOzfZOPsgolGus_XXEc*AU)jw)se=7QS zk?I`%+ZSdF0`G$626ge>m-j0IxG&@z2BN#v!rW(-vq1##ORb#zO~Ajj$_a${rBzNK z#4oLKHprcKzfn#A&hF2h6$RXHm6KYS`>k>|$ffsyQcnJacOd79{vEK&NiDnsRyiBw z%6rf#Cjeg$TIB@7JZO~@2=ky-&H-s~MN~2+(ihhOw7epU^taXqh+bS7nTsn3e}FnA zfV90bG8b1MRNA}_hBotsB3LuTAN9N)R#On0OTwH-fVtQmQt^#!= zrbp)D+9;8j5$TI70NXQi+Y*Qwk-4~1i|rYaxwrzcJtHy~SAp90j0oi%#p-Vq<(!p0 zk$A(J`5V)-a?{f9EIWhLVtSU$peBN5XMGFau$D%phO={`sNw9KC~7!ch;l7$6gA8u zeJushWfmDt1H#NAb1enJ%p!9wZ4~!ziPW_eXGINf$(f>tw?yV%N-fM=BJ&|qqp0Dn z*$>-!eMj& MP`MGS9^%!f$SLcBFHA0jo17|w~l{vi^5i!4%X=T~HLPGmkrq81Z# zBJ&|qqwFwuWIfw^Ef7T&@5qUwig!fj2udx)J0gytqKb`jF`b)j@V(QBu;}63$eag( z5a&kbJP3q1H{v`f&p#VQ59dYd!+4nTVf?(v9O-~C=SAig4um-`GDo^bISbB@)RAr| zfIjEv5f&|+ADR0%wJ_&L9O={tKaC=W3!<#`J@*dADW|~&`8Y)l7ewasA8Mg4h|K3d zjiQDNvuPc@-gqlwxG*P*7%q&=r$E#~To~~wkbI}9QN(ajq%O{_0LHl}GFNvX%tev8 zI0IoWip+6vP#QcCl{{nwVh}AKh|Fw?$CXFj=|DUBnQ{=eMk~f$#^Y7b=jpZ`siRvHDg~*}zQRTQ)HS>cn`< zD%%jrtIbx~K==&Q5(HGWM%jQ^-)xnwISt;9O5QO(H`DU%C~8p`-Dah1TO;QLm7hS& z0`<27fHdA3^*qMbVs>kE{C7B^a1~60ccYT4vQ=HZp=B*Jd^d^)D`jhuNW526HXxw@ z>ren`{GL@dAXeYA$_6A7?^$INs3Y;7Rkjw1#0Og0egMGs2f1wt#0OT{sKxdNR@s2q z{=h1mKyCX2QMTh*7%ie~A2NrP!?Ure*DpJ|!s|jOA_o-P0f+}5+PS2bPCm362c(k^ z?NkcXoqQ-$sXL+lUq$1Fe_i9cwX`UCqt5mu^7hxfCy}?mT6t>`dHdMN8vq|awy6$; z`LUHZAk2@gytT-9J~8qJP{@b`5auUV-hePa5qT4lXc2ka8{Kr1d+IR$hPc;?1Q6n0 zD-uA6dn11MB`Mb;>h@XW)MmdrJ*rYEOA&m^v^oLde-@d?Xh8U%MKwK@uC_>2_i0@v zO!6~=efH1=gt^b^DiG#AtE(-dYhUU^S2KV<)?O?tdMAHshMQjmGn;hqgNCE80ad9n)u1$`OB2o)`a%>c_Mb3Ix#`>%WAiP(` z=Bx*Vd1Y+QdO(<0#^$UyG!6a`ms}I;3+zx@{vkH%GE{V6YHTjBAp8O9wGE{0)Yx2L zfmody+Y2n137;C93#>q$MpI*RfgLJYcy(+pupoQ}YDEO9TBC?StY00Q3+%8oxHc}C zW_%t-%WLCE|N3K?Q!f zy4HyGY+<$66RVb|4x5nnIG+YF14zr@ZNiswaOJs~PttPa9KPNWVDIokgF=r+D zCd%;a7d^ecj8GKpj+`S3c1O+;1-nBy{S;?;Pp>~C6xEuWb40b~#^y{#Eu6VAXDaz{ zdAO+7yjXo~3R6yF^Kz!B*1Xt!Y)UQ6c`=U`L@$SnYRxwZ2_QD}Z9)QJ&bJ8(ggM_P z_r)D5EyV17arYkTs}Q5o;GwwWx$KX`q;((wUeVQFlB*bJnrrLp;8Gm!8sjl1g~ zHVf3@SsL@hX4w=*NqE{~r#zcm?o|x~VjXO)OMKd5^Pq`ZthdQ(I9hQzmpl^lHL-VI z4MxJ1^$)gOG5v_0IcniPA~UDCpvMfiOLkg$RC}Z(%qW$rR9GXDs*mMHBvl_1BWEiI zNY&-Bb6DkfvU}GBL$l>|UfGCI>d-;4H6b~>JT}i;sKvzcnCC4&RwnRyMeI~oj>|?b za*xQq)5ojCgrqIS)`X<(3M+`zVq%2|VzV+4q`}JASsn9>kAHFd|I;Xyz?4|FB=E{O z)=Eb$?3FP;wCbn^97IB|SRH#wnnXk(V3K?(t6UwsN|Q#(IpvvHJ=`JA@>9oWtR?|5 z|BTfnAm*QmdAK9FK1y_RL zkVw2?w^D&R5^vb8bhJcbQ}#f$SA}WG%}u#!iNhwlpHhqIO?E#8VtSL^PX%hzo9uo% zT5c7avkm>cZq59S>CL%m>2|Xf6>2fPSwux7W3-?xS#^J}8lrqHbW2W@blno0=c?37 zQ`xKJ+lHfMXWg3ps=w+{ZU$R(q9p0oyhlmWtj{A1Bms#RzJq1!RK+w7slr?wER4d^h+_uI3>KhVqfg&PuPK&1?r!A0cpH1F4wQ8 z0AhAu%%VOCS@B6JRQCNjo|R? zyMw&W>69c=9~=cG3@w{PE7*!gDojXg{CH*)z|g~((}}0;27B(1$t?4 zb>dx{1WA`9Rs|2NeVniJo5H-+b%{5fR-KbjwVKJMYKr(kpQ6$IE3!M%yMsOW@i zoG^vj32Aj-;w>&Z;VLIg(OBgKO_n6ia-3+YY1JoAcWL%W;yqsU-BZ4s zA|8~{5ofa%iL(aZht{aK4z?EE{q{EoT8GssG6~eJKej@2w&<|09A2%9PEZbWK3$tQui)_T8XfCzybdt;|J&aw zXa^u$=Gr7sZ=Jy7fB~#cszzLFLM{i}waKwRH6sY{?fJxeu{eUjjKCD?5lE}`iT84G z0D&5SDdJrObQGq+#>Cme07llRw-)9R|3~i|v@XkLy)g;YH~YmBE^kb_tGDV1#N&<0 z@#hJq4to+2X_ra;t%>u2c3IwSc!jLDFn@;_WSZ9V@R*5pNlxql6thaSr13=`Y%_Lx=!gZ+v3Uqz1-<*_N! zaW166f8%w9-|$*aT$2mMI2Z7Ga-kS!Ie<+r6ysdL>njT0l!Dzq z3&v|xsJ$L6&HhmEuA!OUKnu!iQ}lBc=XPwU1!p#1pIej3yAZ$b^&u}O9CzVayxOov z{?o5E{Kg36f$?>Ppubrf?HIvzg@$u^DU)o2JU{lYE1Wm2)C8X2r3TXq-VMbev@=5( zZA$eRq}hyucVlq~?bHxV(FJM=>c!lICW%WDj+yvTF&y9$9iw&Hn*R$RZUP_AA(B$yR+SK)}W zjY}PHX}uBaP$wErqS;72lRv zbpIc{?a+=vzPz@mP*nAf3}I2BD3S7Awnc@as&~Y>`wHIT;t)ETA?U*4W~9>W!GgE6 zIEIdD45o8za5ML!F8Z~0{tnx~#T(&L}czkq)s|04dyZ6}XRrVswVNW8%f diff --git a/managed/services/inventory/agents.go b/managed/services/inventory/agents.go index 12d95e217b..faabea45dc 100644 --- a/managed/services/inventory/agents.go +++ b/managed/services/inventory/agents.go @@ -225,7 +225,7 @@ func (as *AgentsService) AddNodeExporter(ctx context.Context, p *inventoryv1.Add } // ChangeNodeExporter updates node_exporter Agent with given parameters. -func (as *AgentsService) ChangeNodeExporter(ctx context.Context, req *inventoryv1.ChangeNodeExporterRequest) (*inventoryv1.NodeExporter, error) { +func (as *AgentsService) ChangeNodeExporter(ctx context.Context, req *inventoryv1.ChangeNodeExporterParams) (*inventoryv1.NodeExporter, error) { agent, err := as.changeAgent(req.AgentId, req.Common) if err != nil { return nil, err @@ -293,7 +293,7 @@ func (as *AgentsService) AddMySQLdExporter(ctx context.Context, p *inventoryv1.A } // ChangeMySQLdExporter updates mysqld_exporter Agent with given parameters. -func (as *AgentsService) ChangeMySQLdExporter(ctx context.Context, req *inventoryv1.ChangeMySQLdExporterRequest) (*inventoryv1.MySQLdExporter, error) { +func (as *AgentsService) ChangeMySQLdExporter(ctx context.Context, req *inventoryv1.ChangeMySQLdExporterParams) (*inventoryv1.MySQLdExporter, error) { agent, err := as.changeAgent(req.AgentId, req.Common) if err != nil { return nil, err @@ -358,7 +358,7 @@ func (as *AgentsService) AddMongoDBExporter(ctx context.Context, p *inventoryv1. } // ChangeMongoDBExporter updates mongo_exporter Agent with given parameters. -func (as *AgentsService) ChangeMongoDBExporter(ctx context.Context, req *inventoryv1.ChangeMongoDBExporterRequest) (*inventoryv1.MongoDBExporter, error) { +func (as *AgentsService) ChangeMongoDBExporter(ctx context.Context, req *inventoryv1.ChangeMongoDBExporterParams) (*inventoryv1.MongoDBExporter, error) { agent, err := as.changeAgent(req.AgentId, req.Common) if err != nil { return nil, err @@ -420,7 +420,7 @@ func (as *AgentsService) AddQANMySQLPerfSchemaAgent(ctx context.Context, p *inve } // ChangeQANMySQLPerfSchemaAgent updates MySQL PerfSchema QAN Agent with given parameters. -func (as *AgentsService) ChangeQANMySQLPerfSchemaAgent(ctx context.Context, req *inventoryv1.ChangeQANMySQLPerfSchemaAgentRequest) (*inventoryv1.QANMySQLPerfSchemaAgent, error) { //nolint:lll +func (as *AgentsService) ChangeQANMySQLPerfSchemaAgent(ctx context.Context, req *inventoryv1.ChangeQANMySQLPerfSchemaAgentParams) (*inventoryv1.QANMySQLPerfSchemaAgent, error) { //nolint:lll agent, err := as.changeAgent(req.AgentId, req.Common) if err != nil { return nil, err @@ -487,7 +487,7 @@ func (as *AgentsService) AddQANMySQLSlowlogAgent(ctx context.Context, p *invento } // ChangeQANMySQLSlowlogAgent updates MySQL Slowlog QAN Agent with given parameters. -func (as *AgentsService) ChangeQANMySQLSlowlogAgent(ctx context.Context, req *inventoryv1.ChangeQANMySQLSlowlogAgentRequest) (*inventoryv1.QANMySQLSlowlogAgent, error) { +func (as *AgentsService) ChangeQANMySQLSlowlogAgent(ctx context.Context, req *inventoryv1.ChangeQANMySQLSlowlogAgentParams) (*inventoryv1.QANMySQLSlowlogAgent, error) { agent, err := as.changeAgent(req.AgentId, req.Common) if err != nil { return nil, err @@ -552,7 +552,7 @@ func (as *AgentsService) AddPostgresExporter(ctx context.Context, p *inventoryv1 } // ChangePostgresExporter updates postgres_exporter Agent with given parameters. -func (as *AgentsService) ChangePostgresExporter(ctx context.Context, req *inventoryv1.ChangePostgresExporterRequest) (*inventoryv1.PostgresExporter, error) { +func (as *AgentsService) ChangePostgresExporter(ctx context.Context, req *inventoryv1.ChangePostgresExporterParams) (*inventoryv1.PostgresExporter, error) { agent, err := as.changeAgent(req.AgentId, req.Common) if err != nil { return nil, err @@ -616,7 +616,7 @@ func (as *AgentsService) AddQANMongoDBProfilerAgent(ctx context.Context, p *inve // ChangeQANMongoDBProfilerAgent updates MongoDB Profiler QAN Agent with given parameters. // //nolint:lll,dupl -func (as *AgentsService) ChangeQANMongoDBProfilerAgent(ctx context.Context, req *inventoryv1.ChangeQANMongoDBProfilerAgentRequest) (*inventoryv1.QANMongoDBProfilerAgent, error) { +func (as *AgentsService) ChangeQANMongoDBProfilerAgent(ctx context.Context, req *inventoryv1.ChangeQANMongoDBProfilerAgentParams) (*inventoryv1.QANMongoDBProfilerAgent, error) { agent, err := as.changeAgent(req.AgentId, req.Common) if err != nil { return nil, err @@ -680,7 +680,7 @@ func (as *AgentsService) AddProxySQLExporter(ctx context.Context, p *inventoryv1 } // ChangeProxySQLExporter updates proxysql_exporter Agent with given parameters. -func (as *AgentsService) ChangeProxySQLExporter(ctx context.Context, req *inventoryv1.ChangeProxySQLExporterRequest) (*inventoryv1.ProxySQLExporter, error) { +func (as *AgentsService) ChangeProxySQLExporter(ctx context.Context, req *inventoryv1.ChangeProxySQLExporterParams) (*inventoryv1.ProxySQLExporter, error) { agent, err := as.changeAgent(req.AgentId, req.Common) if err != nil { return nil, err @@ -741,7 +741,7 @@ func (as *AgentsService) AddQANPostgreSQLPgStatementsAgent(ctx context.Context, } // ChangeQANPostgreSQLPgStatementsAgent updates PostgreSQL Pg stat statements QAN Agent with given parameters. -func (as *AgentsService) ChangeQANPostgreSQLPgStatementsAgent(ctx context.Context, req *inventoryv1.ChangeQANPostgreSQLPgStatementsAgentRequest) (*inventoryv1.QANPostgreSQLPgStatementsAgent, error) { //nolint:lll +func (as *AgentsService) ChangeQANPostgreSQLPgStatementsAgent(ctx context.Context, req *inventoryv1.ChangeQANPostgreSQLPgStatementsAgentParams) (*inventoryv1.QANPostgreSQLPgStatementsAgent, error) { //nolint:lll agent, err := as.changeAgent(req.AgentId, req.Common) if err != nil { return nil, err @@ -803,7 +803,7 @@ func (as *AgentsService) AddQANPostgreSQLPgStatMonitorAgent(ctx context.Context, } // ChangeQANPostgreSQLPgStatMonitorAgent updates PostgreSQL Pg stat monitor QAN Agent with given parameters. -func (as *AgentsService) ChangeQANPostgreSQLPgStatMonitorAgent(ctx context.Context, req *inventoryv1.ChangeQANPostgreSQLPgStatMonitorAgentRequest) (*inventoryv1.QANPostgreSQLPgStatMonitorAgent, error) { //nolint:lll +func (as *AgentsService) ChangeQANPostgreSQLPgStatMonitorAgent(ctx context.Context, req *inventoryv1.ChangeQANPostgreSQLPgStatMonitorAgentParams) (*inventoryv1.QANPostgreSQLPgStatMonitorAgent, error) { //nolint:lll agent, err := as.changeAgent(req.AgentId, req.Common) if err != nil { return nil, err @@ -855,7 +855,7 @@ func (as *AgentsService) AddRDSExporter(ctx context.Context, p *inventoryv1.AddR } // ChangeRDSExporter updates rds_exporter Agent with given parameters. -func (as *AgentsService) ChangeRDSExporter(ctx context.Context, req *inventoryv1.ChangeRDSExporterRequest) (*inventoryv1.RDSExporter, error) { +func (as *AgentsService) ChangeRDSExporter(ctx context.Context, req *inventoryv1.ChangeRDSExporterParams) (*inventoryv1.RDSExporter, error) { agent, err := as.changeAgent(req.AgentId, req.Common) if err != nil { return nil, err @@ -912,7 +912,7 @@ func (as *AgentsService) AddExternalExporter(ctx context.Context, p *inventoryv1 } // ChangeExternalExporter updates external-exporter Agent with given parameters. -func (as *AgentsService) ChangeExternalExporter(req *inventoryv1.ChangeExternalExporterRequest) (*inventoryv1.ExternalExporter, error) { +func (as *AgentsService) ChangeExternalExporter(req *inventoryv1.ChangeExternalExporterParams) (*inventoryv1.ExternalExporter, error) { agent, err := as.changeAgent(req.AgentId, req.Common) if err != nil { return nil, err @@ -961,7 +961,7 @@ func (as *AgentsService) AddAzureDatabaseExporter(ctx context.Context, p *invent // ChangeAzureDatabaseExporter updates azure_exporter Agent with given parameters. func (as *AgentsService) ChangeAzureDatabaseExporter( ctx context.Context, - req *inventoryv1.ChangeAzureDatabaseExporterRequest, + req *inventoryv1.ChangeAzureDatabaseExporterParams, ) (*inventoryv1.AzureDatabaseExporter, error) { agent, err := as.changeAgent(req.AgentId, req.Common) if err != nil { diff --git a/managed/services/inventory/agents_test.go b/managed/services/inventory/agents_test.go index c8b73462b7..fcc8dcdbcc 100644 --- a/managed/services/inventory/agents_test.go +++ b/managed/services/inventory/agents_test.go @@ -78,7 +78,7 @@ func TestAgents(t *testing.T) { } assert.Equal(t, expectedNodeExporter, actualNodeExporter) - actualNodeExporter, err = as.ChangeNodeExporter(ctx, &inventoryv1.ChangeNodeExporterRequest{ + actualNodeExporter, err = as.ChangeNodeExporter(ctx, &inventoryv1.ChangeNodeExporterParams{ AgentId: "/agent_id/00000000-0000-4000-8000-000000000006", Common: &inventoryv1.ChangeCommonAgentParams{ Disable: true, diff --git a/managed/services/inventory/grpc/agents_server.go b/managed/services/inventory/grpc/agents_server.go index 8bfb2d08eb..408a0695ab 100644 --- a/managed/services/inventory/grpc/agents_server.go +++ b/managed/services/inventory/grpc/agents_server.go @@ -224,6 +224,40 @@ func (s *agentsServer) AddAgent(ctx context.Context, req *inventoryv1.AddAgentRe } } +// ChangeAgent allows to change some Agent attributes. +func (s *agentsServer) ChangeAgent(ctx context.Context, req *inventoryv1.ChangeAgentRequest) (*inventoryv1.ChangeAgentResponse, error) { + switch req.Agent.(type) { + case *inventoryv1.ChangeAgentRequest_NodeExporter: + return s.changeNodeExporter(ctx, req.GetNodeExporter()) + case *inventoryv1.ChangeAgentRequest_MysqldExporter: + return s.changeMySQLdExporter(ctx, req.GetMysqldExporter()) + case *inventoryv1.ChangeAgentRequest_MongodbExporter: + return s.changeMongoDBExporter(ctx, req.GetMongodbExporter()) + case *inventoryv1.ChangeAgentRequest_PostgresExporter: + return s.changePostgresExporter(ctx, req.GetPostgresExporter()) + case *inventoryv1.ChangeAgentRequest_ProxysqlExporter: + return s.changeProxySQLExporter(ctx, req.GetProxysqlExporter()) + case *inventoryv1.ChangeAgentRequest_RdsExporter: + return s.changeRDSExporter(ctx, req.GetRdsExporter()) + case *inventoryv1.ChangeAgentRequest_ExternalExporter: + return s.changeExternalExporter(ctx, req.GetExternalExporter()) + case *inventoryv1.ChangeAgentRequest_AzureDatabaseExporter: + return s.changeAzureDatabaseExporter(ctx, req.GetAzureDatabaseExporter()) + case *inventoryv1.ChangeAgentRequest_QanMysqlPerfschemaAgent: + return s.changeQANMySQLPerfSchemaAgent(ctx, req.GetQanMysqlPerfschemaAgent()) + case *inventoryv1.ChangeAgentRequest_QanMysqlSlowlogAgent: + return s.changeQANMySQLSlowlogAgent(ctx, req.GetQanMysqlSlowlogAgent()) + case *inventoryv1.ChangeAgentRequest_QanMongodbProfilerAgent: + return s.changeQANMongoDBProfilerAgent(ctx, req.GetQanMongodbProfilerAgent()) + case *inventoryv1.ChangeAgentRequest_QanPostgresqlPgstatementsAgent: + return s.changeQANPostgreSQLPgStatementsAgent(ctx, req.GetQanPostgresqlPgstatementsAgent()) + case *inventoryv1.ChangeAgentRequest_QanPostgresqlPgstatmonitorAgent: + return s.changeQANPostgreSQLPgStatMonitorAgent(ctx, req.GetQanPostgresqlPgstatmonitorAgent()) + default: + return nil, fmt.Errorf("invalid request %v", req.Agent) + } +} + // addNodeExporter adds node_exporter Agent. func (s *agentsServer) addNodeExporter(ctx context.Context, params *inventoryv1.AddNodeExporterParams) (*inventoryv1.AddAgentResponse, error) { agent, err := s.s.AddNodeExporter(ctx, params) @@ -240,14 +274,16 @@ func (s *agentsServer) addNodeExporter(ctx context.Context, params *inventoryv1. } // ChangeNodeExporter changes disabled flag and custom labels of node_exporter Agent. -func (s *agentsServer) ChangeNodeExporter(ctx context.Context, req *inventoryv1.ChangeNodeExporterRequest) (*inventoryv1.ChangeNodeExporterResponse, error) { - agent, err := s.s.ChangeNodeExporter(ctx, req) +func (s *agentsServer) changeNodeExporter(ctx context.Context, params *inventoryv1.ChangeNodeExporterParams) (*inventoryv1.ChangeAgentResponse, error) { + agent, err := s.s.ChangeNodeExporter(ctx, params) if err != nil { return nil, err } - res := &inventoryv1.ChangeNodeExporterResponse{ - NodeExporter: agent, + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_NodeExporter{ + NodeExporter: agent, + }, } return res, nil } @@ -269,14 +305,16 @@ func (s *agentsServer) addMySQLdExporter(ctx context.Context, params *inventoryv } // ChangeMySQLdExporter changes disabled flag and custom labels of mysqld_exporter Agent. -func (s *agentsServer) ChangeMySQLdExporter(ctx context.Context, req *inventoryv1.ChangeMySQLdExporterRequest) (*inventoryv1.ChangeMySQLdExporterResponse, error) { - agent, err := s.s.ChangeMySQLdExporter(ctx, req) +func (s *agentsServer) changeMySQLdExporter(ctx context.Context, params *inventoryv1.ChangeMySQLdExporterParams) (*inventoryv1.ChangeAgentResponse, error) { + agent, err := s.s.ChangeMySQLdExporter(ctx, params) if err != nil { return nil, err } - res := &inventoryv1.ChangeMySQLdExporterResponse{ - MysqldExporter: agent, + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_MysqldExporter{ + MysqldExporter: agent, + }, } return res, nil } @@ -297,14 +335,16 @@ func (s *agentsServer) addMongoDBExporter(ctx context.Context, params *inventory } // ChangeMongoDBExporter changes disabled flag and custom labels of mongo_exporter Agent. -func (s *agentsServer) ChangeMongoDBExporter(ctx context.Context, req *inventoryv1.ChangeMongoDBExporterRequest) (*inventoryv1.ChangeMongoDBExporterResponse, error) { - agent, err := s.s.ChangeMongoDBExporter(ctx, req) +func (s *agentsServer) changeMongoDBExporter(ctx context.Context, params *inventoryv1.ChangeMongoDBExporterParams) (*inventoryv1.ChangeAgentResponse, error) { + agent, err := s.s.ChangeMongoDBExporter(ctx, params) if err != nil { return nil, err } - res := &inventoryv1.ChangeMongoDBExporterResponse{ - MongodbExporter: agent, + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_MongodbExporter{ + MongodbExporter: agent, + }, } return res, nil } @@ -312,8 +352,8 @@ func (s *agentsServer) ChangeMongoDBExporter(ctx context.Context, req *inventory // AddQANMySQLPerfSchemaAgent adds MySQL PerfSchema QAN Agent. // //nolint:lll -func (s *agentsServer) addQANMySQLPerfSchemaAgent(ctx context.Context, req *inventoryv1.AddQANMySQLPerfSchemaAgentParams) (*inventoryv1.AddAgentResponse, error) { - agent, err := s.s.AddQANMySQLPerfSchemaAgent(ctx, req) +func (s *agentsServer) addQANMySQLPerfSchemaAgent(ctx context.Context, params *inventoryv1.AddQANMySQLPerfSchemaAgentParams) (*inventoryv1.AddAgentResponse, error) { + agent, err := s.s.AddQANMySQLPerfSchemaAgent(ctx, params) if err != nil { return nil, err } @@ -329,14 +369,16 @@ func (s *agentsServer) addQANMySQLPerfSchemaAgent(ctx context.Context, req *inve // ChangeQANMySQLPerfSchemaAgent changes disabled flag and custom labels of MySQL PerfSchema QAN Agent. // //nolint:lll -func (s *agentsServer) ChangeQANMySQLPerfSchemaAgent(ctx context.Context, req *inventoryv1.ChangeQANMySQLPerfSchemaAgentRequest) (*inventoryv1.ChangeQANMySQLPerfSchemaAgentResponse, error) { - agent, err := s.s.ChangeQANMySQLPerfSchemaAgent(ctx, req) +func (s *agentsServer) changeQANMySQLPerfSchemaAgent(ctx context.Context, params *inventoryv1.ChangeQANMySQLPerfSchemaAgentParams) (*inventoryv1.ChangeAgentResponse, error) { + agent, err := s.s.ChangeQANMySQLPerfSchemaAgent(ctx, params) if err != nil { return nil, err } - res := &inventoryv1.ChangeQANMySQLPerfSchemaAgentResponse{ - QanMysqlPerfschemaAgent: agent, + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_QanMysqlPerfschemaAgent{ + QanMysqlPerfschemaAgent: agent, + }, } return res, nil } @@ -361,14 +403,16 @@ func (s *agentsServer) addQANMySQLSlowlogAgent(ctx context.Context, params *inve // ChangeQANMySQLSlowlogAgent changes disabled flag and custom labels of MySQL Slowlog QAN Agent. // //nolint:lll -func (s *agentsServer) ChangeQANMySQLSlowlogAgent(ctx context.Context, req *inventoryv1.ChangeQANMySQLSlowlogAgentRequest) (*inventoryv1.ChangeQANMySQLSlowlogAgentResponse, error) { - agent, err := s.s.ChangeQANMySQLSlowlogAgent(ctx, req) +func (s *agentsServer) changeQANMySQLSlowlogAgent(ctx context.Context, params *inventoryv1.ChangeQANMySQLSlowlogAgentParams) (*inventoryv1.ChangeAgentResponse, error) { + agent, err := s.s.ChangeQANMySQLSlowlogAgent(ctx, params) if err != nil { return nil, err } - res := &inventoryv1.ChangeQANMySQLSlowlogAgentResponse{ - QanMysqlSlowlogAgent: agent, + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_QanMysqlSlowlogAgent{ + QanMysqlSlowlogAgent: agent, + }, } return res, nil } @@ -389,14 +433,16 @@ func (s *agentsServer) addPostgresExporter(ctx context.Context, params *inventor } // ChangePostgresExporter changes disabled flag and custom labels of postgres_exporter Agent. -func (s *agentsServer) ChangePostgresExporter(ctx context.Context, req *inventoryv1.ChangePostgresExporterRequest) (*inventoryv1.ChangePostgresExporterResponse, error) { - agent, err := s.s.ChangePostgresExporter(ctx, req) +func (s *agentsServer) changePostgresExporter(ctx context.Context, params *inventoryv1.ChangePostgresExporterParams) (*inventoryv1.ChangeAgentResponse, error) { + agent, err := s.s.ChangePostgresExporter(ctx, params) if err != nil { return nil, err } - res := &inventoryv1.ChangePostgresExporterResponse{ - PostgresExporter: agent, + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_PostgresExporter{ + PostgresExporter: agent, + }, } return res, nil } @@ -421,14 +467,16 @@ func (s *agentsServer) addQANMongoDBProfilerAgent(ctx context.Context, params *i // ChangeQANMongoDBProfilerAgent changes disabled flag and custom labels of MongoDB Profiler QAN Agent. // //nolint:lll -func (s *agentsServer) ChangeQANMongoDBProfilerAgent(ctx context.Context, req *inventoryv1.ChangeQANMongoDBProfilerAgentRequest) (*inventoryv1.ChangeQANMongoDBProfilerAgentResponse, error) { - agent, err := s.s.ChangeQANMongoDBProfilerAgent(ctx, req) +func (s *agentsServer) changeQANMongoDBProfilerAgent(ctx context.Context, params *inventoryv1.ChangeQANMongoDBProfilerAgentParams) (*inventoryv1.ChangeAgentResponse, error) { + agent, err := s.s.ChangeQANMongoDBProfilerAgent(ctx, params) if err != nil { return nil, err } - res := &inventoryv1.ChangeQANMongoDBProfilerAgentResponse{ - QanMongodbProfilerAgent: agent, + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_QanMongodbProfilerAgent{ + QanMongodbProfilerAgent: agent, + }, } return res, nil } @@ -449,14 +497,16 @@ func (s *agentsServer) addProxySQLExporter(ctx context.Context, params *inventor } // ChangeProxySQLExporter changes disabled flag and custom labels of proxysql_exporter Agent. -func (s *agentsServer) ChangeProxySQLExporter(ctx context.Context, req *inventoryv1.ChangeProxySQLExporterRequest) (*inventoryv1.ChangeProxySQLExporterResponse, error) { - agent, err := s.s.ChangeProxySQLExporter(ctx, req) +func (s *agentsServer) changeProxySQLExporter(ctx context.Context, params *inventoryv1.ChangeProxySQLExporterParams) (*inventoryv1.ChangeAgentResponse, error) { + agent, err := s.s.ChangeProxySQLExporter(ctx, params) if err != nil { return nil, err } - res := &inventoryv1.ChangeProxySQLExporterResponse{ - ProxysqlExporter: agent, + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_ProxysqlExporter{ + ProxysqlExporter: agent, + }, } return res, nil } @@ -477,14 +527,16 @@ func (s *agentsServer) addQANPostgreSQLPgStatementsAgent(ctx context.Context, pa } // ChangeQANPostgreSQLPgStatementsAgent changes disabled flag and custom labels of PostgreSQL Pg stat statements QAN Agent. -func (s *agentsServer) ChangeQANPostgreSQLPgStatementsAgent(ctx context.Context, req *inventoryv1.ChangeQANPostgreSQLPgStatementsAgentRequest) (*inventoryv1.ChangeQANPostgreSQLPgStatementsAgentResponse, error) { //nolint:lll - agent, err := s.s.ChangeQANPostgreSQLPgStatementsAgent(ctx, req) +func (s *agentsServer) changeQANPostgreSQLPgStatementsAgent(ctx context.Context, params *inventoryv1.ChangeQANPostgreSQLPgStatementsAgentParams) (*inventoryv1.ChangeAgentResponse, error) { //nolint:lll + agent, err := s.s.ChangeQANPostgreSQLPgStatementsAgent(ctx, params) if err != nil { return nil, err } - res := &inventoryv1.ChangeQANPostgreSQLPgStatementsAgentResponse{ - QanPostgresqlPgstatementsAgent: agent, + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_QanPostgresqlPgstatementsAgent{ + QanPostgresqlPgstatementsAgent: agent, + }, } return res, nil } @@ -505,14 +557,16 @@ func (s *agentsServer) addQANPostgreSQLPgStatMonitorAgent(ctx context.Context, p } // ChangeQANPostgreSQLPgStatMonitorAgent changes disabled flag and custom labels of PostgreSQL Pg stat monitor QAN Agent. -func (s *agentsServer) ChangeQANPostgreSQLPgStatMonitorAgent(ctx context.Context, req *inventoryv1.ChangeQANPostgreSQLPgStatMonitorAgentRequest) (*inventoryv1.ChangeQANPostgreSQLPgStatMonitorAgentResponse, error) { //nolint:lll - agent, err := s.s.ChangeQANPostgreSQLPgStatMonitorAgent(ctx, req) +func (s *agentsServer) changeQANPostgreSQLPgStatMonitorAgent(ctx context.Context, params *inventoryv1.ChangeQANPostgreSQLPgStatMonitorAgentParams) (*inventoryv1.ChangeAgentResponse, error) { //nolint:lll + agent, err := s.s.ChangeQANPostgreSQLPgStatMonitorAgent(ctx, params) if err != nil { return nil, err } - res := &inventoryv1.ChangeQANPostgreSQLPgStatMonitorAgentResponse{ - QanPostgresqlPgstatmonitorAgent: agent, + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_QanPostgresqlPgstatmonitorAgent{ + QanPostgresqlPgstatmonitorAgent: agent, + }, } return res, nil } @@ -533,14 +587,16 @@ func (s *agentsServer) addRDSExporter(ctx context.Context, params *inventoryv1.A } // ChangeRDSExporter changes disabled flag and custom labels of rds_exporter Agent. -func (s *agentsServer) ChangeRDSExporter(ctx context.Context, req *inventoryv1.ChangeRDSExporterRequest) (*inventoryv1.ChangeRDSExporterResponse, error) { - agent, err := s.s.ChangeRDSExporter(ctx, req) +func (s *agentsServer) changeRDSExporter(ctx context.Context, params *inventoryv1.ChangeRDSExporterParams) (*inventoryv1.ChangeAgentResponse, error) { + agent, err := s.s.ChangeRDSExporter(ctx, params) if err != nil { return nil, err } - res := &inventoryv1.ChangeRDSExporterResponse{ - RdsExporter: agent, + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_RdsExporter{ + RdsExporter: agent, + }, } return res, nil } @@ -560,14 +616,16 @@ func (s *agentsServer) addExternalExporter(ctx context.Context, params *inventor return res, nil } -func (s *agentsServer) ChangeExternalExporter(ctx context.Context, req *inventoryv1.ChangeExternalExporterRequest) (*inventoryv1.ChangeExternalExporterResponse, error) { - agent, err := s.s.ChangeExternalExporter(req) +func (s *agentsServer) changeExternalExporter(ctx context.Context, params *inventoryv1.ChangeExternalExporterParams) (*inventoryv1.ChangeAgentResponse, error) { + agent, err := s.s.ChangeExternalExporter(params) if err != nil { return nil, err } - res := &inventoryv1.ChangeExternalExporterResponse{ - ExternalExporter: agent, + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_ExternalExporter{ + ExternalExporter: agent, + }, } return res, nil } @@ -591,17 +649,19 @@ func (s *agentsServer) addAzureDatabaseExporter( } // ChangeAzureDatabaseExporter changes disabled flag and custom labels of azure_database_exporter Agent. -func (s *agentsServer) ChangeAzureDatabaseExporter( +func (s *agentsServer) changeAzureDatabaseExporter( ctx context.Context, - req *inventoryv1.ChangeAzureDatabaseExporterRequest, -) (*inventoryv1.ChangeAzureDatabaseExporterResponse, error) { - agent, err := s.s.ChangeAzureDatabaseExporter(ctx, req) + params *inventoryv1.ChangeAzureDatabaseExporterParams, +) (*inventoryv1.ChangeAgentResponse, error) { + agent, err := s.s.ChangeAzureDatabaseExporter(ctx, params) if err != nil { return nil, err } - res := &inventoryv1.ChangeAzureDatabaseExporterResponse{ - AzureDatabaseExporter: agent, + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_AzureDatabaseExporter{ + AzureDatabaseExporter: agent, + }, } return res, nil } From 53495ebc6baa48f7cd23cb6caf761a94eeff1e93 Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Thu, 18 Jan 2024 19:49:24 +0000 Subject: [PATCH 05/29] PMM-12811 fix API tests --- .../agents_azure_database_exporter_test.go | 127 +++++++++------- .../agents_external_exporter_test.go | 119 ++++++++------- .../inventory/agents_mongodb_exporter_test.go | 136 +++++++++-------- .../inventory/agents_mysqld_exporter_test.go | 136 +++++++++-------- .../inventory/agents_node_exporter_test.go | 122 ++++++++------- .../agents_postgres_exporter_test.go | 142 ++++++++++-------- .../agents_proxysql_exporter_test.go | 120 ++++++++------- .../inventory/agents_rds_exporter_test.go | 136 +++++++++-------- api-tests/inventory/agents_test.go | 138 +++++++++-------- api/inventory/v1/agents.proto | 26 ++-- 10 files changed, 668 insertions(+), 534 deletions(-) diff --git a/api-tests/inventory/agents_azure_database_exporter_test.go b/api-tests/inventory/agents_azure_database_exporter_test.go index eae394f843..4cd1de439b 100644 --- a/api-tests/inventory/agents_azure_database_exporter_test.go +++ b/api-tests/inventory/agents_azure_database_exporter_test.go @@ -82,20 +82,23 @@ func TestAzureDatabaseExporter(t *testing.T) { //nolint:tparallel }, getAgentRes) // Test change API. - changeAzureDatabaseExporterOK, err := client.Default.AgentsService.ChangeAzureDatabaseExporter(&agents.ChangeAzureDatabaseExporterParams{ - Body: agents.ChangeAzureDatabaseExporterBody{ - AgentID: agentID, - Common: &agents.ChangeAzureDatabaseExporterParamsBodyCommon{ - Disable: true, - RemoveCustomLabels: true, + changeAzureDatabaseExporterOK, err := client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + AzureDatabaseExporter: &agents.ChangeAgentParamsBodyAzureDatabaseExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyAzureDatabaseExporterCommon{ + Disable: true, + RemoveCustomLabels: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeAzureDatabaseExporterOK{ - Payload: &agents.ChangeAzureDatabaseExporterOKBody{ - AzureDatabaseExporter: &agents.ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporter{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + AzureDatabaseExporter: &agents.ChangeAgentOKBodyAzureDatabaseExporter{ NodeID: nodeID, AgentID: agentID, PMMAgentID: pmmAgentID, @@ -108,22 +111,25 @@ func TestAzureDatabaseExporter(t *testing.T) { //nolint:tparallel }, }, changeAzureDatabaseExporterOK) - changeAzureDatabaseExporterOK, err = client.Default.AgentsService.ChangeAzureDatabaseExporter(&agents.ChangeAzureDatabaseExporterParams{ - Body: agents.ChangeAzureDatabaseExporterBody{ - AgentID: agentID, - Common: &agents.ChangeAzureDatabaseExporterParamsBodyCommon{ - Enable: true, - CustomLabels: map[string]string{ - "new_label": "azure_database_exporter", + changeAzureDatabaseExporterOK, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + AzureDatabaseExporter: &agents.ChangeAgentParamsBodyAzureDatabaseExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyAzureDatabaseExporterCommon{ + Enable: true, + CustomLabels: map[string]string{ + "new_label": "azure_database_exporter", + }, + }, }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeAzureDatabaseExporterOK{ - Payload: &agents.ChangeAzureDatabaseExporterOKBody{ - AzureDatabaseExporter: &agents.ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporter{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + AzureDatabaseExporter: &agents.ChangeAgentOKBodyAzureDatabaseExporter{ NodeID: nodeID, AgentID: agentID, PMMAgentID: pmmAgentID, @@ -265,19 +271,22 @@ func TestAzureDatabaseExporter(t *testing.T) { //nolint:tparallel }, getAgentRes) // Test change API. - changeAzureDatabaseExporterOK, err := client.Default.AgentsService.ChangeAzureDatabaseExporter(&agents.ChangeAzureDatabaseExporterParams{ - Body: agents.ChangeAzureDatabaseExporterBody{ - AgentID: agentID, - Common: &agents.ChangeAzureDatabaseExporterParamsBodyCommon{ - EnablePushMetrics: true, + changeAzureDatabaseExporterOK, err := client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + AzureDatabaseExporter: &agents.ChangeAgentParamsBodyAzureDatabaseExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyAzureDatabaseExporterCommon{ + EnablePushMetrics: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeAzureDatabaseExporterOK{ - Payload: &agents.ChangeAzureDatabaseExporterOKBody{ - AzureDatabaseExporter: &agents.ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporter{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + AzureDatabaseExporter: &agents.ChangeAgentOKBodyAzureDatabaseExporter{ NodeID: nodeID, AgentID: agentID, PMMAgentID: pmmAgentID, @@ -291,19 +300,22 @@ func TestAzureDatabaseExporter(t *testing.T) { //nolint:tparallel }, }, changeAzureDatabaseExporterOK) - changeAzureDatabaseExporterOK, err = client.Default.AgentsService.ChangeAzureDatabaseExporter(&agents.ChangeAzureDatabaseExporterParams{ - Body: agents.ChangeAzureDatabaseExporterBody{ - AgentID: agentID, - Common: &agents.ChangeAzureDatabaseExporterParamsBodyCommon{ - DisablePushMetrics: true, + changeAzureDatabaseExporterOK, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + AzureDatabaseExporter: &agents.ChangeAgentParamsBodyAzureDatabaseExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyAzureDatabaseExporterCommon{ + DisablePushMetrics: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeAzureDatabaseExporterOK{ - Payload: &agents.ChangeAzureDatabaseExporterOKBody{ - AzureDatabaseExporter: &agents.ChangeAzureDatabaseExporterOKBodyAzureDatabaseExporter{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + AzureDatabaseExporter: &agents.ChangeAgentOKBodyAzureDatabaseExporter{ NodeID: nodeID, AgentID: agentID, PMMAgentID: pmmAgentID, @@ -316,16 +328,19 @@ func TestAzureDatabaseExporter(t *testing.T) { //nolint:tparallel }, }, }, changeAzureDatabaseExporterOK) - _, err = client.Default.AgentsService.ChangeAzureDatabaseExporter(&agents.ChangeAzureDatabaseExporterParams{ - Body: agents.ChangeAzureDatabaseExporterBody{ - AgentID: agentID, - Common: &agents.ChangeAzureDatabaseExporterParamsBodyCommon{ - EnablePushMetrics: true, - DisablePushMetrics: true, + _, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + AzureDatabaseExporter: &agents.ChangeAgentParamsBodyAzureDatabaseExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyAzureDatabaseExporterCommon{ + EnablePushMetrics: true, + DisablePushMetrics: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "expected one of param: enable_push_metrics or disable_push_metrics") }) diff --git a/api-tests/inventory/agents_external_exporter_test.go b/api-tests/inventory/agents_external_exporter_test.go index d4f81f89fe..5b361114ad 100644 --- a/api-tests/inventory/agents_external_exporter_test.go +++ b/api-tests/inventory/agents_external_exporter_test.go @@ -139,19 +139,22 @@ func TestExternalExporter(t *testing.T) { }, getAgentRes.Payload) // Test change API. - changeExternalExporterOK, err := client.Default.AgentsService.ChangeExternalExporter(&agents.ChangeExternalExporterParams{ - Body: agents.ChangeExternalExporterBody{ - AgentID: agentID, - Common: &agents.ChangeExternalExporterParamsBodyCommon{ - Disable: true, - RemoveCustomLabels: true, + changeExternalExporterOK, err := client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + ExternalExporter: &agents.ChangeAgentParamsBodyExternalExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyExternalExporterCommon{ + Disable: true, + RemoveCustomLabels: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeExternalExporterOKBody{ - ExternalExporter: &agents.ChangeExternalExporterOKBodyExternalExporter{ + assert.Equal(t, &agents.ChangeAgentOKBody{ + ExternalExporter: &agents.ChangeAgentOKBodyExternalExporter{ AgentID: agentID, ServiceID: serviceID, RunsOnNodeID: genericNodeID, @@ -164,21 +167,24 @@ func TestExternalExporter(t *testing.T) { }, }, changeExternalExporterOK.Payload) - changeExternalExporterOK, err = client.Default.AgentsService.ChangeExternalExporter(&agents.ChangeExternalExporterParams{ - Body: agents.ChangeExternalExporterBody{ - AgentID: agentID, - Common: &agents.ChangeExternalExporterParamsBodyCommon{ - Enable: true, - CustomLabels: map[string]string{ - "new_label": "external_exporter", + changeExternalExporterOK, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + ExternalExporter: &agents.ChangeAgentParamsBodyExternalExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyExternalExporterCommon{ + Enable: true, + CustomLabels: map[string]string{ + "new_label": "external_exporter", + }, + }, }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeExternalExporterOKBody{ - ExternalExporter: &agents.ChangeExternalExporterOKBodyExternalExporter{ + assert.Equal(t, &agents.ChangeAgentOKBody{ + ExternalExporter: &agents.ChangeAgentOKBodyExternalExporter{ AgentID: agentID, ServiceID: serviceID, RunsOnNodeID: genericNodeID, @@ -392,18 +398,21 @@ func TestExternalExporter(t *testing.T) { }, getAgentRes.Payload) // Test change API. - changeExternalExporterOK, err := client.Default.AgentsService.ChangeExternalExporter(&agents.ChangeExternalExporterParams{ - Body: agents.ChangeExternalExporterBody{ - AgentID: agentID, - Common: &agents.ChangeExternalExporterParamsBodyCommon{ - DisablePushMetrics: true, + changeExternalExporterOK, err := client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + ExternalExporter: &agents.ChangeAgentParamsBodyExternalExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyExternalExporterCommon{ + DisablePushMetrics: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeExternalExporterOKBody{ - ExternalExporter: &agents.ChangeExternalExporterOKBodyExternalExporter{ + assert.Equal(t, &agents.ChangeAgentOKBody{ + ExternalExporter: &agents.ChangeAgentOKBodyExternalExporter{ AgentID: agentID, ServiceID: serviceID, RunsOnNodeID: genericNodeID, @@ -417,18 +426,21 @@ func TestExternalExporter(t *testing.T) { }, }, changeExternalExporterOK.Payload) - changeExternalExporterOK, err = client.Default.AgentsService.ChangeExternalExporter(&agents.ChangeExternalExporterParams{ - Body: agents.ChangeExternalExporterBody{ - AgentID: agentID, - Common: &agents.ChangeExternalExporterParamsBodyCommon{ - EnablePushMetrics: true, + changeExternalExporterOK, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + ExternalExporter: &agents.ChangeAgentParamsBodyExternalExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyExternalExporterCommon{ + EnablePushMetrics: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeExternalExporterOKBody{ - ExternalExporter: &agents.ChangeExternalExporterOKBodyExternalExporter{ + assert.Equal(t, &agents.ChangeAgentOKBody{ + ExternalExporter: &agents.ChangeAgentOKBodyExternalExporter{ AgentID: agentID, ServiceID: serviceID, RunsOnNodeID: genericNodeID, @@ -442,16 +454,19 @@ func TestExternalExporter(t *testing.T) { }, }, changeExternalExporterOK.Payload) - _, err = client.Default.AgentsService.ChangeExternalExporter(&agents.ChangeExternalExporterParams{ - Body: agents.ChangeExternalExporterBody{ - AgentID: agentID, - Common: &agents.ChangeExternalExporterParamsBodyCommon{ - EnablePushMetrics: true, - DisablePushMetrics: true, + _, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + ExternalExporter: &agents.ChangeAgentParamsBodyExternalExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyExternalExporterCommon{ + EnablePushMetrics: true, + DisablePushMetrics: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "expected one of param: enable_push_metrics or disable_push_metrics") }) } diff --git a/api-tests/inventory/agents_mongodb_exporter_test.go b/api-tests/inventory/agents_mongodb_exporter_test.go index 88591ebd18..3b3a34a8c9 100644 --- a/api-tests/inventory/agents_mongodb_exporter_test.go +++ b/api-tests/inventory/agents_mongodb_exporter_test.go @@ -97,20 +97,23 @@ func TestMongoDBExporter(t *testing.T) { }, getAgentRes) // Test change API. - changeMongoDBExporterOK, err := client.Default.AgentsService.ChangeMongoDBExporter(&agents.ChangeMongoDBExporterParams{ - Body: agents.ChangeMongoDBExporterBody{ - AgentID: agentID, - Common: &agents.ChangeMongoDBExporterParamsBodyCommon{ - Disable: true, - RemoveCustomLabels: true, + changeMongoDBExporterOK, err := client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + MongodbExporter: &agents.ChangeAgentParamsBodyMongodbExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyMongodbExporterCommon{ + Disable: true, + RemoveCustomLabels: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeMongoDBExporterOK{ - Payload: &agents.ChangeMongoDBExporterOKBody{ - MongodbExporter: &agents.ChangeMongoDBExporterOKBodyMongodbExporter{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + MongodbExporter: &agents.ChangeAgentOKBodyMongodbExporter{ AgentID: agentID, ServiceID: serviceID, Username: "username", @@ -125,22 +128,25 @@ func TestMongoDBExporter(t *testing.T) { }, }, changeMongoDBExporterOK) - changeMongoDBExporterOK, err = client.Default.AgentsService.ChangeMongoDBExporter(&agents.ChangeMongoDBExporterParams{ - Body: agents.ChangeMongoDBExporterBody{ - AgentID: agentID, - Common: &agents.ChangeMongoDBExporterParamsBodyCommon{ - Enable: true, - CustomLabels: map[string]string{ - "new_label": "mongodb_exporter", + changeMongoDBExporterOK, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + MongodbExporter: &agents.ChangeAgentParamsBodyMongodbExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyMongodbExporterCommon{ + Enable: true, + CustomLabels: map[string]string{ + "new_label": "mongodb_exporter", + }, + }, }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeMongoDBExporterOK{ - Payload: &agents.ChangeMongoDBExporterOKBody{ - MongodbExporter: &agents.ChangeMongoDBExporterOKBodyMongodbExporter{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + MongodbExporter: &agents.ChangeAgentOKBodyMongodbExporter{ AgentID: agentID, ServiceID: serviceID, Username: "username", @@ -325,10 +331,11 @@ func TestMongoDBExporter(t *testing.T) { agentID := mongoDBExporter.MongodbExporter.AgentID defer pmmapitests.RemoveAgents(t, agentID) - getAgentRes, err := client.Default.AgentsService.GetAgent(&agents.GetAgentParams{ - Body: agents.GetAgentBody{AgentID: agentID}, - Context: pmmapitests.Context, - }) + getAgentRes, err := client.Default.AgentsService.GetAgent( + &agents.GetAgentParams{ + Body: agents.GetAgentBody{AgentID: agentID}, + Context: pmmapitests.Context, + }) require.NoError(t, err) assert.Equal(t, &agents.GetAgentOK{ Payload: &agents.GetAgentOKBody{ @@ -350,19 +357,22 @@ func TestMongoDBExporter(t *testing.T) { }, getAgentRes) // Test change API. - changeMongoDBExporterOK, err := client.Default.AgentsService.ChangeMongoDBExporter(&agents.ChangeMongoDBExporterParams{ - Body: agents.ChangeMongoDBExporterBody{ - AgentID: agentID, - Common: &agents.ChangeMongoDBExporterParamsBodyCommon{ - DisablePushMetrics: true, + changeMongoDBExporterOK, err := client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + MongodbExporter: &agents.ChangeAgentParamsBodyMongodbExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyMongodbExporterCommon{ + DisablePushMetrics: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeMongoDBExporterOK{ - Payload: &agents.ChangeMongoDBExporterOKBody{ - MongodbExporter: &agents.ChangeMongoDBExporterOKBodyMongodbExporter{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + MongodbExporter: &agents.ChangeAgentOKBodyMongodbExporter{ AgentID: agentID, ServiceID: serviceID, Username: "username", @@ -378,19 +388,22 @@ func TestMongoDBExporter(t *testing.T) { }, }, changeMongoDBExporterOK) - changeMongoDBExporterOK, err = client.Default.AgentsService.ChangeMongoDBExporter(&agents.ChangeMongoDBExporterParams{ - Body: agents.ChangeMongoDBExporterBody{ - AgentID: agentID, - Common: &agents.ChangeMongoDBExporterParamsBodyCommon{ - EnablePushMetrics: true, + changeMongoDBExporterOK, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + MongodbExporter: &agents.ChangeAgentParamsBodyMongodbExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyMongodbExporterCommon{ + EnablePushMetrics: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeMongoDBExporterOK{ - Payload: &agents.ChangeMongoDBExporterOKBody{ - MongodbExporter: &agents.ChangeMongoDBExporterOKBodyMongodbExporter{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + MongodbExporter: &agents.ChangeAgentOKBodyMongodbExporter{ AgentID: agentID, ServiceID: serviceID, Username: "username", @@ -407,16 +420,19 @@ func TestMongoDBExporter(t *testing.T) { }, }, changeMongoDBExporterOK) - _, err = client.Default.AgentsService.ChangeMongoDBExporter(&agents.ChangeMongoDBExporterParams{ - Body: agents.ChangeMongoDBExporterBody{ - AgentID: agentID, - Common: &agents.ChangeMongoDBExporterParamsBodyCommon{ - EnablePushMetrics: true, - DisablePushMetrics: true, + _, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + MongodbExporter: &agents.ChangeAgentParamsBodyMongodbExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyMongodbExporterCommon{ + EnablePushMetrics: true, + DisablePushMetrics: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "expected one of param: enable_push_metrics or disable_push_metrics") }) } diff --git a/api-tests/inventory/agents_mysqld_exporter_test.go b/api-tests/inventory/agents_mysqld_exporter_test.go index 580e6f7f10..b54036f676 100644 --- a/api-tests/inventory/agents_mysqld_exporter_test.go +++ b/api-tests/inventory/agents_mysqld_exporter_test.go @@ -75,10 +75,11 @@ func TestMySQLdExporter(t *testing.T) { agentID := mySqldExporter.MysqldExporter.AgentID defer pmmapitests.RemoveAgents(t, agentID) - getAgentRes, err := client.Default.AgentsService.GetAgent(&agents.GetAgentParams{ - Body: agents.GetAgentBody{AgentID: agentID}, - Context: pmmapitests.Context, - }) + getAgentRes, err := client.Default.AgentsService.GetAgent( + &agents.GetAgentParams{ + Body: agents.GetAgentBody{AgentID: agentID}, + Context: pmmapitests.Context, + }) require.NoError(t, err) assert.Equal(t, &agents.GetAgentOKBody{ MysqldExporter: &agents.GetAgentOKBodyMysqldExporter{ @@ -97,19 +98,22 @@ func TestMySQLdExporter(t *testing.T) { }, getAgentRes.Payload) // Test change API. - changeMySQLdExporterOK, err := client.Default.AgentsService.ChangeMySQLdExporter(&agents.ChangeMySQLdExporterParams{ - Body: agents.ChangeMySQLdExporterBody{ - AgentID: agentID, - Common: &agents.ChangeMySQLdExporterParamsBodyCommon{ - Disable: true, - RemoveCustomLabels: true, + changeMySQLdExporterOK, err := client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + MysqldExporter: &agents.ChangeAgentParamsBodyMysqldExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyMysqldExporterCommon{ + Disable: true, + RemoveCustomLabels: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeMySQLdExporterOKBody{ - MysqldExporter: &agents.ChangeMySQLdExporterOKBodyMysqldExporter{ + assert.Equal(t, &agents.ChangeAgentOKBody{ + MysqldExporter: &agents.ChangeAgentOKBodyMysqldExporter{ AgentID: agentID, ServiceID: serviceID, Username: "username", @@ -123,21 +127,24 @@ func TestMySQLdExporter(t *testing.T) { }, }, changeMySQLdExporterOK.Payload) - changeMySQLdExporterOK, err = client.Default.AgentsService.ChangeMySQLdExporter(&agents.ChangeMySQLdExporterParams{ - Body: agents.ChangeMySQLdExporterBody{ - AgentID: agentID, - Common: &agents.ChangeMySQLdExporterParamsBodyCommon{ - Enable: true, - CustomLabels: map[string]string{ - "new_label": "mysql_exporter", + changeMySQLdExporterOK, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + MysqldExporter: &agents.ChangeAgentParamsBodyMysqldExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyMysqldExporterCommon{ + Enable: true, + CustomLabels: map[string]string{ + "new_label": "mysql_exporter", + }, + }, }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeMySQLdExporterOKBody{ - MysqldExporter: &agents.ChangeMySQLdExporterOKBodyMysqldExporter{ + assert.Equal(t, &agents.ChangeAgentOKBody{ + MysqldExporter: &agents.ChangeAgentOKBodyMysqldExporter{ AgentID: agentID, ServiceID: serviceID, Username: "username", @@ -382,10 +389,11 @@ func TestMySQLdExporter(t *testing.T) { agentID := mySqldExporter.MysqldExporter.AgentID defer pmmapitests.RemoveAgents(t, agentID) - getAgentRes, err := client.Default.AgentsService.GetAgent(&agents.GetAgentParams{ - Body: agents.GetAgentBody{AgentID: agentID}, - Context: pmmapitests.Context, - }) + getAgentRes, err := client.Default.AgentsService.GetAgent( + &agents.GetAgentParams{ + Body: agents.GetAgentBody{AgentID: agentID}, + Context: pmmapitests.Context, + }) require.NoError(t, err) assert.Equal(t, &agents.GetAgentOKBody{ MysqldExporter: &agents.GetAgentOKBodyMysqldExporter{ @@ -405,18 +413,21 @@ func TestMySQLdExporter(t *testing.T) { }, getAgentRes.Payload) // Test change API. - changeMySQLdExporterOK, err := client.Default.AgentsService.ChangeMySQLdExporter(&agents.ChangeMySQLdExporterParams{ - Body: agents.ChangeMySQLdExporterBody{ - AgentID: agentID, - Common: &agents.ChangeMySQLdExporterParamsBodyCommon{ - DisablePushMetrics: true, + changeMySQLdExporterOK, err := client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + MysqldExporter: &agents.ChangeAgentParamsBodyMysqldExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyMysqldExporterCommon{ + DisablePushMetrics: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeMySQLdExporterOKBody{ - MysqldExporter: &agents.ChangeMySQLdExporterOKBodyMysqldExporter{ + assert.Equal(t, &agents.ChangeAgentOKBody{ + MysqldExporter: &agents.ChangeAgentOKBodyMysqldExporter{ AgentID: agentID, ServiceID: serviceID, Username: "username", @@ -431,18 +442,21 @@ func TestMySQLdExporter(t *testing.T) { }, }, changeMySQLdExporterOK.Payload) - changeMySQLdExporterOK, err = client.Default.AgentsService.ChangeMySQLdExporter(&agents.ChangeMySQLdExporterParams{ - Body: agents.ChangeMySQLdExporterBody{ - AgentID: agentID, - Common: &agents.ChangeMySQLdExporterParamsBodyCommon{ - EnablePushMetrics: true, + changeMySQLdExporterOK, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + MysqldExporter: &agents.ChangeAgentParamsBodyMysqldExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyMysqldExporterCommon{ + EnablePushMetrics: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeMySQLdExporterOKBody{ - MysqldExporter: &agents.ChangeMySQLdExporterOKBodyMysqldExporter{ + assert.Equal(t, &agents.ChangeAgentOKBody{ + MysqldExporter: &agents.ChangeAgentOKBodyMysqldExporter{ AgentID: agentID, ServiceID: serviceID, Username: "username", @@ -457,16 +471,18 @@ func TestMySQLdExporter(t *testing.T) { LogLevel: pointer.ToString("LOG_LEVEL_UNSPECIFIED"), }, }, changeMySQLdExporterOK.Payload) - _, err = client.Default.AgentsService.ChangeMySQLdExporter(&agents.ChangeMySQLdExporterParams{ - Body: agents.ChangeMySQLdExporterBody{ - AgentID: agentID, - Common: &agents.ChangeMySQLdExporterParamsBodyCommon{ - Enable: true, - CustomLabels: map[string]string{ - "new_label": "mysql_exporter", + _, err = client.Default.AgentsService.ChangeAgent(&agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + MysqldExporter: &agents.ChangeAgentParamsBodyMysqldExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyMysqldExporterCommon{ + Enable: true, + CustomLabels: map[string]string{ + "new_label": "mysql_exporter", + }, + EnablePushMetrics: true, + DisablePushMetrics: true, }, - EnablePushMetrics: true, - DisablePushMetrics: true, }, }, Context: pmmapitests.Context, diff --git a/api-tests/inventory/agents_node_exporter_test.go b/api-tests/inventory/agents_node_exporter_test.go index b0d7deb71d..7a0d25254c 100644 --- a/api-tests/inventory/agents_node_exporter_test.go +++ b/api-tests/inventory/agents_node_exporter_test.go @@ -48,10 +48,11 @@ func TestNodeExporter(t *testing.T) { agentID := res.Payload.NodeExporter.AgentID defer pmmapitests.RemoveAgents(t, agentID) - getAgentRes, err := client.Default.AgentsService.GetAgent(&agents.GetAgentParams{ - Body: agents.GetAgentBody{AgentID: agentID}, - Context: pmmapitests.Context, - }) + getAgentRes, err := client.Default.AgentsService.GetAgent( + &agents.GetAgentParams{ + Body: agents.GetAgentBody{AgentID: agentID}, + Context: pmmapitests.Context, + }) require.NoError(t, err) assert.Equal(t, &agents.GetAgentOK{ Payload: &agents.GetAgentOKBody{ @@ -68,20 +69,23 @@ func TestNodeExporter(t *testing.T) { }, getAgentRes) // Test change API. - changeNodeExporterOK, err := client.Default.AgentsService.ChangeNodeExporter(&agents.ChangeNodeExporterParams{ - Body: agents.ChangeNodeExporterBody{ - AgentID: agentID, - Common: &agents.ChangeNodeExporterParamsBodyCommon{ - Disable: true, - RemoveCustomLabels: true, + changeNodeExporterOK, err := client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + NodeExporter: &agents.ChangeAgentParamsBodyNodeExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyNodeExporterCommon{ + Disable: true, + RemoveCustomLabels: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeNodeExporterOK{ - Payload: &agents.ChangeNodeExporterOKBody{ - NodeExporter: &agents.ChangeNodeExporterOKBodyNodeExporter{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + NodeExporter: &agents.ChangeAgentOKBodyNodeExporter{ AgentID: agentID, PMMAgentID: pmmAgentID, Disabled: true, @@ -93,22 +97,25 @@ func TestNodeExporter(t *testing.T) { }, }, changeNodeExporterOK) - changeNodeExporterOK, err = client.Default.AgentsService.ChangeNodeExporter(&agents.ChangeNodeExporterParams{ - Body: agents.ChangeNodeExporterBody{ - AgentID: agentID, - Common: &agents.ChangeNodeExporterParamsBodyCommon{ - Enable: true, - CustomLabels: map[string]string{ - "new_label": "node_exporter", + changeNodeExporterOK, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + NodeExporter: &agents.ChangeAgentParamsBodyNodeExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyNodeExporterCommon{ + Enable: true, + CustomLabels: map[string]string{ + "new_label": "node_exporter", + }, + }, }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeNodeExporterOK{ - Payload: &agents.ChangeNodeExporterOKBody{ - NodeExporter: &agents.ChangeNodeExporterOKBodyNodeExporter{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + NodeExporter: &agents.ChangeAgentOKBodyNodeExporter{ AgentID: agentID, PMMAgentID: pmmAgentID, Disabled: false, @@ -209,19 +216,21 @@ func TestNodeExporter(t *testing.T) { }, getAgentRes) // Test change API. - changeNodeExporterOK, err := client.Default.AgentsService.ChangeNodeExporter(&agents.ChangeNodeExporterParams{ - Body: agents.ChangeNodeExporterBody{ - AgentID: agentID, - Common: &agents.ChangeNodeExporterParamsBodyCommon{ - DisablePushMetrics: true, + changeNodeExporterOK, err := client.Default.AgentsService.ChangeAgent(&agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + NodeExporter: &agents.ChangeAgentParamsBodyNodeExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyNodeExporterCommon{ + DisablePushMetrics: true, + }, }, }, Context: pmmapitests.Context, }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeNodeExporterOK{ - Payload: &agents.ChangeNodeExporterOKBody{ - NodeExporter: &agents.ChangeNodeExporterOKBodyNodeExporter{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + NodeExporter: &agents.ChangeAgentOKBodyNodeExporter{ AgentID: agentID, PMMAgentID: pmmAgentID, Disabled: false, @@ -233,19 +242,22 @@ func TestNodeExporter(t *testing.T) { }, }, changeNodeExporterOK) - changeNodeExporterOK, err = client.Default.AgentsService.ChangeNodeExporter(&agents.ChangeNodeExporterParams{ - Body: agents.ChangeNodeExporterBody{ - AgentID: agentID, - Common: &agents.ChangeNodeExporterParamsBodyCommon{ - EnablePushMetrics: true, + changeNodeExporterOK, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + NodeExporter: &agents.ChangeAgentParamsBodyNodeExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyNodeExporterCommon{ + EnablePushMetrics: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeNodeExporterOK{ - Payload: &agents.ChangeNodeExporterOKBody{ - NodeExporter: &agents.ChangeNodeExporterOKBodyNodeExporter{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + NodeExporter: &agents.ChangeAgentOKBodyNodeExporter{ AgentID: agentID, PMMAgentID: pmmAgentID, Disabled: false, @@ -257,12 +269,14 @@ func TestNodeExporter(t *testing.T) { }, }, }, changeNodeExporterOK) - _, err = client.Default.AgentsService.ChangeNodeExporter(&agents.ChangeNodeExporterParams{ - Body: agents.ChangeNodeExporterBody{ - AgentID: agentID, - Common: &agents.ChangeNodeExporterParamsBodyCommon{ - EnablePushMetrics: true, - DisablePushMetrics: true, + _, err = client.Default.AgentsService.ChangeAgent(&agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + NodeExporter: &agents.ChangeAgentParamsBodyNodeExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyNodeExporterCommon{ + EnablePushMetrics: true, + DisablePushMetrics: true, + }, }, }, Context: pmmapitests.Context, diff --git a/api-tests/inventory/agents_postgres_exporter_test.go b/api-tests/inventory/agents_postgres_exporter_test.go index 6124d68954..b53aaef575 100644 --- a/api-tests/inventory/agents_postgres_exporter_test.go +++ b/api-tests/inventory/agents_postgres_exporter_test.go @@ -96,20 +96,23 @@ func TestPostgresExporter(t *testing.T) { }, getAgentRes) // Test change API. - changePostgresExporterOK, err := client.Default.AgentsService.ChangePostgresExporter(&agents.ChangePostgresExporterParams{ - Body: agents.ChangePostgresExporterBody{ - AgentID: agentID, - Common: &agents.ChangePostgresExporterParamsBodyCommon{ - Disable: true, - RemoveCustomLabels: true, + changePostgresExporterOK, err := client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + PostgresExporter: &agents.ChangeAgentParamsBodyPostgresExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyPostgresExporterCommon{ + Disable: true, + RemoveCustomLabels: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangePostgresExporterOK{ - Payload: &agents.ChangePostgresExporterOKBody{ - PostgresExporter: &agents.ChangePostgresExporterOKBodyPostgresExporter{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + PostgresExporter: &agents.ChangeAgentOKBodyPostgresExporter{ AgentID: agentID, ServiceID: serviceID, Username: "username", @@ -123,22 +126,25 @@ func TestPostgresExporter(t *testing.T) { }, }, changePostgresExporterOK) - changePostgresExporterOK, err = client.Default.AgentsService.ChangePostgresExporter(&agents.ChangePostgresExporterParams{ - Body: agents.ChangePostgresExporterBody{ - AgentID: agentID, - Common: &agents.ChangePostgresExporterParamsBodyCommon{ - Enable: true, - CustomLabels: map[string]string{ - "new_label": "postgres_exporter", + changePostgresExporterOK, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + PostgresExporter: &agents.ChangeAgentParamsBodyPostgresExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyPostgresExporterCommon{ + Enable: true, + CustomLabels: map[string]string{ + "new_label": "postgres_exporter", + }, + }, }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangePostgresExporterOK{ - Payload: &agents.ChangePostgresExporterOKBody{ - PostgresExporter: &agents.ChangePostgresExporterOKBodyPostgresExporter{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + PostgresExporter: &agents.ChangeAgentOKBodyPostgresExporter{ AgentID: agentID, ServiceID: serviceID, Username: "username", @@ -322,10 +328,11 @@ func TestPostgresExporter(t *testing.T) { agentID := PostgresExporter.PostgresExporter.AgentID defer pmmapitests.RemoveAgents(t, agentID) - getAgentRes, err := client.Default.AgentsService.GetAgent(&agents.GetAgentParams{ - Body: agents.GetAgentBody{AgentID: agentID}, - Context: pmmapitests.Context, - }) + getAgentRes, err := client.Default.AgentsService.GetAgent( + &agents.GetAgentParams{ + Body: agents.GetAgentBody{AgentID: agentID}, + Context: pmmapitests.Context, + }) require.NoError(t, err) assert.Equal(t, &agents.GetAgentOK{ Payload: &agents.GetAgentOKBody{ @@ -346,19 +353,22 @@ func TestPostgresExporter(t *testing.T) { }, getAgentRes) // Test change API. - changePostgresExporterOK, err := client.Default.AgentsService.ChangePostgresExporter(&agents.ChangePostgresExporterParams{ - Body: agents.ChangePostgresExporterBody{ - AgentID: agentID, - Common: &agents.ChangePostgresExporterParamsBodyCommon{ - DisablePushMetrics: true, + changePostgresExporterOK, err := client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + PostgresExporter: &agents.ChangeAgentParamsBodyPostgresExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyPostgresExporterCommon{ + DisablePushMetrics: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangePostgresExporterOK{ - Payload: &agents.ChangePostgresExporterOKBody{ - PostgresExporter: &agents.ChangePostgresExporterOKBodyPostgresExporter{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + PostgresExporter: &agents.ChangeAgentOKBodyPostgresExporter{ AgentID: agentID, ServiceID: serviceID, Username: "username", @@ -373,19 +383,22 @@ func TestPostgresExporter(t *testing.T) { }, }, changePostgresExporterOK) - changePostgresExporterOK, err = client.Default.AgentsService.ChangePostgresExporter(&agents.ChangePostgresExporterParams{ - Body: agents.ChangePostgresExporterBody{ - AgentID: agentID, - Common: &agents.ChangePostgresExporterParamsBodyCommon{ - EnablePushMetrics: true, + changePostgresExporterOK, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + PostgresExporter: &agents.ChangeAgentParamsBodyPostgresExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyPostgresExporterCommon{ + EnablePushMetrics: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangePostgresExporterOK{ - Payload: &agents.ChangePostgresExporterOKBody{ - PostgresExporter: &agents.ChangePostgresExporterOKBodyPostgresExporter{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + PostgresExporter: &agents.ChangeAgentOKBodyPostgresExporter{ AgentID: agentID, ServiceID: serviceID, Username: "username", @@ -401,20 +414,23 @@ func TestPostgresExporter(t *testing.T) { }, }, changePostgresExporterOK) - _, err = client.Default.AgentsService.ChangePostgresExporter(&agents.ChangePostgresExporterParams{ - Body: agents.ChangePostgresExporterBody{ - AgentID: agentID, - Common: &agents.ChangePostgresExporterParamsBodyCommon{ - Enable: true, - CustomLabels: map[string]string{ - "new_label": "postgres_exporter", + _, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + PostgresExporter: &agents.ChangeAgentParamsBodyPostgresExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyPostgresExporterCommon{ + Enable: true, + CustomLabels: map[string]string{ + "new_label": "postgres_exporter", + }, + EnablePushMetrics: true, + DisablePushMetrics: true, + }, }, - EnablePushMetrics: true, - DisablePushMetrics: true, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "expected one of param: enable_push_metrics or disable_push_metrics") }) } diff --git a/api-tests/inventory/agents_proxysql_exporter_test.go b/api-tests/inventory/agents_proxysql_exporter_test.go index 86c10763fa..a154649f1e 100644 --- a/api-tests/inventory/agents_proxysql_exporter_test.go +++ b/api-tests/inventory/agents_proxysql_exporter_test.go @@ -96,20 +96,23 @@ func TestProxySQLExporter(t *testing.T) { }, getAgentRes) // Test change API. - changeProxySQLExporterOK, err := client.Default.AgentsService.ChangeProxySQLExporter(&agents.ChangeProxySQLExporterParams{ - Body: agents.ChangeProxySQLExporterBody{ - AgentID: agentID, - Common: &agents.ChangeProxySQLExporterParamsBodyCommon{ - Disable: true, - RemoveCustomLabels: true, + changeProxySQLExporterOK, err := client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + ProxysqlExporter: &agents.ChangeAgentParamsBodyProxysqlExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyProxysqlExporterCommon{ + Disable: true, + RemoveCustomLabels: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeProxySQLExporterOK{ - Payload: &agents.ChangeProxySQLExporterOKBody{ - ProxysqlExporter: &agents.ChangeProxySQLExporterOKBodyProxysqlExporter{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + ProxysqlExporter: &agents.ChangeAgentOKBodyProxysqlExporter{ AgentID: agentID, ServiceID: serviceID, Username: "username", @@ -123,22 +126,25 @@ func TestProxySQLExporter(t *testing.T) { }, }, changeProxySQLExporterOK) - changeProxySQLExporterOK, err = client.Default.AgentsService.ChangeProxySQLExporter(&agents.ChangeProxySQLExporterParams{ - Body: agents.ChangeProxySQLExporterBody{ - AgentID: agentID, - Common: &agents.ChangeProxySQLExporterParamsBodyCommon{ - Enable: true, - CustomLabels: map[string]string{ - "new_label": "proxysql_exporter", + changeProxySQLExporterOK, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + ProxysqlExporter: &agents.ChangeAgentParamsBodyProxysqlExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyProxysqlExporterCommon{ + Enable: true, + CustomLabels: map[string]string{ + "new_label": "proxysql_exporter", + }, + }, }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeProxySQLExporterOK{ - Payload: &agents.ChangeProxySQLExporterOKBody{ - ProxysqlExporter: &agents.ChangeProxySQLExporterOKBodyProxysqlExporter{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + ProxysqlExporter: &agents.ChangeAgentOKBodyProxysqlExporter{ AgentID: agentID, ServiceID: serviceID, Username: "username", @@ -341,19 +347,21 @@ func TestProxySQLExporter(t *testing.T) { }, getAgentRes) // Test change API. - changeProxySQLExporterOK, err := client.Default.AgentsService.ChangeProxySQLExporter(&agents.ChangeProxySQLExporterParams{ - Body: agents.ChangeProxySQLExporterBody{ - AgentID: agentID, - Common: &agents.ChangeProxySQLExporterParamsBodyCommon{ - EnablePushMetrics: true, + changeProxySQLExporterOK, err := client.Default.AgentsService.ChangeAgent(&agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + ProxysqlExporter: &agents.ChangeAgentParamsBodyProxysqlExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyProxysqlExporterCommon{ + EnablePushMetrics: true, + }, }, }, Context: pmmapitests.Context, }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeProxySQLExporterOK{ - Payload: &agents.ChangeProxySQLExporterOKBody{ - ProxysqlExporter: &agents.ChangeProxySQLExporterOKBodyProxysqlExporter{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + ProxysqlExporter: &agents.ChangeAgentOKBodyProxysqlExporter{ AgentID: agentID, ServiceID: serviceID, Username: "username", @@ -369,19 +377,22 @@ func TestProxySQLExporter(t *testing.T) { }, }, changeProxySQLExporterOK) - changeProxySQLExporterOK, err = client.Default.AgentsService.ChangeProxySQLExporter(&agents.ChangeProxySQLExporterParams{ - Body: agents.ChangeProxySQLExporterBody{ - AgentID: agentID, - Common: &agents.ChangeProxySQLExporterParamsBodyCommon{ - DisablePushMetrics: true, + changeProxySQLExporterOK, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + ProxysqlExporter: &agents.ChangeAgentParamsBodyProxysqlExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyProxysqlExporterCommon{ + DisablePushMetrics: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeProxySQLExporterOK{ - Payload: &agents.ChangeProxySQLExporterOKBody{ - ProxysqlExporter: &agents.ChangeProxySQLExporterOKBodyProxysqlExporter{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + ProxysqlExporter: &agents.ChangeAgentOKBodyProxysqlExporter{ AgentID: agentID, ServiceID: serviceID, Username: "username", @@ -396,16 +407,19 @@ func TestProxySQLExporter(t *testing.T) { }, }, changeProxySQLExporterOK) - _, err = client.Default.AgentsService.ChangeProxySQLExporter(&agents.ChangeProxySQLExporterParams{ - Body: agents.ChangeProxySQLExporterBody{ - AgentID: agentID, - Common: &agents.ChangeProxySQLExporterParamsBodyCommon{ - EnablePushMetrics: true, - DisablePushMetrics: true, + _, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + ProxysqlExporter: &agents.ChangeAgentParamsBodyProxysqlExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyProxysqlExporterCommon{ + EnablePushMetrics: true, + DisablePushMetrics: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "expected one of param: enable_push_metrics or disable_push_metrics") }) } diff --git a/api-tests/inventory/agents_rds_exporter_test.go b/api-tests/inventory/agents_rds_exporter_test.go index 7ac1e1c236..892ac165fd 100644 --- a/api-tests/inventory/agents_rds_exporter_test.go +++ b/api-tests/inventory/agents_rds_exporter_test.go @@ -82,20 +82,23 @@ func TestRDSExporter(t *testing.T) { }, getAgentRes) // Test change API. - changeRDSExporterOK, err := client.Default.AgentsService.ChangeRDSExporter(&agents.ChangeRDSExporterParams{ - Body: agents.ChangeRDSExporterBody{ - AgentID: agentID, - Common: &agents.ChangeRDSExporterParamsBodyCommon{ - Disable: true, - RemoveCustomLabels: true, + changeRDSExporterOK, err := client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + RDSExporter: &agents.ChangeAgentParamsBodyRDSExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyRDSExporterCommon{ + Disable: true, + RemoveCustomLabels: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeRDSExporterOK{ - Payload: &agents.ChangeRDSExporterOKBody{ - RDSExporter: &agents.ChangeRDSExporterOKBodyRDSExporter{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + RDSExporter: &agents.ChangeAgentOKBodyRDSExporter{ NodeID: nodeID, AgentID: agentID, PMMAgentID: pmmAgentID, @@ -109,22 +112,25 @@ func TestRDSExporter(t *testing.T) { }, }, changeRDSExporterOK) - changeRDSExporterOK, err = client.Default.AgentsService.ChangeRDSExporter(&agents.ChangeRDSExporterParams{ - Body: agents.ChangeRDSExporterBody{ - AgentID: agentID, - Common: &agents.ChangeRDSExporterParamsBodyCommon{ - Enable: true, - CustomLabels: map[string]string{ - "new_label": "rds_exporter", + changeRDSExporterOK, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + RDSExporter: &agents.ChangeAgentParamsBodyRDSExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyRDSExporterCommon{ + Enable: true, + CustomLabels: map[string]string{ + "new_label": "rds_exporter", + }, + }, }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeRDSExporterOK{ - Payload: &agents.ChangeRDSExporterOKBody{ - RDSExporter: &agents.ChangeRDSExporterOKBodyRDSExporter{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + RDSExporter: &agents.ChangeAgentOKBodyRDSExporter{ NodeID: nodeID, AgentID: agentID, PMMAgentID: pmmAgentID, @@ -242,10 +248,11 @@ func TestRDSExporter(t *testing.T) { agentID := rdsExporter.RDSExporter.AgentID defer pmmapitests.RemoveAgents(t, agentID) - getAgentRes, err := client.Default.AgentsService.GetAgent(&agents.GetAgentParams{ - Body: agents.GetAgentBody{AgentID: agentID}, - Context: pmmapitests.Context, - }) + getAgentRes, err := client.Default.AgentsService.GetAgent( + &agents.GetAgentParams{ + Body: agents.GetAgentBody{AgentID: agentID}, + Context: pmmapitests.Context, + }) require.NoError(t, err) assert.Equal(t, &agents.GetAgentOK{ @@ -266,19 +273,22 @@ func TestRDSExporter(t *testing.T) { }, getAgentRes) // Test change API. - changeRDSExporterOK, err := client.Default.AgentsService.ChangeRDSExporter(&agents.ChangeRDSExporterParams{ - Body: agents.ChangeRDSExporterBody{ - AgentID: agentID, - Common: &agents.ChangeRDSExporterParamsBodyCommon{ - EnablePushMetrics: true, + changeRDSExporterOK, err := client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + RDSExporter: &agents.ChangeAgentParamsBodyRDSExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyRDSExporterCommon{ + EnablePushMetrics: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeRDSExporterOK{ - Payload: &agents.ChangeRDSExporterOKBody{ - RDSExporter: &agents.ChangeRDSExporterOKBodyRDSExporter{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + RDSExporter: &agents.ChangeAgentOKBodyRDSExporter{ NodeID: nodeID, AgentID: agentID, PMMAgentID: pmmAgentID, @@ -294,19 +304,22 @@ func TestRDSExporter(t *testing.T) { }, }, changeRDSExporterOK) - changeRDSExporterOK, err = client.Default.AgentsService.ChangeRDSExporter(&agents.ChangeRDSExporterParams{ - Body: agents.ChangeRDSExporterBody{ - AgentID: agentID, - Common: &agents.ChangeRDSExporterParamsBodyCommon{ - DisablePushMetrics: true, + changeRDSExporterOK, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + RDSExporter: &agents.ChangeAgentParamsBodyRDSExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyRDSExporterCommon{ + DisablePushMetrics: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeRDSExporterOK{ - Payload: &agents.ChangeRDSExporterOKBody{ - RDSExporter: &agents.ChangeRDSExporterOKBodyRDSExporter{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + RDSExporter: &agents.ChangeAgentOKBodyRDSExporter{ NodeID: nodeID, AgentID: agentID, PMMAgentID: pmmAgentID, @@ -320,16 +333,19 @@ func TestRDSExporter(t *testing.T) { }, }, }, changeRDSExporterOK) - _, err = client.Default.AgentsService.ChangeRDSExporter(&agents.ChangeRDSExporterParams{ - Body: agents.ChangeRDSExporterBody{ - AgentID: agentID, - Common: &agents.ChangeRDSExporterParamsBodyCommon{ - EnablePushMetrics: true, - DisablePushMetrics: true, + _, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + RDSExporter: &agents.ChangeAgentParamsBodyRDSExporter{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyRDSExporterCommon{ + EnablePushMetrics: true, + DisablePushMetrics: true, + }, + }, }, - }, - Context: pmmapitests.Context, - }) + Context: pmmapitests.Context, + }) pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "expected one of param: enable_push_metrics or disable_push_metrics") }) diff --git a/api-tests/inventory/agents_test.go b/api-tests/inventory/agents_test.go index b9c27283e8..45f8208602 100644 --- a/api-tests/inventory/agents_test.go +++ b/api-tests/inventory/agents_test.go @@ -554,21 +554,23 @@ func TestQanAgentExporter(t *testing.T) { }, getAgentRes) // Test change API. - changeQANMySQLPerfSchemaAgentOK, err := client.Default.AgentsService.ChangeQANMySQLPerfSchemaAgent( - &agents.ChangeQANMySQLPerfSchemaAgentParams{ - Body: agents.ChangeQANMySQLPerfSchemaAgentBody{ - AgentID: agentID, - Common: &agents.ChangeQANMySQLPerfSchemaAgentParamsBodyCommon{ - Disable: true, - RemoveCustomLabels: true, + changeQANMySQLPerfSchemaAgentOK, err := client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + QANMysqlPerfschemaAgent: &agents.ChangeAgentParamsBodyQANMysqlPerfschemaAgent{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon{ + Disable: true, + RemoveCustomLabels: true, + }, }, }, Context: pmmapitests.Context, }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeQANMySQLPerfSchemaAgentOK{ - Payload: &agents.ChangeQANMySQLPerfSchemaAgentOKBody{ - QANMysqlPerfschemaAgent: &agents.ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgent{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + QANMysqlPerfschemaAgent: &agents.ChangeAgentOKBodyQANMysqlPerfschemaAgent{ AgentID: agentID, ServiceID: serviceID, Username: "username", @@ -581,23 +583,25 @@ func TestQanAgentExporter(t *testing.T) { }, }, changeQANMySQLPerfSchemaAgentOK) - changeQANMySQLPerfSchemaAgentOK, err = client.Default.AgentsService.ChangeQANMySQLPerfSchemaAgent( - &agents.ChangeQANMySQLPerfSchemaAgentParams{ - Body: agents.ChangeQANMySQLPerfSchemaAgentBody{ - AgentID: agentID, - Common: &agents.ChangeQANMySQLPerfSchemaAgentParamsBodyCommon{ - Enable: true, - CustomLabels: map[string]string{ - "new_label": "QANMysqlPerfschemaAgent", + changeQANMySQLPerfSchemaAgentOK, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + QANMysqlPerfschemaAgent: &agents.ChangeAgentParamsBodyQANMysqlPerfschemaAgent{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon{ + Enable: true, + CustomLabels: map[string]string{ + "new_label": "QANMysqlPerfschemaAgent", + }, }, }, }, Context: pmmapitests.Context, }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeQANMySQLPerfSchemaAgentOK{ - Payload: &agents.ChangeQANMySQLPerfSchemaAgentOKBody{ - QANMysqlPerfschemaAgent: &agents.ChangeQANMySQLPerfSchemaAgentOKBodyQANMysqlPerfschemaAgent{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + QANMysqlPerfschemaAgent: &agents.ChangeAgentOKBodyQANMysqlPerfschemaAgent{ AgentID: agentID, ServiceID: serviceID, Username: "username", @@ -811,21 +815,23 @@ func TestPGStatStatementsQanAgent(t *testing.T) { }, getAgentRes) // Test change API. - changeQANPostgreSQLPgStatementsAgentOK, err := client.Default.AgentsService.ChangeQANPostgreSQLPgStatementsAgent( - &agents.ChangeQANPostgreSQLPgStatementsAgentParams{ - Body: agents.ChangeQANPostgreSQLPgStatementsAgentBody{ - AgentID: agentID, - Common: &agents.ChangeQANPostgreSQLPgStatementsAgentParamsBodyCommon{ - Disable: true, - RemoveCustomLabels: true, + changeQANPostgreSQLPgStatementsAgentOK, err := client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + QANPostgresqlPgstatementsAgent: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon{ + Disable: true, + RemoveCustomLabels: true, + }, }, }, Context: pmmapitests.Context, }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeQANPostgreSQLPgStatementsAgentOK{ - Payload: &agents.ChangeQANPostgreSQLPgStatementsAgentOKBody{ - QANPostgresqlPgstatementsAgent: &agents.ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgent{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + QANPostgresqlPgstatementsAgent: &agents.ChangeAgentOKBodyQANPostgresqlPgstatementsAgent{ AgentID: agentID, ServiceID: serviceID, Username: "username", @@ -838,23 +844,25 @@ func TestPGStatStatementsQanAgent(t *testing.T) { }, }, changeQANPostgreSQLPgStatementsAgentOK) - changeQANPostgreSQLPgStatementsAgentOK, err = client.Default.AgentsService.ChangeQANPostgreSQLPgStatementsAgent( - &agents.ChangeQANPostgreSQLPgStatementsAgentParams{ - Body: agents.ChangeQANPostgreSQLPgStatementsAgentBody{ - AgentID: agentID, - Common: &agents.ChangeQANPostgreSQLPgStatementsAgentParamsBodyCommon{ - Enable: true, - CustomLabels: map[string]string{ - "new_label": "QANPostgreSQLPgStatementsAgent", + changeQANPostgreSQLPgStatementsAgentOK, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + QANPostgresqlPgstatementsAgent: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon{ + Enable: true, + CustomLabels: map[string]string{ + "new_label": "QANPostgreSQLPgStatementsAgent", + }, }, }, }, Context: pmmapitests.Context, }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeQANPostgreSQLPgStatementsAgentOK{ - Payload: &agents.ChangeQANPostgreSQLPgStatementsAgentOKBody{ - QANPostgresqlPgstatementsAgent: &agents.ChangeQANPostgreSQLPgStatementsAgentOKBodyQANPostgresqlPgstatementsAgent{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + QANPostgresqlPgstatementsAgent: &agents.ChangeAgentOKBodyQANPostgresqlPgstatementsAgent{ AgentID: agentID, ServiceID: serviceID, Username: "username", @@ -1068,21 +1076,23 @@ func TestPGStatMonitorQanAgent(t *testing.T) { }, getAgentRes) // Test change API. - changeQANPostgreSQLPgStatMonitorAgentOK, err := client.Default.AgentsService.ChangeQANPostgreSQLPgStatMonitorAgent( - &agents.ChangeQANPostgreSQLPgStatMonitorAgentParams{ - Body: agents.ChangeQANPostgreSQLPgStatMonitorAgentBody{ - AgentID: agentID, - Common: &agents.ChangeQANPostgreSQLPgStatMonitorAgentParamsBodyCommon{ - Disable: true, - RemoveCustomLabels: true, + changeQANPostgreSQLPgStatMonitorAgentOK, err := client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + QANPostgresqlPgstatmonitorAgent: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon{ + Disable: true, + RemoveCustomLabels: true, + }, }, }, Context: pmmapitests.Context, }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeQANPostgreSQLPgStatMonitorAgentOK{ - Payload: &agents.ChangeQANPostgreSQLPgStatMonitorAgentOKBody{ - QANPostgresqlPgstatmonitorAgent: &agents.ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgent{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + QANPostgresqlPgstatmonitorAgent: &agents.ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgent{ AgentID: agentID, ServiceID: serviceID, Username: "username", @@ -1095,23 +1105,25 @@ func TestPGStatMonitorQanAgent(t *testing.T) { }, }, changeQANPostgreSQLPgStatMonitorAgentOK) - changeQANPostgreSQLPgStatMonitorAgentOK, err = client.Default.AgentsService.ChangeQANPostgreSQLPgStatMonitorAgent( - &agents.ChangeQANPostgreSQLPgStatMonitorAgentParams{ - Body: agents.ChangeQANPostgreSQLPgStatMonitorAgentBody{ - AgentID: agentID, - Common: &agents.ChangeQANPostgreSQLPgStatMonitorAgentParamsBodyCommon{ - Enable: true, - CustomLabels: map[string]string{ - "new_label": "QANPostgreSQLPgStatMonitorAgent", + changeQANPostgreSQLPgStatMonitorAgentOK, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + Body: agents.ChangeAgentBody{ + QANPostgresqlPgstatmonitorAgent: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent{ + AgentID: agentID, + Common: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon{ + Enable: true, + CustomLabels: map[string]string{ + "new_label": "QANPostgreSQLPgStatMonitorAgent", + }, }, }, }, Context: pmmapitests.Context, }) assert.NoError(t, err) - assert.Equal(t, &agents.ChangeQANPostgreSQLPgStatMonitorAgentOK{ - Payload: &agents.ChangeQANPostgreSQLPgStatMonitorAgentOKBody{ - QANPostgresqlPgstatmonitorAgent: &agents.ChangeQANPostgreSQLPgStatMonitorAgentOKBodyQANPostgresqlPgstatmonitorAgent{ + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + QANPostgresqlPgstatmonitorAgent: &agents.ChangeAgentOKBodyQANPostgresqlPgstatmonitorAgent{ AgentID: agentID, ServiceID: serviceID, Username: "username", diff --git a/api/inventory/v1/agents.proto b/api/inventory/v1/agents.proto index 9cf3b8751b..2f2f117367 100644 --- a/api/inventory/v1/agents.proto +++ b/api/inventory/v1/agents.proto @@ -1328,19 +1328,19 @@ service AgentsService { }; } - // rpc ChangeNodeExporter(ChangeNodeExporterRequest) returns (ChangeNodeExporterResponse) { - // rpc ChangeMySQLdExporter(ChangeMySQLdExporterRequest) returns (ChangeMySQLdExporterResponse) { - // rpc ChangeMongoDBExporter(ChangeMongoDBExporterRequest) returns (ChangeMongoDBExporterResponse) { - // rpc ChangePostgresExporter(ChangePostgresExporterRequest) returns (ChangePostgresExporterResponse) { - // rpc ChangeProxySQLExporter(ChangeProxySQLExporterRequest) returns (ChangeProxySQLExporterResponse) { - // rpc ChangeQANMySQLPerfSchemaAgent(ChangeQANMySQLPerfSchemaAgentRequest) returns (ChangeQANMySQLPerfSchemaAgentResponse) { - // rpc ChangeQANMySQLSlowlogAgent(ChangeQANMySQLSlowlogAgentRequest) returns (ChangeQANMySQLSlowlogAgentResponse) { - // rpc ChangeQANMongoDBProfilerAgent(ChangeQANMongoDBProfilerAgentRequest) returns (ChangeQANMongoDBProfilerAgentResponse) { - // rpc ChangeQANPostgreSQLPgStatementsAgent(ChangeQANPostgreSQLPgStatementsAgentRequest) returns (ChangeQANPostgreSQLPgStatementsAgentResponse) { - // rpc ChangeQANPostgreSQLPgStatMonitorAgent(ChangeQANPostgreSQLPgStatMonitorAgentRequest) returns (ChangeQANPostgreSQLPgStatMonitorAgentResponse) { - // rpc ChangeRDSExporter(ChangeRDSExporterRequest) returns (ChangeRDSExporterResponse) { - // rpc ChangeExternalExporter(ChangeExternalExporterRequest) returns (ChangeExternalExporterResponse) { - // rpc ChangeAzureDatabaseExporter(ChangeAzureDatabaseExporterRequest) returns (ChangeAzureDatabaseExporterResponse) { + // ChangeNodeExporter + // ChangeMySQLdExporter + // ChangeMongoDBExporter + // ChangePostgresExporter + // ChangeProxySQLExporter + // ChangeQANMySQLPerfSchemaAgent + // ChangeQANMySQLSlowlogAgent + // ChangeQANMongoDBProfilerAgent + // ChangeQANPostgreSQLPgStatementsAgent + // ChangeQANPostgreSQLPgStatMonitorAgent + // ChangeRDSExporter + // ChangeExternalExporter + // ChangeAzureDatabaseExporter // RemoveAgent removes an Agent. rpc RemoveAgent(RemoveAgentRequest) returns (RemoveAgentResponse) { From 6174e65f10737a570b03f55bdb7b3fccbb9f5bf2 Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Thu, 18 Jan 2024 20:01:51 +0000 Subject: [PATCH 06/29] PMM-12811 fix linter warning --- managed/services/inventory/grpc/agents_server.go | 1 + 1 file changed, 1 insertion(+) diff --git a/managed/services/inventory/grpc/agents_server.go b/managed/services/inventory/grpc/agents_server.go index 408a0695ab..a813ed0d20 100644 --- a/managed/services/inventory/grpc/agents_server.go +++ b/managed/services/inventory/grpc/agents_server.go @@ -616,6 +616,7 @@ func (s *agentsServer) addExternalExporter(ctx context.Context, params *inventor return res, nil } +//nolint:unparam func (s *agentsServer) changeExternalExporter(ctx context.Context, params *inventoryv1.ChangeExternalExporterParams) (*inventoryv1.ChangeAgentResponse, error) { agent, err := s.s.ChangeExternalExporter(params) if err != nil { From 33a6f6833d77d16b2bdf5dd2789d769757d77e63 Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Thu, 18 Jan 2024 20:19:54 +0000 Subject: [PATCH 07/29] PMM-12811 increase container wait time --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 56c874f910..1d61912253 100644 --- a/Makefile +++ b/Makefile @@ -20,7 +20,7 @@ env-update-image: ## Pull latest dev image env-compose-up: env-update-image COMPOSE_PROFILES=$(PROFILES) \ - docker compose up --detach --renew-anon-volumes --remove-orphans --wait --wait-timeout 100 + docker compose up --detach --renew-anon-volumes --remove-orphans --wait --wait-timeout 150 env-devcontainer: docker exec -it --workdir=/root/go/src/github.com/percona/pmm pmm-server .devcontainer/setup.py From 9659627220757910901b6caafb760997c6b8c09e Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Fri, 19 Jan 2024 05:52:11 +0000 Subject: [PATCH 08/29] PMM-12811 print docker logs on failure --- .github/workflows/managed.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/managed.yml b/.github/workflows/managed.yml index bb320d919c..7c27621adc 100644 --- a/.github/workflows/managed.yml +++ b/.github/workflows/managed.yml @@ -62,7 +62,9 @@ jobs: popd && go mod download -x - name: Initialize CI environment - run: make env-compose-up # the container workdir is /root/go/src/github.com/percona/pmm + run: | + # the container workdir is /root/go/src/github.com/percona/pmm + if ! make env-compose-up; then docker compose logs; exit 1; fi - name: Restore Go build cache if: ${{ fromJSON(env.DEVCONTAINER_CACHE_ENABLED) }} From 443e1919a60738f772a3290f4eead6e65a184c8f Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Fri, 19 Jan 2024 09:49:57 +0000 Subject: [PATCH 09/29] PMM-12811 increase the container wait time again --- .github/workflows/managed.yml | 2 +- Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/managed.yml b/.github/workflows/managed.yml index 7c27621adc..bda9b70bcd 100644 --- a/.github/workflows/managed.yml +++ b/.github/workflows/managed.yml @@ -64,7 +64,7 @@ jobs: - name: Initialize CI environment run: | # the container workdir is /root/go/src/github.com/percona/pmm - if ! make env-compose-up; then docker compose logs; exit 1; fi + if ! make env-compose-up; then docker logs pmm-server; exit 1; fi - name: Restore Go build cache if: ${{ fromJSON(env.DEVCONTAINER_CACHE_ENABLED) }} diff --git a/Makefile b/Makefile index 1d61912253..b9b40c6677 100644 --- a/Makefile +++ b/Makefile @@ -20,7 +20,7 @@ env-update-image: ## Pull latest dev image env-compose-up: env-update-image COMPOSE_PROFILES=$(PROFILES) \ - docker compose up --detach --renew-anon-volumes --remove-orphans --wait --wait-timeout 150 + docker compose up --detach --renew-anon-volumes --remove-orphans --wait --wait-timeout 250 env-devcontainer: docker exec -it --workdir=/root/go/src/github.com/percona/pmm pmm-server .devcontainer/setup.py From 8e1d82391f5b0d43be5db288799123f07cc0b818 Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Fri, 19 Jan 2024 10:27:09 +0000 Subject: [PATCH 10/29] PMM-12811 try exit-code param for container launch --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index b9b40c6677..ee952cddb4 100644 --- a/Makefile +++ b/Makefile @@ -20,7 +20,7 @@ env-update-image: ## Pull latest dev image env-compose-up: env-update-image COMPOSE_PROFILES=$(PROFILES) \ - docker compose up --detach --renew-anon-volumes --remove-orphans --wait --wait-timeout 250 + docker compose up --detach --renew-anon-volumes --remove-orphans --wait --wait-timeout 100 --exit-code-from pmm-server env-devcontainer: docker exec -it --workdir=/root/go/src/github.com/percona/pmm pmm-server .devcontainer/setup.py From 62d898b6d936ae0fc7a75f1cdfe5a34984489a1d Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Fri, 19 Jan 2024 10:34:53 +0000 Subject: [PATCH 11/29] PMM-12811 check the container exit code --- .github/workflows/managed.yml | 6 +++++- Makefile | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/managed.yml b/.github/workflows/managed.yml index bda9b70bcd..bd75ea87d5 100644 --- a/.github/workflows/managed.yml +++ b/.github/workflows/managed.yml @@ -64,7 +64,11 @@ jobs: - name: Initialize CI environment run: | # the container workdir is /root/go/src/github.com/percona/pmm - if ! make env-compose-up; then docker logs pmm-server; exit 1; fi + exit_code=$(make env-compose-up) + if [ "$exit_code" -ne 0 ]; then + echo "Failed to start PMM Server, exit code: $exit_code" + docker logs pmm-server + fi - name: Restore Go build cache if: ${{ fromJSON(env.DEVCONTAINER_CACHE_ENABLED) }} diff --git a/Makefile b/Makefile index ee952cddb4..1d61912253 100644 --- a/Makefile +++ b/Makefile @@ -20,7 +20,7 @@ env-update-image: ## Pull latest dev image env-compose-up: env-update-image COMPOSE_PROFILES=$(PROFILES) \ - docker compose up --detach --renew-anon-volumes --remove-orphans --wait --wait-timeout 100 --exit-code-from pmm-server + docker compose up --detach --renew-anon-volumes --remove-orphans --wait --wait-timeout 150 env-devcontainer: docker exec -it --workdir=/root/go/src/github.com/percona/pmm pmm-server .devcontainer/setup.py From e920eb6eee208e12da4ff88a9af2efdd08e71d76 Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Fri, 19 Jan 2024 10:59:46 +0000 Subject: [PATCH 12/29] PMM-12811 launch pmm w/o waiting --- .github/workflows/managed.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/managed.yml b/.github/workflows/managed.yml index bd75ea87d5..d5998272d4 100644 --- a/.github/workflows/managed.yml +++ b/.github/workflows/managed.yml @@ -63,12 +63,11 @@ jobs: - name: Initialize CI environment run: | - # the container workdir is /root/go/src/github.com/percona/pmm - exit_code=$(make env-compose-up) - if [ "$exit_code" -ne 0 ]; then - echo "Failed to start PMM Server, exit code: $exit_code" - docker logs pmm-server - fi + # make env-compose-up # the container workdir is /root/go/src/github.com/percona/pmm + # --- + docker compose --profile pmm up -d + sleep 100s + docker logs pmm-server - name: Restore Go build cache if: ${{ fromJSON(env.DEVCONTAINER_CACHE_ENABLED) }} From 502f05fd8422cfd6cd1e90af9cfb0bc1389f73aa Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Fri, 19 Jan 2024 12:00:01 +0000 Subject: [PATCH 13/29] PMM-12811 launch the container manually --- .github/workflows/managed.yml | 5 +++-- Makefile | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/managed.yml b/.github/workflows/managed.yml index d5998272d4..4acc3ae498 100644 --- a/.github/workflows/managed.yml +++ b/.github/workflows/managed.yml @@ -61,10 +61,11 @@ jobs: pushd tools && go mod download -x popd && go mod download -x - - name: Initialize CI environment + - name: Launch PMM Server (see docker-compose.yml) run: | + # Note: launching the container with --wait fails for an unknown reason. + # A temporary workaround is to run it manually. To be reverted once the issue is resolved. # make env-compose-up # the container workdir is /root/go/src/github.com/percona/pmm - # --- docker compose --profile pmm up -d sleep 100s docker logs pmm-server diff --git a/Makefile b/Makefile index 1d61912253..56c874f910 100644 --- a/Makefile +++ b/Makefile @@ -20,7 +20,7 @@ env-update-image: ## Pull latest dev image env-compose-up: env-update-image COMPOSE_PROFILES=$(PROFILES) \ - docker compose up --detach --renew-anon-volumes --remove-orphans --wait --wait-timeout 150 + docker compose up --detach --renew-anon-volumes --remove-orphans --wait --wait-timeout 100 env-devcontainer: docker exec -it --workdir=/root/go/src/github.com/percona/pmm pmm-server .devcontainer/setup.py From 2961917118136d7a128ce91c6b7af2ed59f67de9 Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Fri, 19 Jan 2024 13:57:19 +0000 Subject: [PATCH 14/29] PMM-12811 simplify, remove redundant methods --- managed/services/inventory/agents.go | 214 +++++++++++----- managed/services/inventory/agents_test.go | 3 +- .../services/inventory/grpc/agents_server.go | 230 +----------------- 3 files changed, 163 insertions(+), 284 deletions(-) diff --git a/managed/services/inventory/agents.go b/managed/services/inventory/agents.go index faabea45dc..eaa899123c 100644 --- a/managed/services/inventory/agents.go +++ b/managed/services/inventory/agents.go @@ -225,14 +225,21 @@ func (as *AgentsService) AddNodeExporter(ctx context.Context, p *inventoryv1.Add } // ChangeNodeExporter updates node_exporter Agent with given parameters. -func (as *AgentsService) ChangeNodeExporter(ctx context.Context, req *inventoryv1.ChangeNodeExporterParams) (*inventoryv1.NodeExporter, error) { - agent, err := as.changeAgent(req.AgentId, req.Common) +func (as *AgentsService) ChangeNodeExporter(ctx context.Context, p *inventoryv1.ChangeNodeExporterParams) (*inventoryv1.ChangeAgentResponse, error) { + ag, err := as.changeAgent(p.AgentId, p.Common) if err != nil { return nil, err } - res := agent.(*inventoryv1.NodeExporter) //nolint:forcetypeassert - as.state.RequestStateUpdate(ctx, res.PmmAgentId) + agent := ag.(*inventoryv1.NodeExporter) //nolint:forcetypeassert + as.state.RequestStateUpdate(ctx, agent.PmmAgentId) + + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_NodeExporter{ + NodeExporter: agent, + }, + } + return res, nil } @@ -293,14 +300,21 @@ func (as *AgentsService) AddMySQLdExporter(ctx context.Context, p *inventoryv1.A } // ChangeMySQLdExporter updates mysqld_exporter Agent with given parameters. -func (as *AgentsService) ChangeMySQLdExporter(ctx context.Context, req *inventoryv1.ChangeMySQLdExporterParams) (*inventoryv1.MySQLdExporter, error) { - agent, err := as.changeAgent(req.AgentId, req.Common) +func (as *AgentsService) ChangeMySQLdExporter(ctx context.Context, p *inventoryv1.ChangeMySQLdExporterParams) (*inventoryv1.ChangeAgentResponse, error) { + ag, err := as.changeAgent(p.AgentId, p.Common) if err != nil { return nil, err } - res := agent.(*inventoryv1.MySQLdExporter) //nolint:forcetypeassert - as.state.RequestStateUpdate(ctx, res.PmmAgentId) + agent := ag.(*inventoryv1.MySQLdExporter) //nolint:forcetypeassert + as.state.RequestStateUpdate(ctx, agent.PmmAgentId) + + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_MysqldExporter{ + MysqldExporter: agent, + }, + } + return res, nil } @@ -358,14 +372,21 @@ func (as *AgentsService) AddMongoDBExporter(ctx context.Context, p *inventoryv1. } // ChangeMongoDBExporter updates mongo_exporter Agent with given parameters. -func (as *AgentsService) ChangeMongoDBExporter(ctx context.Context, req *inventoryv1.ChangeMongoDBExporterParams) (*inventoryv1.MongoDBExporter, error) { - agent, err := as.changeAgent(req.AgentId, req.Common) +func (as *AgentsService) ChangeMongoDBExporter(ctx context.Context, p *inventoryv1.ChangeMongoDBExporterParams) (*inventoryv1.ChangeAgentResponse, error) { + ag, err := as.changeAgent(p.AgentId, p.Common) if err != nil { return nil, err } - res := agent.(*inventoryv1.MongoDBExporter) //nolint:forcetypeassert - as.state.RequestStateUpdate(ctx, res.PmmAgentId) + agent := ag.(*inventoryv1.MongoDBExporter) //nolint:forcetypeassert + as.state.RequestStateUpdate(ctx, agent.PmmAgentId) + + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_MongodbExporter{ + MongodbExporter: agent, + }, + } + return res, nil } @@ -420,14 +441,20 @@ func (as *AgentsService) AddQANMySQLPerfSchemaAgent(ctx context.Context, p *inve } // ChangeQANMySQLPerfSchemaAgent updates MySQL PerfSchema QAN Agent with given parameters. -func (as *AgentsService) ChangeQANMySQLPerfSchemaAgent(ctx context.Context, req *inventoryv1.ChangeQANMySQLPerfSchemaAgentParams) (*inventoryv1.QANMySQLPerfSchemaAgent, error) { //nolint:lll - agent, err := as.changeAgent(req.AgentId, req.Common) +func (as *AgentsService) ChangeQANMySQLPerfSchemaAgent(ctx context.Context, p *inventoryv1.ChangeQANMySQLPerfSchemaAgentParams) (*inventoryv1.ChangeAgentResponse, error) { //nolint:lll + ag, err := as.changeAgent(p.AgentId, p.Common) if err != nil { return nil, err } - res := agent.(*inventoryv1.QANMySQLPerfSchemaAgent) //nolint:forcetypeassert - as.state.RequestStateUpdate(ctx, res.PmmAgentId) + agent := ag.(*inventoryv1.QANMySQLPerfSchemaAgent) //nolint:forcetypeassert + as.state.RequestStateUpdate(ctx, agent.PmmAgentId) + + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_QanMysqlPerfschemaAgent{ + QanMysqlPerfschemaAgent: agent, + }, + } return res, nil } @@ -487,14 +514,20 @@ func (as *AgentsService) AddQANMySQLSlowlogAgent(ctx context.Context, p *invento } // ChangeQANMySQLSlowlogAgent updates MySQL Slowlog QAN Agent with given parameters. -func (as *AgentsService) ChangeQANMySQLSlowlogAgent(ctx context.Context, req *inventoryv1.ChangeQANMySQLSlowlogAgentParams) (*inventoryv1.QANMySQLSlowlogAgent, error) { - agent, err := as.changeAgent(req.AgentId, req.Common) +func (as *AgentsService) ChangeQANMySQLSlowlogAgent(ctx context.Context, p *inventoryv1.ChangeQANMySQLSlowlogAgentParams) (*inventoryv1.ChangeAgentResponse, error) { + ag, err := as.changeAgent(p.AgentId, p.Common) if err != nil { return nil, err } - res := agent.(*inventoryv1.QANMySQLSlowlogAgent) //nolint:forcetypeassert - as.state.RequestStateUpdate(ctx, res.PmmAgentId) + agent := ag.(*inventoryv1.QANMySQLSlowlogAgent) //nolint:forcetypeassert + as.state.RequestStateUpdate(ctx, agent.PmmAgentId) + + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_QanMysqlSlowlogAgent{ + QanMysqlSlowlogAgent: agent, + }, + } return res, nil } @@ -552,14 +585,20 @@ func (as *AgentsService) AddPostgresExporter(ctx context.Context, p *inventoryv1 } // ChangePostgresExporter updates postgres_exporter Agent with given parameters. -func (as *AgentsService) ChangePostgresExporter(ctx context.Context, req *inventoryv1.ChangePostgresExporterParams) (*inventoryv1.PostgresExporter, error) { - agent, err := as.changeAgent(req.AgentId, req.Common) +func (as *AgentsService) ChangePostgresExporter(ctx context.Context, p *inventoryv1.ChangePostgresExporterParams) (*inventoryv1.ChangeAgentResponse, error) { + ag, err := as.changeAgent(p.AgentId, p.Common) if err != nil { return nil, err } - res := agent.(*inventoryv1.PostgresExporter) //nolint:forcetypeassert - as.state.RequestStateUpdate(ctx, res.PmmAgentId) + agent := ag.(*inventoryv1.PostgresExporter) //nolint:forcetypeassert + as.state.RequestStateUpdate(ctx, agent.PmmAgentId) + + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_PostgresExporter{ + PostgresExporter: agent, + }, + } return res, nil } @@ -616,14 +655,20 @@ func (as *AgentsService) AddQANMongoDBProfilerAgent(ctx context.Context, p *inve // ChangeQANMongoDBProfilerAgent updates MongoDB Profiler QAN Agent with given parameters. // //nolint:lll,dupl -func (as *AgentsService) ChangeQANMongoDBProfilerAgent(ctx context.Context, req *inventoryv1.ChangeQANMongoDBProfilerAgentParams) (*inventoryv1.QANMongoDBProfilerAgent, error) { - agent, err := as.changeAgent(req.AgentId, req.Common) +func (as *AgentsService) ChangeQANMongoDBProfilerAgent(ctx context.Context, p *inventoryv1.ChangeQANMongoDBProfilerAgentParams) (*inventoryv1.ChangeAgentResponse, error) { + ag, err := as.changeAgent(p.AgentId, p.Common) if err != nil { return nil, err } - res := agent.(*inventoryv1.QANMongoDBProfilerAgent) //nolint:forcetypeassert - as.state.RequestStateUpdate(ctx, res.PmmAgentId) + agent := ag.(*inventoryv1.QANMongoDBProfilerAgent) //nolint:forcetypeassert + as.state.RequestStateUpdate(ctx, agent.PmmAgentId) + + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_QanMongodbProfilerAgent{ + QanMongodbProfilerAgent: agent, + }, + } return res, nil } @@ -680,42 +725,48 @@ func (as *AgentsService) AddProxySQLExporter(ctx context.Context, p *inventoryv1 } // ChangeProxySQLExporter updates proxysql_exporter Agent with given parameters. -func (as *AgentsService) ChangeProxySQLExporter(ctx context.Context, req *inventoryv1.ChangeProxySQLExporterParams) (*inventoryv1.ProxySQLExporter, error) { - agent, err := as.changeAgent(req.AgentId, req.Common) +func (as *AgentsService) ChangeProxySQLExporter(ctx context.Context, p *inventoryv1.ChangeProxySQLExporterParams) (*inventoryv1.ChangeAgentResponse, error) { + ag, err := as.changeAgent(p.AgentId, p.Common) if err != nil { return nil, err } - res := agent.(*inventoryv1.ProxySQLExporter) //nolint:forcetypeassert - as.state.RequestStateUpdate(ctx, res.PmmAgentId) + agent := ag.(*inventoryv1.ProxySQLExporter) //nolint:forcetypeassert + as.state.RequestStateUpdate(ctx, agent.PmmAgentId) + + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_ProxysqlExporter{ + ProxysqlExporter: agent, + }, + } return res, nil } // AddQANPostgreSQLPgStatementsAgent adds PostgreSQL Pg stat statements QAN Agent. // //nolint:lll -func (as *AgentsService) AddQANPostgreSQLPgStatementsAgent(ctx context.Context, req *inventoryv1.AddQANPostgreSQLPgStatementsAgentParams) (*inventoryv1.QANPostgreSQLPgStatementsAgent, error) { +func (as *AgentsService) AddQANPostgreSQLPgStatementsAgent(ctx context.Context, p *inventoryv1.AddQANPostgreSQLPgStatementsAgentParams) (*inventoryv1.QANPostgreSQLPgStatementsAgent, error) { var res *inventoryv1.QANPostgreSQLPgStatementsAgent e := as.db.InTransaction(func(tx *reform.TX) error { params := &models.CreateAgentParams{ - PMMAgentID: req.PmmAgentId, - ServiceID: req.ServiceId, - Username: req.Username, - Password: req.Password, - CustomLabels: req.CustomLabels, - MaxQueryLength: req.MaxQueryLength, - CommentsParsingDisabled: req.DisableCommentsParsing, - TLS: req.Tls, - TLSSkipVerify: req.TlsSkipVerify, - PostgreSQLOptions: models.PostgreSQLOptionsFromRequest(req), - LogLevel: services.SpecifyLogLevel(req.LogLevel, inventoryv1.LogLevel_LOG_LEVEL_FATAL), + PMMAgentID: p.PmmAgentId, + ServiceID: p.ServiceId, + Username: p.Username, + Password: p.Password, + CustomLabels: p.CustomLabels, + MaxQueryLength: p.MaxQueryLength, + CommentsParsingDisabled: p.DisableCommentsParsing, + TLS: p.Tls, + TLSSkipVerify: p.TlsSkipVerify, + PostgreSQLOptions: models.PostgreSQLOptionsFromRequest(p), + LogLevel: services.SpecifyLogLevel(p.LogLevel, inventoryv1.LogLevel_LOG_LEVEL_FATAL), } row, err := models.CreateAgent(tx.Querier, models.QANPostgreSQLPgStatementsAgentType, params) if err != nil { return err } - if !req.SkipConnectionCheck { - service, err := models.FindServiceByID(tx.Querier, req.ServiceId) + if !p.SkipConnectionCheck { + service, err := models.FindServiceByID(tx.Querier, p.ServiceId) if err != nil { return err } @@ -736,19 +787,25 @@ func (as *AgentsService) AddQANPostgreSQLPgStatementsAgent(ctx context.Context, return res, e } - as.state.RequestStateUpdate(ctx, req.PmmAgentId) + as.state.RequestStateUpdate(ctx, p.PmmAgentId) return res, e } // ChangeQANPostgreSQLPgStatementsAgent updates PostgreSQL Pg stat statements QAN Agent with given parameters. -func (as *AgentsService) ChangeQANPostgreSQLPgStatementsAgent(ctx context.Context, req *inventoryv1.ChangeQANPostgreSQLPgStatementsAgentParams) (*inventoryv1.QANPostgreSQLPgStatementsAgent, error) { //nolint:lll - agent, err := as.changeAgent(req.AgentId, req.Common) +func (as *AgentsService) ChangeQANPostgreSQLPgStatementsAgent(ctx context.Context, p *inventoryv1.ChangeQANPostgreSQLPgStatementsAgentParams) (*inventoryv1.ChangeAgentResponse, error) { //nolint:lll + ag, err := as.changeAgent(p.AgentId, p.Common) if err != nil { return nil, err } - res := agent.(*inventoryv1.QANPostgreSQLPgStatementsAgent) //nolint:forcetypeassert - as.state.RequestStateUpdate(ctx, res.PmmAgentId) + agent := ag.(*inventoryv1.QANPostgreSQLPgStatementsAgent) //nolint:forcetypeassert + as.state.RequestStateUpdate(ctx, agent.PmmAgentId) + + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_QanPostgresqlPgstatementsAgent{ + QanPostgresqlPgstatementsAgent: agent, + }, + } return res, nil } @@ -803,14 +860,20 @@ func (as *AgentsService) AddQANPostgreSQLPgStatMonitorAgent(ctx context.Context, } // ChangeQANPostgreSQLPgStatMonitorAgent updates PostgreSQL Pg stat monitor QAN Agent with given parameters. -func (as *AgentsService) ChangeQANPostgreSQLPgStatMonitorAgent(ctx context.Context, req *inventoryv1.ChangeQANPostgreSQLPgStatMonitorAgentParams) (*inventoryv1.QANPostgreSQLPgStatMonitorAgent, error) { //nolint:lll - agent, err := as.changeAgent(req.AgentId, req.Common) +func (as *AgentsService) ChangeQANPostgreSQLPgStatMonitorAgent(ctx context.Context, req *inventoryv1.ChangeQANPostgreSQLPgStatMonitorAgentParams) (*inventoryv1.ChangeAgentResponse, error) { //nolint:lll + ag, err := as.changeAgent(req.AgentId, req.Common) if err != nil { return nil, err } - res := agent.(*inventoryv1.QANPostgreSQLPgStatMonitorAgent) //nolint:forcetypeassert - as.state.RequestStateUpdate(ctx, res.PmmAgentId) + agent := ag.(*inventoryv1.QANPostgreSQLPgStatMonitorAgent) //nolint:forcetypeassert + as.state.RequestStateUpdate(ctx, agent.PmmAgentId) + + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_QanPostgresqlPgstatmonitorAgent{ + QanPostgresqlPgstatmonitorAgent: agent, + }, + } return res, nil } @@ -855,14 +918,20 @@ func (as *AgentsService) AddRDSExporter(ctx context.Context, p *inventoryv1.AddR } // ChangeRDSExporter updates rds_exporter Agent with given parameters. -func (as *AgentsService) ChangeRDSExporter(ctx context.Context, req *inventoryv1.ChangeRDSExporterParams) (*inventoryv1.RDSExporter, error) { - agent, err := as.changeAgent(req.AgentId, req.Common) +func (as *AgentsService) ChangeRDSExporter(ctx context.Context, req *inventoryv1.ChangeRDSExporterParams) (*inventoryv1.ChangeAgentResponse, error) { + ag, err := as.changeAgent(req.AgentId, req.Common) if err != nil { return nil, err } - res := agent.(*inventoryv1.RDSExporter) //nolint:forcetypeassert - as.state.RequestStateUpdate(ctx, res.PmmAgentId) + agent := ag.(*inventoryv1.RDSExporter) //nolint:forcetypeassert + as.state.RequestStateUpdate(ctx, agent.PmmAgentId) + + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_RdsExporter{ + RdsExporter: agent, + }, + } return res, nil } @@ -912,8 +981,8 @@ func (as *AgentsService) AddExternalExporter(ctx context.Context, p *inventoryv1 } // ChangeExternalExporter updates external-exporter Agent with given parameters. -func (as *AgentsService) ChangeExternalExporter(req *inventoryv1.ChangeExternalExporterParams) (*inventoryv1.ExternalExporter, error) { - agent, err := as.changeAgent(req.AgentId, req.Common) +func (as *AgentsService) ChangeExternalExporter(req *inventoryv1.ChangeExternalExporterParams) (*inventoryv1.ChangeAgentResponse, error) { + ag, err := as.changeAgent(req.AgentId, req.Common) if err != nil { return nil, err } @@ -921,7 +990,14 @@ func (as *AgentsService) ChangeExternalExporter(req *inventoryv1.ChangeExternalE // It's required to regenerate victoriametrics config file. as.vmdb.RequestConfigurationUpdate() - res := agent.(*inventoryv1.ExternalExporter) //nolint:forceTypeAssert + agent := ag.(*inventoryv1.ExternalExporter) //nolint:forceTypeAssert + + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_ExternalExporter{ + ExternalExporter: agent, + }, + } + return res, nil } @@ -962,14 +1038,20 @@ func (as *AgentsService) AddAzureDatabaseExporter(ctx context.Context, p *invent func (as *AgentsService) ChangeAzureDatabaseExporter( ctx context.Context, req *inventoryv1.ChangeAzureDatabaseExporterParams, -) (*inventoryv1.AzureDatabaseExporter, error) { - agent, err := as.changeAgent(req.AgentId, req.Common) +) (*inventoryv1.ChangeAgentResponse, error) { + ag, err := as.changeAgent(req.AgentId, req.Common) if err != nil { return nil, err } - res := agent.(*inventoryv1.AzureDatabaseExporter) //nolint:forcetypeassert - as.state.RequestStateUpdate(ctx, res.PmmAgentId) + agent := ag.(*inventoryv1.AzureDatabaseExporter) //nolint:forcetypeassert + as.state.RequestStateUpdate(ctx, agent.PmmAgentId) + + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_AzureDatabaseExporter{ + AzureDatabaseExporter: agent, + }, + } return res, nil } diff --git a/managed/services/inventory/agents_test.go b/managed/services/inventory/agents_test.go index fcc8dcdbcc..341e32cf78 100644 --- a/managed/services/inventory/agents_test.go +++ b/managed/services/inventory/agents_test.go @@ -78,13 +78,14 @@ func TestAgents(t *testing.T) { } assert.Equal(t, expectedNodeExporter, actualNodeExporter) - actualNodeExporter, err = as.ChangeNodeExporter(ctx, &inventoryv1.ChangeNodeExporterParams{ + resp, err := as.ChangeNodeExporter(ctx, &inventoryv1.ChangeNodeExporterParams{ AgentId: "/agent_id/00000000-0000-4000-8000-000000000006", Common: &inventoryv1.ChangeCommonAgentParams{ Disable: true, }, }) require.NoError(t, err) + actualNodeExporter = resp.GetNodeExporter() expectedNodeExporter = &inventoryv1.NodeExporter{ AgentId: "/agent_id/00000000-0000-4000-8000-000000000006", PmmAgentId: "/agent_id/00000000-0000-4000-8000-000000000005", diff --git a/managed/services/inventory/grpc/agents_server.go b/managed/services/inventory/grpc/agents_server.go index a813ed0d20..98b14acb64 100644 --- a/managed/services/inventory/grpc/agents_server.go +++ b/managed/services/inventory/grpc/agents_server.go @@ -228,31 +228,31 @@ func (s *agentsServer) AddAgent(ctx context.Context, req *inventoryv1.AddAgentRe func (s *agentsServer) ChangeAgent(ctx context.Context, req *inventoryv1.ChangeAgentRequest) (*inventoryv1.ChangeAgentResponse, error) { switch req.Agent.(type) { case *inventoryv1.ChangeAgentRequest_NodeExporter: - return s.changeNodeExporter(ctx, req.GetNodeExporter()) + return s.s.ChangeNodeExporter(ctx, req.GetNodeExporter()) case *inventoryv1.ChangeAgentRequest_MysqldExporter: - return s.changeMySQLdExporter(ctx, req.GetMysqldExporter()) + return s.s.ChangeMySQLdExporter(ctx, req.GetMysqldExporter()) case *inventoryv1.ChangeAgentRequest_MongodbExporter: - return s.changeMongoDBExporter(ctx, req.GetMongodbExporter()) + return s.s.ChangeMongoDBExporter(ctx, req.GetMongodbExporter()) case *inventoryv1.ChangeAgentRequest_PostgresExporter: - return s.changePostgresExporter(ctx, req.GetPostgresExporter()) + return s.s.ChangePostgresExporter(ctx, req.GetPostgresExporter()) case *inventoryv1.ChangeAgentRequest_ProxysqlExporter: - return s.changeProxySQLExporter(ctx, req.GetProxysqlExporter()) + return s.s.ChangeProxySQLExporter(ctx, req.GetProxysqlExporter()) case *inventoryv1.ChangeAgentRequest_RdsExporter: - return s.changeRDSExporter(ctx, req.GetRdsExporter()) + return s.s.ChangeRDSExporter(ctx, req.GetRdsExporter()) case *inventoryv1.ChangeAgentRequest_ExternalExporter: - return s.changeExternalExporter(ctx, req.GetExternalExporter()) + return s.s.ChangeExternalExporter(req.GetExternalExporter()) case *inventoryv1.ChangeAgentRequest_AzureDatabaseExporter: - return s.changeAzureDatabaseExporter(ctx, req.GetAzureDatabaseExporter()) + return s.s.ChangeAzureDatabaseExporter(ctx, req.GetAzureDatabaseExporter()) case *inventoryv1.ChangeAgentRequest_QanMysqlPerfschemaAgent: - return s.changeQANMySQLPerfSchemaAgent(ctx, req.GetQanMysqlPerfschemaAgent()) + return s.s.ChangeQANMySQLPerfSchemaAgent(ctx, req.GetQanMysqlPerfschemaAgent()) case *inventoryv1.ChangeAgentRequest_QanMysqlSlowlogAgent: - return s.changeQANMySQLSlowlogAgent(ctx, req.GetQanMysqlSlowlogAgent()) + return s.s.ChangeQANMySQLSlowlogAgent(ctx, req.GetQanMysqlSlowlogAgent()) case *inventoryv1.ChangeAgentRequest_QanMongodbProfilerAgent: - return s.changeQANMongoDBProfilerAgent(ctx, req.GetQanMongodbProfilerAgent()) + return s.s.ChangeQANMongoDBProfilerAgent(ctx, req.GetQanMongodbProfilerAgent()) case *inventoryv1.ChangeAgentRequest_QanPostgresqlPgstatementsAgent: - return s.changeQANPostgreSQLPgStatementsAgent(ctx, req.GetQanPostgresqlPgstatementsAgent()) + return s.s.ChangeQANPostgreSQLPgStatementsAgent(ctx, req.GetQanPostgresqlPgstatementsAgent()) case *inventoryv1.ChangeAgentRequest_QanPostgresqlPgstatmonitorAgent: - return s.changeQANPostgreSQLPgStatMonitorAgent(ctx, req.GetQanPostgresqlPgstatmonitorAgent()) + return s.s.ChangeQANPostgreSQLPgStatMonitorAgent(ctx, req.GetQanPostgresqlPgstatmonitorAgent()) default: return nil, fmt.Errorf("invalid request %v", req.Agent) } @@ -273,21 +273,6 @@ func (s *agentsServer) addNodeExporter(ctx context.Context, params *inventoryv1. return res, nil } -// ChangeNodeExporter changes disabled flag and custom labels of node_exporter Agent. -func (s *agentsServer) changeNodeExporter(ctx context.Context, params *inventoryv1.ChangeNodeExporterParams) (*inventoryv1.ChangeAgentResponse, error) { - agent, err := s.s.ChangeNodeExporter(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.ChangeAgentResponse{ - Agent: &inventoryv1.ChangeAgentResponse_NodeExporter{ - NodeExporter: agent, - }, - } - return res, nil -} - // addMySQLdExporter adds mysqld_exporter Agent. func (s *agentsServer) addMySQLdExporter(ctx context.Context, params *inventoryv1.AddMySQLdExporterParams) (*inventoryv1.AddAgentResponse, error) { agent, tableCount, err := s.s.AddMySQLdExporter(ctx, params) @@ -304,21 +289,6 @@ func (s *agentsServer) addMySQLdExporter(ctx context.Context, params *inventoryv return res, nil } -// ChangeMySQLdExporter changes disabled flag and custom labels of mysqld_exporter Agent. -func (s *agentsServer) changeMySQLdExporter(ctx context.Context, params *inventoryv1.ChangeMySQLdExporterParams) (*inventoryv1.ChangeAgentResponse, error) { - agent, err := s.s.ChangeMySQLdExporter(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.ChangeAgentResponse{ - Agent: &inventoryv1.ChangeAgentResponse_MysqldExporter{ - MysqldExporter: agent, - }, - } - return res, nil -} - // addMongoDBExporter adds mongodb_exporter Agent. func (s *agentsServer) addMongoDBExporter(ctx context.Context, params *inventoryv1.AddMongoDBExporterParams) (*inventoryv1.AddAgentResponse, error) { agent, err := s.s.AddMongoDBExporter(ctx, params) @@ -334,21 +304,6 @@ func (s *agentsServer) addMongoDBExporter(ctx context.Context, params *inventory return res, nil } -// ChangeMongoDBExporter changes disabled flag and custom labels of mongo_exporter Agent. -func (s *agentsServer) changeMongoDBExporter(ctx context.Context, params *inventoryv1.ChangeMongoDBExporterParams) (*inventoryv1.ChangeAgentResponse, error) { - agent, err := s.s.ChangeMongoDBExporter(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.ChangeAgentResponse{ - Agent: &inventoryv1.ChangeAgentResponse_MongodbExporter{ - MongodbExporter: agent, - }, - } - return res, nil -} - // AddQANMySQLPerfSchemaAgent adds MySQL PerfSchema QAN Agent. // //nolint:lll @@ -366,23 +321,6 @@ func (s *agentsServer) addQANMySQLPerfSchemaAgent(ctx context.Context, params *i return res, nil } -// ChangeQANMySQLPerfSchemaAgent changes disabled flag and custom labels of MySQL PerfSchema QAN Agent. -// -//nolint:lll -func (s *agentsServer) changeQANMySQLPerfSchemaAgent(ctx context.Context, params *inventoryv1.ChangeQANMySQLPerfSchemaAgentParams) (*inventoryv1.ChangeAgentResponse, error) { - agent, err := s.s.ChangeQANMySQLPerfSchemaAgent(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.ChangeAgentResponse{ - Agent: &inventoryv1.ChangeAgentResponse_QanMysqlPerfschemaAgent{ - QanMysqlPerfschemaAgent: agent, - }, - } - return res, nil -} - // AddQANMySQLSlowlogAgent adds MySQL Slowlog QAN Agent. // //nolint:lll @@ -400,23 +338,6 @@ func (s *agentsServer) addQANMySQLSlowlogAgent(ctx context.Context, params *inve return res, nil } -// ChangeQANMySQLSlowlogAgent changes disabled flag and custom labels of MySQL Slowlog QAN Agent. -// -//nolint:lll -func (s *agentsServer) changeQANMySQLSlowlogAgent(ctx context.Context, params *inventoryv1.ChangeQANMySQLSlowlogAgentParams) (*inventoryv1.ChangeAgentResponse, error) { - agent, err := s.s.ChangeQANMySQLSlowlogAgent(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.ChangeAgentResponse{ - Agent: &inventoryv1.ChangeAgentResponse_QanMysqlSlowlogAgent{ - QanMysqlSlowlogAgent: agent, - }, - } - return res, nil -} - // addPostgresExporter adds postgres_exporter Agent. func (s *agentsServer) addPostgresExporter(ctx context.Context, params *inventoryv1.AddPostgresExporterParams) (*inventoryv1.AddAgentResponse, error) { agent, err := s.s.AddPostgresExporter(ctx, params) @@ -432,21 +353,6 @@ func (s *agentsServer) addPostgresExporter(ctx context.Context, params *inventor return res, nil } -// ChangePostgresExporter changes disabled flag and custom labels of postgres_exporter Agent. -func (s *agentsServer) changePostgresExporter(ctx context.Context, params *inventoryv1.ChangePostgresExporterParams) (*inventoryv1.ChangeAgentResponse, error) { - agent, err := s.s.ChangePostgresExporter(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.ChangeAgentResponse{ - Agent: &inventoryv1.ChangeAgentResponse_PostgresExporter{ - PostgresExporter: agent, - }, - } - return res, nil -} - // AddQANMongoDBProfilerAgent adds MongoDB Profiler QAN Agent. // //nolint:lll @@ -464,23 +370,6 @@ func (s *agentsServer) addQANMongoDBProfilerAgent(ctx context.Context, params *i return res, nil } -// ChangeQANMongoDBProfilerAgent changes disabled flag and custom labels of MongoDB Profiler QAN Agent. -// -//nolint:lll -func (s *agentsServer) changeQANMongoDBProfilerAgent(ctx context.Context, params *inventoryv1.ChangeQANMongoDBProfilerAgentParams) (*inventoryv1.ChangeAgentResponse, error) { - agent, err := s.s.ChangeQANMongoDBProfilerAgent(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.ChangeAgentResponse{ - Agent: &inventoryv1.ChangeAgentResponse_QanMongodbProfilerAgent{ - QanMongodbProfilerAgent: agent, - }, - } - return res, nil -} - // addProxySQLExporter adds proxysql_exporter Agent. func (s *agentsServer) addProxySQLExporter(ctx context.Context, params *inventoryv1.AddProxySQLExporterParams) (*inventoryv1.AddAgentResponse, error) { agent, err := s.s.AddProxySQLExporter(ctx, params) @@ -496,21 +385,6 @@ func (s *agentsServer) addProxySQLExporter(ctx context.Context, params *inventor return res, nil } -// ChangeProxySQLExporter changes disabled flag and custom labels of proxysql_exporter Agent. -func (s *agentsServer) changeProxySQLExporter(ctx context.Context, params *inventoryv1.ChangeProxySQLExporterParams) (*inventoryv1.ChangeAgentResponse, error) { - agent, err := s.s.ChangeProxySQLExporter(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.ChangeAgentResponse{ - Agent: &inventoryv1.ChangeAgentResponse_ProxysqlExporter{ - ProxysqlExporter: agent, - }, - } - return res, nil -} - // AddQANPostgreSQLPgStatementsAgent adds PostgreSQL Pg stat statements QAN Agent. func (s *agentsServer) addQANPostgreSQLPgStatementsAgent(ctx context.Context, params *inventoryv1.AddQANPostgreSQLPgStatementsAgentParams) (*inventoryv1.AddAgentResponse, error) { //nolint:lll agent, err := s.s.AddQANPostgreSQLPgStatementsAgent(ctx, params) @@ -526,21 +400,6 @@ func (s *agentsServer) addQANPostgreSQLPgStatementsAgent(ctx context.Context, pa return res, nil } -// ChangeQANPostgreSQLPgStatementsAgent changes disabled flag and custom labels of PostgreSQL Pg stat statements QAN Agent. -func (s *agentsServer) changeQANPostgreSQLPgStatementsAgent(ctx context.Context, params *inventoryv1.ChangeQANPostgreSQLPgStatementsAgentParams) (*inventoryv1.ChangeAgentResponse, error) { //nolint:lll - agent, err := s.s.ChangeQANPostgreSQLPgStatementsAgent(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.ChangeAgentResponse{ - Agent: &inventoryv1.ChangeAgentResponse_QanPostgresqlPgstatementsAgent{ - QanPostgresqlPgstatementsAgent: agent, - }, - } - return res, nil -} - // AddQANPostgreSQLPgStatMonitorAgent adds PostgreSQL Pg stat monitor QAN Agent. func (s *agentsServer) addQANPostgreSQLPgStatMonitorAgent(ctx context.Context, params *inventoryv1.AddQANPostgreSQLPgStatMonitorAgentParams) (*inventoryv1.AddAgentResponse, error) { //nolint:lll agent, err := s.s.AddQANPostgreSQLPgStatMonitorAgent(ctx, params) @@ -556,21 +415,6 @@ func (s *agentsServer) addQANPostgreSQLPgStatMonitorAgent(ctx context.Context, p return res, nil } -// ChangeQANPostgreSQLPgStatMonitorAgent changes disabled flag and custom labels of PostgreSQL Pg stat monitor QAN Agent. -func (s *agentsServer) changeQANPostgreSQLPgStatMonitorAgent(ctx context.Context, params *inventoryv1.ChangeQANPostgreSQLPgStatMonitorAgentParams) (*inventoryv1.ChangeAgentResponse, error) { //nolint:lll - agent, err := s.s.ChangeQANPostgreSQLPgStatMonitorAgent(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.ChangeAgentResponse{ - Agent: &inventoryv1.ChangeAgentResponse_QanPostgresqlPgstatmonitorAgent{ - QanPostgresqlPgstatmonitorAgent: agent, - }, - } - return res, nil -} - // addRDSExporter adds rds_exporter Agent. func (s *agentsServer) addRDSExporter(ctx context.Context, params *inventoryv1.AddRDSExporterParams) (*inventoryv1.AddAgentResponse, error) { agent, err := s.s.AddRDSExporter(ctx, params) @@ -586,21 +430,6 @@ func (s *agentsServer) addRDSExporter(ctx context.Context, params *inventoryv1.A return res, nil } -// ChangeRDSExporter changes disabled flag and custom labels of rds_exporter Agent. -func (s *agentsServer) changeRDSExporter(ctx context.Context, params *inventoryv1.ChangeRDSExporterParams) (*inventoryv1.ChangeAgentResponse, error) { - agent, err := s.s.ChangeRDSExporter(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.ChangeAgentResponse{ - Agent: &inventoryv1.ChangeAgentResponse_RdsExporter{ - RdsExporter: agent, - }, - } - return res, nil -} - // addExternalExporter adds external_exporter Agent. func (s *agentsServer) addExternalExporter(ctx context.Context, params *inventoryv1.AddExternalExporterParams) (*inventoryv1.AddAgentResponse, error) { agent, err := s.s.AddExternalExporter(ctx, params) @@ -616,21 +445,6 @@ func (s *agentsServer) addExternalExporter(ctx context.Context, params *inventor return res, nil } -//nolint:unparam -func (s *agentsServer) changeExternalExporter(ctx context.Context, params *inventoryv1.ChangeExternalExporterParams) (*inventoryv1.ChangeAgentResponse, error) { - agent, err := s.s.ChangeExternalExporter(params) - if err != nil { - return nil, err - } - - res := &inventoryv1.ChangeAgentResponse{ - Agent: &inventoryv1.ChangeAgentResponse_ExternalExporter{ - ExternalExporter: agent, - }, - } - return res, nil -} - // addAzureDatabaseExporter adds azure_database_exporter Agent. func (s *agentsServer) addAzureDatabaseExporter( ctx context.Context, @@ -649,24 +463,6 @@ func (s *agentsServer) addAzureDatabaseExporter( return res, nil } -// ChangeAzureDatabaseExporter changes disabled flag and custom labels of azure_database_exporter Agent. -func (s *agentsServer) changeAzureDatabaseExporter( - ctx context.Context, - params *inventoryv1.ChangeAzureDatabaseExporterParams, -) (*inventoryv1.ChangeAgentResponse, error) { - agent, err := s.s.ChangeAzureDatabaseExporter(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.ChangeAgentResponse{ - Agent: &inventoryv1.ChangeAgentResponse_AzureDatabaseExporter{ - AzureDatabaseExporter: agent, - }, - } - return res, nil -} - // RemoveAgent removes Agent. func (s *agentsServer) RemoveAgent(ctx context.Context, req *inventoryv1.RemoveAgentRequest) (*inventoryv1.RemoveAgentResponse, error) { if err := s.s.Remove(ctx, req.AgentId, req.Force); err != nil { From cf6f8ee30c68538c309f03709d8aac9abd3f6496 Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Fri, 19 Jan 2024 14:46:20 +0000 Subject: [PATCH 15/29] PMM-12811 rename exporter to agent in proto --- api/inventory/v1/agents.pb.go | 2147 ++++++++--------- api/inventory/v1/agents.pb.validate.go | 60 +- api/inventory/v1/agents.proto | 18 +- descriptor.bin | Bin 682458 -> 680926 bytes .../services/inventory/grpc/agents_server.go | 32 +- 5 files changed, 1121 insertions(+), 1136 deletions(-) diff --git a/api/inventory/v1/agents.pb.go b/api/inventory/v1/agents.pb.go index 6b661eada6..94e98ca7bb 100644 --- a/api/inventory/v1/agents.pb.go +++ b/api/inventory/v1/agents.pb.go @@ -3286,7 +3286,7 @@ type AddAgentRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Types that are assignable to Exporter: + // Types that are assignable to Agent: // // *AddAgentRequest_PmmAgent // *AddAgentRequest_NodeExporter @@ -3302,7 +3302,7 @@ type AddAgentRequest struct { // *AddAgentRequest_QanMongodbProfilerAgent // *AddAgentRequest_QanPostgresqlPgstatementsAgent // *AddAgentRequest_QanPostgresqlPgstatmonitorAgent - Exporter isAddAgentRequest_Exporter `protobuf_oneof:"exporter"` + Agent isAddAgentRequest_Agent `protobuf_oneof:"agent"` } func (x *AddAgentRequest) Reset() { @@ -3337,113 +3337,113 @@ func (*AddAgentRequest) Descriptor() ([]byte, []int) { return file_inventory_v1_agents_proto_rawDescGZIP(), []int{22} } -func (m *AddAgentRequest) GetExporter() isAddAgentRequest_Exporter { +func (m *AddAgentRequest) GetAgent() isAddAgentRequest_Agent { if m != nil { - return m.Exporter + return m.Agent } return nil } func (x *AddAgentRequest) GetPmmAgent() *AddPMMAgentParams { - if x, ok := x.GetExporter().(*AddAgentRequest_PmmAgent); ok { + if x, ok := x.GetAgent().(*AddAgentRequest_PmmAgent); ok { return x.PmmAgent } return nil } func (x *AddAgentRequest) GetNodeExporter() *AddNodeExporterParams { - if x, ok := x.GetExporter().(*AddAgentRequest_NodeExporter); ok { + if x, ok := x.GetAgent().(*AddAgentRequest_NodeExporter); ok { return x.NodeExporter } return nil } func (x *AddAgentRequest) GetMysqldExporter() *AddMySQLdExporterParams { - if x, ok := x.GetExporter().(*AddAgentRequest_MysqldExporter); ok { + if x, ok := x.GetAgent().(*AddAgentRequest_MysqldExporter); ok { return x.MysqldExporter } return nil } func (x *AddAgentRequest) GetMongodbExporter() *AddMongoDBExporterParams { - if x, ok := x.GetExporter().(*AddAgentRequest_MongodbExporter); ok { + if x, ok := x.GetAgent().(*AddAgentRequest_MongodbExporter); ok { return x.MongodbExporter } return nil } func (x *AddAgentRequest) GetPostgresExporter() *AddPostgresExporterParams { - if x, ok := x.GetExporter().(*AddAgentRequest_PostgresExporter); ok { + if x, ok := x.GetAgent().(*AddAgentRequest_PostgresExporter); ok { return x.PostgresExporter } return nil } func (x *AddAgentRequest) GetProxysqlExporter() *AddProxySQLExporterParams { - if x, ok := x.GetExporter().(*AddAgentRequest_ProxysqlExporter); ok { + if x, ok := x.GetAgent().(*AddAgentRequest_ProxysqlExporter); ok { return x.ProxysqlExporter } return nil } func (x *AddAgentRequest) GetExternalExporter() *AddExternalExporterParams { - if x, ok := x.GetExporter().(*AddAgentRequest_ExternalExporter); ok { + if x, ok := x.GetAgent().(*AddAgentRequest_ExternalExporter); ok { return x.ExternalExporter } return nil } func (x *AddAgentRequest) GetRdsExporter() *AddRDSExporterParams { - if x, ok := x.GetExporter().(*AddAgentRequest_RdsExporter); ok { + if x, ok := x.GetAgent().(*AddAgentRequest_RdsExporter); ok { return x.RdsExporter } return nil } func (x *AddAgentRequest) GetAzureDatabaseExporter() *AddAzureDatabaseExporterParams { - if x, ok := x.GetExporter().(*AddAgentRequest_AzureDatabaseExporter); ok { + if x, ok := x.GetAgent().(*AddAgentRequest_AzureDatabaseExporter); ok { return x.AzureDatabaseExporter } return nil } func (x *AddAgentRequest) GetQanMysqlPerfschemaAgent() *AddQANMySQLPerfSchemaAgentParams { - if x, ok := x.GetExporter().(*AddAgentRequest_QanMysqlPerfschemaAgent); ok { + if x, ok := x.GetAgent().(*AddAgentRequest_QanMysqlPerfschemaAgent); ok { return x.QanMysqlPerfschemaAgent } return nil } func (x *AddAgentRequest) GetQanMysqlSlowlogAgent() *AddQANMySQLSlowlogAgentParams { - if x, ok := x.GetExporter().(*AddAgentRequest_QanMysqlSlowlogAgent); ok { + if x, ok := x.GetAgent().(*AddAgentRequest_QanMysqlSlowlogAgent); ok { return x.QanMysqlSlowlogAgent } return nil } func (x *AddAgentRequest) GetQanMongodbProfilerAgent() *AddQANMongoDBProfilerAgentParams { - if x, ok := x.GetExporter().(*AddAgentRequest_QanMongodbProfilerAgent); ok { + if x, ok := x.GetAgent().(*AddAgentRequest_QanMongodbProfilerAgent); ok { return x.QanMongodbProfilerAgent } return nil } func (x *AddAgentRequest) GetQanPostgresqlPgstatementsAgent() *AddQANPostgreSQLPgStatementsAgentParams { - if x, ok := x.GetExporter().(*AddAgentRequest_QanPostgresqlPgstatementsAgent); ok { + if x, ok := x.GetAgent().(*AddAgentRequest_QanPostgresqlPgstatementsAgent); ok { return x.QanPostgresqlPgstatementsAgent } return nil } func (x *AddAgentRequest) GetQanPostgresqlPgstatmonitorAgent() *AddQANPostgreSQLPgStatMonitorAgentParams { - if x, ok := x.GetExporter().(*AddAgentRequest_QanPostgresqlPgstatmonitorAgent); ok { + if x, ok := x.GetAgent().(*AddAgentRequest_QanPostgresqlPgstatmonitorAgent); ok { return x.QanPostgresqlPgstatmonitorAgent } return nil } -type isAddAgentRequest_Exporter interface { - isAddAgentRequest_Exporter() +type isAddAgentRequest_Agent interface { + isAddAgentRequest_Agent() } type AddAgentRequest_PmmAgent struct { @@ -3502,40 +3502,40 @@ type AddAgentRequest_QanPostgresqlPgstatmonitorAgent struct { QanPostgresqlPgstatmonitorAgent *AddQANPostgreSQLPgStatMonitorAgentParams `protobuf:"bytes,14,opt,name=qan_postgresql_pgstatmonitor_agent,json=qanPostgresqlPgstatmonitorAgent,proto3,oneof"` } -func (*AddAgentRequest_PmmAgent) isAddAgentRequest_Exporter() {} +func (*AddAgentRequest_PmmAgent) isAddAgentRequest_Agent() {} -func (*AddAgentRequest_NodeExporter) isAddAgentRequest_Exporter() {} +func (*AddAgentRequest_NodeExporter) isAddAgentRequest_Agent() {} -func (*AddAgentRequest_MysqldExporter) isAddAgentRequest_Exporter() {} +func (*AddAgentRequest_MysqldExporter) isAddAgentRequest_Agent() {} -func (*AddAgentRequest_MongodbExporter) isAddAgentRequest_Exporter() {} +func (*AddAgentRequest_MongodbExporter) isAddAgentRequest_Agent() {} -func (*AddAgentRequest_PostgresExporter) isAddAgentRequest_Exporter() {} +func (*AddAgentRequest_PostgresExporter) isAddAgentRequest_Agent() {} -func (*AddAgentRequest_ProxysqlExporter) isAddAgentRequest_Exporter() {} +func (*AddAgentRequest_ProxysqlExporter) isAddAgentRequest_Agent() {} -func (*AddAgentRequest_ExternalExporter) isAddAgentRequest_Exporter() {} +func (*AddAgentRequest_ExternalExporter) isAddAgentRequest_Agent() {} -func (*AddAgentRequest_RdsExporter) isAddAgentRequest_Exporter() {} +func (*AddAgentRequest_RdsExporter) isAddAgentRequest_Agent() {} -func (*AddAgentRequest_AzureDatabaseExporter) isAddAgentRequest_Exporter() {} +func (*AddAgentRequest_AzureDatabaseExporter) isAddAgentRequest_Agent() {} -func (*AddAgentRequest_QanMysqlPerfschemaAgent) isAddAgentRequest_Exporter() {} +func (*AddAgentRequest_QanMysqlPerfschemaAgent) isAddAgentRequest_Agent() {} -func (*AddAgentRequest_QanMysqlSlowlogAgent) isAddAgentRequest_Exporter() {} +func (*AddAgentRequest_QanMysqlSlowlogAgent) isAddAgentRequest_Agent() {} -func (*AddAgentRequest_QanMongodbProfilerAgent) isAddAgentRequest_Exporter() {} +func (*AddAgentRequest_QanMongodbProfilerAgent) isAddAgentRequest_Agent() {} -func (*AddAgentRequest_QanPostgresqlPgstatementsAgent) isAddAgentRequest_Exporter() {} +func (*AddAgentRequest_QanPostgresqlPgstatementsAgent) isAddAgentRequest_Agent() {} -func (*AddAgentRequest_QanPostgresqlPgstatmonitorAgent) isAddAgentRequest_Exporter() {} +func (*AddAgentRequest_QanPostgresqlPgstatmonitorAgent) isAddAgentRequest_Agent() {} type AddAgentResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Types that are assignable to Exporter: + // Types that are assignable to Agent: // // *AddAgentResponse_PmmAgent // *AddAgentResponse_NodeExporter @@ -3551,7 +3551,7 @@ type AddAgentResponse struct { // *AddAgentResponse_QanMongodbProfilerAgent // *AddAgentResponse_QanPostgresqlPgstatementsAgent // *AddAgentResponse_QanPostgresqlPgstatmonitorAgent - Exporter isAddAgentResponse_Exporter `protobuf_oneof:"exporter"` + Agent isAddAgentResponse_Agent `protobuf_oneof:"agent"` // Actual table count for SQL databases at the moment of adding. TableCount int32 `protobuf:"varint,20,opt,name=table_count,json=tableCount,proto3" json:"table_count,omitempty"` } @@ -3588,106 +3588,106 @@ func (*AddAgentResponse) Descriptor() ([]byte, []int) { return file_inventory_v1_agents_proto_rawDescGZIP(), []int{23} } -func (m *AddAgentResponse) GetExporter() isAddAgentResponse_Exporter { +func (m *AddAgentResponse) GetAgent() isAddAgentResponse_Agent { if m != nil { - return m.Exporter + return m.Agent } return nil } func (x *AddAgentResponse) GetPmmAgent() *PMMAgent { - if x, ok := x.GetExporter().(*AddAgentResponse_PmmAgent); ok { + if x, ok := x.GetAgent().(*AddAgentResponse_PmmAgent); ok { return x.PmmAgent } return nil } func (x *AddAgentResponse) GetNodeExporter() *NodeExporter { - if x, ok := x.GetExporter().(*AddAgentResponse_NodeExporter); ok { + if x, ok := x.GetAgent().(*AddAgentResponse_NodeExporter); ok { return x.NodeExporter } return nil } func (x *AddAgentResponse) GetMysqldExporter() *MySQLdExporter { - if x, ok := x.GetExporter().(*AddAgentResponse_MysqldExporter); ok { + if x, ok := x.GetAgent().(*AddAgentResponse_MysqldExporter); ok { return x.MysqldExporter } return nil } func (x *AddAgentResponse) GetMongodbExporter() *MongoDBExporter { - if x, ok := x.GetExporter().(*AddAgentResponse_MongodbExporter); ok { + if x, ok := x.GetAgent().(*AddAgentResponse_MongodbExporter); ok { return x.MongodbExporter } return nil } func (x *AddAgentResponse) GetPostgresExporter() *PostgresExporter { - if x, ok := x.GetExporter().(*AddAgentResponse_PostgresExporter); ok { + if x, ok := x.GetAgent().(*AddAgentResponse_PostgresExporter); ok { return x.PostgresExporter } return nil } func (x *AddAgentResponse) GetProxysqlExporter() *ProxySQLExporter { - if x, ok := x.GetExporter().(*AddAgentResponse_ProxysqlExporter); ok { + if x, ok := x.GetAgent().(*AddAgentResponse_ProxysqlExporter); ok { return x.ProxysqlExporter } return nil } func (x *AddAgentResponse) GetExternalExporter() *ExternalExporter { - if x, ok := x.GetExporter().(*AddAgentResponse_ExternalExporter); ok { + if x, ok := x.GetAgent().(*AddAgentResponse_ExternalExporter); ok { return x.ExternalExporter } return nil } func (x *AddAgentResponse) GetRdsExporter() *RDSExporter { - if x, ok := x.GetExporter().(*AddAgentResponse_RdsExporter); ok { + if x, ok := x.GetAgent().(*AddAgentResponse_RdsExporter); ok { return x.RdsExporter } return nil } func (x *AddAgentResponse) GetAzureDatabaseExporter() *AzureDatabaseExporter { - if x, ok := x.GetExporter().(*AddAgentResponse_AzureDatabaseExporter); ok { + if x, ok := x.GetAgent().(*AddAgentResponse_AzureDatabaseExporter); ok { return x.AzureDatabaseExporter } return nil } func (x *AddAgentResponse) GetQanMysqlPerfschemaAgent() *QANMySQLPerfSchemaAgent { - if x, ok := x.GetExporter().(*AddAgentResponse_QanMysqlPerfschemaAgent); ok { + if x, ok := x.GetAgent().(*AddAgentResponse_QanMysqlPerfschemaAgent); ok { return x.QanMysqlPerfschemaAgent } return nil } func (x *AddAgentResponse) GetQanMysqlSlowlogAgent() *QANMySQLSlowlogAgent { - if x, ok := x.GetExporter().(*AddAgentResponse_QanMysqlSlowlogAgent); ok { + if x, ok := x.GetAgent().(*AddAgentResponse_QanMysqlSlowlogAgent); ok { return x.QanMysqlSlowlogAgent } return nil } func (x *AddAgentResponse) GetQanMongodbProfilerAgent() *QANMongoDBProfilerAgent { - if x, ok := x.GetExporter().(*AddAgentResponse_QanMongodbProfilerAgent); ok { + if x, ok := x.GetAgent().(*AddAgentResponse_QanMongodbProfilerAgent); ok { return x.QanMongodbProfilerAgent } return nil } func (x *AddAgentResponse) GetQanPostgresqlPgstatementsAgent() *QANPostgreSQLPgStatementsAgent { - if x, ok := x.GetExporter().(*AddAgentResponse_QanPostgresqlPgstatementsAgent); ok { + if x, ok := x.GetAgent().(*AddAgentResponse_QanPostgresqlPgstatementsAgent); ok { return x.QanPostgresqlPgstatementsAgent } return nil } func (x *AddAgentResponse) GetQanPostgresqlPgstatmonitorAgent() *QANPostgreSQLPgStatMonitorAgent { - if x, ok := x.GetExporter().(*AddAgentResponse_QanPostgresqlPgstatmonitorAgent); ok { + if x, ok := x.GetAgent().(*AddAgentResponse_QanPostgresqlPgstatmonitorAgent); ok { return x.QanPostgresqlPgstatmonitorAgent } return nil @@ -3700,8 +3700,8 @@ func (x *AddAgentResponse) GetTableCount() int32 { return 0 } -type isAddAgentResponse_Exporter interface { - isAddAgentResponse_Exporter() +type isAddAgentResponse_Agent interface { + isAddAgentResponse_Agent() } type AddAgentResponse_PmmAgent struct { @@ -3760,33 +3760,33 @@ type AddAgentResponse_QanPostgresqlPgstatmonitorAgent struct { QanPostgresqlPgstatmonitorAgent *QANPostgreSQLPgStatMonitorAgent `protobuf:"bytes,14,opt,name=qan_postgresql_pgstatmonitor_agent,json=qanPostgresqlPgstatmonitorAgent,proto3,oneof"` } -func (*AddAgentResponse_PmmAgent) isAddAgentResponse_Exporter() {} +func (*AddAgentResponse_PmmAgent) isAddAgentResponse_Agent() {} -func (*AddAgentResponse_NodeExporter) isAddAgentResponse_Exporter() {} +func (*AddAgentResponse_NodeExporter) isAddAgentResponse_Agent() {} -func (*AddAgentResponse_MysqldExporter) isAddAgentResponse_Exporter() {} +func (*AddAgentResponse_MysqldExporter) isAddAgentResponse_Agent() {} -func (*AddAgentResponse_MongodbExporter) isAddAgentResponse_Exporter() {} +func (*AddAgentResponse_MongodbExporter) isAddAgentResponse_Agent() {} -func (*AddAgentResponse_PostgresExporter) isAddAgentResponse_Exporter() {} +func (*AddAgentResponse_PostgresExporter) isAddAgentResponse_Agent() {} -func (*AddAgentResponse_ProxysqlExporter) isAddAgentResponse_Exporter() {} +func (*AddAgentResponse_ProxysqlExporter) isAddAgentResponse_Agent() {} -func (*AddAgentResponse_ExternalExporter) isAddAgentResponse_Exporter() {} +func (*AddAgentResponse_ExternalExporter) isAddAgentResponse_Agent() {} -func (*AddAgentResponse_RdsExporter) isAddAgentResponse_Exporter() {} +func (*AddAgentResponse_RdsExporter) isAddAgentResponse_Agent() {} -func (*AddAgentResponse_AzureDatabaseExporter) isAddAgentResponse_Exporter() {} +func (*AddAgentResponse_AzureDatabaseExporter) isAddAgentResponse_Agent() {} -func (*AddAgentResponse_QanMysqlPerfschemaAgent) isAddAgentResponse_Exporter() {} +func (*AddAgentResponse_QanMysqlPerfschemaAgent) isAddAgentResponse_Agent() {} -func (*AddAgentResponse_QanMysqlSlowlogAgent) isAddAgentResponse_Exporter() {} +func (*AddAgentResponse_QanMysqlSlowlogAgent) isAddAgentResponse_Agent() {} -func (*AddAgentResponse_QanMongodbProfilerAgent) isAddAgentResponse_Exporter() {} +func (*AddAgentResponse_QanMongodbProfilerAgent) isAddAgentResponse_Agent() {} -func (*AddAgentResponse_QanPostgresqlPgstatementsAgent) isAddAgentResponse_Exporter() {} +func (*AddAgentResponse_QanPostgresqlPgstatementsAgent) isAddAgentResponse_Agent() {} -func (*AddAgentResponse_QanPostgresqlPgstatmonitorAgent) isAddAgentResponse_Exporter() {} +func (*AddAgentResponse_QanPostgresqlPgstatmonitorAgent) isAddAgentResponse_Agent() {} type ChangeAgentRequest struct { state protoimpl.MessageState @@ -8093,7 +8093,7 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x6f, 0x67, 0x4c, 0x69, 0x6e, 0x65, - 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xda, 0x0a, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x41, 0x67, + 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xd7, 0x0a, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, @@ -8178,1071 +8178,1070 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, - 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x22, 0xfc, 0x09, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, - 0x41, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, - 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, - 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x6d, - 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, - 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, - 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x22, 0xf9, 0x09, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x48, 0x00, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0d, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, + 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, + 0x47, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, + 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, + 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, + 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, + 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, + 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, + 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x12, 0x5d, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, + 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, + 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, + 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, + 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x14, 0x71, + 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, + 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, + 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, + 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, 0x21, 0x71, 0x61, 0x6e, + 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, + 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, + 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, + 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, + 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, + 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, + 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xc1, 0x0a, 0x0a, + 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x12, 0x53, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, + 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0f, + 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, + 0x59, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, + 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x11, 0x70, 0x72, + 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, + 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x12, 0x5d, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, - 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, - 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, - 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, - 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x71, 0x61, 0x6e, - 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, - 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, - 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, - 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, - 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, - 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, 0x21, - 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, - 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, - 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, - 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, - 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, - 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, - 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x22, 0xc1, 0x0a, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, - 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x6d, - 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, - 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x6f, 0x6e, - 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, - 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x12, 0x59, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, + 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x12, 0x4a, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x44, 0x53, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, + 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x69, 0x0a, 0x17, + 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, + 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x70, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, + 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, - 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x11, 0x65, - 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x12, 0x69, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x70, 0x0a, - 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, - 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, - 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, - 0x67, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, - 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, - 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, - 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x70, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, - 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, - 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, - 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x85, 0x01, 0x0a, 0x21, 0x71, - 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, - 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, - 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x12, 0x88, 0x01, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, - 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, - 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, - 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, - 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, - 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xc5, 0x09, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, - 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x12, 0x47, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, - 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x6d, 0x6f, - 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, - 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, - 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, - 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x12, 0x5d, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, - 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, - 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, - 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, - 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, - 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, - 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, - 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, - 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, - 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, 0x21, 0x71, - 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, + 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x67, 0x0a, 0x17, 0x71, 0x61, 0x6e, + 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, + 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x12, 0x70, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, + 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, + 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, + 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x12, 0x85, 0x01, 0x0a, 0x21, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, + 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x38, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, - 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, - 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, - 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, - 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, - 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xdc, - 0x01, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x73, 0x4f, 0x6e, 0x4e, 0x6f, - 0x64, 0x65, 0x49, 0x64, 0x12, 0x56, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x4d, - 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, + 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, + 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x88, 0x01, 0x0a, + 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, + 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, + 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, + 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, + 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, + 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x22, 0xc5, 0x09, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4e, + 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x6e, + 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0f, 0x6d, + 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, + 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, + 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, + 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, + 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, + 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, + 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, + 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, + 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x3e, 0x0a, + 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, + 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x5d, 0x0a, + 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, + 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x64, 0x0a, 0x1a, + 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, + 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, + 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, + 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, + 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, + 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, + 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, 0x21, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, + 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, + 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, + 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, + 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, + 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, + 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, + 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1f, 0x71, + 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, + 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1f, + 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xdc, 0x01, 0x0a, 0x11, 0x41, 0x64, 0x64, + 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, + 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x73, 0x4f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x56, + 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x8f, 0x03, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x4e, + 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x5a, 0x0a, 0x0d, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, + 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, + 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x7d, 0x0a, 0x18, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x9d, 0x06, 0x0a, 0x17, 0x41, 0x64, 0x64, + 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, + 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, + 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, + 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x3f, 0x0a, + 0x1c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x5c, + 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, + 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x3f, 0x0a, 0x11, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0c, 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, + 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, + 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, + 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x7f, 0x0a, 0x1a, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xe9, 0x07, 0x0a, 0x18, 0x41, 0x64, + 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, + 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, + 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, + 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x74, + 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x48, 0x0a, 0x21, 0x74, + 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6b, + 0x65, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x5d, 0x0a, 0x0d, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0b, 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, 0x12, + 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x73, 0x12, 0x39, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x12, 0x37, 0x0a, 0x17, + 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, + 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x2b, 0x0a, 0x11, + 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x61, 0x74, 0x73, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x12, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, + 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 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, 0x80, 0x01, 0x0a, 0x1b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x92, 0x06, 0x0a, 0x19, 0x41, 0x64, 0x64, + 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, + 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, + 0x72, 0x69, 0x66, 0x79, 0x12, 0x5e, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x6f, + 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 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, 0x08, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, + 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, + 0x73, 0x5f, 0x63, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, + 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, + 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, + 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x33, 0x0a, 0x09, + 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x12, 0x61, 0x75, 0x74, 0x6f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, + 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x8f, 0x03, - 0x0a, 0x15, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x5a, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, - 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, - 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, - 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, - 0x7d, 0x0a, 0x18, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x9d, - 0x06, 0x0a, 0x17, 0x41, 0x64, 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, - 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, - 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, - 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, - 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, - 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, - 0x63, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, - 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, - 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, - 0x4b, 0x65, 0x79, 0x12, 0x3f, 0x0a, 0x1c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x73, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x73, 0x74, 0x61, 0x74, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x12, 0x5c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x79, - 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x81, 0x01, + 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, + 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x22, 0x95, 0x05, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, + 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, + 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, + 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, + 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x5e, 0x0a, + 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x08, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, + 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x81, 0x01, 0x0a, 0x1c, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, + 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xe6, 0x05, + 0x0a, 0x20, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, + 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, + 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, + 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, + 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, + 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, + 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, + 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x65, 0x0a, 0x0d, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0c, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, + 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0c, 0x20, 0x01, 0x28, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x0d, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, - 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, - 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, - 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, - 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x7f, - 0x0a, 0x1a, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, - 0xe9, 0x07, 0x0a, 0x18, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, - 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, + 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, + 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, + 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x88, 0x01, 0x0a, 0x23, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, + 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x22, 0x93, 0x06, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, + 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, + 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, - 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, - 0x79, 0x12, 0x48, 0x0a, 0x21, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x74, 0x6c, - 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x46, - 0x69, 0x6c, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x74, - 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, - 0x43, 0x61, 0x12, 0x5d, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, - 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 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, 0x0b, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, - 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0d, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, - 0x69, 0x73, 0x6d, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, - 0x73, 0x6d, 0x12, 0x37, 0x0a, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x73, - 0x74, 0x61, 0x74, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x33, 0x0a, 0x09, - 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, - 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x80, 0x01, 0x0a, 0x1b, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x92, - 0x06, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, - 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, - 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, - 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, - 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, - 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, - 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x5e, 0x0a, 0x0d, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x08, 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, 0x12, 0x21, - 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, - 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, - 0x65, 0x72, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, - 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, - 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, 0x5f, - 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x61, 0x75, 0x74, 0x6f, 0x44, 0x69, 0x73, 0x63, 0x6f, - 0x76, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, - 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 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, 0x81, 0x01, 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, - 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, - 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x95, 0x05, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x50, - 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, - 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, - 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, - 0x69, 0x66, 0x79, 0x12, 0x5e, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, - 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, + 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, + 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, + 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x10, + 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x15, + 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x66, 0x69, 0x6c, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6d, 0x61, 0x78, + 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, + 0x62, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, + 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x08, 0x20, 0x01, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x0e, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, - 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, - 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, - 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, - 0x81, 0x01, 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, - 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x22, 0xe6, 0x05, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, - 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, + 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, + 0x69, 0x6e, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, + 0x67, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, + 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x85, 0x01, 0x0a, 0x20, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, + 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, - 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, - 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, - 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, - 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, - 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, - 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, - 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, - 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, - 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, - 0x73, 0x12, 0x65, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, - 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0d, 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, 0x12, 0x38, 0x0a, 0x18, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, - 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x88, 0x01, 0x0a, - 0x23, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, - 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, + 0xa7, 0x06, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, + 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, + 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, + 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, + 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, + 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x74, 0x6c, 0x73, + 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x48, 0x0a, 0x21, 0x74, 0x6c, 0x73, + 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, + 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, + 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x12, 0x65, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, + 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0c, 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, 0x12, + 0x39, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x12, 0x37, 0x0a, 0x17, 0x61, 0x75, + 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, 0x75, 0x74, + 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, + 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x88, 0x01, 0x0a, 0x23, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xbe, 0x05, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, + 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, + 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x6c, + 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, + 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x08, 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, + 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, + 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, + 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, + 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, + 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 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, 0x8f, 0x01, 0x0a, 0x2a, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, - 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x93, 0x06, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x51, - 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, - 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, - 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, - 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, - 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, - 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, - 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, - 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, - 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, - 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, - 0x65, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, + 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xf6, 0x05, 0x0a, 0x28, 0x41, 0x64, 0x64, 0x51, + 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, + 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, + 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, - 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, - 0x65, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, - 0x67, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x46, 0x69, 0x6c, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x62, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, - 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0e, 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, 0x12, 0x38, 0x0a, - 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x85, 0x01, - 0x0a, 0x20, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, - 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xa7, 0x06, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, - 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, - 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, - 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, - 0x2e, 0x0a, 0x13, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x6c, - 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, - 0x48, 0x0a, 0x21, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x74, 0x6c, 0x73, 0x43, - 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6c, - 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, - 0x5f, 0x63, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, - 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x65, 0x0a, 0x0d, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x40, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x12, 0x6d, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, + 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, + 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0c, 0x20, 0x01, 0x28, 0x08, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x0a, 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, 0x12, 0x39, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, - 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, - 0x12, 0x37, 0x0a, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x16, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, - 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, - 0x88, 0x01, 0x0a, 0x23, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, - 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xbe, 0x05, 0x0a, 0x27, 0x41, - 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, - 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, - 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, - 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, - 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, - 0x72, 0x69, 0x66, 0x79, 0x12, 0x6c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, - 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 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, 0x08, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, - 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, - 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, - 0x73, 0x5f, 0x63, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, - 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, - 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, - 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, + 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, + 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, + 0x72, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, + 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, + 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x90, 0x01, 0x0a, 0x2b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, + 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, + 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x22, 0xc5, 0x04, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x52, 0x44, 0x53, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, + 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x77, 0x73, + 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x61, 0x77, 0x73, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, + 0x24, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x77, 0x73, 0x53, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x59, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x52, + 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 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, 0x06, 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, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x62, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x73, 0x69, + 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x8f, 0x01, 0x0a, 0x2a, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, - 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xf6, 0x05, - 0x0a, 0x28, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, - 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, - 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, - 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, - 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, - 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, - 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, - 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, - 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x6d, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x48, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, - 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0a, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, - 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, - 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, - 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, - 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x90, 0x01, 0x0a, 0x2b, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, - 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7c, 0x0a, 0x17, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xc5, 0x04, 0x0a, 0x14, 0x41, 0x64, - 0x64, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, + 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xcf, 0x03, 0x0a, 0x19, 0x41, 0x64, + 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x73, 0x5f, + 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x73, 0x4f, + 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2c, 0x0a, 0x0b, 0x6c, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0b, + 0xfa, 0x42, 0x08, 0x2a, 0x06, 0x10, 0x80, 0x80, 0x04, 0x20, 0x00, 0x52, 0x0a, 0x6c, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x5e, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, + 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, + 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 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, 0x81, 0x01, 0x0a, 0x1c, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, + 0xcf, 0x05, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, - 0x24, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x77, 0x73, 0x41, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, - 0x77, 0x73, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x59, 0x0a, 0x0d, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, - 0x06, 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, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x42, 0x61, 0x73, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x38, - 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, - 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x26, 0x0a, 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x7a, 0x75, 0x72, 0x65, + 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65, + 0x5f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x32, 0x0a, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, + 0x61, 0x7a, 0x75, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x12, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x48, 0x0a, 0x1c, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x19, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x63, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 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, 0x0a, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, + 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x6c, - 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, + 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x7c, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x44, 0x53, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, - 0xcf, 0x03, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, - 0x0f, 0x72, 0x75, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x0c, 0x72, 0x75, 0x6e, 0x73, 0x4f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, - 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, - 0x2c, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x2a, 0x06, 0x10, 0x80, 0x80, 0x04, 0x20, - 0x00, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x5e, 0x0a, - 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, - 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 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, 0x81, 0x01, 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xcf, 0x05, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, - 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x6e, - 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, - 0x13, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x26, 0x0a, - 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x54, 0x65, 0x6e, - 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x73, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x48, 0x0a, 0x1c, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x19, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x63, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, - 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0a, 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, 0x12, 0x21, - 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, - 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x86, 0x01, 0x0a, 0x21, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, - 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, - 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, - 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0xc7, 0x04, 0x0a, 0x09, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x50, 0x4d, 0x4d, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x41, - 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4d, 0x5f, 0x41, 0x47, 0x45, - 0x4e, 0x54, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, - 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x44, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, - 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x4d, 0x4f, 0x4e, 0x47, 0x4f, 0x44, 0x42, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, - 0x52, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, - 0x54, 0x45, 0x52, 0x10, 0x06, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x45, 0x58, 0x50, - 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x07, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x47, 0x45, 0x4e, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, - 0x50, 0x45, 0x52, 0x46, 0x53, 0x43, 0x48, 0x45, 0x4d, 0x41, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, - 0x10, 0x08, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x53, 0x4c, 0x4f, 0x57, 0x4c, - 0x4f, 0x47, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x09, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x47, - 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x4f, 0x4e, - 0x47, 0x4f, 0x44, 0x42, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x52, 0x5f, 0x41, 0x47, - 0x45, 0x4e, 0x54, 0x10, 0x0a, 0x12, 0x30, 0x0a, 0x2c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, - 0x51, 0x4c, 0x5f, 0x50, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x53, 0x5f, - 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x0b, 0x12, 0x31, 0x0a, 0x2d, 0x41, 0x47, 0x45, 0x4e, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, - 0x45, 0x53, 0x51, 0x4c, 0x5f, 0x50, 0x47, 0x53, 0x54, 0x41, 0x54, 0x4d, 0x4f, 0x4e, 0x49, 0x54, - 0x4f, 0x52, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x0c, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, - 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, - 0x4c, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0d, 0x12, 0x1b, 0x0a, 0x17, - 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x44, 0x53, 0x5f, 0x45, - 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0e, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x47, 0x45, - 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x5a, 0x55, 0x52, 0x45, 0x5f, 0x44, 0x41, - 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, - 0x0f, 0x32, 0xaf, 0x08, 0x0a, 0x0d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x12, 0xa4, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x73, 0x12, 0x1f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x53, 0x92, 0x41, 0x2c, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, - 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x1d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, - 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, - 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x9b, 0x01, 0x0a, 0x08, 0x47, - 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0x92, 0x41, 0x2a, 0x12, 0x09, 0x47, 0x65, 0x74, - 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x1a, 0x1d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, - 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x62, - 0x79, 0x20, 0x49, 0x44, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, - 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x47, 0x65, 0x74, 0x12, 0xac, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x55, 0x92, 0x41, 0x2b, 0x12, 0x0e, 0x47, 0x65, 0x74, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x20, 0x6c, 0x6f, 0x67, 0x73, 0x1a, 0x19, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x6f, 0x67, 0x73, 0x20, 0x62, 0x79, 0x20, 0x49, 0x44, 0x2e, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, - 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0xa9, 0x01, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x5e, 0x92, 0x41, 0x38, 0x12, 0x19, 0x41, 0x64, 0x64, 0x20, 0x61, 0x6e, - 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x1a, 0x1b, 0x41, 0x64, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x69, + 0x01, 0x22, 0x86, 0x01, 0x0a, 0x21, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x7a, 0x75, 0x72, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2a, 0xc7, 0x04, 0x0a, 0x09, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1a, 0x0a, 0x16, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x41, + 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4d, 0x4d, 0x5f, 0x41, 0x47, + 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4d, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x1c, + 0x0a, 0x18, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x44, + 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, + 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, + 0x44, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, + 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x4f, 0x4e, 0x47, 0x4f, + 0x44, 0x42, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x05, 0x12, 0x20, 0x0a, + 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x54, + 0x47, 0x52, 0x45, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x06, 0x12, + 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x52, + 0x4f, 0x58, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, + 0x07, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x50, 0x45, 0x52, 0x46, 0x53, 0x43, + 0x48, 0x45, 0x4d, 0x41, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x08, 0x12, 0x26, 0x0a, 0x22, + 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, + 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x53, 0x4c, 0x4f, 0x57, 0x4c, 0x4f, 0x47, 0x5f, 0x41, 0x47, 0x45, + 0x4e, 0x54, 0x10, 0x09, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x4f, 0x4e, 0x47, 0x4f, 0x44, 0x42, 0x5f, 0x50, + 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x52, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x0a, 0x12, + 0x30, 0x0a, 0x2c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, + 0x4e, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x51, 0x4c, 0x5f, 0x50, 0x47, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, + 0x0b, 0x12, 0x31, 0x0a, 0x2d, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x51, 0x41, 0x4e, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x51, 0x4c, 0x5f, 0x50, + 0x47, 0x53, 0x54, 0x41, 0x54, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x47, 0x45, + 0x4e, 0x54, 0x10, 0x0c, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45, 0x58, 0x50, 0x4f, + 0x52, 0x54, 0x45, 0x52, 0x10, 0x0d, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x44, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, + 0x52, 0x10, 0x0e, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x41, 0x5a, 0x55, 0x52, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, + 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0f, 0x32, 0xaf, 0x08, 0x0a, 0x0d, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xa4, 0x01, + 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x53, 0x92, 0x41, 0x2c, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x73, 0x1a, 0x1d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, + 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, - 0x41, 0x64, 0x64, 0x12, 0xbb, 0x01, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x92, 0x41, 0x3e, 0x12, 0x1c, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x69, - 0x6e, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x1e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, - 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x12, 0xbf, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x12, 0x20, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6b, 0x92, 0x41, 0x42, 0x12, 0x1e, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x20, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x42, 0xa5, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x61, 0x2f, 0x70, 0x6d, 0x6d, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x76, 0x31, - 0x3b, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x49, - 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x56, - 0x31, 0xca, 0x02, 0x0c, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5c, 0x56, 0x31, - 0xe2, 0x02, 0x18, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5c, 0x56, 0x31, 0x5c, - 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x49, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x9b, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x12, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x50, 0x92, 0x41, 0x2a, 0x12, 0x09, 0x47, 0x65, 0x74, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x1a, 0x1d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x79, 0x20, 0x49, 0x44, 0x2e, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x47, + 0x65, 0x74, 0x12, 0xac, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, + 0x6f, 0x67, 0x73, 0x12, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, + 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x55, 0x92, 0x41, 0x2b, 0x12, + 0x0e, 0x47, 0x65, 0x74, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x6f, 0x67, 0x73, 0x1a, + 0x19, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x6c, + 0x6f, 0x67, 0x73, 0x20, 0x62, 0x79, 0x20, 0x49, 0x44, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, + 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, + 0x73, 0x12, 0xa9, 0x01, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1d, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, + 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5e, 0x92, + 0x41, 0x38, 0x12, 0x19, 0x41, 0x64, 0x64, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x20, 0x74, 0x6f, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x1b, 0x41, + 0x64, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, + 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, + 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x41, 0x64, 0x64, 0x12, 0xbb, 0x01, + 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x67, 0x92, 0x41, 0x3e, 0x12, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, + 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x49, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, + 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, + 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0xbf, 0x01, 0x0a, 0x0b, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x6b, 0x92, 0x41, 0x42, 0x12, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6e, + 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x73, 0x20, 0x61, + 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, + 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0xa5, 0x01, + 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x42, 0x0b, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x65, + 0x72, 0x63, 0x6f, 0x6e, 0x61, 0x2f, 0x70, 0x6d, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x3b, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x49, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x49, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0c, 0x49, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x18, 0x49, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/inventory/v1/agents.pb.validate.go b/api/inventory/v1/agents.pb.validate.go index a4102d26bd..b9d4a9e0d2 100644 --- a/api/inventory/v1/agents.pb.validate.go +++ b/api/inventory/v1/agents.pb.validate.go @@ -3842,11 +3842,11 @@ func (m *AddAgentRequest) validate(all bool) error { var errors []error - switch v := m.Exporter.(type) { + switch v := m.Agent.(type) { case *AddAgentRequest_PmmAgent: if v == nil { err := AddAgentRequestValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -3887,7 +3887,7 @@ func (m *AddAgentRequest) validate(all bool) error { case *AddAgentRequest_NodeExporter: if v == nil { err := AddAgentRequestValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -3928,7 +3928,7 @@ func (m *AddAgentRequest) validate(all bool) error { case *AddAgentRequest_MysqldExporter: if v == nil { err := AddAgentRequestValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -3969,7 +3969,7 @@ func (m *AddAgentRequest) validate(all bool) error { case *AddAgentRequest_MongodbExporter: if v == nil { err := AddAgentRequestValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -4010,7 +4010,7 @@ func (m *AddAgentRequest) validate(all bool) error { case *AddAgentRequest_PostgresExporter: if v == nil { err := AddAgentRequestValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -4051,7 +4051,7 @@ func (m *AddAgentRequest) validate(all bool) error { case *AddAgentRequest_ProxysqlExporter: if v == nil { err := AddAgentRequestValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -4092,7 +4092,7 @@ func (m *AddAgentRequest) validate(all bool) error { case *AddAgentRequest_ExternalExporter: if v == nil { err := AddAgentRequestValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -4133,7 +4133,7 @@ func (m *AddAgentRequest) validate(all bool) error { case *AddAgentRequest_RdsExporter: if v == nil { err := AddAgentRequestValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -4174,7 +4174,7 @@ func (m *AddAgentRequest) validate(all bool) error { case *AddAgentRequest_AzureDatabaseExporter: if v == nil { err := AddAgentRequestValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -4215,7 +4215,7 @@ func (m *AddAgentRequest) validate(all bool) error { case *AddAgentRequest_QanMysqlPerfschemaAgent: if v == nil { err := AddAgentRequestValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -4256,7 +4256,7 @@ func (m *AddAgentRequest) validate(all bool) error { case *AddAgentRequest_QanMysqlSlowlogAgent: if v == nil { err := AddAgentRequestValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -4297,7 +4297,7 @@ func (m *AddAgentRequest) validate(all bool) error { case *AddAgentRequest_QanMongodbProfilerAgent: if v == nil { err := AddAgentRequestValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -4338,7 +4338,7 @@ func (m *AddAgentRequest) validate(all bool) error { case *AddAgentRequest_QanPostgresqlPgstatementsAgent: if v == nil { err := AddAgentRequestValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -4379,7 +4379,7 @@ func (m *AddAgentRequest) validate(all bool) error { case *AddAgentRequest_QanPostgresqlPgstatmonitorAgent: if v == nil { err := AddAgentRequestValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -4523,11 +4523,11 @@ func (m *AddAgentResponse) validate(all bool) error { // no validation rules for TableCount - switch v := m.Exporter.(type) { + switch v := m.Agent.(type) { case *AddAgentResponse_PmmAgent: if v == nil { err := AddAgentResponseValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -4568,7 +4568,7 @@ func (m *AddAgentResponse) validate(all bool) error { case *AddAgentResponse_NodeExporter: if v == nil { err := AddAgentResponseValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -4609,7 +4609,7 @@ func (m *AddAgentResponse) validate(all bool) error { case *AddAgentResponse_MysqldExporter: if v == nil { err := AddAgentResponseValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -4650,7 +4650,7 @@ func (m *AddAgentResponse) validate(all bool) error { case *AddAgentResponse_MongodbExporter: if v == nil { err := AddAgentResponseValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -4691,7 +4691,7 @@ func (m *AddAgentResponse) validate(all bool) error { case *AddAgentResponse_PostgresExporter: if v == nil { err := AddAgentResponseValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -4732,7 +4732,7 @@ func (m *AddAgentResponse) validate(all bool) error { case *AddAgentResponse_ProxysqlExporter: if v == nil { err := AddAgentResponseValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -4773,7 +4773,7 @@ func (m *AddAgentResponse) validate(all bool) error { case *AddAgentResponse_ExternalExporter: if v == nil { err := AddAgentResponseValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -4814,7 +4814,7 @@ func (m *AddAgentResponse) validate(all bool) error { case *AddAgentResponse_RdsExporter: if v == nil { err := AddAgentResponseValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -4855,7 +4855,7 @@ func (m *AddAgentResponse) validate(all bool) error { case *AddAgentResponse_AzureDatabaseExporter: if v == nil { err := AddAgentResponseValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -4896,7 +4896,7 @@ func (m *AddAgentResponse) validate(all bool) error { case *AddAgentResponse_QanMysqlPerfschemaAgent: if v == nil { err := AddAgentResponseValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -4937,7 +4937,7 @@ func (m *AddAgentResponse) validate(all bool) error { case *AddAgentResponse_QanMysqlSlowlogAgent: if v == nil { err := AddAgentResponseValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -4978,7 +4978,7 @@ func (m *AddAgentResponse) validate(all bool) error { case *AddAgentResponse_QanMongodbProfilerAgent: if v == nil { err := AddAgentResponseValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -5019,7 +5019,7 @@ func (m *AddAgentResponse) validate(all bool) error { case *AddAgentResponse_QanPostgresqlPgstatementsAgent: if v == nil { err := AddAgentResponseValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { @@ -5060,7 +5060,7 @@ func (m *AddAgentResponse) validate(all bool) error { case *AddAgentResponse_QanPostgresqlPgstatmonitorAgent: if v == nil { err := AddAgentResponseValidationError{ - field: "Exporter", + field: "Agent", reason: "oneof value cannot be a typed-nil", } if !all { diff --git a/api/inventory/v1/agents.proto b/api/inventory/v1/agents.proto index 2f2f117367..8840bd315c 100644 --- a/api/inventory/v1/agents.proto +++ b/api/inventory/v1/agents.proto @@ -672,7 +672,7 @@ message GetAgentLogsResponse { // TODO Change VMAgent? message AddAgentRequest { - oneof exporter { + oneof agent { AddPMMAgentParams pmm_agent = 1; AddNodeExporterParams node_exporter = 2; AddMySQLdExporterParams mysqld_exporter = 3; @@ -691,7 +691,7 @@ message AddAgentRequest { } message AddAgentResponse { - oneof exporter { + oneof agent { PMMAgent pmm_agent = 1; NodeExporter node_exporter = 2; MySQLdExporter mysqld_exporter = 3; @@ -1328,20 +1328,6 @@ service AgentsService { }; } - // ChangeNodeExporter - // ChangeMySQLdExporter - // ChangeMongoDBExporter - // ChangePostgresExporter - // ChangeProxySQLExporter - // ChangeQANMySQLPerfSchemaAgent - // ChangeQANMySQLSlowlogAgent - // ChangeQANMongoDBProfilerAgent - // ChangeQANPostgreSQLPgStatementsAgent - // ChangeQANPostgreSQLPgStatMonitorAgent - // ChangeRDSExporter - // ChangeExternalExporter - // ChangeAzureDatabaseExporter - // RemoveAgent removes an Agent. rpc RemoveAgent(RemoveAgentRequest) returns (RemoveAgentResponse) { option (google.api.http) = { diff --git a/descriptor.bin b/descriptor.bin index 4ad19774cabe2f78407a352940bbb8d51d291c72..8ae21bd0b681482556fe65df4fe961e13ea9861f 100644 GIT binary patch delta 21981 zcmZ9Ud6ZQ}p68Q$<8Ci;;U!CELXw$40tsfaB%-))Wp!z}YxT@jcTZJKd#svTtm>-M zJ#*%CKS9M^1d&ToG>wRYh=_`SfZ{@d3!tbhqKGWYA_8hDA`0{QMZ}L=-G6WnpBwT0 zMclaY`$oil@8#yVTR&LUdebeP76fD7H?KV&mGb-kEv;WP{rzBBN2iU8{{H0f%BYl- zqMzPy{crxz=kTH>-NMgJzO-MMEm~Y3zIaykxy48p!JvpcK9Vl=pfze6V9vq3I-7O?I-^bV9Sq)O0P)aGIcO-ZMdM z{r%G7h`isD@Rw~|&=v#K@0qN|s{_>UneIJGr`zsATk>T~!ZRvcOi=CXgh;lS&fOKI zlBugNb!HU0l;aOg)j`wA-hCHperQrDGNy~%{5BKxu{wxH1(pSX!50<2nA}WPK4TSs>@nxE7!QE)+LYu+AdGcb&B!XVS+)vuFM}$ zBLzg-VXAwSDl&z-1TtDXOl^zSCe#iyu+@ixcAB8w7lwoaHB?Bbou;}@ONq48)VC^H z?I~?O64H-MFw_?sQ?3YWC_|`^OtqW2T>?X>k4(?OTANTGnf4(*6chPl6Abr-5s^WS z6cOoTQ>{ZI^ZR4dt4%8t>0>i=7?CRS{HVOE2o)0w)KIZ4Jsv71)UF~_OsHKhltfC( zX1570@a-f-0yR=Xq}`@k=Sf1O-4)aKY^_bG-R8XW{r#n7v&RHy`NEV?poU5bwZ~L9 zYAK=in5NSdiL}R@ai))ymCargT<8lkB7r_qCCCW1x9C+ysJ%s}GD7V&=Uw1KmCEK5 z6I|s(l?VlDr%FWn#8m5}FA?bzGw4#SOr%fD4OLC3eWrSl zmJ({88GM-{q4t?8ulAujm(8ap=W}8tMc>?KjoVAG!o55Nf~a(bu6mJ8a;noDQKpZtSE`dQ?xuw6C z@`#Ta>OdnYM3Dn0W{xl})HBw8Fj)_LetdQr! zw7EGlr}{$iBTye#T0whrROgJI%4lznI!1UchIC70oVC?h0|K>KF`!$DX2pPRiAFgu zs|hfmTO)IcZ&n-!)CVGtb8FQ1qS6T!(u&GxZ;ihH1K%u`Gd40m^jfhPP-jUs+Obi; zi?tN#*ysnBdMOrjTVzi0h2klojp)*+;zTWLY0cSQBWyi`o%j%dWlQY~3Kv}-vY7gbG+It?$0 zYc&1p#v6X`c5Ypfjf>Kr);hXMijI%GbzBEB6Jh5aAeF~Q-aA0r7$14>0GR~iBkvu8 z&O63Oc*h84Nmt3W`|~*~!jYBxi=dLd_ea@@w&T1WbGQ$;^ZsmAVRP{%1H{GZ? zDN1|Uk?baY&7;6g6o`Zaou`8IJddiK&4EbssO;ROTX2PRJ&){e&X{h}vB{C&9YJV8 zch{gT&D?GXL^?TQH*_@}>|Tx^jH;f>=lwans`6lj1&bAS7b~0*1y6b_go!aD!U`o_ zx=Ys|ij2#Ch$jg;4+g3GP}JS6<{<4o6!q!rr4-K8xz{}qCj{*zs1R8CIy0(wjs>Ef z84YrCuX}(MJ{%dBh7elN4Iqg0;i#8$9T4fmk>6i+7kVTzZhr+K1>HOakv;s0-f^N$TqMa4>9-^g4XGOz1{N3^-W*1U%LQtjRgtH52MGh*n z3oVr&Ewo~VplZblA1$=vgpU?doN!KL2KhdT6N1jpx(DKfbD}yoA3&sYWIotcuDe*_ zW05)6YsCsd=SdWzeJtvGhL)mzEIRuff44Z{+{k>-7s^%))L9}l|&C`J23cNyhqp8m!Kt zIb9z?q|Zf-O*RL5R3!DDkBr-*^av#NK(|1GXrI>w5=8raG~!gJ4M@G^x(VrFHzA<2 zMiA+8-GqQhm+K~^hipP#kXG&C8Kha*xdn*!1>O6AXkUmrv{_Q`#iChBJy4sK)O)dL zR#NZ9qFGY!CEfemOwvm>AuIFuR)<&Iurdk~o1R=mvNB3_Qp)CIWz@aaW@~LZel@Dv?6b9&ny*H@ zE0JWam1KP_3f}d}3RC==Bx{EhOR}!c$FB)bt*qA7hKtl$9W^+225D?{)YfhvWUZvq zn#gq6jzQcS=(hKuEp2q~EsL8FKAlkLMiLDiS zL-%G7TF||?0g=8DHM`Xlw3SaC>3d9$zF9~mM?sZJj=mW+S5zxW`et-oOOmcDw34Kt zY9&e670pVLt}CR}eJe6<$*v6~M?p9BK%{R)y$1SWjOAebRy6n&-(`~Y?Z{lx;|=g=Lit(`siHu{-jotbVJdsgV4JnAlA{~( z)*tyUOOkGkjLsoR(v8uOE438u#^{>s{6LYUnjb}2Lz&{pj)3nTk6**5b1}yKGjLuY}54#LJB%7sK98qxdjR@ zwrR61^6OKbq|J6+C?K?;TPQ%J+jXG;ZDoJbt+TH%3#p{djzTJFvm@$Oai?S|qurs4 zOr5N4I}5F(4XDjZ+UzWvm9*JeNU8ggu1|F~Z9um^fk;2n^$C=;`A8S2I(Z-Xv93=L zp+L7jfoMP0^$A4!v93>bk~X_^p@5KrE?YsQyL6!dk?yh!g``cLtZloCW+iPvw?0vb zcDJriAllu!KGjLu>?xX+v;nnQNt-=IvywJ@bbYD|NSnQ+jXRu!X!q*+1ft!m>l27} zudYvZ0crDzu1^qB(5+7((ob}K0+D{A>r9HSW1dP%V_ zqu|24`LS^Lk3eP=?2e2emA{NKH^v~%d>Qq0$0d-5`DN5_fqls)=nl$XM!nB3onoUS zKNRIZ-4G5KQE!v+P!zc1A!rM`yU_rNeJJWbfYc96&vN{2RCPx_d41Tw{B4vrlrA7% zPwDN^C^#=4{m8=I+oMtaxwf~0uD3^{p6A%! z_LL02DgViau)Xc3*mskQay9nd1POXmOgB%n9l|rl*av==q+ic_~y?In-n?%2P~hX@Y3rvXy;?%2O%0f~Bd>|e6<3VtS! z+AGbLyUCUMNxU@W32O0@&OxA%0X=AdEv!H8ZvW&C5&1#VPQ{tdI zZT#fhuxmcfw-FDQNlA&eBa?DU(T+^YDbmg`8-+1?Z{m1%MQ(|f|xQAU=0DuF1c>C^;KPLruApLaIM5C^P%on@}X{nEL^kmVOzql+h@n#!nufMcAUB#2We(@JfPKj zQG+a4bK-p4FTw%&zkLwKZFAI-C_*?#9SKA@C*~8H{cFHGY6#qnXEyz*ffw=XD~J_+FhbwO$(ToCuDD_vpRI+@oYaXx)acuA!p zIGJ89EN)l60nK#4U)O~ti7*!n*(UIWQ(pgrB%e@%~L+ab}E02cF`TKl` zJfhLs9hdc)iru{#XYMrwrL_HK%xeg-*hX1B-tra;(CfDfrMTW(YO$1}d`m1=_I{0G zdha*~_0Uq;abrX<4o7Kob0&P|!0|~TQjBKX3eWO_7 z2l>D43Lk0vpcpGLzYpTfy~w5xnh)ZB{YwL_1oQhaziM|lsO`f-BIfsDoVhJdqy6~& z!?|XO5$EEH0KYWTk%C?nDIw0cb-xUprpMR%*-YkB8%=vi-fby75C=lf_ z^>YyAG4bnZ%h1fwOMTZj(o_$@Zz)XNcCjs!!LgHf~C`Ca*w2g8>3yOQHiMU4Ee#Ba~3gXFHH+_ltbB^dcVNq%mF zsn2_V#_so?LMSeNPvVc2&DO>5NxF6~^|L};d|ZCjXJP-gafL+udR*dn=groy$0ar0 ztRFUuU60Sle;uBgZ>6dB@r6!2dwk+|pH!re;}gI8Y?coY?oaIQa|FP{yuTP9vF`g5 ze+Z`(<^2iUPuX@fi*-McQhMGoIK=1{669*e@gr*9wI8}vInH@ zpLDoEqW&pS`-7QSe@gr*UeM*|pAvtH?<46wHSwo-h;ag){eiaB+aE~usfoA0zI-Ji zsalpF`vUuWF!A=+SGxO9;!p8E0_iX8`U?{Ap~Ro!K_Whs_)|PccOOdpDPGWZ_o2j} z;`>T>ALiM-8}_~qAojyWZ0YU8i9gI!O6-RvQRGp9#C|yOhj~F4`{4xtlO*gb{x>T> z_sek96|;(<(&8)~VCoQbmJF~9Dv3Kw$Cpwcbe4>-3rhV*^Hl_Gf3yfHp7&@GR6Ord z2`WeRzT$b0CGMyWaF37aECNwJmiVJOi1M+-AJzNH9`+37l_k_1Tz>>E<5aknUeIUvw)cX30^*#BYtdC2y%r$3yAo?fO`atwgs`d4i5q#QP zAAs`dLMhhwv|1mfD4$mA>nqmxOn%bWSl=_6+FT^UGirSx5uQ=&1BvjASfA{*`ik`} z5^p)beNpjn#QGMgtxyNaBDIyivWI=v+X}!yJzKOb-uJB93Z*EY64*8UJ9xQ*_Nv}K-@d%at);Ja-C%$ zQJ3q~?HBw^l5M%pU5fqOU9R5HPp1A0>J1P#3p#HAZK?MLkmxUnHwg{i=9_9MxLH8(z=X9tqF6;`Jh^wD`IXFm(v} zx(+Z%(ARZ*1zphBWqe&w>aWRv{B3wn`TqbDBn8#pU+C*adBSV3@hGeOsZB{m-@} zao-$hvHPEGNuPfHw%Gsda7I;WvHPDLYE&S~9cok{ZS4@Fl23&Dm*bCn{nsOZ^7o$$&0@LF(?(X9^N^mpoJZ5)J05?$Ue^bosDL{ieU9({A+}h=~U} zzX5Hj_ZyJtyTxyY(B}c=_|v3nT-s@P^IyM2yXySQFZ;jOT$R7kiSKfKnxrk(h6c!8 z95`-6Ah!X#+W=|kfZ7m9LkHA`K<+q6smjFEw2Uh$$WNrUY=uhjfyHC=aPA zfhZ5DDGd-)I_x(rfF-|e08t)RR{~KUR#zGzu5`q^5`gkZ(OYq)BkD?&qCBFmG(cSG zJ8`9!_U{Ub_|bR84T>LqSKJ^&c+B}xJ}okF+p$6@c63bbXn?h&V`4{F+vkNHjn4V1 z%(d;KQ-6jSVC`sh>g@=mtcK)P7}N00ylSadVE;KlWtDECsB&}<`hr* zg>4W|8k^6K%`e-=77dCgjZOKK)&&$#8Y>bx^$rkEx;;NHG41WQr{2c6h~)OvA9q0{ zx2N952FRK0&eYmi2SESsEcz#|bZ6=hx|E{4Gxa_;Ku%?M=LZvv?CwG$c64{@jf^@- z?oPdt4Ups5y{Y>c;l9+wm3vcv&ZP+9y{SLPfe7zSy^jqn$K%tgiK#nN4W#Dyl#Pg- zsRoJzOi2Bi3gQkxH`zhzPDuR`79{F~)aTPcw{Mz|`ZE>9KA|S0{!BGc^6~!EpQ#|G zD(HL+w58t1K%(ED`h8PtIi8$WJ)8eaW`>m~OLyh1f2(wNN~&inkp9B1zaSB(r2b3= z5^+lE&r~3jcS`EdRDv%5r=Tr~j@ z;aqhc5aC>L9WjAcah-Xo{X7$;eE(*idI5-Xo_Ya@a-MoYtL%d2J1;mDpw0Qkc#84N zS1+Ix<$Uo1`zF3soM%CrS9XQ}(E%V`P~4{&(1O&zkf#*sg4Dl|ZxsVtnBQ}f8PvY8 zkcjgvO#KUa>L6K|@g=BtB-&v7psqeC>N`b3@XP<)2ipaj|`&b z($w#V21#NrQy+o21<*ZRkh;rs&Voc;CUe%lnudA4%hX2%UGgkb9~mTR@|^kzM4v(D zBcLtyJ^~W`Iq{KE?1u)ILVZ# zSE!GGba#dNh@k843iXk}(%qHbM*w24EMiM^UYwAFQ#er6*?wt+5y|30R08y@1BLY#bRwEiL zMzl6{?`!}|eys;lu2nw*QLYs~lAIkZe)J|vzP**7*VV*B-_(?)2;rNWvLM1YQ~$Pl zu(;A&sefC2hU^KrM8jNjuWUf{Z)xI!=-(1olf%eh8Q6EypkF@yp6J5-#BQe42C7sH z>K$Fosf+ZTl%ExeK@Apz+TaX||I_9MH7F3_1~n)U;RZ1%c}qQ53~E!Ff7;9R9s!`- zR6H6ns7>mLl%m{}`j^#%#h^B)_GL9nF{sUjQVeQy@leH}HmCk=^V;spZXWql%jq=<;Ara&S3jFqcqMVz+j%+c1;LDmk`_4a88kY+M$L6 z(Pz*Z4roig;ebTnA%=4XhSOG#cc)diWu1nf@?Q>MSKj#hKjfQxm_Fs*X*$&UP@CMv z-s3(5avQL_4UmTRst#V`OyCWh`q0fEjO`GeTY(G z?^7QFiM>yKNYKUJCqDE&9%`HT(0<0h{9t*tZ7?OfG1#E1?SZHN&aR3mB=Bl_GM5x~uVuBi#4 z{9KI)MESWIQJWaiU%U|kmV8o!DF32H1fu+l7?C7(n;6ko>7+^FWh41N!ml)`L4;pv zQiBM;O8JJWq)3|>(bs9vC;#0QX)pV+8JEy=&AADP{%bw$fat$Y`MVY3fNe6K-#7;x z0nm+a)B-`2->3zGD8Eq)Y!e^))}LSi+WfX?Q;g_aH9tyGeyb;#HZh{3a)P;}ga0Eu zS_s95j;i%hitwnMW5mJQ#D{Lm_w_O@Z8v4dAEp@4O_|@$Q3uIQnYXSsF`zN|ISoAj zF@;22XH4dgC)7bQCi9-vCa!Z!R(KW{=;JMgTAb&W%zGB4sBg)4ZCS`~l+ z9h>>X7Kn0e<_}vS%CVV0Y_*r;JF=>~Gk4f(r{*15>V90=F4=x(<_}vC{Q=!<2B~|e z-VI39J2Ukxm`8kP<_}wfE@ke_{9&tIGVZR-AGRR+3_8yOZK?Mxkmz@1cvgQrYe+f1 zFROYO&#L`v&${}eYrgk?etYAjMss5MzKl=$oT96eRBQL;Gqx}CY2FYqoEe$>oF1UFGYX{`&Wy}|PERSy85u`q zvAQ8*I5YE``k2>w-%~=^=mF`Tmp)wn1Yf3?M z1ay-Tr0#4@DUhhMC8cEE40Z1>W@}1O>?h7_O{t+WMIP0Zf*5Der4(pOeM*5ue^gRR zz7jL69M8+DR^)f~HG}HsWqc+qpR)~7e#{{LI!t=~R2J0c57wGqBS8iQ*67mh zr!xN{gHobDB~Rx(t0h$yWPD3y+dJ_nv@$he)k^3EI-r!IT_6MMw9rDYt;sL1P5b1} z_c!rK`I-yYHHIY7!Xkzw(L#xFt!o3mdtd393pKCF_hI2v1l1Gbml^AC8 zXmQ4&{~xTFhL&Xf6|5`svmfVc5*PP3O~bjMVo9PU>P^FJ5-kyLlAk^fBZ=Z=S+G2d z^3lHx2mN<05RNOVmV8>4WzKadrQgdkey?y6lL<^kUbj3mrE)2?7oH$3xK_VB3#~&8 zlU4r3%)VP-Xyw;PFRDX;gnv;T0wny48Sfb--G)iJz0AzB-+ZosbPaZ?3Zi{k6AncC za^`;xI=mdO%&K1X*)yD)D>MI%is3RHS84V@L=`bTCb<|D=_rXI&9gy17o59_kQu zoi05fLD%WhBj|#z)1{|FmY%osb*(HtZx=zOskb%3sYB4WCBY?qJB0YKa1h(0^@T*T zW_{-0u2DxSiJQyUkUC`P*_i)s5Up%1B$6u|i&kXK*(j~FSP5hIZoYhw8PN7_A(0Gu zH_P0wcROr`yqocpdMDulzL(bwM)F=Ek+gU(%iJsV4x1M5W$a7kgWV39@mum62AgxP z+)_wns&C2s-}j&n9ov%e_Z-BQLB@1THs}hwoC~@!-I5Ky+@?{7B*Rv>(2fA;)mBX- zkl0%_jX+{=)rGc0)}C#deO*5iU3RvG+?Mf*P7<&~HoH4C0clnCyRb_@ z5bX|4KoIQ?NkCcgI%L25k>5)K^!FoO_&}5&>B0x1{74tR5#@MyR`rQb-4WE>ou%%N z!i|tz*rTZn(I3#I0!ZCGnz|rS_ekp6^DoQ@?$Oj0bVIyHQ+I?+(7l?v5Pb$+>Vme^ zr!GkJy^^}!N!?S+@qw)B3-*#})797i`o@30-u;^IR5S;&ivOE^r%Lw^YWE?!54!Gy zR6eNP2WjA-bYCV2Nbe77?*(1&4@&RF%1@Qvf1U+h>RWslntm!jD{T6gU*vPzP1E-& za}SQ1wrb-390f>ApJykXTqBOz2)=|C_{H4QqY{}d~c-M(e#&yD9be)h|cb3dO$2-x9 z&x4L%a-HC7()X2uKe|qAkWSpkTXcDJv?_LZU#X_QBAvLeH0*o66WCZhzGNmI??m7` z;V-&QNUaA-X7ce)1hy0Y65A}=3Cr=+Qt&XH7}AvAHjKwHwHS$zPE0LELacOZF%tZF z#rWS#X8Q3?guWC0qU(gzdaz_>9`8hGJK-<=&~}0l38@TKauZ`zv%iSwHBAm s(&PP!Y=7LPpT)oZryKupW5;cmjxzj<_!sjp;a|$XY|*8oO5=w9e_zhI`Tzg` delta 23134 zcmZ{sd7M?nnfIG}>TI`JZv#y?OLqeeG|&xAqj5KysFR7tB{AbW?<5m5@+O(dsN*s- z?`Ph5FDi=S4&sp^gdqq46_FT36e6MoH)K-;B#11siGUhJMVaqYRS(C7{K2RBRn_lT z<-ud2?u_ikR^v~g|I=rQenU$}9T`QyT{nBDtfT)W`EHx(AOwcEJhN1cO6jU!*`upHOyDl@^6^-dsFeUSfDb&?w?XqW| z2reksf9vuq2VPhI(^2);UpwlG`hWYybw97a{AZ)CysrLVM_qI6FRr?>{+Cz%+o)^m zulxC^E9*zJw2r91{K_lpufOuz>#w$2YMXW?}G8%@k;l1=yQR zTIJaV*qcoE>f%W@T+rt1AD;?NDQ`A~O5Y}cve~rnu2348n%ZJ}Mxje7dfQYSH0|uw zccJCmCXp&*y2!q+*2XC9 zG{aj_D$D(&@vdAdLJFu-k*z%@6(O}Nmx_?u<)lO@E}7k?aJKI!MhU1&F-p5lrOuNW zrQK!I?{saA)Nb?5v;6fXC9}sAPV$DcBJ*NH}3Q^i)PC3;pr6sf1 z6u#vvQRC;?TeJxcH8God|7@8!3zeHp3u%=1Br1|+a{W>Cbz%-nst&uulPCdO? zh4Yk3(VtDlVf;6&KW~(`-x7pBo20sU1_o3T1Nw-$l1-Z%d?WkyGeJ}aIwz!(wjY_a zixmeV{*meGtQg2V`^a=Zwb-S|%mB_!I$|9knd(!xl7gu!MW2|8J3?oCRcL);k{-p5 z^jnowl%h{f;r1}F+F+_bHA#nJSv;sp;yPlC%R&%W4Q%fk+qjOH4sJN9C9WgRZiR}{ zXU6pKZN>S3&Z()iwe6j!0-=5;=I(kW{PO3*#If|watV-zzR9d_;Sl?~j{ z;XpTAstTCd4WV&P2Z9Rh>f4HY-4J#gpb+W}VbfsWEp2bisp3|^vU0_)Zp^u2S2yNd z?CPe_oa%+epMZM1#Gh^od!4AYP;UxPmRTY9hiNk=G$;5<@gtz#uA~fiOjzTLp2l#; zgl!`|7el%^G|t+ptN{VFTQQ)U^KQj}ZVpd&URG7WfNlxRU;A#wae#V5#Bpv3`+d9E zp-fuQ8160MdEfEfVmV_&bH3+_#Q=4dRKgt__CHr^p^go|^IcEHVr~u1P+uvY0@N`U zPq{T85Jh9k=tR3F96x|b6ObpwND2i*ar~KKqZs*n&+C5>?(^^MYNzw74 zw~kAJ%tWyB4j_%khu%AY^f5m4-T`D1j1Rqc2z1^tKEyjlGE2HjuHBbi_Iz++`Mz9K zviH6)?Pvq14WjpjT}ljB!E`G{Sy=I3-fp_lG7FPlb|kw=tPg|*H&H+&9ME|xkjNhh zE1k^&p*|3noV#=@TqvPG5Zc|GG2JAvNul2zf#3q&RRe8p>UKjwsFOl=LzfU>_fqtm zu;TIT@0JA@mwyvt!D5Bo#R{i~h2MEA1fwxMOgh`pyG!T~hQ?(-h&u^%9t@=IgJE~K zngi+Y!LV;XPo;8(&b{shaYCS-1Z4xZ)wRyCfN*DogWcTgUcd@xhQ_5K2rkeKAQ0-z zu$OZkAk>+m-(PhX^xM$5{S^o*(9KgI)Zd2X-fl+)wyo`siouZ0=B&_+v^N+87wERU zK)AEQKEt#Y>a1`?o4;D_#O$0ZP6$-0IN|J^T9$*#?3_#EhjOl1AyB#Egb(Fhal(gk zDo*%tXa@V3#0i1U&bk-G2_Ft?+LKO1O`N{Z7$Z zxQ~RVpW&|-C!7m7mNUsajC8{Msp424*1QqBu z62Nw4!G0$JhWljbcM{c-dJ99plK{a5x}5|N<%OZ&NdTcP4E;``TF_IvlK?>lx{U-7 z>QinbQ4S5*w)Q)TYDvAP^?rch0^Ldlg!{CvR6wXt>u#W0HX)00s-zxJsgin&a;jwB zqH@lq@#35-sRvZ9q~7A3E2+0Qr;>Vq(1}}JkkkXZ^$`g554t`Aq5dJPtG78&U6#~) zCNyq~QeBYL1G)tg2=^IXAc1h72}hpbxCK&giEcuw?Ir~1tPu!xiEcuGP?zW?q*^v1 z&q}ZM@C>9|uyYF_+-G&~1BCl**rwf*dQ0?_e28-_0_P|9Rhnu=C0JOEeI;mEzV^y z+?8RyTT_8>SL)WbhoDuuV*|kjy2m*{sH?&Tx26JZ;}cHw5tF&AbE;%6P^pr+tHXw} zawTGt(- zkP1uYz8;=)Ua@`IP6twVUEZy%nn1UF^{}bCE^KtC3n1Ke;hFBKN)JihH}Y;JbAj5e zWbPYzx01PU*lumFWbS$#_lG`YN!|6K(K#fkyFMItk=DXpAAbK*KTxFZhR|H*D`n9H zx*bpto4Fgp;g@JF)D7XKe*?8(YD&?c!iobvYie5Q*6>mq*m9znBw~{tH@@^$~5Ak~VvE)v76wHhW1M zcVq{`-K(n>5bj=GwSaK<>Z(;!AZ^~&RSN_a=vFNt)OU5&0z!RPSFIXZ@b({DwX&sa zgL5wfyM>BcxchaX0>a%d3so;tuC^3?7*>4D(Ya&&Syx<9f6)aOoF(sP-0`^<=7%9K zK2By#YbC`FWj}c>IQ61KdVZvkHiyF04J{D$Lt#&Mb^>w_4~4zYwolvyx>NI^u+Le= zp;i?7;V`?nPdIR7tE#z8(xHeHJFY zi)W+PQ-VAi7QUJN_fL2{SpQ*Qen=T}pF(%!1tNPi^eW0XN478O#WFXo%M1=ee8yvQAQ^b3mCV4&9J-g@8 zz+|_s3u>Dwb?>KoTJyLmik+DNQMf7MdEd9K0_f&!<+|Y9({7IZG0L9eA!DoSPD19bNmXlrZT zW&w!$T~WXO#U>_H?@}}&s(3PLH=?Jc!mw}s{PHV*Hmd%D|NH%m&%fdv_v$n|us*0P zO^A{@JKK88wM>k@INL6zj4PthT@jEzCq{m@0qJvM_5*MY z$kd#icOg@AvUJgE1(=#sqHONX!BCj;s&|S`Hz3R@QS6?80bx#wI&>_aZke>58fBes z2~L6;TI3T72y?1VR3OZ$GEwF2Xm44%r$yOWp9O6&Bbd|jXk}@e7Nu^bqZa10s8r=| z3@h98C~LVZ=mRr`IX!2}!Ztm>PFdKd=hw+d&WN&lo(I58V9v;yvaZdD{F`8EVa|wn z6MRVC1oxJ8ZFct7rr>bP?8rMjg>Ys^iA#7OoY~R9CTmx{Wj%X1%7z~e2DSmX-iOt$ zfG{79yj=ldJ{<90XMpXDwLBnV z^VITyh|QA`IMa%8s(U=jy4;hTc#;$A2>bDT%;hNec$8}T$WiX`sJ53i%-)4gJb{5d zF6hhnbz=PH=V5e$IbVH~TA1^r>YCz(w%^V?V99>6g@>mL^6QpQ6D-K5V`nG}qMDv| z2i&I=Jrz|f_P*JNmQO{AdtK8L+~&|MLbKA%(H1k&eo>YG4v=sERGfzFMdQ{SwU3tE=_ zXe++CEEkmvS*E^88$_3>ZvqirroJiAi7pf0JkiFDZ!XVPZw*drUY?6eSIc$m>#T1s zm$7#gx_B`=aa(Xw%ZoWheDKAbB0l({`a_*8(Jy-+1TZWw>+}J_d|7=E2=it2!8+OG zuW&wi62Ky#a6p(Vbm9SFt`Hv_Vy}!FzA`E_)b`F=Hw9H$d3(^UnF75VVudTC)Mb60 zwZfGV&!$eZWUO#?_U!iHjF#0oMLckIl)7gYb#`;VI^vmy_->u7CTpGVWS{Bi_gd z)gFe`(`X3q4fV7-+0}12uBTDO5L4$o4M_hR)YE|IY*0_D6K{O;3!X*+H~LLA6Ch%5 zs;2=Fds96Ph}fIrX%EUuP$v%gRyK5JFthoseCWgn--=TAWSll|-irDUC=Rj|eDLk; z=+0np%iB3c%&ZhR|mq}74_<4eY>tu;%Mf58^A=_lZPOmDcGaFO)bnl>f3dN zDo$78+utqoe}a8Czr*sOfOqpGs)G2gx_5mk+843U-y*SW8b#D+C3v}ZGw6)&7fv6u8_a1_K zHJs!P>eSSt{)sv@5cN;gsRcUqPsFL^u-YIy+#`&4 zw*S_o#coEk&ijJs2b5_K62K81bO`itM3+n;Jsi<77wCF8B4h4)p#A4;cWZ}a|GUQ2 zWOFwL)gv41hL>XPM2!CPyc03{&(-J~#OO!IcEj5SU;swP-b;WmN5_7{3xqj3X2bhW z_VQ?ZW7hm$@Xswb<`i-G8)JVYYp@P~V~oR#aW=?KcT8-Lt=azff@t`d*q>Udf;cAj z+dv?Fjfpw6$~Le;9^u>)7aFpIJA%5Cfb-jBHU9dE zw<{wh8(->FM_m8b*q?i;Md#MopL-j`^~c3_KX|U>1O<%UxY!?ofryQZ{Sg?5*tpmq zfq{sPi}6l5QZ>jza7Xs{2ZF}tJK|$^O4fioV!zp^4U{|LQrBXgrLYFvmCZX4G&J9p zQ^fA?iv3}=!P@;@ao6s}{+5E>-;*6Z5DaL!C#Q(1-xK@oeSi@$H#u7N^@cyAN!4JgS@=BFI#djXll7H9~iOs`(l5xrwx?*Vs@yq zIcX4kzdz3Y@E<`dH>4At-5>i?1rX-_F&{{9p@_fVAG6Vyy={Z|`vY-y`Ig|X%K(@U zzYQZzZP_;u_a4fLhu>mvXbP4;b*gqQREBQVp_KyZYSvfMQ6zXJ5ky{6yu0Z^%q@p)xT#qoSQVd=K%ez zEmEi9i!DBs_awIXkn|+a0s4t8KH_X~B!CNlMCTR|<|As0K$wq+Ey{C%ezO04Gf610- z)lWdoAfWRTpsn?O0z~~;@skm3x*AK-ALEK0*$JNnt))N4$soJwYLswa_@bYf%P1pg z3SH1ZWM5EM0V4Z?x(bk(Ur<*O=<@yrb(Kbm`K4p70z@6G>Js!z>MGQt{*t;15cQYT zRRlWqm&8@%9M~wX@=EsqJ`K*e@ReLt`g}#lnKp>NqT>ui^c5Xufll-l8D=L+`&YB{ z2#3p8b5SvnS94J@kXO|}8pS|Xc>@7(jjMDr0b#CE0|CNZr3TU{2C~K(NE^T+pMyY{ zYjhd{VXhGakppd`7|3hcH$MwbX?ZOVQ>^1P-Bi#9%4@NIg4ih5u`aex5a~>eV_nV^ z<5-tppcu!x`~n%Y^;sRSvPU*rr&ym8#VOY74ue{V>th}uUTmYpDK^I0kM0i6hbgwO zQ5Sq5%#AUhH4?uE!rU15>}`)zjbaO%;;da{`Vy>I!lryo#S%8fvHSQLwJyMe&g5LYCGSk!V2fHRwJ^8H zzT|uM0@*@s&E7g1T-35Pr^vo(YaF}JH8k3N)7H3ee}84{o3=a4npiebdAmARqy3D> zc6BTuU2PY~lDE|ZO3}`^VvjeT0raplPTXe^2S_IGQsV(}0YH~!K-%uoTMI;$uUfff zc7QXUU78V8`;6G7#xph?xg;#sjpq-gtnh?-t`3M$7|C(R*>lJ=yvC&w0Rf5?-I(~Z2N33siMJvkz1^62D;g+PH0J)uG&PS& zj*W#_(3r$q5KUl=NwA<_*uJo!vDptJ^G_{f^G?Kq#wNTu7QY*4EoiJz{COD&^R~pFmw|M4TjI@Ypq%1vPpo;tloQ;_gU}ASC{%A}U#JdxJ z0t7<5JMktqs1%J)DkdiGG&YEq;}fXt}r3-r!f%W0Ns2C(sn}P&%QuZCnVm) z200U(koeOW)jp>tB>pruNK*2?#Gl4M3^34{7|_;w69b}tU*dO9O{Hj3Qt?#Qn3~qo zBnemEDKtsAlanu;#>{1u5j2G^Xdtqa6MrTHB0D+pXEGqOcyi*;WCEQJOiuintVv>? zlIWQXh&ou+CFm)MKa)|5`jo_<$$+R&N&J~ipi`fcU}C4(3&6ytX1^?&)0(H|qSEJ7 z9p@%%T~lS89fdBYWv>fmT22uwnwC?ToH=4fP7(8&k@$yAw1F}s@vjq_#C(36eCc&Ur;{i}iDDfvv7z54 z{-px7Nc=YOFBO`^hGr*)VYMw;-T6sF_SVp(qdkyNgA7$FBi1xK@h=*vMP_#5Uo`GR@DgQ~YXv;$I6;3w3_tUkfyeUoA-P-xc)B{=O5zF35S}RtpmU zZh(gH79_kIkWZ2{iCZmno>K;J#}}&U0AVgv(*eRHhlKrZ)IjQtqk_@w^Gep8&_GQzdjG!rWK?9Lprltc#cA1(E zkeHXL=?HW&FH_SQA~7#l)A?H<>R?rupqH!ZP>cFB!m}r*rCwJi|X}2`gl=CU7+jZMHzM12kl=@ z*gl;iPs*D_zK7jDQK(&rXT6+vA)fWJde#u}tQCp-UnVXhPhlN=r*4z@aRkIUbyGEwtt&0(q_uGSm|LR_5;aF5G} zh;OaU8oHW6!`J3fibt*0$>m* zp}wB*jVUpyA!1T*c#{Hffp4fu0b#zOCIy7~hM1H*1s@_NwE?d=z~@&0FgN74LtJWu z8Y8tZHzfXH_z-caHNP_pX|}7^fQT9Byas4% zz1ILy-!5Kr3SQG(igqUzw`TuRZB8!jPLko)Ynmn8yyrz3MeUWcRAq z0Ev08dW}FA^Ir9uW{G*9dd;Ok)WNDQLGM$qp%(Rh>NP;r_o>$ibn5%WYtG>&HjCHn z&zAHs=Uuoz7nMHu>p0T}(fw*JKt%WJFbi~|`(>D&DD4ksKddq5wH(Yv#ZC_9qGBfp z)lQnlPCoE<0^k}y&};+3{6Osl2=fEAlV-7#KYKd?Smg5*2=mWsCqS5g7CVtVZ5BKE zD9Kh$3obYj0P`cwQy|QbG*5vrKT7xvtxWx9@sp2}Lf>rD=Ry5QAY8C>2O!*!_1pu5 z`*FfgY>0_9%jkXTObn)cg8EZ+F(AxO)y04?KUEiN7GL?yA7TLX`B~nl_{wK$X4Jy` zOb;>5;wwk}AqD{RXwDR0IjUYpEzF~Gh!IC>7GJp`wT{#VfO$iDZ0?D#+>rXM8nrNQ zNWCL9i?7_2z1zz)wA_?a#8GZa{Sk#WP;N@S6*Y^a+?-k~;{Wt@b50aPxjFUcR%#*M zoO&y2mTk}2)E%`R>&;PXZ0e6%R6!h@`lA*Q;@H$5wOUHixU}NV)E%{2XgMxT+&4j6 zB(-l({ZR`THI0V_S7G>sP-vxd+Lu`Es|k(r2eP{Vj2LQ z69H|lcOoF_cceJc0Gw!8DY`eUn3-jLOk?TZly`x0)EXw?PDsCa)Vh>1f~L>~4McWA z>W^ALWGAHls0CzVPDuSxOQ1{Z2`NXddfNr`iP?|qOy3J9=AshoM7=S?Y^)Pg9w^8G z9*F3~wA(56W3K|8=)|=9$@VSoFfpJkTUlosnzLL~h9^t?OI6wsX_nUZ^c2vftam*# zYf?@Tdzq9|#9k%|MUrlq*vsV9?i@}8Fxrz-|KtD&b8_mR8~|ZXPW{$lnAppd)W2zO z13K(d9SCYp6|;Z8}}L&#hDVPY^-vz`rRQ1jH(y90$#rsfoJmZ?H%vJ{+UT6T4V z88Tv8P7ypl9OWAJ7E52c3DAUv9z0aqLXsOd^#a^bT{(U~RbUi)gG%Thz zOzdTbOQJG>*k@=K0b$P2ECRxup; z>c3_IM1NlDzh(g>_<5=SnuS0Y{JfN}S%|f^O7M?o?fUaf@9|tzf_^;p4=iYd=;LyW zzG*2W%ltHJI2wN=yS=|Dw#?6oA~#>hvel-{d>KneL}q~{cFWfHH$$5jlR>s%0xF6D>{)OVaF~s$`)1kkHiwO!R#URX`GGahf`dfq}r{ zlrKhf!f}9!DAX)TO|eu=Y{6X8fU?>pX<+T3Ro3sNseO=`9YB4=Qgs8WP+zKU07QLh z%5y}?wN}Zs=b2$&`z&>tDz2M4muo0Z!`86mUeMa>ux83S|~1GKe1 zV}Pi?C>b-HjA<)Hucj3{v(pE$1ihLj1MIrfCgHC7^14GAK~w001|qvk?>G?IRl4o~ ziFuW-I|5zIt90FIlbF|J9h+Ep*5slR>l$5mXoKh)U3Y+puF-Wzpc7rA>rR`jJFjKs zCf1$Ta#88(HBD*SAo`l5v?Oespmo`bCezrwE~iNPtV{g^GulWav2*#1Qk$$hyc8Tv zFY9xPq|f@i7g=!DOD~Oo&xkana_SB6ELp>VJ5IHUzdg<%cF@EeA5D zo72G;+O=Gu8`I6{knh>FYLo2P;#S#_0HWHWc?Cp!i{=#&?Jc^>w#nMFm2D<37qhyd zB;;02B&r~8)%6kxacjymHc7}f+1YMCUP2Op>~pDe2?<1JyCx(Mo$Zp4viP;hKKC8J z_yGw09bNo@FyGO|4+!%eUHnFtqTOl5yFQgi(sFm2xF4ynQyD}&K$jIj+V0U* z2BNy>*y0CfF!yLG3v{EsM^kyE%+N?*TA#{5)b~m%cPEukC`AX-iVs=* zlKM+V{qt4-I?8>w@B}yq(z5?u!4o9>gBm`F@PRITAdL@d_&_>1DB;Uo0TTT|jb5OO z{-8uJMt_1t|3O;lQrqZ5sK4C)2<5;1BD<``)SpM4yK%I%O=I_y89;jaAnnw-SmaVp zEkr9Pv@fwt||I7EsV)}4l^g0 zKTRY1YZ_9HAAFj2vA<>@kWM~Lo6nR*MW87~M^bY%jrdKp)D}GU(jq=L=L_>zql@OI zVnm9>w$*r6BVWX8ON!c+qFaiEyNf~Xp!#g>Ff*cjOEI!PMI@C3aZ9n2&2oVRaZ9o3 zWFG{-#u$w)nsLaxAlexhgfDbKNUPh6=B{HwwB!BJu_6})AHBY}Sokj&#F*g(aW7v& zl3Pcw;*9qes|F|}h)!WXfpqMx7? zO(_;;62!3j?1WZs$CP{|0)m*5kA%4Dlzb%k3CQTzMKkSK5P=WE7rG#%)o+Ss#<3s* z8-y=9-v&XGS;fLUf;g={+t+H&Ezc@O_BWh}&=AC|qWi?EK!TW69Co%J34WI?nq4%H z91FtuAbg<VQdh-Xnm!Pg6+xDV&P??sLSS!Fm*p2F|)G%nydez-hJWm zdskgC%75GOnn7PLx@6S9TtDjC>zeAX8Fk(D*IapR{c+n|d-YXUUOTF({y&OVIa@tA z=-O_O{Zsn7f-UcI$*8Zg&KwqWgC&2C$CC2nu=e*1y2Fw`$74x(`D=Z-3zbhT%GW)= za{XT|{`wUhpZ*tmx%jN?h2Hkcmh=vKA1_8J@BCHv{ig>#xvqAn2errJNO|>FIsTqz ztsfSuV}GZz)%8h_>c4OsZDr@L-HD^$3i{Kx{5f9VQhuB}L2*s?kE4_Jj%xqkq085L z7FkzU{%Xf=Trc_d_rG#SzEJX)ZpN3Id}U@iS%3ceWv=}_`<36Xmj9(5zTWOD-DH&) z*;^)mjyG&l{-vqtT~PL4OLJ!kafYS2GsqccY3>aCVny^^(fsk4Glbq5e4%p&X|=p) lUOMIsp>>AktZFZfJ*Um^FXUguznFgs|I!8Lv=t`}{~y!&Kb-&o diff --git a/managed/services/inventory/grpc/agents_server.go b/managed/services/inventory/grpc/agents_server.go index 98b14acb64..ff9387b4c0 100644 --- a/managed/services/inventory/grpc/agents_server.go +++ b/managed/services/inventory/grpc/agents_server.go @@ -181,7 +181,7 @@ func (s *agentsServer) addPMMAgent(ctx context.Context, params *inventoryv1.AddP } res := &inventoryv1.AddAgentResponse{ - Exporter: &inventoryv1.AddAgentResponse_PmmAgent{ + Agent: &inventoryv1.AddAgentResponse_PmmAgent{ PmmAgent: agent, }, } @@ -190,7 +190,7 @@ func (s *agentsServer) addPMMAgent(ctx context.Context, params *inventoryv1.AddP // AddAgent adds an Agent. func (s *agentsServer) AddAgent(ctx context.Context, req *inventoryv1.AddAgentRequest) (*inventoryv1.AddAgentResponse, error) { - switch req.Exporter.(type) { + switch req.Agent.(type) { case *inventoryv1.AddAgentRequest_PmmAgent: return s.addPMMAgent(ctx, req.GetPmmAgent()) case *inventoryv1.AddAgentRequest_NodeExporter: @@ -220,7 +220,7 @@ func (s *agentsServer) AddAgent(ctx context.Context, req *inventoryv1.AddAgentRe case *inventoryv1.AddAgentRequest_QanPostgresqlPgstatmonitorAgent: return s.addQANPostgreSQLPgStatMonitorAgent(ctx, req.GetQanPostgresqlPgstatmonitorAgent()) default: - return nil, fmt.Errorf("invalid request %v", req.Exporter) + return nil, fmt.Errorf("invalid request %v", req.Agent) } } @@ -266,7 +266,7 @@ func (s *agentsServer) addNodeExporter(ctx context.Context, params *inventoryv1. } res := &inventoryv1.AddAgentResponse{ - Exporter: &inventoryv1.AddAgentResponse_NodeExporter{ + Agent: &inventoryv1.AddAgentResponse_NodeExporter{ NodeExporter: agent, }, } @@ -281,7 +281,7 @@ func (s *agentsServer) addMySQLdExporter(ctx context.Context, params *inventoryv } res := &inventoryv1.AddAgentResponse{ - Exporter: &inventoryv1.AddAgentResponse_MysqldExporter{ + Agent: &inventoryv1.AddAgentResponse_MysqldExporter{ MysqldExporter: agent, }, TableCount: tableCount, @@ -297,7 +297,7 @@ func (s *agentsServer) addMongoDBExporter(ctx context.Context, params *inventory } res := &inventoryv1.AddAgentResponse{ - Exporter: &inventoryv1.AddAgentResponse_MongodbExporter{ + Agent: &inventoryv1.AddAgentResponse_MongodbExporter{ MongodbExporter: agent, }, } @@ -314,7 +314,7 @@ func (s *agentsServer) addQANMySQLPerfSchemaAgent(ctx context.Context, params *i } res := &inventoryv1.AddAgentResponse{ - Exporter: &inventoryv1.AddAgentResponse_QanMysqlPerfschemaAgent{ + Agent: &inventoryv1.AddAgentResponse_QanMysqlPerfschemaAgent{ QanMysqlPerfschemaAgent: agent, }, } @@ -331,7 +331,7 @@ func (s *agentsServer) addQANMySQLSlowlogAgent(ctx context.Context, params *inve } res := &inventoryv1.AddAgentResponse{ - Exporter: &inventoryv1.AddAgentResponse_QanMysqlSlowlogAgent{ + Agent: &inventoryv1.AddAgentResponse_QanMysqlSlowlogAgent{ QanMysqlSlowlogAgent: agent, }, } @@ -346,7 +346,7 @@ func (s *agentsServer) addPostgresExporter(ctx context.Context, params *inventor } res := &inventoryv1.AddAgentResponse{ - Exporter: &inventoryv1.AddAgentResponse_PostgresExporter{ + Agent: &inventoryv1.AddAgentResponse_PostgresExporter{ PostgresExporter: agent, }, } @@ -363,7 +363,7 @@ func (s *agentsServer) addQANMongoDBProfilerAgent(ctx context.Context, params *i } res := &inventoryv1.AddAgentResponse{ - Exporter: &inventoryv1.AddAgentResponse_QanMongodbProfilerAgent{ + Agent: &inventoryv1.AddAgentResponse_QanMongodbProfilerAgent{ QanMongodbProfilerAgent: agent, }, } @@ -378,7 +378,7 @@ func (s *agentsServer) addProxySQLExporter(ctx context.Context, params *inventor } res := &inventoryv1.AddAgentResponse{ - Exporter: &inventoryv1.AddAgentResponse_ProxysqlExporter{ + Agent: &inventoryv1.AddAgentResponse_ProxysqlExporter{ ProxysqlExporter: agent, }, } @@ -393,7 +393,7 @@ func (s *agentsServer) addQANPostgreSQLPgStatementsAgent(ctx context.Context, pa } res := &inventoryv1.AddAgentResponse{ - Exporter: &inventoryv1.AddAgentResponse_QanPostgresqlPgstatementsAgent{ + Agent: &inventoryv1.AddAgentResponse_QanPostgresqlPgstatementsAgent{ QanPostgresqlPgstatementsAgent: agent, }, } @@ -408,7 +408,7 @@ func (s *agentsServer) addQANPostgreSQLPgStatMonitorAgent(ctx context.Context, p } res := &inventoryv1.AddAgentResponse{ - Exporter: &inventoryv1.AddAgentResponse_QanPostgresqlPgstatmonitorAgent{ + Agent: &inventoryv1.AddAgentResponse_QanPostgresqlPgstatmonitorAgent{ QanPostgresqlPgstatmonitorAgent: agent, }, } @@ -423,7 +423,7 @@ func (s *agentsServer) addRDSExporter(ctx context.Context, params *inventoryv1.A } res := &inventoryv1.AddAgentResponse{ - Exporter: &inventoryv1.AddAgentResponse_RdsExporter{ + Agent: &inventoryv1.AddAgentResponse_RdsExporter{ RdsExporter: agent, }, } @@ -438,7 +438,7 @@ func (s *agentsServer) addExternalExporter(ctx context.Context, params *inventor } res := &inventoryv1.AddAgentResponse{ - Exporter: &inventoryv1.AddAgentResponse_ExternalExporter{ + Agent: &inventoryv1.AddAgentResponse_ExternalExporter{ ExternalExporter: agent, }, } @@ -456,7 +456,7 @@ func (s *agentsServer) addAzureDatabaseExporter( } res := &inventoryv1.AddAgentResponse{ - Exporter: &inventoryv1.AddAgentResponse_AzureDatabaseExporter{ + Agent: &inventoryv1.AddAgentResponse_AzureDatabaseExporter{ AzureDatabaseExporter: agent, }, } From 602045c2978ef5aebc1a488b065f94978a7ba918 Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Fri, 19 Jan 2024 15:01:07 +0000 Subject: [PATCH 16/29] PMM-12811 document the change --- docs/api/inventory/change-agent.md | 67 ++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 docs/api/inventory/change-agent.md diff --git a/docs/api/inventory/change-agent.md b/docs/api/inventory/change-agent.md new file mode 100644 index 0000000000..3d66525686 --- /dev/null +++ b/docs/api/inventory/change-agent.md @@ -0,0 +1,67 @@ +--- +title: Change Agent Attributes +slug: changeagent +category: 626de009b977e3003179f7dd +--- + +## Change Agent Attributes + +This section describes how to change Agent attributes. + +Please note that not all attrbutes can be chaged. For example, you cannot change the Agent type nor its ID. + +In PMM versions prior to 3.0.0, we featured a separate API call for each Agent type. Starting with PMM 3.0.0, we offer a single API endpoint for all Agent types. While previously the Agent type was defined by the endpoint, i.e. `/v1/inventory/Agents/ChangeMySQLdExporter`, now the Agent type must be specified as the top-level property of the request payload. Along with this single API endpoint, we are deprecating individual API endpoints for each Agent type. + +Let's see how to change Agent attributes using the old and new API calls. The goal of this sample API call is to enable the agent, make it work in push mode, and remove a few custom labels from it. + +Old API call: + +```shell +curl --insecure -X POST \ + -H 'Authorization: Basic YWRtaW46YWRtaW4=' \ + -H 'Accept: application/json' \ + -H 'Content-Type: application/json' \ + --url https://127.0.0.1/v1/inventory/Agents/ChangeMySQLdExporter \ + --data ' +{ + "agent_id": "/agent_id/13519ec9-eedc-4d21-868c-582e146e1d0e", + "common": { + "enable": true, + "custom_labels": { + "department": "sales", + "replication_set": "db-sales-prod-1-rs1", + }, + remove_custom_labels: true, + enable_push_metrics: true, + } +} +' +``` + +New API call: + +```shell +curl --insecure -X POST \ + -H 'Authorization: Basic YWRtaW46YWRtaW4=' \ + -H 'Accept: application/json' \ + -H 'Content-Type: application/json' \ + --url https://127.0.0.1/v1/inventory/Agents/Add \ + --data ' +{ + "mysqld_exporter": { + "agent_id": "/agent_id/13519ec9-eedc-4d21-868c-582e146e1d0e", + "common": { + "enable": true, + "custom_labels": { + "department": "sales", + "replication_set": "db-sales-prod-1-rs1", + }, + remove_custom_labels: true, + enable_push_metrics: true, + } + } +} +' +``` + +To get the authentication token, please visit [this page](ref:authentication). From 2f48f8fa0e89a39c8517c5dcd6e24192ec76757e Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Fri, 19 Jan 2024 15:30:11 +0000 Subject: [PATCH 17/29] PMM-12811 fix API tests --- .../agents_azure_database_exporter_test.go | 2 +- .../inventory/agents_external_exporter_test.go | 4 ++-- .../inventory/agents_mongodb_exporter_test.go | 4 ++-- api-tests/inventory/agents_mysqld_exporter_test.go | 4 ++-- api-tests/inventory/agents_node_exporter_test.go | 2 +- .../inventory/agents_postgres_exporter_test.go | 4 ++-- .../inventory/agents_proxysql_exporter_test.go | 4 ++-- api-tests/inventory/agents_rds_exporter_test.go | 2 +- api-tests/inventory/agents_test.go | 14 +++++++------- 9 files changed, 20 insertions(+), 20 deletions(-) diff --git a/api-tests/inventory/agents_azure_database_exporter_test.go b/api-tests/inventory/agents_azure_database_exporter_test.go index 4cd1de439b..10ae6657d8 100644 --- a/api-tests/inventory/agents_azure_database_exporter_test.go +++ b/api-tests/inventory/agents_azure_database_exporter_test.go @@ -165,7 +165,7 @@ func TestAzureDatabaseExporter(t *testing.T) { //nolint:tparallel }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddDatabaseExporterRequest.NodeId: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddAzureDatabaseExporterParams.NodeId: value length must be at least 1 runes") if !assert.Nil(t, res) { pmmapitests.RemoveNodes(t, res.Payload.AzureDatabaseExporter.AgentID) } diff --git a/api-tests/inventory/agents_external_exporter_test.go b/api-tests/inventory/agents_external_exporter_test.go index 5b361114ad..bfad278ccf 100644 --- a/api-tests/inventory/agents_external_exporter_test.go +++ b/api-tests/inventory/agents_external_exporter_test.go @@ -249,7 +249,7 @@ func TestExternalExporter(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddAgentRequest.ListenPort: value must be inside range (0, 65536)") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddExternalExporterParams.ListenPort: value must be inside range (0, 65536)") if !assert.Nil(t, res) { pmmapitests.RemoveNodes(t, res.Payload.ExternalExporter.AgentID) } @@ -282,7 +282,7 @@ func TestExternalExporter(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddAgentRequest.RunsOnNodeId: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddExternalExporterParams.RunsOnNodeId: value length must be at least 1 runes") if !assert.Nil(t, res) { pmmapitests.RemoveAgents(t, res.Payload.ExternalExporter.AgentID) } diff --git a/api-tests/inventory/agents_mongodb_exporter_test.go b/api-tests/inventory/agents_mongodb_exporter_test.go index 3b3a34a8c9..1a6c27d838 100644 --- a/api-tests/inventory/agents_mongodb_exporter_test.go +++ b/api-tests/inventory/agents_mongodb_exporter_test.go @@ -184,7 +184,7 @@ func TestMongoDBExporter(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddAgentRequest.ServiceId: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddMongoDBExporterParams.ServiceId: value length must be at least 1 runes") if !assert.Nil(t, res) { pmmapitests.RemoveAgents(t, res.Payload.MongodbExporter.AgentID) } @@ -219,7 +219,7 @@ func TestMongoDBExporter(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddAgentRequest.PmmAgentId: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddMongoDBExporterParams.PmmAgentId: value length must be at least 1 runes") if !assert.Nil(t, res) { pmmapitests.RemoveAgents(t, res.Payload.MongodbExporter.AgentID) } diff --git a/api-tests/inventory/agents_mysqld_exporter_test.go b/api-tests/inventory/agents_mysqld_exporter_test.go index b54036f676..73bbfd8235 100644 --- a/api-tests/inventory/agents_mysqld_exporter_test.go +++ b/api-tests/inventory/agents_mysqld_exporter_test.go @@ -239,7 +239,7 @@ func TestMySQLdExporter(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddAgentRequest.ServiceId: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddMySQLdExporterParams.ServiceId: value length must be at least 1 runes") if !assert.Nil(t, res) { pmmapitests.RemoveNodes(t, res.Payload.MysqldExporter.AgentID) } @@ -274,7 +274,7 @@ func TestMySQLdExporter(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddAgentRequest.PmmAgentId: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddMySQLdExporterParams.PmmAgentId: value length must be at least 1 runes") if !assert.Nil(t, res) { pmmapitests.RemoveAgents(t, res.Payload.MysqldExporter.AgentID) } diff --git a/api-tests/inventory/agents_node_exporter_test.go b/api-tests/inventory/agents_node_exporter_test.go index 7a0d25254c..5139f485ea 100644 --- a/api-tests/inventory/agents_node_exporter_test.go +++ b/api-tests/inventory/agents_node_exporter_test.go @@ -141,7 +141,7 @@ func TestNodeExporter(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddAgentRequest.PmmAgentId: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddNodeExporterParams.PmmAgentId: value length must be at least 1 runes") if !assert.Nil(t, res) { pmmapitests.RemoveNodes(t, res.Payload.NodeExporter.AgentID) } diff --git a/api-tests/inventory/agents_postgres_exporter_test.go b/api-tests/inventory/agents_postgres_exporter_test.go index b53aaef575..611fd2dc29 100644 --- a/api-tests/inventory/agents_postgres_exporter_test.go +++ b/api-tests/inventory/agents_postgres_exporter_test.go @@ -181,7 +181,7 @@ func TestPostgresExporter(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddAgentRequest.ServiceId: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddPostgresExporterParams.ServiceId: value length must be at least 1 runes") if !assert.Nil(t, res) { pmmapitests.RemoveNodes(t, res.Payload.PostgresExporter.AgentID) } @@ -216,7 +216,7 @@ func TestPostgresExporter(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddAgentRequest.PmmAgentId: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddPostgresExporterParams.PmmAgentId: value length must be at least 1 runes") if !assert.Nil(t, res) { pmmapitests.RemoveAgents(t, res.Payload.PostgresExporter.AgentID) } diff --git a/api-tests/inventory/agents_proxysql_exporter_test.go b/api-tests/inventory/agents_proxysql_exporter_test.go index a154649f1e..26f8aed2e0 100644 --- a/api-tests/inventory/agents_proxysql_exporter_test.go +++ b/api-tests/inventory/agents_proxysql_exporter_test.go @@ -181,7 +181,7 @@ func TestProxySQLExporter(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddAgentRequest.ServiceId: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddProxySQLExporterParams.ServiceId: value length must be at least 1 runes") if !assert.Nil(t, res) { pmmapitests.RemoveNodes(t, res.Payload.ProxysqlExporter.AgentID) } @@ -216,7 +216,7 @@ func TestProxySQLExporter(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddAgentRequest.PmmAgentId: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddProxySQLExporterParams.PmmAgentId: value length must be at least 1 runes") if !assert.Nil(t, res) { pmmapitests.RemoveAgents(t, res.Payload.ProxysqlExporter.AgentID) } diff --git a/api-tests/inventory/agents_rds_exporter_test.go b/api-tests/inventory/agents_rds_exporter_test.go index 892ac165fd..d912886617 100644 --- a/api-tests/inventory/agents_rds_exporter_test.go +++ b/api-tests/inventory/agents_rds_exporter_test.go @@ -167,7 +167,7 @@ func TestRDSExporter(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddAgentRequest.NodeId: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddRDSExporterParams.NodeId: value length must be at least 1 runes") if !assert.Nil(t, res) { pmmapitests.RemoveNodes(t, res.Payload.RDSExporter.AgentID) } diff --git a/api-tests/inventory/agents_test.go b/api-tests/inventory/agents_test.go index 45f8208602..93c35292c5 100644 --- a/api-tests/inventory/agents_test.go +++ b/api-tests/inventory/agents_test.go @@ -308,7 +308,7 @@ func TestPMMAgent(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddAgentRequest.RunsOnNodeId: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddPMMAgentParams.RunsOnNodeId: value length must be at least 1 runes") if !assert.Nil(t, res) { pmmapitests.RemoveNodes(t, res.Payload.PMMAgent.AgentID) } @@ -641,7 +641,7 @@ func TestQanAgentExporter(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddAgentRequest.ServiceId: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddQANMySQLPerfSchemaAgentParams.ServiceId: value length must be at least 1 runes") if !assert.Nil(t, res) { pmmapitests.RemoveAgents(t, res.Payload.QANMysqlPerfschemaAgent.AgentID) } @@ -678,7 +678,7 @@ func TestQanAgentExporter(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddAgentRequest.PmmAgentId: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddQANMySQLPerfSchemaAgentParams.PmmAgentId: value length must be at least 1 runes") if !assert.Nil(t, res) { pmmapitests.RemoveAgents(t, res.Payload.QANMysqlPerfschemaAgent.AgentID) } @@ -902,7 +902,7 @@ func TestPGStatStatementsQanAgent(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddAgentRequest.ServiceId: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddQANPostgreSQLPgStatementsAgentParams.ServiceId: value length must be at least 1 runes") if !assert.Nil(t, res) { pmmapitests.RemoveAgents(t, res.Payload.QANPostgresqlPgstatementsAgent.AgentID) } @@ -939,7 +939,7 @@ func TestPGStatStatementsQanAgent(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddQANPostgreSQLPgStatementsAgentRequest.PmmAgentId: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddQANPostgreSQLPgStatementsAgentParams.PmmAgentId: value length must be at least 1 runes") if !assert.Nil(t, res) { pmmapitests.RemoveAgents(t, res.Payload.QANPostgresqlPgstatementsAgent.AgentID) } @@ -1230,7 +1230,7 @@ func TestPGStatMonitorQanAgent(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddAgentRequest.ServiceId: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddQANPostgreSQLPgStatMonitorAgentParams.ServiceId: value length must be at least 1 runes") if !assert.Nil(t, res) { pmmapitests.RemoveAgents(t, res.Payload.QANPostgresqlPgstatmonitorAgent.AgentID) } @@ -1267,7 +1267,7 @@ func TestPGStatMonitorQanAgent(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddAgentRequest.PmmAgentId: value length must be at least 1 runes") + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddQANPostgreSQLPgStatMonitorAgentParams.PmmAgentId: value length must be at least 1 runes") if !assert.Nil(t, res) { pmmapitests.RemoveAgents(t, res.Payload.QANPostgresqlPgstatmonitorAgent.AgentID) } From 869a075401e39dcf785ea0a73e07b55f4389d4e9 Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Fri, 19 Jan 2024 15:51:52 +0000 Subject: [PATCH 18/29] PMM-12811 fix platform_test.go --- api-tests/server/platform_test.go | 95 +++++++------------------------ 1 file changed, 19 insertions(+), 76 deletions(-) diff --git a/api-tests/server/platform_test.go b/api-tests/server/platform_test.go index 5dc6df7919..56452eacbb 100644 --- a/api-tests/server/platform_test.go +++ b/api-tests/server/platform_test.go @@ -17,7 +17,6 @@ package server import ( "net/http" - "os" "testing" "github.com/AlekSi/pointer" @@ -36,18 +35,16 @@ func TestPlatform(t *testing.T) { client := platformClient.Default.PlatformService serverClient := serverClient.Default.ServerService + // TODO: provide a real PersonalAccessToken for the dev environment so this test can be run. + // The one below is a fake, it is there to fix the test compilation. + const serverName = string("my PMM") - username, password := os.Getenv("PERCONA_TEST_PORTAL_USERNAME"), os.Getenv("PERCONA_TEST_PORTAL_PASSWORD") t.Run("connect and disconnect", func(t *testing.T) { - if username == "" || password == "" { - t.Skip("Environment variables PERCONA_TEST_PORTAL_USERNAME, PERCONA_TEST_PORTAL_PASSWORD not set.") - } t.Run("PMM server does not have address set", func(t *testing.T) { _, err := client.Connect(&platform.ConnectParams{ Body: platform.ConnectBody{ - Email: "wrong@example.com", - Password: password, - ServerName: serverName, + PersonalAccessToken: "JReeZA5EqM4b6bZMxBOEaAxoc4rWd5teK7HF", + ServerName: serverName, }, Context: pmmapitests.Context, }) @@ -64,60 +61,22 @@ func TestPlatform(t *testing.T) { require.NoError(t, err) assert.Equal(t, "localhost", res.Payload.Settings.PMMPublicAddress) - t.Run("wrong email", func(t *testing.T) { + t.Run("empty access token", func(t *testing.T) { _, err := client.Connect(&platform.ConnectParams{ Body: platform.ConnectBody{ - Email: "wrong@example.com", - Password: password, - ServerName: serverName, + PersonalAccessToken: "", + ServerName: serverName, }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, http.StatusUnauthorized, codes.Unauthenticated, "Incorrect username or password.") - }) - - t.Run("wrong password", func(t *testing.T) { - _, err := client.Connect(&platform.ConnectParams{ - Body: platform.ConnectBody{ - Email: username, - Password: "WrongPassword12345", - ServerName: serverName, - }, - Context: pmmapitests.Context, - }) - pmmapitests.AssertAPIErrorf(t, err, http.StatusUnauthorized, codes.Unauthenticated, "Incorrect username or password.") - }) - - t.Run("empty email", func(t *testing.T) { - _, err := client.Connect(&platform.ConnectParams{ - Body: platform.ConnectBody{ - Email: "", - Password: password, - ServerName: serverName, - }, - Context: pmmapitests.Context, - }) - pmmapitests.AssertAPIErrorf(t, err, http.StatusBadRequest, codes.InvalidArgument, "invalid field Email: value '' must not be an empty string") - }) - - t.Run("empty password", func(t *testing.T) { - _, err := client.Connect(&platform.ConnectParams{ - Body: platform.ConnectBody{ - Email: username, - ServerName: serverName, - Password: "", - }, - Context: pmmapitests.Context, - }) - pmmapitests.AssertAPIErrorf(t, err, http.StatusBadRequest, codes.InvalidArgument, "invalid field Password: value '' must not be an empty string") + pmmapitests.AssertAPIErrorf(t, err, http.StatusBadRequest, codes.InvalidArgument, "invalid field PersonalAccessToken: value '' must not be an empty string") }) t.Run("empty server name", func(t *testing.T) { _, err := client.Connect(&platform.ConnectParams{ Body: platform.ConnectBody{ - Email: username, - Password: password, - ServerName: "", + PersonalAccessToken: "JReeZA5EqM4b6bZMxBOEaAxoc4rWd5teK7HF", + ServerName: "", }, Context: pmmapitests.Context, }) @@ -127,9 +86,8 @@ func TestPlatform(t *testing.T) { t.Run("successful connect and disconnect", func(t *testing.T) { _, err := client.Connect(&platform.ConnectParams{ Body: platform.ConnectBody{ - ServerName: serverName, - Email: username, - Password: password, + ServerName: serverName, + PersonalAccessToken: "JReeZA5EqM4b6bZMxBOEaAxoc4rWd5teK7HF", }, Context: pmmapitests.Context, }) @@ -155,16 +113,11 @@ func TestPlatform(t *testing.T) { }) t.Run("search tickets", func(t *testing.T) { - if username == "" || password == "" { - t.Skip("Environment variables PERCONA_TEST_PORTAL_USERNAME, PERCONA_TEST_PORTAL_PASSWORD not set.") - } - t.Run("success", func(t *testing.T) { _, err := client.Connect(&platform.ConnectParams{ Body: platform.ConnectBody{ - ServerName: serverName, - Email: username, - Password: password, + ServerName: serverName, + PersonalAccessToken: "JReeZA5EqM4b6bZMxBOEaAxoc4rWd5teK7HF", }, Context: pmmapitests.Context, }) @@ -183,16 +136,11 @@ func TestPlatform(t *testing.T) { }) t.Run("search entitlements", func(t *testing.T) { //nolint:dupl - if username == "" || password == "" { - t.Skip("Environment variables PERCONA_TEST_PORTAL_USERNAME, PERCONA_TEST_PORTAL_PASSWORD not set.") - } - t.Run("success", func(t *testing.T) { _, err := client.Connect(&platform.ConnectParams{ Body: platform.ConnectBody{ - ServerName: serverName, - Email: username, - Password: password, + ServerName: serverName, + PersonalAccessToken: "JReeZA5EqM4b6bZMxBOEaAxoc4rWd5teK7HF", }, Context: pmmapitests.Context, }) @@ -211,16 +159,11 @@ func TestPlatform(t *testing.T) { }) t.Run("get contact information", func(t *testing.T) { //nolint:dupl - if username == "" || password == "" { - t.Skip("Environment variables PERCONA_TEST_PORTAL_USERNAME, PERCONA_TEST_PORTAL_PASSWORD not set.") - } - t.Run("success", func(t *testing.T) { _, err := client.Connect(&platform.ConnectParams{ Body: platform.ConnectBody{ - ServerName: serverName, - Email: username, - Password: password, + ServerName: serverName, + PersonalAccessToken: "JReeZA5EqM4b6bZMxBOEaAxoc4rWd5teK7HF", }, Context: pmmapitests.Context, }) From a899be9e31b8cc96f1a90b1d37c1eeface832b68 Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Tue, 30 Jan 2024 10:22:34 +0000 Subject: [PATCH 19/29] PMM-12811 prefer a single enable boolean vs paired --- .../agents_azure_database_exporter_test.go | 23 +- .../agents_external_exporter_test.go | 24 +- .../inventory/agents_mongodb_exporter_test.go | 23 +- .../inventory/agents_mysqld_exporter_test.go | 25 +- .../inventory/agents_node_exporter_test.go | 21 +- .../agents_postgres_exporter_test.go | 27 +- .../agents_proxysql_exporter_test.go | 23 +- .../inventory/agents_rds_exporter_test.go | 23 +- api-tests/inventory/agents_test.go | 12 +- api/inventory/v1/agents.pb.go | 2527 ++++++++--------- api/inventory/v1/agents.pb.validate.go | 12 +- api/inventory/v1/agents.proto | 16 +- .../agents_service/change_agent_responses.go | 182 +- api/inventory/v1/json/v1.json | 260 +- api/swagger/swagger-dev.json | 286 +- descriptor.bin | Bin 680926 -> 680590 bytes managed/models/agent_helpers.go | 16 +- managed/services/inventory/agents.go | 26 +- managed/services/inventory/agents_test.go | 2 +- 19 files changed, 1535 insertions(+), 1993 deletions(-) diff --git a/api-tests/inventory/agents_azure_database_exporter_test.go b/api-tests/inventory/agents_azure_database_exporter_test.go index 10ae6657d8..6b13b95439 100644 --- a/api-tests/inventory/agents_azure_database_exporter_test.go +++ b/api-tests/inventory/agents_azure_database_exporter_test.go @@ -88,7 +88,7 @@ func TestAzureDatabaseExporter(t *testing.T) { //nolint:tparallel AzureDatabaseExporter: &agents.ChangeAgentParamsBodyAzureDatabaseExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyAzureDatabaseExporterCommon{ - Disable: true, + Enable: pointer.ToBool(false), RemoveCustomLabels: true, }, }, @@ -117,7 +117,7 @@ func TestAzureDatabaseExporter(t *testing.T) { //nolint:tparallel AzureDatabaseExporter: &agents.ChangeAgentParamsBodyAzureDatabaseExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyAzureDatabaseExporterCommon{ - Enable: true, + Enable: pointer.ToBool(true), CustomLabels: map[string]string{ "new_label": "azure_database_exporter", }, @@ -277,7 +277,7 @@ func TestAzureDatabaseExporter(t *testing.T) { //nolint:tparallel AzureDatabaseExporter: &agents.ChangeAgentParamsBodyAzureDatabaseExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyAzureDatabaseExporterCommon{ - EnablePushMetrics: true, + EnablePushMetrics: pointer.ToBool(true), }, }, }, @@ -306,7 +306,7 @@ func TestAzureDatabaseExporter(t *testing.T) { //nolint:tparallel AzureDatabaseExporter: &agents.ChangeAgentParamsBodyAzureDatabaseExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyAzureDatabaseExporterCommon{ - DisablePushMetrics: true, + EnablePushMetrics: pointer.ToBool(false), }, }, }, @@ -328,20 +328,5 @@ func TestAzureDatabaseExporter(t *testing.T) { //nolint:tparallel }, }, }, changeAzureDatabaseExporterOK) - _, err = client.Default.AgentsService.ChangeAgent( - &agents.ChangeAgentParams{ - Body: agents.ChangeAgentBody{ - AzureDatabaseExporter: &agents.ChangeAgentParamsBodyAzureDatabaseExporter{ - AgentID: agentID, - Common: &agents.ChangeAgentParamsBodyAzureDatabaseExporterCommon{ - EnablePushMetrics: true, - DisablePushMetrics: true, - }, - }, - }, - Context: pmmapitests.Context, - }) - - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "expected one of param: enable_push_metrics or disable_push_metrics") }) } diff --git a/api-tests/inventory/agents_external_exporter_test.go b/api-tests/inventory/agents_external_exporter_test.go index bfad278ccf..4d5710f9da 100644 --- a/api-tests/inventory/agents_external_exporter_test.go +++ b/api-tests/inventory/agents_external_exporter_test.go @@ -18,6 +18,7 @@ package inventory import ( "testing" + "github.com/AlekSi/pointer" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "google.golang.org/grpc/codes" @@ -145,7 +146,7 @@ func TestExternalExporter(t *testing.T) { ExternalExporter: &agents.ChangeAgentParamsBodyExternalExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyExternalExporterCommon{ - Disable: true, + Enable: pointer.ToBool(false), RemoveCustomLabels: true, }, }, @@ -173,7 +174,7 @@ func TestExternalExporter(t *testing.T) { ExternalExporter: &agents.ChangeAgentParamsBodyExternalExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyExternalExporterCommon{ - Enable: true, + Enable: pointer.ToBool(true), CustomLabels: map[string]string{ "new_label": "external_exporter", }, @@ -404,7 +405,7 @@ func TestExternalExporter(t *testing.T) { ExternalExporter: &agents.ChangeAgentParamsBodyExternalExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyExternalExporterCommon{ - DisablePushMetrics: true, + EnablePushMetrics: pointer.ToBool(false), }, }, }, @@ -432,7 +433,7 @@ func TestExternalExporter(t *testing.T) { ExternalExporter: &agents.ChangeAgentParamsBodyExternalExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyExternalExporterCommon{ - EnablePushMetrics: true, + EnablePushMetrics: pointer.ToBool(true), }, }, }, @@ -453,20 +454,5 @@ func TestExternalExporter(t *testing.T) { PushMetricsEnabled: true, }, }, changeExternalExporterOK.Payload) - - _, err = client.Default.AgentsService.ChangeAgent( - &agents.ChangeAgentParams{ - Body: agents.ChangeAgentBody{ - ExternalExporter: &agents.ChangeAgentParamsBodyExternalExporter{ - AgentID: agentID, - Common: &agents.ChangeAgentParamsBodyExternalExporterCommon{ - EnablePushMetrics: true, - DisablePushMetrics: true, - }, - }, - }, - Context: pmmapitests.Context, - }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "expected one of param: enable_push_metrics or disable_push_metrics") }) } diff --git a/api-tests/inventory/agents_mongodb_exporter_test.go b/api-tests/inventory/agents_mongodb_exporter_test.go index 1a6c27d838..eeb6f98a2d 100644 --- a/api-tests/inventory/agents_mongodb_exporter_test.go +++ b/api-tests/inventory/agents_mongodb_exporter_test.go @@ -103,7 +103,7 @@ func TestMongoDBExporter(t *testing.T) { MongodbExporter: &agents.ChangeAgentParamsBodyMongodbExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyMongodbExporterCommon{ - Disable: true, + Enable: pointer.ToBool(false), RemoveCustomLabels: true, }, }, @@ -134,7 +134,7 @@ func TestMongoDBExporter(t *testing.T) { MongodbExporter: &agents.ChangeAgentParamsBodyMongodbExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyMongodbExporterCommon{ - Enable: true, + Enable: pointer.ToBool(true), CustomLabels: map[string]string{ "new_label": "mongodb_exporter", }, @@ -363,7 +363,7 @@ func TestMongoDBExporter(t *testing.T) { MongodbExporter: &agents.ChangeAgentParamsBodyMongodbExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyMongodbExporterCommon{ - DisablePushMetrics: true, + EnablePushMetrics: pointer.ToBool(false), }, }, }, @@ -394,7 +394,7 @@ func TestMongoDBExporter(t *testing.T) { MongodbExporter: &agents.ChangeAgentParamsBodyMongodbExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyMongodbExporterCommon{ - EnablePushMetrics: true, + EnablePushMetrics: pointer.ToBool(true), }, }, }, @@ -419,20 +419,5 @@ func TestMongoDBExporter(t *testing.T) { }, }, }, changeMongoDBExporterOK) - - _, err = client.Default.AgentsService.ChangeAgent( - &agents.ChangeAgentParams{ - Body: agents.ChangeAgentBody{ - MongodbExporter: &agents.ChangeAgentParamsBodyMongodbExporter{ - AgentID: agentID, - Common: &agents.ChangeAgentParamsBodyMongodbExporterCommon{ - EnablePushMetrics: true, - DisablePushMetrics: true, - }, - }, - }, - Context: pmmapitests.Context, - }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "expected one of param: enable_push_metrics or disable_push_metrics") }) } diff --git a/api-tests/inventory/agents_mysqld_exporter_test.go b/api-tests/inventory/agents_mysqld_exporter_test.go index 73bbfd8235..6913bc9d88 100644 --- a/api-tests/inventory/agents_mysqld_exporter_test.go +++ b/api-tests/inventory/agents_mysqld_exporter_test.go @@ -104,7 +104,7 @@ func TestMySQLdExporter(t *testing.T) { MysqldExporter: &agents.ChangeAgentParamsBodyMysqldExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyMysqldExporterCommon{ - Disable: true, + Enable: pointer.ToBool(false), RemoveCustomLabels: true, }, }, @@ -133,7 +133,7 @@ func TestMySQLdExporter(t *testing.T) { MysqldExporter: &agents.ChangeAgentParamsBodyMysqldExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyMysqldExporterCommon{ - Enable: true, + Enable: pointer.ToBool(true), CustomLabels: map[string]string{ "new_label": "mysql_exporter", }, @@ -419,7 +419,7 @@ func TestMySQLdExporter(t *testing.T) { MysqldExporter: &agents.ChangeAgentParamsBodyMysqldExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyMysqldExporterCommon{ - DisablePushMetrics: true, + EnablePushMetrics: pointer.ToBool(false), }, }, }, @@ -448,7 +448,7 @@ func TestMySQLdExporter(t *testing.T) { MysqldExporter: &agents.ChangeAgentParamsBodyMysqldExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyMysqldExporterCommon{ - EnablePushMetrics: true, + EnablePushMetrics: pointer.ToBool(true), }, }, }, @@ -471,22 +471,5 @@ func TestMySQLdExporter(t *testing.T) { LogLevel: pointer.ToString("LOG_LEVEL_UNSPECIFIED"), }, }, changeMySQLdExporterOK.Payload) - _, err = client.Default.AgentsService.ChangeAgent(&agents.ChangeAgentParams{ - Body: agents.ChangeAgentBody{ - MysqldExporter: &agents.ChangeAgentParamsBodyMysqldExporter{ - AgentID: agentID, - Common: &agents.ChangeAgentParamsBodyMysqldExporterCommon{ - Enable: true, - CustomLabels: map[string]string{ - "new_label": "mysql_exporter", - }, - EnablePushMetrics: true, - DisablePushMetrics: true, - }, - }, - }, - Context: pmmapitests.Context, - }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "expected one of param: enable_push_metrics or disable_push_metrics") }) } diff --git a/api-tests/inventory/agents_node_exporter_test.go b/api-tests/inventory/agents_node_exporter_test.go index 5139f485ea..afd2d1ea39 100644 --- a/api-tests/inventory/agents_node_exporter_test.go +++ b/api-tests/inventory/agents_node_exporter_test.go @@ -75,7 +75,7 @@ func TestNodeExporter(t *testing.T) { NodeExporter: &agents.ChangeAgentParamsBodyNodeExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyNodeExporterCommon{ - Disable: true, + Enable: pointer.ToBool(false), RemoveCustomLabels: true, }, }, @@ -103,7 +103,7 @@ func TestNodeExporter(t *testing.T) { NodeExporter: &agents.ChangeAgentParamsBodyNodeExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyNodeExporterCommon{ - Enable: true, + Enable: pointer.ToBool(true), CustomLabels: map[string]string{ "new_label": "node_exporter", }, @@ -221,7 +221,7 @@ func TestNodeExporter(t *testing.T) { NodeExporter: &agents.ChangeAgentParamsBodyNodeExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyNodeExporterCommon{ - DisablePushMetrics: true, + EnablePushMetrics: pointer.ToBool(false), }, }, }, @@ -248,7 +248,7 @@ func TestNodeExporter(t *testing.T) { NodeExporter: &agents.ChangeAgentParamsBodyNodeExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyNodeExporterCommon{ - EnablePushMetrics: true, + EnablePushMetrics: pointer.ToBool(true), }, }, }, @@ -269,18 +269,5 @@ func TestNodeExporter(t *testing.T) { }, }, }, changeNodeExporterOK) - _, err = client.Default.AgentsService.ChangeAgent(&agents.ChangeAgentParams{ - Body: agents.ChangeAgentBody{ - NodeExporter: &agents.ChangeAgentParamsBodyNodeExporter{ - AgentID: agentID, - Common: &agents.ChangeAgentParamsBodyNodeExporterCommon{ - EnablePushMetrics: true, - DisablePushMetrics: true, - }, - }, - }, - Context: pmmapitests.Context, - }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "expected one of param: enable_push_metrics or disable_push_metrics") }) } diff --git a/api-tests/inventory/agents_postgres_exporter_test.go b/api-tests/inventory/agents_postgres_exporter_test.go index 611fd2dc29..c3c4e775ad 100644 --- a/api-tests/inventory/agents_postgres_exporter_test.go +++ b/api-tests/inventory/agents_postgres_exporter_test.go @@ -102,7 +102,7 @@ func TestPostgresExporter(t *testing.T) { PostgresExporter: &agents.ChangeAgentParamsBodyPostgresExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyPostgresExporterCommon{ - Disable: true, + Enable: pointer.ToBool(false), RemoveCustomLabels: true, }, }, @@ -132,7 +132,7 @@ func TestPostgresExporter(t *testing.T) { PostgresExporter: &agents.ChangeAgentParamsBodyPostgresExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyPostgresExporterCommon{ - Enable: true, + Enable: pointer.ToBool(true), CustomLabels: map[string]string{ "new_label": "postgres_exporter", }, @@ -359,7 +359,7 @@ func TestPostgresExporter(t *testing.T) { PostgresExporter: &agents.ChangeAgentParamsBodyPostgresExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyPostgresExporterCommon{ - DisablePushMetrics: true, + EnablePushMetrics: pointer.ToBool(false), }, }, }, @@ -389,7 +389,7 @@ func TestPostgresExporter(t *testing.T) { PostgresExporter: &agents.ChangeAgentParamsBodyPostgresExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyPostgresExporterCommon{ - EnablePushMetrics: true, + EnablePushMetrics: pointer.ToBool(true), }, }, }, @@ -413,24 +413,5 @@ func TestPostgresExporter(t *testing.T) { }, }, }, changePostgresExporterOK) - - _, err = client.Default.AgentsService.ChangeAgent( - &agents.ChangeAgentParams{ - Body: agents.ChangeAgentBody{ - PostgresExporter: &agents.ChangeAgentParamsBodyPostgresExporter{ - AgentID: agentID, - Common: &agents.ChangeAgentParamsBodyPostgresExporterCommon{ - Enable: true, - CustomLabels: map[string]string{ - "new_label": "postgres_exporter", - }, - EnablePushMetrics: true, - DisablePushMetrics: true, - }, - }, - }, - Context: pmmapitests.Context, - }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "expected one of param: enable_push_metrics or disable_push_metrics") }) } diff --git a/api-tests/inventory/agents_proxysql_exporter_test.go b/api-tests/inventory/agents_proxysql_exporter_test.go index 26f8aed2e0..78f81dd225 100644 --- a/api-tests/inventory/agents_proxysql_exporter_test.go +++ b/api-tests/inventory/agents_proxysql_exporter_test.go @@ -102,7 +102,7 @@ func TestProxySQLExporter(t *testing.T) { ProxysqlExporter: &agents.ChangeAgentParamsBodyProxysqlExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyProxysqlExporterCommon{ - Disable: true, + Enable: pointer.ToBool(false), RemoveCustomLabels: true, }, }, @@ -132,7 +132,7 @@ func TestProxySQLExporter(t *testing.T) { ProxysqlExporter: &agents.ChangeAgentParamsBodyProxysqlExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyProxysqlExporterCommon{ - Enable: true, + Enable: pointer.ToBool(true), CustomLabels: map[string]string{ "new_label": "proxysql_exporter", }, @@ -352,7 +352,7 @@ func TestProxySQLExporter(t *testing.T) { ProxysqlExporter: &agents.ChangeAgentParamsBodyProxysqlExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyProxysqlExporterCommon{ - EnablePushMetrics: true, + EnablePushMetrics: pointer.ToBool(true), }, }, }, @@ -383,7 +383,7 @@ func TestProxySQLExporter(t *testing.T) { ProxysqlExporter: &agents.ChangeAgentParamsBodyProxysqlExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyProxysqlExporterCommon{ - DisablePushMetrics: true, + EnablePushMetrics: pointer.ToBool(false), }, }, }, @@ -406,20 +406,5 @@ func TestProxySQLExporter(t *testing.T) { }, }, }, changeProxySQLExporterOK) - - _, err = client.Default.AgentsService.ChangeAgent( - &agents.ChangeAgentParams{ - Body: agents.ChangeAgentBody{ - ProxysqlExporter: &agents.ChangeAgentParamsBodyProxysqlExporter{ - AgentID: agentID, - Common: &agents.ChangeAgentParamsBodyProxysqlExporterCommon{ - EnablePushMetrics: true, - DisablePushMetrics: true, - }, - }, - }, - Context: pmmapitests.Context, - }) - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "expected one of param: enable_push_metrics or disable_push_metrics") }) } diff --git a/api-tests/inventory/agents_rds_exporter_test.go b/api-tests/inventory/agents_rds_exporter_test.go index d912886617..7b250d4294 100644 --- a/api-tests/inventory/agents_rds_exporter_test.go +++ b/api-tests/inventory/agents_rds_exporter_test.go @@ -88,7 +88,7 @@ func TestRDSExporter(t *testing.T) { RDSExporter: &agents.ChangeAgentParamsBodyRDSExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyRDSExporterCommon{ - Disable: true, + Enable: pointer.ToBool(false), RemoveCustomLabels: true, }, }, @@ -118,7 +118,7 @@ func TestRDSExporter(t *testing.T) { RDSExporter: &agents.ChangeAgentParamsBodyRDSExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyRDSExporterCommon{ - Enable: true, + Enable: pointer.ToBool(true), CustomLabels: map[string]string{ "new_label": "rds_exporter", }, @@ -279,7 +279,7 @@ func TestRDSExporter(t *testing.T) { RDSExporter: &agents.ChangeAgentParamsBodyRDSExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyRDSExporterCommon{ - EnablePushMetrics: true, + EnablePushMetrics: pointer.ToBool(true), }, }, }, @@ -310,7 +310,7 @@ func TestRDSExporter(t *testing.T) { RDSExporter: &agents.ChangeAgentParamsBodyRDSExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyRDSExporterCommon{ - DisablePushMetrics: true, + EnablePushMetrics: pointer.ToBool(false), }, }, }, @@ -333,20 +333,5 @@ func TestRDSExporter(t *testing.T) { }, }, }, changeRDSExporterOK) - _, err = client.Default.AgentsService.ChangeAgent( - &agents.ChangeAgentParams{ - Body: agents.ChangeAgentBody{ - RDSExporter: &agents.ChangeAgentParamsBodyRDSExporter{ - AgentID: agentID, - Common: &agents.ChangeAgentParamsBodyRDSExporterCommon{ - EnablePushMetrics: true, - DisablePushMetrics: true, - }, - }, - }, - Context: pmmapitests.Context, - }) - - pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "expected one of param: enable_push_metrics or disable_push_metrics") }) } diff --git a/api-tests/inventory/agents_test.go b/api-tests/inventory/agents_test.go index 93c35292c5..1e210e160e 100644 --- a/api-tests/inventory/agents_test.go +++ b/api-tests/inventory/agents_test.go @@ -560,7 +560,7 @@ func TestQanAgentExporter(t *testing.T) { QANMysqlPerfschemaAgent: &agents.ChangeAgentParamsBodyQANMysqlPerfschemaAgent{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon{ - Disable: true, + Enable: pointer.ToBool(false), RemoveCustomLabels: true, }, }, @@ -589,7 +589,7 @@ func TestQanAgentExporter(t *testing.T) { QANMysqlPerfschemaAgent: &agents.ChangeAgentParamsBodyQANMysqlPerfschemaAgent{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon{ - Enable: true, + Enable: pointer.ToBool(true), CustomLabels: map[string]string{ "new_label": "QANMysqlPerfschemaAgent", }, @@ -821,7 +821,7 @@ func TestPGStatStatementsQanAgent(t *testing.T) { QANPostgresqlPgstatementsAgent: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon{ - Disable: true, + Enable: pointer.ToBool(false), RemoveCustomLabels: true, }, }, @@ -850,7 +850,7 @@ func TestPGStatStatementsQanAgent(t *testing.T) { QANPostgresqlPgstatementsAgent: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon{ - Enable: true, + Enable: pointer.ToBool(true), CustomLabels: map[string]string{ "new_label": "QANPostgreSQLPgStatementsAgent", }, @@ -1082,7 +1082,7 @@ func TestPGStatMonitorQanAgent(t *testing.T) { QANPostgresqlPgstatmonitorAgent: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon{ - Disable: true, + Enable: pointer.ToBool(false), RemoveCustomLabels: true, }, }, @@ -1111,7 +1111,7 @@ func TestPGStatMonitorQanAgent(t *testing.T) { QANPostgresqlPgstatmonitorAgent: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon{ - Enable: true, + Enable: pointer.ToBool(true), CustomLabels: map[string]string{ "new_label": "QANPostgreSQLPgStatMonitorAgent", }, diff --git a/api/inventory/v1/agents.pb.go b/api/inventory/v1/agents.pb.go index 94e98ca7bb..1f70d20d24 100644 --- a/api/inventory/v1/agents.pb.go +++ b/api/inventory/v1/agents.pb.go @@ -2533,18 +2533,14 @@ type ChangeCommonAgentParams struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Enable this Agent. Can't be used with disabled. - Enable bool `protobuf:"varint,1,opt,name=enable,proto3" json:"enable,omitempty"` - // Disable this Agent. Can't be used with enabled. - Disable bool `protobuf:"varint,2,opt,name=disable,proto3" json:"disable,omitempty"` + // Enable this Agent. Agents are enabled by default when they get added. + Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` // Replace all custom user-assigned labels. - CustomLabels map[string]string `protobuf:"bytes,3,rep,name=custom_labels,json=customLabels,proto3" json:"custom_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + CustomLabels map[string]string `protobuf:"bytes,2,rep,name=custom_labels,json=customLabels,proto3" json:"custom_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Remove all custom user-assigned labels. - RemoveCustomLabels bool `protobuf:"varint,4,opt,name=remove_custom_labels,json=removeCustomLabels,proto3" json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - EnablePushMetrics bool `protobuf:"varint,5,opt,name=enable_push_metrics,json=enablePushMetrics,proto3" json:"enable_push_metrics,omitempty"` - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `protobuf:"varint,6,opt,name=disable_push_metrics,json=disablePushMetrics,proto3" json:"disable_push_metrics,omitempty"` + RemoveCustomLabels bool `protobuf:"varint,3,opt,name=remove_custom_labels,json=removeCustomLabels,proto3" json:"remove_custom_labels,omitempty"` + // Enables push metrics with vmagent. + EnablePushMetrics *bool `protobuf:"varint,4,opt,name=enable_push_metrics,json=enablePushMetrics,proto3,oneof" json:"enable_push_metrics,omitempty"` } func (x *ChangeCommonAgentParams) Reset() { @@ -2580,15 +2576,8 @@ func (*ChangeCommonAgentParams) Descriptor() ([]byte, []int) { } func (x *ChangeCommonAgentParams) GetEnable() bool { - if x != nil { - return x.Enable - } - return false -} - -func (x *ChangeCommonAgentParams) GetDisable() bool { - if x != nil { - return x.Disable + if x != nil && x.Enable != nil { + return *x.Enable } return false } @@ -2608,15 +2597,8 @@ func (x *ChangeCommonAgentParams) GetRemoveCustomLabels() bool { } func (x *ChangeCommonAgentParams) GetEnablePushMetrics() bool { - if x != nil { - return x.EnablePushMetrics - } - return false -} - -func (x *ChangeCommonAgentParams) GetDisablePushMetrics() bool { - if x != nil { - return x.DisablePushMetrics + if x != nil && x.EnablePushMetrics != nil { + return *x.EnablePushMetrics } return false } @@ -7884,882 +7866,825 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 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, 0xfe, 0x02, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x16, 0x0a, - 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, - 0x5c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x30, 0x0a, - 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x72, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, - 0x2e, 0x0a, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, - 0x30, 0x0a, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 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, 0xa5, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, - 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, - 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x49, 0x64, 0x12, 0x36, 0x0a, 0x0a, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x09, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0xe7, 0x09, 0x0a, 0x12, 0x4c, - 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x33, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x70, 0x6d, - 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x08, 0x76, 0x6d, 0x5f, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, - 0x07, 0x76, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4e, - 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x0c, 0x6e, 0x6f, 0x64, - 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x0f, 0x6d, 0x79, 0x73, - 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x12, 0x48, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, - 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, - 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x11, 0x70, 0x6f, - 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, - 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x12, 0x62, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, - 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, - 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, - 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x59, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, - 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x01, 0x22, 0xdf, 0x02, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1b, 0x0a, + 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x0d, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x33, 0x0a, 0x13, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 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, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x22, 0xa5, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, + 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, + 0x64, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x0a, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x09, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0xe7, 0x09, 0x0a, 0x12, + 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x70, + 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x08, 0x76, 0x6d, 0x5f, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x52, 0x07, 0x76, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x0c, 0x6e, 0x6f, + 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x0f, 0x6d, 0x79, + 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x12, 0x48, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, + 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, + 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x11, 0x70, + 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, + 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x62, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, + 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, - 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x14, 0x71, - 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, - 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, - 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x17, - 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x77, 0x0a, 0x21, 0x71, 0x61, 0x6e, 0x5f, 0x70, - 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, - 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, - 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x12, 0x7a, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, - 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, - 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, - 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, - 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x1f, 0x71, 0x61, 0x6e, - 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, - 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x11, - 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x12, 0x3c, 0x0a, 0x0c, 0x72, 0x64, 0x73, - 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, - 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x5b, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x15, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x22, 0x35, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x8b, 0x0a, 0x0a, 0x10, - 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x35, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x08, 0x70, - 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x07, 0x76, 0x6d, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, - 0x00, 0x52, 0x07, 0x76, 0x6d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0d, 0x6e, 0x6f, - 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, - 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, - 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, - 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, - 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, - 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, - 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, - 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, - 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, - 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, - 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, - 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, - 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, - 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x14, 0x71, - 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, - 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, - 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, - 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, 0x21, 0x71, 0x61, 0x6e, - 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, - 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, - 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, - 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, - 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, - 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, - 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, - 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x12, 0x5d, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, - 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0x4f, 0x0a, 0x13, 0x47, 0x65, 0x74, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x6a, 0x0a, 0x14, 0x47, 0x65, - 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x3e, 0x0a, 0x1c, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x6f, 0x67, 0x4c, 0x69, 0x6e, 0x65, - 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xd7, 0x0a, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x70, 0x6d, - 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, - 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, - 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0d, 0x6e, 0x6f, - 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, - 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x64, 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, - 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, - 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, - 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x67, - 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, - 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, - 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, + 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x59, 0x0a, 0x17, 0x71, 0x61, 0x6e, + 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, + 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x14, + 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, + 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, + 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, + 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x77, 0x0a, 0x21, 0x71, 0x61, 0x6e, 0x5f, + 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, + 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, + 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x12, 0x7a, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, + 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, + 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, + 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x1f, 0x71, 0x61, + 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, + 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x44, - 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, - 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x66, - 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x64, 0x64, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, - 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x6d, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, - 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, - 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, - 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, - 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, - 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, - 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x6d, 0x0a, 0x1a, 0x71, - 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, - 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x82, 0x01, 0x0a, 0x21, 0x71, - 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, - 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, - 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, - 0x85, 0x01, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, - 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, - 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, - 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, - 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, - 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, - 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x22, 0xf9, 0x09, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x48, 0x00, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0d, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, - 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, - 0x47, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, - 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, - 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, - 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, - 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, + 0x65, 0x72, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x12, 0x3c, 0x0a, 0x0c, 0x72, 0x64, + 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x0b, 0x72, 0x64, 0x73, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x5b, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, + 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x15, + 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x22, 0x35, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x8b, 0x0a, 0x0a, + 0x10, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x35, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x08, + 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x07, 0x76, 0x6d, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x48, 0x00, 0x52, 0x07, 0x76, 0x6d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0d, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, + 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x47, + 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, + 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, - 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, - 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, + 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, + 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, - 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x12, 0x5d, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, - 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, + 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, + 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, + 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, + 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, + 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, + 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, + 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x14, + 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, + 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, + 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, + 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, 0x21, 0x71, 0x61, + 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, + 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, + 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, + 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, + 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, + 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, + 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, + 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x12, 0x5d, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0x4f, 0x0a, 0x13, 0x47, 0x65, + 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x6a, 0x0a, 0x14, 0x47, + 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x3e, 0x0a, 0x1c, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x69, 0x6e, 0x65, + 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x6f, 0x67, 0x4c, 0x69, 0x6e, + 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xd7, 0x0a, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x70, + 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, + 0x64, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, + 0x00, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0d, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, - 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, - 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, + 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, + 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x64, 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, + 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, + 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x6d, + 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, + 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x74, + 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, + 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, + 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, + 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x52, + 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, + 0x66, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, + 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x6d, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, + 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, + 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, + 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, - 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x14, 0x71, - 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, - 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, - 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, - 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, 0x21, 0x71, 0x61, 0x6e, - 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, - 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, - 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, - 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, + 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, + 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x6d, 0x0a, 0x1a, + 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x82, 0x01, 0x0a, 0x21, + 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, + 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, + 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, + 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, + 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x12, 0x85, 0x01, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, + 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, - 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, - 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, - 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xc1, 0x0a, 0x0a, - 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x12, 0x53, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, - 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0f, - 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, - 0x59, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, + 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, + 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x22, 0xf9, 0x09, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, + 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x12, 0x47, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, + 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, + 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, - 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x11, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, - 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, - 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x12, 0x4a, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x44, 0x53, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, - 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x69, 0x0a, 0x17, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, - 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x70, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, - 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, + 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, + 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, + 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, + 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x12, 0x5d, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, + 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, + 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, + 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, + 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, + 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x14, + 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, + 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, + 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, + 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, 0x21, 0x71, 0x61, + 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, + 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, + 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, + 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, + 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, + 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, + 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xc1, 0x0a, + 0x0a, 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, - 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x67, 0x0a, 0x17, 0x71, 0x61, 0x6e, - 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, - 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x12, 0x70, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, - 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, - 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, - 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x12, 0x85, 0x01, 0x0a, 0x21, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, - 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x38, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, - 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x88, 0x01, 0x0a, - 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, - 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, - 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, - 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, - 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, - 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x22, 0xc5, 0x09, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4e, - 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x6e, - 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0f, 0x6d, - 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, - 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, + 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, + 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, - 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, - 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, - 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, - 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, - 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x3e, 0x0a, - 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, - 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x5d, 0x0a, + 0x12, 0x59, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, + 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x11, 0x70, + 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x78, + 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, + 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x12, 0x4a, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x44, 0x53, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, + 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x69, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, - 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x64, 0x0a, 0x1a, - 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, - 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, - 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, - 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, - 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, - 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, + 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x70, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, + 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, + 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x67, 0x0a, 0x17, 0x71, 0x61, + 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x14, 0x71, + 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x12, 0x70, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, + 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, + 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, 0x21, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, - 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, - 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, - 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, - 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, - 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, - 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, - 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1f, 0x71, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x85, 0x01, 0x0a, 0x21, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, + 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x38, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, + 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, - 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1f, - 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xdc, 0x01, 0x0a, 0x11, 0x41, 0x64, 0x64, - 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, - 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, - 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x73, 0x4f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x56, - 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x8f, 0x03, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x4e, - 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, - 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x5a, 0x0a, 0x0d, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, - 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, - 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x7d, 0x0a, 0x18, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, - 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x9d, 0x06, 0x0a, 0x17, 0x41, 0x64, 0x64, - 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, - 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, - 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, - 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, - 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, - 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x3f, 0x0a, - 0x1c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x5c, - 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, - 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0c, 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, - 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, - 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, - 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x1a, 0x3f, 0x0a, 0x11, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x88, 0x01, + 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, + 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, + 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, + 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, + 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x22, 0xc5, 0x09, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, + 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0f, + 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, + 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, + 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, + 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, + 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, + 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, + 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, + 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x3e, + 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, + 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x5d, + 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x64, 0x0a, + 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, + 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, + 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, + 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, + 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, + 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, + 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, 0x21, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, + 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, + 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, + 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, + 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, + 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, + 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1f, + 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, + 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, + 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xdc, 0x01, 0x0a, 0x11, 0x41, 0x64, + 0x64, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x2e, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x73, 0x4f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, + 0x56, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x7f, 0x0a, 0x1a, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8f, 0x03, 0x0a, 0x15, 0x41, 0x64, 0x64, + 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x5a, 0x0a, + 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, + 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x6c, + 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, + 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, + 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x7d, 0x0a, 0x18, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xe9, 0x07, 0x0a, 0x18, 0x41, 0x64, - 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, - 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, - 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, - 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x74, - 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x48, 0x0a, 0x21, 0x74, - 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6b, - 0x65, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x5d, 0x0a, 0x0d, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0b, 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, 0x12, - 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x73, 0x12, 0x39, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x12, 0x37, 0x0a, 0x17, - 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, - 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, - 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, - 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x2b, 0x0a, 0x11, - 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x61, 0x74, 0x73, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x12, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, - 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 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, 0x80, 0x01, 0x0a, 0x1b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, - 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x92, 0x06, 0x0a, 0x19, 0x41, 0x64, 0x64, - 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, - 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, - 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, - 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, - 0x72, 0x69, 0x66, 0x79, 0x12, 0x5e, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x6f, - 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 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, 0x08, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, - 0x73, 0x5f, 0x63, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, - 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, - 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, - 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, - 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x33, 0x0a, 0x09, - 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, - 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x12, 0x61, 0x75, 0x74, 0x6f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, - 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x81, 0x01, - 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, - 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x22, 0x95, 0x05, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, - 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, - 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, - 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, - 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, - 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x5e, 0x0a, - 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, + 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x9d, 0x06, 0x0a, 0x17, 0x41, 0x64, + 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, + 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, + 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, + 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, + 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x3f, + 0x0a, 0x1c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x5c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x73, 0x6b, + 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x0c, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, + 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x67, 0x65, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, - 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, + 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, + 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x81, 0x01, 0x0a, 0x1c, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, - 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xe6, 0x05, - 0x0a, 0x20, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, - 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, - 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, - 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, - 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, - 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, - 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, - 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, - 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x65, 0x0a, 0x0d, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0c, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, - 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 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, 0x0d, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, - 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, - 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x1a, 0x3f, 0x0a, 0x11, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7f, 0x0a, 0x1a, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xe9, 0x07, 0x0a, 0x18, 0x41, + 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, + 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, + 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x2e, 0x0a, 0x13, + 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x6c, 0x73, 0x43, 0x65, + 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x48, 0x0a, 0x21, + 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, + 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x5d, 0x0a, + 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0b, 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, + 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x73, 0x12, 0x39, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x12, 0x37, 0x0a, + 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, + 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, + 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x2b, 0x0a, + 0x11, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x61, 0x74, 0x73, 0x43, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, + 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x88, 0x01, 0x0a, 0x23, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, - 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x22, 0x93, 0x06, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, - 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x80, 0x01, 0x0a, 0x1b, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x92, 0x06, 0x0a, 0x19, 0x41, 0x64, + 0x64, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, + 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, + 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, + 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x5e, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, + 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x08, + 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, + 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x74, + 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, + 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, + 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, + 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x33, 0x0a, + 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x12, 0x61, 0x75, 0x74, 0x6f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, + 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x81, + 0x01, 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x22, 0x95, 0x05, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, + 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, + 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x5e, + 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x08, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x33, 0x0a, 0x09, 0x6c, + 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, + 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, + 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x81, 0x01, 0x0a, 0x1c, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xe6, + 0x05, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, + 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, @@ -8783,154 +8708,38 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x15, - 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x66, 0x69, 0x6c, 0x65, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6d, 0x61, 0x78, - 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, - 0x62, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, - 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, + 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x65, 0x0a, 0x0d, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0c, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, + 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0e, 0x20, 0x01, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x0d, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, - 0x69, 0x6e, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, - 0x67, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x10, + 0x67, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x85, 0x01, 0x0a, 0x20, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, - 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, - 0xa7, 0x06, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, - 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, - 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, - 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, - 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, - 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, - 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x74, 0x6c, 0x73, - 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x48, 0x0a, 0x21, 0x74, 0x6c, 0x73, - 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, - 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, - 0x6f, 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, - 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x12, 0x65, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, - 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0c, 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, 0x12, - 0x39, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x12, 0x37, 0x0a, 0x17, 0x61, 0x75, - 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, 0x75, 0x74, - 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x62, - 0x61, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, - 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x88, 0x01, 0x0a, 0x23, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xbe, 0x05, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, - 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, - 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x6c, - 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, - 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x08, 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, - 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, - 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, - 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, - 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, - 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 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, 0x8f, 0x01, 0x0a, 0x2a, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, - 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xf6, 0x05, 0x0a, 0x28, 0x41, 0x64, 0x64, 0x51, - 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, - 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x88, 0x01, 0x0a, 0x23, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x22, 0x93, 0x06, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, + 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, @@ -8944,304 +8753,475 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, - 0x66, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, - 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, - 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, - 0x65, 0x73, 0x12, 0x6d, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, - 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, - 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 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, 0x0a, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, - 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, - 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, - 0x72, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, - 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, - 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x90, 0x01, 0x0a, 0x2b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, - 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, - 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x22, 0xc5, 0x04, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x52, 0x44, 0x53, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, - 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x77, 0x73, - 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x61, 0x77, 0x73, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, - 0x24, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x77, 0x73, 0x53, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x59, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x52, - 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 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, 0x06, 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, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x62, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x73, 0x69, - 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x7c, 0x0a, 0x17, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xcf, 0x03, 0x0a, 0x19, 0x41, 0x64, - 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x73, 0x5f, - 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x73, 0x4f, - 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2c, 0x0a, 0x0b, 0x6c, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0b, - 0xfa, 0x42, 0x08, 0x2a, 0x06, 0x10, 0x80, 0x80, 0x04, 0x20, 0x00, 0x52, 0x0a, 0x6c, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x5e, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, - 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, - 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 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, 0x81, 0x01, 0x0a, 0x1c, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, - 0xcf, 0x05, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, - 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, - 0x26, 0x0a, 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x5f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x32, 0x0a, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x12, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x48, 0x0a, 0x1c, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, - 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x19, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, - 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x63, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, + 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, + 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, + 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x28, 0x0a, + 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, + 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x31, 0x0a, + 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x66, 0x69, 0x6c, + 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6d, 0x61, + 0x78, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x12, 0x62, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, + 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0a, 0x20, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x0e, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x6c, - 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, + 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, + 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, + 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, + 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x85, 0x01, 0x0a, 0x20, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, + 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, + 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x22, 0xa7, 0x06, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, + 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, + 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, + 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, + 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, + 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x74, 0x6c, + 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x48, 0x0a, 0x21, 0x74, 0x6c, + 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, + 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x28, 0x0a, 0x10, 0x6d, + 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x65, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, + 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0c, 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, + 0x12, 0x39, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x12, 0x37, 0x0a, 0x17, 0x61, + 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, 0x75, + 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, + 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x88, 0x01, 0x0a, 0x23, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xbe, 0x05, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, + 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, + 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, + 0x6c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, + 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x08, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x10, 0x6d, + 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, + 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, + 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x8f, 0x01, 0x0a, 0x2a, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xf6, 0x05, 0x0a, 0x28, 0x41, 0x64, 0x64, + 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, + 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, + 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, + 0x69, 0x66, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, + 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x34, 0x0a, + 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, + 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x73, 0x12, 0x6d, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, + 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, + 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 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, 0x0a, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, + 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, + 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, + 0x65, 0x72, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, + 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x09, 0x6c, + 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x86, 0x01, 0x0a, 0x21, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x7a, 0x75, 0x72, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x01, 0x22, 0x90, 0x01, 0x0a, 0x2b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, + 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, + 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xc5, 0x04, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x52, 0x44, 0x53, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, + 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, + 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x77, + 0x73, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x61, 0x77, 0x73, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, + 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x77, 0x73, 0x53, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x59, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, + 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 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, 0x06, 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, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x62, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x73, + 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x7c, 0x0a, 0x17, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2a, 0xc7, 0x04, 0x0a, 0x09, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x1a, 0x0a, 0x16, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x41, - 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4d, 0x4d, 0x5f, 0x41, 0x47, - 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4d, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x1c, - 0x0a, 0x18, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x44, - 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, - 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, - 0x44, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, - 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x4f, 0x4e, 0x47, 0x4f, - 0x44, 0x42, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x05, 0x12, 0x20, 0x0a, - 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x54, - 0x47, 0x52, 0x45, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x06, 0x12, - 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x52, - 0x4f, 0x58, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, - 0x07, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x50, 0x45, 0x52, 0x46, 0x53, 0x43, - 0x48, 0x45, 0x4d, 0x41, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x08, 0x12, 0x26, 0x0a, 0x22, - 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, - 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x53, 0x4c, 0x4f, 0x57, 0x4c, 0x4f, 0x47, 0x5f, 0x41, 0x47, 0x45, - 0x4e, 0x54, 0x10, 0x09, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x4f, 0x4e, 0x47, 0x4f, 0x44, 0x42, 0x5f, 0x50, - 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x52, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x0a, 0x12, - 0x30, 0x0a, 0x2c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, - 0x4e, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x51, 0x4c, 0x5f, 0x50, 0x47, 0x53, - 0x54, 0x41, 0x54, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, - 0x0b, 0x12, 0x31, 0x0a, 0x2d, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x51, 0x41, 0x4e, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x51, 0x4c, 0x5f, 0x50, - 0x47, 0x53, 0x54, 0x41, 0x54, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x47, 0x45, - 0x4e, 0x54, 0x10, 0x0c, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45, 0x58, 0x50, 0x4f, - 0x52, 0x54, 0x45, 0x52, 0x10, 0x0d, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x44, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, - 0x52, 0x10, 0x0e, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x41, 0x5a, 0x55, 0x52, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, - 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0f, 0x32, 0xaf, 0x08, 0x0a, 0x0d, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xa4, 0x01, - 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, + 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xcf, 0x03, 0x0a, 0x19, 0x41, + 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x73, + 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x73, + 0x4f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2c, 0x0a, 0x0b, 0x6c, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x0b, 0xfa, 0x42, 0x08, 0x2a, 0x06, 0x10, 0x80, 0x80, 0x04, 0x20, 0x00, 0x52, 0x0a, 0x6c, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x5e, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, + 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 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, 0x81, 0x01, 0x0a, + 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, + 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x22, 0xcf, 0x05, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, + 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, + 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x7a, 0x75, 0x72, 0x65, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x7a, 0x75, 0x72, + 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x7a, 0x75, 0x72, + 0x65, 0x5f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x32, 0x0a, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x13, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x12, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x48, 0x0a, 0x1c, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x19, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x63, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0a, + 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, + 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x33, 0x0a, 0x09, + 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 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, 0x86, 0x01, 0x0a, 0x21, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x7a, 0x75, + 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x4e, 0x0a, 0x12, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2a, 0xc7, 0x04, 0x0a, 0x09, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, + 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4d, 0x4d, 0x5f, 0x41, + 0x47, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4d, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, + 0x1c, 0x0a, 0x18, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, + 0x44, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x03, 0x12, 0x1e, 0x0a, + 0x1a, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x59, 0x53, 0x51, + 0x4c, 0x44, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x04, 0x12, 0x1f, 0x0a, + 0x1b, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x4f, 0x4e, 0x47, + 0x4f, 0x44, 0x42, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x05, 0x12, 0x20, + 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x53, + 0x54, 0x47, 0x52, 0x45, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x06, + 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, + 0x52, 0x4f, 0x58, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, + 0x10, 0x07, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x50, 0x45, 0x52, 0x46, 0x53, + 0x43, 0x48, 0x45, 0x4d, 0x41, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x08, 0x12, 0x26, 0x0a, + 0x22, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, + 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x53, 0x4c, 0x4f, 0x57, 0x4c, 0x4f, 0x47, 0x5f, 0x41, 0x47, + 0x45, 0x4e, 0x54, 0x10, 0x09, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x4f, 0x4e, 0x47, 0x4f, 0x44, 0x42, 0x5f, + 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x52, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x0a, + 0x12, 0x30, 0x0a, 0x2c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, + 0x41, 0x4e, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x51, 0x4c, 0x5f, 0x50, 0x47, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, + 0x10, 0x0b, 0x12, 0x31, 0x0a, 0x2d, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x51, 0x4c, 0x5f, + 0x50, 0x47, 0x53, 0x54, 0x41, 0x54, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x47, + 0x45, 0x4e, 0x54, 0x10, 0x0c, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45, 0x58, 0x50, + 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0d, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x47, 0x45, 0x4e, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x44, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, + 0x45, 0x52, 0x10, 0x0e, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x41, 0x5a, 0x55, 0x52, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, + 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0f, 0x32, 0xaf, 0x08, 0x0a, + 0x0d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xa4, + 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x53, 0x92, 0x41, 0x2c, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x73, 0x1a, 0x1d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, - 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2e, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x69, + 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x53, 0x92, 0x41, 0x2c, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x73, 0x1a, 0x1d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, + 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, 0x2f, 0x76, 0x31, 0x2f, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, + 0x2f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x9b, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x50, 0x92, 0x41, 0x2a, 0x12, 0x09, 0x47, 0x65, 0x74, 0x20, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x1a, 0x1d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x73, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x79, 0x20, 0x49, 0x44, 0x2e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x9b, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x12, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x50, 0x92, 0x41, 0x2a, 0x12, 0x09, 0x47, 0x65, 0x74, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x1a, 0x1d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x79, 0x20, 0x49, 0x44, 0x2e, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x47, - 0x65, 0x74, 0x12, 0xac, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, - 0x6f, 0x67, 0x73, 0x12, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, - 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x55, 0x92, 0x41, 0x2b, 0x12, - 0x0e, 0x47, 0x65, 0x74, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x6f, 0x67, 0x73, 0x1a, - 0x19, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x6c, - 0x6f, 0x67, 0x73, 0x20, 0x62, 0x79, 0x20, 0x49, 0x44, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, - 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, - 0x73, 0x12, 0xa9, 0x01, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1d, + 0x47, 0x65, 0x74, 0x12, 0xac, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, + 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x55, 0x92, 0x41, 0x2b, + 0x12, 0x0e, 0x47, 0x65, 0x74, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x6f, 0x67, 0x73, + 0x1a, 0x19, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, + 0x6c, 0x6f, 0x67, 0x73, 0x20, 0x62, 0x79, 0x20, 0x49, 0x44, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x47, 0x65, 0x74, 0x4c, 0x6f, + 0x67, 0x73, 0x12, 0xa9, 0x01, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, + 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, - 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5e, 0x92, - 0x41, 0x38, 0x12, 0x19, 0x41, 0x64, 0x64, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x20, 0x74, 0x6f, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x1b, 0x41, - 0x64, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, - 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, - 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x41, 0x64, 0x64, 0x12, 0xbb, 0x01, - 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x67, 0x92, 0x41, 0x3e, 0x12, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, + 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5e, + 0x92, 0x41, 0x38, 0x12, 0x19, 0x41, 0x64, 0x64, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x20, 0x74, 0x6f, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x1b, + 0x41, 0x64, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, + 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x41, 0x64, 0x64, 0x12, 0xbb, + 0x01, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x20, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x67, 0x92, 0x41, 0x3e, 0x12, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x49, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x49, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, - 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, - 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0xbf, 0x01, 0x0a, 0x0b, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x6b, 0x92, 0x41, 0x42, 0x12, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6e, - 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x73, 0x20, 0x61, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, + 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0xbf, 0x01, 0x0a, + 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x6b, 0x92, 0x41, 0x42, 0x12, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, - 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0xa5, 0x01, - 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x42, 0x0b, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x65, - 0x72, 0x63, 0x6f, 0x6e, 0x61, 0x2f, 0x70, 0x6d, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x3b, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x49, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x49, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0c, 0x49, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x18, 0x49, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x73, 0x20, + 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, + 0x2a, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0xa5, + 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, + 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x61, 0x2f, 0x70, 0x6d, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x3b, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x49, 0x58, 0x58, 0xaa, 0x02, 0x0c, + 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0c, 0x49, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x18, 0x49, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -10203,6 +10183,7 @@ func file_inventory_v1_agents_proto_init() { } } } + file_inventory_v1_agents_proto_msgTypes[15].OneofWrappers = []interface{}{} file_inventory_v1_agents_proto_msgTypes[19].OneofWrappers = []interface{}{ (*GetAgentResponse_PmmAgent)(nil), (*GetAgentResponse_Vmagent)(nil), diff --git a/api/inventory/v1/agents.pb.validate.go b/api/inventory/v1/agents.pb.validate.go index b9d4a9e0d2..05aa1da19c 100644 --- a/api/inventory/v1/agents.pb.validate.go +++ b/api/inventory/v1/agents.pb.validate.go @@ -1956,17 +1956,17 @@ func (m *ChangeCommonAgentParams) validate(all bool) error { var errors []error - // no validation rules for Enable - - // no validation rules for Disable - // no validation rules for CustomLabels // no validation rules for RemoveCustomLabels - // no validation rules for EnablePushMetrics + if m.Enable != nil { + // no validation rules for Enable + } - // no validation rules for DisablePushMetrics + if m.EnablePushMetrics != nil { + // no validation rules for EnablePushMetrics + } if len(errors) > 0 { return ChangeCommonAgentParamsMultiError(errors) diff --git a/api/inventory/v1/agents.proto b/api/inventory/v1/agents.proto index 8840bd315c..2f872b4f0f 100644 --- a/api/inventory/v1/agents.proto +++ b/api/inventory/v1/agents.proto @@ -576,18 +576,14 @@ message AzureDatabaseExporter { // ChangeCommonAgentParams contains parameters that can be changed for all Agents. message ChangeCommonAgentParams { - // Enable this Agent. Can't be used with disabled. - bool enable = 1; - // Disable this Agent. Can't be used with enabled. - bool disable = 2; + // Enable this Agent. Agents are enabled by default when they get added. + optional bool enable = 1; // Replace all custom user-assigned labels. - map custom_labels = 3; + map custom_labels = 2; // Remove all custom user-assigned labels. - bool remove_custom_labels = 4; - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - bool enable_push_metrics = 5; - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - bool disable_push_metrics = 6; + bool remove_custom_labels = 3; + // Enables push metrics with vmagent. + optional bool enable_push_metrics = 4; } // List diff --git a/api/inventory/v1/json/client/agents_service/change_agent_responses.go b/api/inventory/v1/json/client/agents_service/change_agent_responses.go index 2a3a8547ef..52c967e82a 100644 --- a/api/inventory/v1/json/client/agents_service/change_agent_responses.go +++ b/api/inventory/v1/json/client/agents_service/change_agent_responses.go @@ -4257,11 +4257,8 @@ ChangeAgentParamsBodyAzureDatabaseExporterCommon ChangeCommonAgentParams contain swagger:model ChangeAgentParamsBodyAzureDatabaseExporterCommon */ type ChangeAgentParamsBodyAzureDatabaseExporterCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` + // Enable this Agent. Agents are enabled by default when they get added. + Enable *bool `json:"enable,omitempty"` // Replace all custom user-assigned labels. CustomLabels map[string]string `json:"custom_labels,omitempty"` @@ -4269,11 +4266,8 @@ type ChangeAgentParamsBodyAzureDatabaseExporterCommon struct { // Remove all custom user-assigned labels. RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` + // Enables push metrics with vmagent. + EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` } // Validate validates this change agent params body azure database exporter common @@ -4401,11 +4395,8 @@ ChangeAgentParamsBodyExternalExporterCommon ChangeCommonAgentParams contains par swagger:model ChangeAgentParamsBodyExternalExporterCommon */ type ChangeAgentParamsBodyExternalExporterCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` + // Enable this Agent. Agents are enabled by default when they get added. + Enable *bool `json:"enable,omitempty"` // Replace all custom user-assigned labels. CustomLabels map[string]string `json:"custom_labels,omitempty"` @@ -4413,11 +4404,8 @@ type ChangeAgentParamsBodyExternalExporterCommon struct { // Remove all custom user-assigned labels. RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` + // Enables push metrics with vmagent. + EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` } // Validate validates this change agent params body external exporter common @@ -4545,11 +4533,8 @@ ChangeAgentParamsBodyMongodbExporterCommon ChangeCommonAgentParams contains para swagger:model ChangeAgentParamsBodyMongodbExporterCommon */ type ChangeAgentParamsBodyMongodbExporterCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` + // Enable this Agent. Agents are enabled by default when they get added. + Enable *bool `json:"enable,omitempty"` // Replace all custom user-assigned labels. CustomLabels map[string]string `json:"custom_labels,omitempty"` @@ -4557,11 +4542,8 @@ type ChangeAgentParamsBodyMongodbExporterCommon struct { // Remove all custom user-assigned labels. RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` + // Enables push metrics with vmagent. + EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` } // Validate validates this change agent params body mongodb exporter common @@ -4689,11 +4671,8 @@ ChangeAgentParamsBodyMysqldExporterCommon ChangeCommonAgentParams contains param swagger:model ChangeAgentParamsBodyMysqldExporterCommon */ type ChangeAgentParamsBodyMysqldExporterCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` + // Enable this Agent. Agents are enabled by default when they get added. + Enable *bool `json:"enable,omitempty"` // Replace all custom user-assigned labels. CustomLabels map[string]string `json:"custom_labels,omitempty"` @@ -4701,11 +4680,8 @@ type ChangeAgentParamsBodyMysqldExporterCommon struct { // Remove all custom user-assigned labels. RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` + // Enables push metrics with vmagent. + EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` } // Validate validates this change agent params body mysqld exporter common @@ -4833,11 +4809,8 @@ ChangeAgentParamsBodyNodeExporterCommon ChangeCommonAgentParams contains paramet swagger:model ChangeAgentParamsBodyNodeExporterCommon */ type ChangeAgentParamsBodyNodeExporterCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` + // Enable this Agent. Agents are enabled by default when they get added. + Enable *bool `json:"enable,omitempty"` // Replace all custom user-assigned labels. CustomLabels map[string]string `json:"custom_labels,omitempty"` @@ -4845,11 +4818,8 @@ type ChangeAgentParamsBodyNodeExporterCommon struct { // Remove all custom user-assigned labels. RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` + // Enables push metrics with vmagent. + EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` } // Validate validates this change agent params body node exporter common @@ -4977,11 +4947,8 @@ ChangeAgentParamsBodyPostgresExporterCommon ChangeCommonAgentParams contains par swagger:model ChangeAgentParamsBodyPostgresExporterCommon */ type ChangeAgentParamsBodyPostgresExporterCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` + // Enable this Agent. Agents are enabled by default when they get added. + Enable *bool `json:"enable,omitempty"` // Replace all custom user-assigned labels. CustomLabels map[string]string `json:"custom_labels,omitempty"` @@ -4989,11 +4956,8 @@ type ChangeAgentParamsBodyPostgresExporterCommon struct { // Remove all custom user-assigned labels. RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` + // Enables push metrics with vmagent. + EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` } // Validate validates this change agent params body postgres exporter common @@ -5121,11 +5085,8 @@ ChangeAgentParamsBodyProxysqlExporterCommon ChangeCommonAgentParams contains par swagger:model ChangeAgentParamsBodyProxysqlExporterCommon */ type ChangeAgentParamsBodyProxysqlExporterCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` + // Enable this Agent. Agents are enabled by default when they get added. + Enable *bool `json:"enable,omitempty"` // Replace all custom user-assigned labels. CustomLabels map[string]string `json:"custom_labels,omitempty"` @@ -5133,11 +5094,8 @@ type ChangeAgentParamsBodyProxysqlExporterCommon struct { // Remove all custom user-assigned labels. RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` + // Enables push metrics with vmagent. + EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` } // Validate validates this change agent params body proxysql exporter common @@ -5265,11 +5223,8 @@ ChangeAgentParamsBodyQANMongodbProfilerAgentCommon ChangeCommonAgentParams conta swagger:model ChangeAgentParamsBodyQANMongodbProfilerAgentCommon */ type ChangeAgentParamsBodyQANMongodbProfilerAgentCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` + // Enable this Agent. Agents are enabled by default when they get added. + Enable *bool `json:"enable,omitempty"` // Replace all custom user-assigned labels. CustomLabels map[string]string `json:"custom_labels,omitempty"` @@ -5277,11 +5232,8 @@ type ChangeAgentParamsBodyQANMongodbProfilerAgentCommon struct { // Remove all custom user-assigned labels. RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` + // Enables push metrics with vmagent. + EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` } // Validate validates this change agent params body QAN mongodb profiler agent common @@ -5409,11 +5361,8 @@ ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon ChangeCommonAgentParams conta swagger:model ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon */ type ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` + // Enable this Agent. Agents are enabled by default when they get added. + Enable *bool `json:"enable,omitempty"` // Replace all custom user-assigned labels. CustomLabels map[string]string `json:"custom_labels,omitempty"` @@ -5421,11 +5370,8 @@ type ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon struct { // Remove all custom user-assigned labels. RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` + // Enables push metrics with vmagent. + EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` } // Validate validates this change agent params body QAN mysql perfschema agent common @@ -5553,11 +5499,8 @@ ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon ChangeCommonAgentParams contains swagger:model ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon */ type ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` + // Enable this Agent. Agents are enabled by default when they get added. + Enable *bool `json:"enable,omitempty"` // Replace all custom user-assigned labels. CustomLabels map[string]string `json:"custom_labels,omitempty"` @@ -5565,11 +5508,8 @@ type ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon struct { // Remove all custom user-assigned labels. RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` + // Enables push metrics with vmagent. + EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` } // Validate validates this change agent params body QAN mysql slowlog agent common @@ -5697,11 +5637,8 @@ ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon ChangeCommonAgentParam swagger:model ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon */ type ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` + // Enable this Agent. Agents are enabled by default when they get added. + Enable *bool `json:"enable,omitempty"` // Replace all custom user-assigned labels. CustomLabels map[string]string `json:"custom_labels,omitempty"` @@ -5709,11 +5646,8 @@ type ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon struct { // Remove all custom user-assigned labels. RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` + // Enables push metrics with vmagent. + EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` } // Validate validates this change agent params body QAN postgresql pgstatements agent common @@ -5841,11 +5775,8 @@ ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon ChangeCommonAgentPara swagger:model ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon */ type ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` + // Enable this Agent. Agents are enabled by default when they get added. + Enable *bool `json:"enable,omitempty"` // Replace all custom user-assigned labels. CustomLabels map[string]string `json:"custom_labels,omitempty"` @@ -5853,11 +5784,8 @@ type ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon struct { // Remove all custom user-assigned labels. RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` + // Enables push metrics with vmagent. + EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` } // Validate validates this change agent params body QAN postgresql pgstatmonitor agent common @@ -5985,11 +5913,8 @@ ChangeAgentParamsBodyRDSExporterCommon ChangeCommonAgentParams contains paramete swagger:model ChangeAgentParamsBodyRDSExporterCommon */ type ChangeAgentParamsBodyRDSExporterCommon struct { - // Enable this Agent. Can't be used with disabled. - Enable bool `json:"enable,omitempty"` - - // Disable this Agent. Can't be used with enabled. - Disable bool `json:"disable,omitempty"` + // Enable this Agent. Agents are enabled by default when they get added. + Enable *bool `json:"enable,omitempty"` // Replace all custom user-assigned labels. CustomLabels map[string]string `json:"custom_labels,omitempty"` @@ -5997,11 +5922,8 @@ type ChangeAgentParamsBodyRDSExporterCommon struct { // Remove all custom user-assigned labels. RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent, can't be used with disable_push_metrics. - EnablePushMetrics bool `json:"enable_push_metrics,omitempty"` - - // Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics. - DisablePushMetrics bool `json:"disable_push_metrics,omitempty"` + // Enables push metrics with vmagent. + EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` } // Validate validates this change agent params body RDS exporter common diff --git a/api/inventory/v1/json/v1.json b/api/inventory/v1/json/v1.json index d51099a62a..c8ae550f57 100644 --- a/api/inventory/v1/json/v1.json +++ b/api/inventory/v1/json/v1.json @@ -2692,32 +2692,24 @@ "additionalProperties": { "type": "string" }, - "x-order": 2 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", "x-order": 1 }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - }, "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 4 + "x-nullable": true, + "x-order": 3 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 } }, "x-order": 1 @@ -2742,32 +2734,24 @@ "additionalProperties": { "type": "string" }, - "x-order": 2 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", "x-order": 1 }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - }, "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 4 + "x-nullable": true, + "x-order": 3 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 } }, "x-order": 1 @@ -2792,32 +2776,24 @@ "additionalProperties": { "type": "string" }, - "x-order": 2 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", "x-order": 1 }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - }, "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 4 + "x-nullable": true, + "x-order": 3 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 } }, "x-order": 1 @@ -2842,32 +2818,24 @@ "additionalProperties": { "type": "string" }, - "x-order": 2 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", "x-order": 1 }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - }, "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 4 + "x-nullable": true, + "x-order": 3 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 } }, "x-order": 1 @@ -2892,32 +2860,24 @@ "additionalProperties": { "type": "string" }, - "x-order": 2 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", "x-order": 1 }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - }, "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 4 + "x-nullable": true, + "x-order": 3 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 } }, "x-order": 1 @@ -2942,32 +2902,24 @@ "additionalProperties": { "type": "string" }, - "x-order": 2 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", "x-order": 1 }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - }, "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 4 + "x-nullable": true, + "x-order": 3 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 } }, "x-order": 1 @@ -2992,32 +2944,24 @@ "additionalProperties": { "type": "string" }, - "x-order": 2 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", "x-order": 1 }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - }, "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 4 + "x-nullable": true, + "x-order": 3 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 } }, "x-order": 1 @@ -3042,32 +2986,24 @@ "additionalProperties": { "type": "string" }, - "x-order": 2 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", "x-order": 1 }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - }, "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 4 + "x-nullable": true, + "x-order": 3 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 } }, "x-order": 1 @@ -3092,32 +3028,24 @@ "additionalProperties": { "type": "string" }, - "x-order": 2 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", "x-order": 1 }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - }, "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 4 + "x-nullable": true, + "x-order": 3 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 } }, "x-order": 1 @@ -3142,32 +3070,24 @@ "additionalProperties": { "type": "string" }, - "x-order": 2 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", "x-order": 1 }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - }, "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 4 + "x-nullable": true, + "x-order": 3 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 } }, "x-order": 1 @@ -3192,32 +3112,24 @@ "additionalProperties": { "type": "string" }, - "x-order": 2 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", "x-order": 1 }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - }, "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 4 + "x-nullable": true, + "x-order": 3 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 } }, "x-order": 1 @@ -3242,32 +3154,24 @@ "additionalProperties": { "type": "string" }, - "x-order": 2 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", "x-order": 1 }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - }, "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 4 + "x-nullable": true, + "x-order": 3 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 } }, "x-order": 1 @@ -3292,32 +3196,24 @@ "additionalProperties": { "type": "string" }, - "x-order": 2 - }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", "x-order": 1 }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 - }, "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 4 + "x-nullable": true, + "x-order": 3 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 } }, "x-order": 1 diff --git a/api/swagger/swagger-dev.json b/api/swagger/swagger-dev.json index 73f403c8e6..0503070268 100644 --- a/api/swagger/swagger-dev.json +++ b/api/swagger/swagger-dev.json @@ -6446,37 +6446,29 @@ "type": "object", "properties": { "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, "custom_labels": { "description": "Replace all custom user-assigned labels.", "type": "object", "additionalProperties": { "type": "string" }, - "x-order": 2 + "x-order": 1 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", - "type": "boolean", - "x-order": 4 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 5 + "x-nullable": true, + "x-order": 3 } }, "x-order": 1 @@ -6496,37 +6488,29 @@ "type": "object", "properties": { "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, "custom_labels": { "description": "Replace all custom user-assigned labels.", "type": "object", "additionalProperties": { "type": "string" }, - "x-order": 2 + "x-order": 1 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 4 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 + "x-nullable": true, + "x-order": 3 } }, "x-order": 1 @@ -6546,37 +6530,29 @@ "type": "object", "properties": { "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, "custom_labels": { "description": "Replace all custom user-assigned labels.", "type": "object", "additionalProperties": { "type": "string" }, - "x-order": 2 + "x-order": 1 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", - "type": "boolean", - "x-order": 4 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 5 + "x-nullable": true, + "x-order": 3 } }, "x-order": 1 @@ -6596,37 +6572,29 @@ "type": "object", "properties": { "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, "custom_labels": { "description": "Replace all custom user-assigned labels.", "type": "object", "additionalProperties": { "type": "string" }, - "x-order": 2 + "x-order": 1 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 4 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 + "x-nullable": true, + "x-order": 3 } }, "x-order": 1 @@ -6646,37 +6614,29 @@ "type": "object", "properties": { "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, "custom_labels": { "description": "Replace all custom user-assigned labels.", "type": "object", "additionalProperties": { "type": "string" }, - "x-order": 2 + "x-order": 1 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", - "type": "boolean", - "x-order": 4 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 5 + "x-nullable": true, + "x-order": 3 } }, "x-order": 1 @@ -6696,37 +6656,29 @@ "type": "object", "properties": { "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, "custom_labels": { "description": "Replace all custom user-assigned labels.", "type": "object", "additionalProperties": { "type": "string" }, - "x-order": 2 + "x-order": 1 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 4 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 + "x-nullable": true, + "x-order": 3 } }, "x-order": 1 @@ -6746,37 +6698,29 @@ "type": "object", "properties": { "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, "custom_labels": { "description": "Replace all custom user-assigned labels.", "type": "object", "additionalProperties": { "type": "string" }, - "x-order": 2 + "x-order": 1 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 4 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 + "x-nullable": true, + "x-order": 3 } }, "x-order": 1 @@ -6796,37 +6740,29 @@ "type": "object", "properties": { "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, "custom_labels": { "description": "Replace all custom user-assigned labels.", "type": "object", "additionalProperties": { "type": "string" }, - "x-order": 2 + "x-order": 1 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", - "type": "boolean", - "x-order": 4 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 5 + "x-nullable": true, + "x-order": 3 } }, "x-order": 1 @@ -6846,37 +6782,29 @@ "type": "object", "properties": { "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, "custom_labels": { "description": "Replace all custom user-assigned labels.", "type": "object", "additionalProperties": { "type": "string" }, - "x-order": 2 + "x-order": 1 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", - "type": "boolean", - "x-order": 4 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 5 + "x-nullable": true, + "x-order": 3 } }, "x-order": 1 @@ -6896,37 +6824,29 @@ "type": "object", "properties": { "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, "custom_labels": { "description": "Replace all custom user-assigned labels.", "type": "object", "additionalProperties": { "type": "string" }, - "x-order": 2 + "x-order": 1 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 4 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", - "type": "boolean", - "x-order": 5 + "x-nullable": true, + "x-order": 3 } }, "x-order": 1 @@ -6946,37 +6866,29 @@ "type": "object", "properties": { "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, "custom_labels": { "description": "Replace all custom user-assigned labels.", "type": "object", "additionalProperties": { "type": "string" }, - "x-order": 2 + "x-order": 1 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", - "type": "boolean", - "x-order": 4 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 5 + "x-nullable": true, + "x-order": 3 } }, "x-order": 1 @@ -6996,37 +6908,29 @@ "type": "object", "properties": { "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, "custom_labels": { "description": "Replace all custom user-assigned labels.", "type": "object", "additionalProperties": { "type": "string" }, - "x-order": 2 + "x-order": 1 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", - "type": "boolean", - "x-order": 4 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 5 + "x-nullable": true, + "x-order": 3 } }, "x-order": 1 @@ -7046,37 +6950,29 @@ "type": "object", "properties": { "enable": { - "description": "Enable this Agent. Can't be used with disabled.", + "description": "Enable this Agent. Agents are enabled by default when they get added.", "type": "boolean", + "x-nullable": true, "x-order": 0 }, - "disable": { - "description": "Disable this Agent. Can't be used with enabled.", - "type": "boolean", - "x-order": 1 - }, "custom_labels": { "description": "Replace all custom user-assigned labels.", "type": "object", "additionalProperties": { "type": "string" }, - "x-order": 2 + "x-order": 1 }, "remove_custom_labels": { "description": "Remove all custom user-assigned labels.", "type": "boolean", - "x-order": 3 + "x-order": 2 }, "enable_push_metrics": { - "description": "Enables push metrics with vmagent, can't be used with disable_push_metrics.", - "type": "boolean", - "x-order": 4 - }, - "disable_push_metrics": { - "description": "Disables push metrics, pmm-server starts to pull it, can't be used with enable_push_metrics.", + "description": "Enables push metrics with vmagent.", "type": "boolean", - "x-order": 5 + "x-nullable": true, + "x-order": 3 } }, "x-order": 1 diff --git a/descriptor.bin b/descriptor.bin index 8ae21bd0b681482556fe65df4fe961e13ea9861f..cc6776d594a9781b8936c4874768674ae464e8da 100644 GIT binary patch delta 22476 zcmZvkd6-qzneMC3UVA!)45xq^7^(^=pnxidLgEyScGONsXElqqdrR zyPtde9z{UZfQW=mdkI27G)M#y0cU~(PE3L#GAg6sgs3Qp^zU11eQdp*KX@MAz1I7# zZ?C<+cMW@=+P1P~;`1#xjj3E*7`??DnHLtbyFQ8Qm(JW$xWB*IUMSXN*IgXcj4Jgg zMps>P<CoRTTxa#M0FLw3+{RVUCN)yb#v})#~K`}0c6%~&avo8DMu35P?>YnY` zn^a}rTNFw93ZKtDd^8v}yfWgy zrqIpTqx*o}`znO?yy-un_$^B-l+4QP$4i2fM-^yor71+dUIE%l6ZcREZKdhmP#j@t zpqETxV12*r&r5=WuNXjAr2j|ZofH$TB;RB6|QD7|BPwrXXR-Z8_5qg0mXN9CQlRD={zr6OB;LMlRPXD$^X zwbMz7Qd}~-OyL~gPK**zm12~3nJOJ8F-p72rti14Hd4FHch2_rmz2zIQ#ivHCP)EQ zDnV+uscO(tq;{LeZz)7+w>j-}uauU|9#i-$Uznl<^h)JIiqxJwsuZa`c~B`*d(3yv z@lwT-*=q`yc&Q>%Kn<#h(q2=gkG_b~UNh+XS{bFi<_8yhrK*zIX9_^B9ygOiW~s?V9m}E>;|f_{XNJvtl6Q>|@jY^kSDHBLlb~>4F6n$zcZVjFBRipK(NotE7X}3D5C`F%{!niQ7+F*)5Gs#KCvUpIn#C6yh zmxUni8rZ>Aws9RcC%NvVl(-H%yA>)*pBq!_>x%OMol{e2OFKAE1w#E?%-yw0_~kE* zaSx`tAn6Ts^9T^`7p6;ZuPjr+7pAF?=YozHGr$*$w*j5uRu^P~IAW?@0t0R3=Kh|_ zBR*=38$0Fdf|watV>ED&ny&r4vVnWl3~-~RTITyNjd4x~f(q>F>xz4QX}a}S2=zf;iB`pWbirKM26GN;O@kmtj& zId06!zEJ!KsE;ct!#!^5oY7Mm?s3yT(sMDSn?mEPt=bw8P@5G4x+y%-tQgQu;i=Bc zstXv<&7t`l->f(eP#=gm&dp)p?-oxglU7uQdvkdH_k6Qh&gjrw;JIQkKpiDja7Tyz z&eKw;qr>lg-&3)eTS7C$7mB9YHK26 z!p=RtvY5!2u)(bcstcIN*w8pz2SEk8nHEU1W5fF4p4t)W*l^^iVl7!atZON{BdnMd zR*oo&YcyVc?JsU{%eb!4?g*0});hXMicSc9ip!1FiA>J{PQPNd%?au7-=Ymn?J9AOV-aEszqYa!oh~61?DbZa8)2$Ru4l91= z?WP+wCx=N-+mqcS*1N-k8z>+W4(L1;NaS~iRnF#sQ11>)&Rx0{E|Spi4()2rm~Il- zl+dq^KyZQXu7S2Rb*mvD)F~mWp-Ty{dnx*TSn*Kych3ixlz$&$!D5Bo#R_MHg+F;K z1fww{#0n){x=ZNyhQ?(-h$jhj9t@=Jy&AGl%mSR91CE|n+ zgv}}}PWV80&UZZ(CoKOlZ&s`j*yN?e3jY}PIaMLtKZa*$vpC_ryjgKVpf)Q`I4^Iu z3hKPPS)A~}(EQNqmb(|k3c)&t#0nn_hq#3rrEnh%{X(sK0VkXvn#+7l;)FnFsuV(< zAGThkrBLUGm;Q*mEtr~8v@ooA*1JLtH5Y~~LdueQHIjM{hlS-n^}v)rtf^NcskcZ6 zJ&0C;ZV>{c?xN5yLV&coNL`{v666t`B0x}qZXp4zEDQE42{7D8LcfxzkMhH;l6uQ> zDyjFF4&0i8q#n@Ck3gu8>HG+U`dHY|Xmg;ZEUEW+XxtK|rXZ;YbQ2^H?&CT^0^vR$ zjy&0M3#8r?x(KPUix8l*Mj+HDbP)oC`h+e*YGe`eq_k=`&p?_5JGTJBeKPcGA0XT( z!**?!)O#v#R#FeB%}VM$l{YJ?_f+02srR(5eQG50%7UHIfZ;xE7eB0hfN-DIwNH(t z-ZQ%P0nsebt$lz{pV74s5b86s_PJ2fOBNw3!a`mBS&e7^{Kns0d3EEBax~cZ^J{;T z-TP{A>MtmaZPHQ|p%r1GLsga}E5h!zHiv6V(eq)&8$O3?srh`!35uj}t)%b^Vc~V3 z!eEMDkQ8p0VoBi_v$IwOCzoH;If#qYc`@weJR3-3FNUpc_VLzAg1r=)b{iOo8wR>X zKhTyoxDyQ^)R)5HZWCB5nfr3+m$o3NKsPy;!Ej#=8{M1=g!^*nm$tQnUeOgB2rkea z=K!I;5;nOx6=*A;JjzE*=DwO!C3AsFmCSuLY$_{PQuo#H1eerZm2)L^fy$NCU6nU0 zskncVi^m<<;TfAwFbMcTH%{@uiZwKsQa++SFYW z_IJk{K&Wd%f4osEnY%VLf95-F11hGHU|e z^i^w9cU{=*b{9an>%z0#sY|5+XHDI3T6t3z?~*okk~W*d!akoiV2U?M+6<6lNt?~ty=#M(@@Ad3xJaGNI%@%G zZL`i=buzfOXor9Z6zFCxpe?O-jst|cMQ5!#Nt>-YYk{BwofVY9aJRZ?3x~F8vo-Xy zR-L5HHl02|aDi_607BiS(+AL2_On)f1VN0VQqT)@iFwP6^-9Sqp>|(9K#v zxbNt!1%&#J&RTVnHam6t06_)1Yz0EysnZ7#>P|a-NZQoNjJGRqR?-IOW-SWg?$TKc z2zQsxT6K~(yYprxZGhUWq|NTUSxKASI&0MxNSi&RjoY#V;qK8{3kY|Q&RRgYdvw;S zE08vOb=Cqw1-e-a2z9T{T0p3Kb=Inr32*<2Su0zyJ~;1ku$!nTg}YxTDj?kbGEwy; zSuO4C>UxmEKX_41g-Lpv#1tuH+Mo{0%RrdmnIw*V<#?DNDD0~%i z-uGRr0J<%4z6vQ&dME(s@&r)=2 zRB?Oc4pMtk^VTSF3)!CXgvLkyupfjt&^;RCPo#HM3p0YNGc5d zt6yGu%`dKMyzt+Cc*zC-c<#SmckT5zUX^|HW>8g{7$psMwDppEnG}6}v|YwE?ud)- zj)1f|De|KYNSl))KiYuY(4@$ZHi2%mO^O(8ed+vOazm4|-){<& zAUZi>kjM}QB04#${k9##0-fmOsO}7VR@F-e;*_k*TfwMHr{tp2)D-P|>L5Br`yPns z6zzI}PIQWNy&Qn`lKNAlLig<7&r4deVT|pOT%$9%sGT80b86m%49%(1#BeLX(3}=! z3&sXRU>caybhrUwPK#o90tSRREjp=V@!OV3-Fu>})41Rin4v{}paNmuqXQKP^Bx(f z^8UJ)Ox@F??CfJfJIn~?^gLRb+NMXTo9QTpIXx;>`v=3!HY3W~CI-D>#xQ5(Oqtkb z4^>B*T<*2sAP%mn7loGJ6#%*ek9rWEGPh&REX$(!I_GOx|awr>eOZ<`Z& zhvy=kIZ@&g9tdYnG@!-WRWF&(=0@4D_;=N9P+ZfZ? z1KAbZf`KC*$RC8vVh=>IbNF6%7JDG#6jvOsm&{`G$hZIB;kt689k@}-oX-K#nHPDV z1Jd-oh-pcDu9rPNiLy2Skeq(L8`JWBYQ7p4<%rE!%L5`dUo8)a*nH`Mv#c1qx`(2y z%cNw~DNd{-?1%C`m#y4GQL5=9Te*j#`kvM>dlfoy0t5T@pb!1miT+!dhtUbWUZHb~|&xlKpfCho_73`<71&7UjdSGn7S9T@Skg?p=x=jVhLT-|S7zN2A2O zuIVjavqXIp#4P|_VgaeULhtiWW2goelAoue0H+_?9 z+z}Vu9RX?cY4uGYZ9c8O2_%P}R^Jrp+~{fb%?7!l<=NlAgKsX+Mde18t8Y>V(dFu! zKtz|TZwhpx%f&ZG*|_n|71_FXf>T;ozga2?;V9Ep36q<3{Gi#E~khO zK9^I(2cJ`aXpkxT1@D6Zy5$8OK0uf+s1E{RzMwwXAdCDLoe!P@u*fGI5ax?I@PII1 z6dxRH?~Dija#U!l@0AVT5>#j9T|u{2F6h$`D||UhUDh{PD||WPZ0Zb4#tL7}{=6$V zv+dQKA|Ci^l)5vE2D`X_HR8-de78Ynlhw|5v!Ct`qPEpJQ7mw^+AcK-bhX&7EEpTa z0oQsv0}%FFwKE{hwQ6TTm}}L}8ti^p?5t1Lc~20HcrEW#yBStbqawW5)YBSdRlngc zdKyJ^F=fuvfV96sJq?J?2KBTC@y0j4=4o8uLBFA90z~W$^)w)2Z>XmM5qm>CZH~+Y z4dRe*WkdD`b6elayH0%YttfRTF&N{OR`+{QIwwx&5w@qD>nh>{%Yl`PK6!5+sQMU5>;I!=cz92et zM}D83xz8Q>eTpIOh)Qm&0}-7a^3d$JPYs1GZ0w@!y5Y%xWLw@Pf}J|=Q3P{m#QsEF z9SC!0)U&ts?S?{$t(o_200U)r9zqG`ZuMG)UgG!zn-- z2RqXP!o4~63ql~=n`5R1Sr9f!H{KHe*DY^Xx=L2Ql&Ox`{w=Xz5K@ZHEwSJDHi_+z zjqQT)JV^>J(0OBHzXt{)Ha7NqU?5^+W4{LmA~rV0JY`SSBs0OS*%coJ&8@e_Cmxkd z0=LF~wND)=x5lNe#Rf}Z61XjU_@khy^|qWMet%o+cdJd-?{AB{b}#m`6#V{)Z)BTl{@O>{qH(C&me}U#T|9 z+lxE1zxFfO&WRD8*HioHKx2Bb5{UL zM15B5PXGiu^;t3gD0$ge{Bd^n{wKky|7~_IDs9fz9;ObWv!#cfsO0i&?O;m1=xpg= zCrbVMVl1(x@#5>R{nzZ~^O9zF5YX59B4rxB_~LzeOX7?7NlS7N&{ur%{@5J^0J!n{ zb!-7)-XHse03gi!V}B6PR~Ep3jNL&1z#?xjK$w5jQ3-_k$Jo1LUvb9=W9N=*KEoX! zjQuW|B8U&hewPe{_+aeav9Gw}pH8?VkVe7I)qrsSr0xiW`zLkBzS5%${-Qflgbrn@ zBks6B-H}ps7N|S+6?c5txue}KbAc{=SWN(k*u(0MK*SzacLXB#u(+cv-TI09Im?DA2yB5Fc>RIEr0rLQcH zmpVhqe((jKbuP_sUQBao{^VpSyj1<9UnzP#u6WA(Nk3{nu71)_67&i66Ai(BV$8AMQ`6pY)S#c~boZ#0Ua9KLOfO?1kFVkG!WTm)m4DVKC7+*B<5$;RRp@c ze^ys{6{?F0i%!^j$ zqSEF{?PuyBx>EZYi0De~W`Rz0rF63srT$A<`X#%|mvT`tke6~%F_4$kK$^usUhxJ3 z;2vMm!32c)iW&$I<|}F-&0-*{oPo3hEb=)Bgt z9;R5w8eLRS2g;h*A0al2b*zi+5h9I=ajeUkVjS!88x-SMm){_rwmxg%UG~Uk>lEvA zqBzBRU13lPaed4Q;w3gpoZ|I3`};eC3t);Zysi^I5a#PK9~+6^17W@%_vmH!Q_W%v z8{@1pGJObEEMa5br(y{kQd8w3luc@?Kq#AH zfArWaX0SQVe!4AaqA}SRZ_XPNH`uI}N-50EvM%|7y+M{xTeI!QgNxg?<`h{sZH;61 zVMDWBH*Jmk^z(Pdx@o(!tlyPQRNk(R)oefV*shKRq^a%VSn|5Me<^w=uGsC3r#~&c z6DRIt#Qu`WJJonV+yKyJ8IZa=_0a-R-Kh!D-x<$N%?OHpM(kAM=`RVjON|G_$OAg# z0oqb;JV4ZUiSZ02<^iSX-MHe8?0;06w$i(C(rk@qfP{PCo5sU6g65(N8i?!xH69?c z2h@0g49Ej&JOW)7A5h~NAThtM#`6;(>R?rupx;;Hp%nG^)p&rYzput4(5b&K#v{o$ zK#b=@`n!HmcJtAoXZ8wT6a0t^Dle^ns69??T#E=f=O^6{K)O;NvhIGgq5&-5Q9h^Xzht!aOFb}CA4G=^6)Eg4O zB5z1Qn4hX40bzcshBQD7>982m$aek@@o*lj*wSIOB}yS4R$Ce%w)91|3QueOBBzKS zeUaav_|X^n{n3L*#gE$Cj^-3`qND0W1FRDr6(_pXJ~Eu>7+E(yxNzhE>qN)YiGVPV zsS^Qd?3g;y0CA$@)`{c-tBv9yBJgFHQ(hUdWG0{E`qzV`CD(Bm}}7lX&+UAltZciFGfSvV|L$ zoOotpMdK2`U8WS~xWv2H0NKKgPqG~ogYUtV*A(M(rtIX#C*H&;g*iU)CN@BJa1LH`0W^o4hA|G1KLvWVnEdI zO#Jexr4&s`Djv<6Q!~6YMZ%T03M~@u)Z}a1F>^WB2%3v7Xdtpv6Tc|~B0Dwln=&B7 zcxvJ|WdfZMOilcztVLp;mguGoh&ou+CFp61-;_~``n1Gv%7Ca(OZ=uxpi`fg;9{rQ z8^Fcx$*wM%Gg|M-MWxMqw4Yn7cikiX>?kxbJ$qd!({qY=(e#`mUNl`Ovb$;#FPf2^ zS!LQ=XXxPKB9s}4-&O&k%t-vUszpp_W;UbBoHb%*P7(K+nfP5kb)d{l{0oH^ai2dV z-*}|SQG%} z1L_?>m=7d=u>^$qK*C~4&e~eUqUJg8$hMzkqPBTz9TY*Fr`7?4I8UvkMb=95opqcH zpvn1phs%;_zFG&RFz1VP*f#<#;#UiktaWd2FVV`HX<>e!;#Uh3|6+hrs0$PSVxUF* zYEd$EU(h$Zq7%U`%6Z~eixU5KfQs-ICA=MwZ%JCjtrk1aDFb-oi`8_1Fc+)o0AVgx z(-~BXmL?UCd(#<2&83N7It`L6UZ$o4;y!@xNdu|7Oh+~l)nziW?MXS9XT3~KN1#iw zWokNuB$*yl(*Y4P(3uXp#($h&Y)SAv<33vH7 zO^0g)%|#b95ZUEwIzVKXtLXrVdAXX7Ko|3JHJ!l{^9nVcp8!z@tGWceLQRKK)K{qK z08w9|rX$d)uMpGuYaZfYSvoyOf7hRu9UPz3Wy59$owM4K>G>nBY8w*5bK31tXyZBc zdLV5)r@b!Fweg(vx@&{_FC?s=PLs3p7Ll*D>nAR16XIDf#Lf>6hVAda~KHm)x@6&4Hn;8oi%ke1Bb27qZE%?t;tIrD67TlWY;oSdT?!0=$Flk z&H35#t|TGQo&8VW#!7 ziVqf(dNY}NFlc}%9`$BU6pwl{@kis7LVPpfXk5Hzuzla@y#~Ouc}u+p2=guV8X(NK z)N6*6qOD2A4(~NXsJS&s+~@B@Bzd=~*MNuz=td-vy4&Z0^O+J zrd~5dl4iSl4TzY5&TD|S)O!sO_3h#{r{OiNrD#`DaZC0uHRjaPt|S>|y{1*d-SbVa z;Tl16(FF}ec8_`u5ZOKIH9%tCqh2G>#k@zord49zr(Saz5OuJsOVIn&YbZs1pLz`t z^?m9!0-gFk@tSjah^^u^`?KY>=KPEH=c3Z)e(h)KAi7`81&HW=?Ph^abiZ`76Q%xp z*^leY`EBpzqGBiS<)UII@2Q=%ik*Dm?F7I*exTU~g!zHm2@vK7YA3B?Cm(q`0a)bo z6bSPpwG$xBkHk(SPg})KK2EZ=vw{mp0bqWtc?yL2vF0fd=En(N(aO+o6+ihTDfG#< zd=)f~1i}S7cL2iuB=Ki2K)9bI{E-bYu~zB5&zyl$%oPMf{(}Zc0xK zba9lMQtw5SLcA&UUeqeYc1@>UTbvf_gWM|9G&{T77*g-)bF+0O3~P~VtnfM zT5Z%En_gWyv0nk|y(3W~D0-}CviWT+8iiVb=-=-C_vaGjhF8wy;ZJ_M6hDx{-)35Kf zF5?EyJ&ho^w1WW5?qQ`?lBBK|TZr-;8y5sGBpQ1O?ksa-mZ0?^x2Q-5>-ggG_!M+ZQd zQ&Yco7%KiUE%oo(+kpg|DxQ0~bo zVlDRwrNvUPmg(7bO=j?j={ZFlWqRrl8ira&nVz!Vke7Tz#ZhLYf9Z`rMMO)PMl1d@ zBlU0eDW&NdDcfOjwV~oKGhGsu0mMF2vj_-tre+Zk=1k3^VWntxS~1sW(J*SxPWd3a z1ERxZSkBQb0uc|;4M-q$=V%rIQJo`MWPjTT=FaA57728NXO3pkFc~KIX%>Nq8R)VI zXiI$-0a3qCvPeF&8D5I!r4`H5$`QT3{*mOl|9az9*I#pGc2Qqb-DzIRdu4e8H(c&w ze)cbY&Dj^t*XX&3{`}Pc(gKM7{M7%_0!Z-lQ~yf~fiC#@DZjK3ZyhedKa^GWGtF%e z<)RYwL#aQppbnxB$s_uXrI0KO)2!)u{H^Scex}&AFei%KLhZ}pHf0t{UpgW(i!8BQ z_GUjbq;*kFl*Cz-6D4sL3Gqj^MG|LmHoV#Vc*NqIA{nzd^_%qJHe(j2Y|{V1Qh3Ho zQvNpA#aYkllb*OtRcnP^#Bcp}XvRVM@7cS6_o zH_;Edr~;Be%hJ?Y3=9O8rTjLc6OIE+M4|49)D%m_#9mlH8gQ-ti8QcwFkB|^r&4>8 zn0pyPQ|59Fh|V*bYe00KN&U}J zN0g!!X~pwCV@6POMe0Af7$IZrSN5t2`g4*o!^oKSQuI<<@lN*bflNU!rAdD~@3c#}uY7af z;Tl16(FF}e_7#2NKxALhc?U?$ujsrZ(8c_U&O7ZA^Qx?43-ivZTvTFRrSlGT5M8D7 z4iM2*I`0T{qN{Y?X_t9tO;&DU-dU52N>ghzrKyAH8cAtM*mgndvQ;e{!>`LJl0NHF ze_}=*sU&tTUn#ZAyu)k3LA0_yr%3v&&s&iRXT7x2Y$^2J>)EddnE|b@=M(3uR+Yku=$urtU1g-KNRLlx3*A!)=!g*pzh}Y|gxRQ%;ew zzbW;9dxSa!wkhRrO~_mhq)#`cgD$djxj@&ao6^BQuxZsU*|FKpvLgXRwOR8Di1ud9 zDFFYB}fwb)ZwBX4S{(Blei12|fd?1zI z)9`^b@ScP(V+Ba`?`iY`UG(os^kVcUOY|S4g)a5YK7__Ai!A|;eMG!+9vy+FLQ_Iuxo(KqHTHX_4tJCtH;Lkut z|4}s4PXrP8ApAuagw*2H`IK rEV}OcYj3=^z4+DM%3`fe!&`sSZul4SFXCU!zl4A3(x0>!#|-;VqNObh delta 22782 zcmai+d6ZSvo$rf#_n9upa0_aJqHa+XMFCX|g~llwO^ltWaY*dW>(||BlCTn2n`jH^ z*YEY}cV%>*5Iuwtf`|bX1r-4WX95l=lPC^|%!3N3K~x0Z=ePI%adfTj_5NTjzGv_6 zcmMW2`}f^@pL6Qo`j^)CR<&L`vD2d5_;=0A4+VwvoKK^=C9~em%^hHl;ZQL&~F{ql-2wjgH<6c+!XaMCY+H)iZrzxmmfqkca6 z$}u(hQhs3P5#LHjwd9-Ar}FvJdK=3qUNibPSN+@Q@7l^2+PcN|w1>%8{UERvdbpM^ z`Q4abUo?8`HCOy%OmSGDr*HOWS9AGizj4=VLZ|4wci`o-hXNlWheyZp|72wyXu>MkwW-lz92%Aa38yI@SW zTt(5mU~_e_isC z{Ib1JIH?ebKwuR@g`EUOCn?Me?B1i`TBGnUCRa&o-z&RO{{OY-hAL~W6U`x^&2_Sh zQCHtwCz|_<=}|14YCD%JnpGw@ux?Q4ve8#xIqDaqOQWv5vgGb!dgbH!zQc2&tU@)iCSNi2eG6CGCaL?X z$(8E^XN#*Dt^-$q|k8Z&m(HDkw=#$H7ohUbd0|7CFQ zM*P>Y1+G1fEg-g6v*8Gc?Nu3$o`sz0UJTcpiq`i`rx9W4!Yjs%EfhKz@}@hK^(L+@ z+|`K=beCzl(d6ptCa2{k`CjRo#rgki=R$0|OEJ|qn#A2UAT4Y(HMNC5IX0!6(*Lt0 ze^1Azj3ZNJlS#UJ37IOJOl8l)Y{y})ykl}Tb$3dOBh&Fq^Z(Mu1#MAg#ycjd^z0n$ zcT82aooL+!ZBFZ+$e&)`Y;v7_9hnuIO_wT#QpwcT6}m7CJ&NJ`rsAOKWP9I(n(v!f zij3(Yo!@G5{VWf}`~kXr12SW`n$9i|Ak?j(R^rfKQ8;y&Pah(sxwj_n$Cl?6sZr*;ENO@^`W`sGB4GoXg)Hz4qw;> zC7>#GLFuDxCUimRqwMx|DI@if88*U8om4dYO-_4o5>h~wIti)$rnB>h9=Vf{+Hb1e z+5<#szZo#lD|IcJ115Kt52`ClKvn9B(gD+%G{4ZMUst3Kn8s7JHc|)78Q(5c;ylG- z_*YYL82=4Q=a2UGTZHge6IU0`!hnimK%X&J(oxg$-%5Y-Oo(Y!-@kD z|IGAsRt#jGeP*i8DD)^WGk^=?u2{!sruuYxk~5XX@C#FMQ{arR60I*xTvO;uyOnW8 zG5pfxZVd8P8%*(+CO)Z977wbFxQ-a(vJgbCfn8i>8`lwYk{eD+iR*~7TcM)#l`%EG zt~ejiIW>j0w2SjpAk?qK++C}LUp{J#yD^nHNpGNAM}TmTnjU?F1O6f-++diM9qvi=`8EpE0{ z<}kBs1LK?y1QpoR*A@4=Ht01#A=GPw)W<5(;#R=2a>cI3Wn8hVaTyo88XuT5 zys-EaP;Zy`)A*pzDOw73d~lk~3b{W_n+btA*%yi*0rhspWw;Z9T4(fBhC3nX80onf z(!{_xYpb*d1k`55fF@?miUCawPIF#XnZtl41?GpoS#cbo-Vkw|NkP;13MZ9GD=NdC z6rBG9-z=6hIWQM`u2>9EXGv$clY{=>*HWmHgCAVrsaVW)ff?cp#Z!Pf#^Nd0Wnx1rn6vDkeXmGoM${Z$gLtvb(gP;Q4N(+Q~Lr^!| zQ@cXFAsBf|p@ys-*0UJi7F0|PI*llZYm~0M>Q`gj&aEf3+k&{awT_;WqIU$|IxYt? z6T!|qfKvc3;9#ZcV?oJy>|wQ zI|EP$(K`dq0Ae@2is9Ws#qYh{^rGh7LEOiVWG{&|4RUUxfJiu?^Hd;_r$J|Db3mwR zz_C#_IK6TgOXz7}cXI|z>9oM_jzDmMuGc_Ynz-E%5bCsm-OyzOSXB(~2`U~A8}w`P zR0`+l+^foo69VldC?hPf&I#(AV*%mL2?n{jSCzvG?+c7eLl9h`8$ck``+`2sb%0Rs z3;h17O3*fOx>H{(#>?&6!R`_6G&h}ifLZI^`3gJE&G@Y)ca32i5eU|Sn zPB=d>=lMd}iUD<&h!f5anpIewaDH&^_dFFREI*VrD^>_>^ipDl4+Z^BQwaB=;7n~6 zCww?-R-6#1&59E~oHg4S>cd&HIN^f8{MhQ2t8!w6V4Xu^g$sfqZlgvi+y#N(s8!`~ z!i9mk+{YwN2y~`OA=HII+r?T6bzyMXPv~vVR2RcVLB%TX3f0tH6tD>?OX^ii>OCIh zR`}EdQ~tQ7UbUp&Vx9CLS_QgI2#~sq1HTCY(&}P$iE2rZCAvg_paR`S0@$f6*zY93 zaF+yrCs8e_w>0oO2@qVM+erXXUK;qF1Q6=d!0#lg1w9e?odgIf&}}4uP@f3wMxq=T zu&wQP64jD=PwM>u!3DaN3JCW}U8#UjpVZwzwQNF`WmHK$pi(9EmSt4Qyk+H#OXcMm zS5gnCTuHs<8COzoc}6Amp3;e1os-l9y7dtV^(kE+fl!|c8cH??s>_mkPY1?rQL1y2 zdO){80^vTb3nUQk)4|A-9XChnJ)@hDYP$&mI%@<%eMUDSK&a2?CZt+6Ab;dMksdD>d~#Z|vcFMcI|+OH^#Y|>H{p_M_bQ&qMkD}$;Uo5MB5@TH*QZJ)z6)O;!6 z35uj}jim6)LGCS|!eEMDmK5%gVoBlE>48`BCzn_28pK8FtPbj(X9H<$bF4uLh2xv%Ng76cXO7Uwb;?rTBGt*Jn`uj$sd zM$j7Fv4P+M-Qye})HOk)TT_9y^2w+8h{@cw8C5bDs8q?^wLxQ9xstkTgA-g*cU{Jn z)CDS6Qg>a}tfcO`j7r`0fpH6YO-?cw=q4l(>iVG1KtGJ39GBMzgNOK#N!<;BIoFp; z>H^&|Sz}XoLomQS-T*?~5ctO%HIlin2j*`)RWcXob}Jvi_DLYK0g z4y5kJtXWw#fo}P#v8lT;Xm+OyAl!|?+3u-Ijil}yS+kP4Ky6ks_l>Ms$=o+=v$j<- z_e~u4Z+*y;x^D(X=a8iCo59dav=r`}!H+NZ14Zg?3d~P^p)8s}w*#uNnY$?%cA1t! z-4tB@cTjVtwivz}R2=YGQ#+hi-j&U}q)n})&E_EYp-&qy#hWEfnT+1C2h9p@&SSibjt@2>NZ_IfVQ$f|JK?En;BKoW_w1JwAmi?D!a2Y zmEmsJrKeU_yd4==(gvu_O4{tmnw7NKkx{9;Q&+88n>IkVY5}3{)Kv>8X|q$8ty+0X zxJy?p5K=(5Y60Qy(p3uxb(gMMwURcwb@>261-fhnLfx&)2N3FRyL?F6)XIvtCu>&H z2Iy8T3gPb2RSO7rkFHv^k~Vv@W+iQa+N`9_-mFeWZ;$vIF7n(^U%y zcb~3WK)CyK)vC>rHXrD!1%e86s}>OI2fAtjp?;vNR;?^}`%kP|={4)~-~TDtEmV}k z-LDH35bl0isQQp{b;a=0pyG3m&Rt9A{PLHjOD?*|zFu?3=Q^052E6zd&=L+yuH)^P!;cIfWrs6#C&H?NlGM zjI6UccsR(pvm($I`Zr!cv=0Zo@oFLR-o@~%pyGz~vkmzH#jk?6zHlyjy(P$FLGC;0 zxPRvH;Mz~}=5M*i+~=Y@@&b`P7Wfx5KxB^vyr7ZOGmwyv1$AfJkOjJsj|IKYvLW}D z?7lX1Ap^Kk*M>f1pe^(v1JS-V^e^dpi*1Y#)4GlMQ`^Re{&g8w;fxO>XCFW~<3pbC zeb06XG%+o2%zyvPiJ^Z0&^ssZ_$G$_0RRw%iDA(#3qaw77>-zDZ*h&uX{R^xt!BV}{;2F^TI#|IVmSF}x|P zxHWW-PWw>vrZ9F}*FJJjZVvt9eGuY6cQ=64y*c!cU4W?G9QwyDeR5^F9XE&mxeLYq zcHA7=XST-lk!)0!M_hD0 z0@CKx(9bU*ZB7mS`~uRUsiB`=0^R(Y8Zy6{82oza(A{C~tn||Vo9}Zu5OuJsOONgj z{mVW|QNLSei_Bgi>UW1V-?p}w=dZ|A>%vGgr=f$n*)z{?BNUjk#7d38~qtmk{WR6akCWc!9 z=ID$ty?s)C2uyjMJVWOl5ax_9au2_NFlU4(buE0`GO0T=Ob<@Vp9)i6_Rh?hGGk}z zjHMLjOqsFr2EJZa?O9>^@sWH7%n;_RELvIBW`&7c!++~v$K9Ol5@gzZQe*fW0-R?rYvc5LjMw&QkZi>UIKq6FM;c2Nt>76 z_D=ru_IaTSZZ=AWYvsns4a<(BB8tsemva2)$DQVLlM@ zN@sv=jFoJD+HG@w;IR4GaLNKUKa8BY*V_ebe#iq{`2wL{7O;m&ytL28{4hG#h0cN9 zdv_q*ht=eOH1}}GDkLUXZ=aTgY55=HGtPJOSYAghRJWoWv4!e)K*ScR-vJR@D7}^s zIqKyQ_h^_tcWZpgsZOjb>_@Y4mXq6~VWKG`C$~q#x<1w|>vP?B;1Z^f+?(&mm~~^! z7G+^{gSkjelTw(A!s^<>#kSq3FVBC|G`U8PxafKWq|N8mG=a4FyqYGEym?+tQ=oI8=hZYDq(duCm?jW)u&PUs zR;X!GiuwvQO(5zk)HDS;^%Y{8r`Qf)nk&h*Ncro1t zrTxW>A}07^MiCQyQO%)27V4M12?FTB%Q}yMFke;^1j2k-O|U^W_p6-=o(izYXC4sd zYMp^Vn5)GE2iu-;=U)qRjdk_u*0=MO>Co-@UTs{^ffFBmElga>H&`EhE##ThnU;(X zu1)`Sd;YBUwHZYWaBY~lXB7>0Q@=LkS%sKxgDfTMo$03CcjUwN^%+t8Z@qdhH3@XR zc&=;|8^r!z_g)4d?AO)HfG}TIF9X7SUA?Tqo`c29`lZj(;;=WeLA8fqH8d*1dqWMa zL3Z<-P8b@HVFf!w1JdRuH8ddHO=@TjVuo*j&Cs~O&3#*)1c=z%YG^>j-c~~cBKEcz z+8nX|2C>KY(sy^}|J?RoHe6zY?}dqb3Qiq3?}hyb6b4!fCis53U{`)n`}-M1obUZG zal4_0oH*b6VNxmQh_QkZ+yv>S4joTS9GFDUbWg8d-7 z!}0;Z2U+4&Li|9jyHpJKhZP@t>n>4qe;B*BSS7K$18UtMRDmv|fYd#p763%`fLOq< zrDI?c$aoKPc8c80&5r4Z}Jg(*rgn3-d{ar7-}^9sW&60u`%j~_^>L9ujRE0| zi?DTZ%SPGTPKfLoHT}~^nBIiQA5kfyu?dmi_yHkKh&ZCk#;;MH*G!6Xjp;o*@(pxR zHn(7BdO*07BEJI!!krYc9LNr^QHJrlNRGE7V9Mt9x{N92eqH1bxs<}ZF7k)mMltsr zBD??lzN7&c7_J*4f8GTmc0=UPyFkQli2QjMh}aDgb}8qlM)CWb(ryRx&22YDCvJ{d z{Y{bI&{GG>O;NFDp}|tH`diXb2l9<=w`3G?_*)`>GHtXDe@oP}s?gt3aQNHO1qbp2 z+HcD!;^VhPehc4def+klvX}MAMzQfbBD*pDmg}W#YwyU|;^=ooeq%~?V!R{r8`DPF z*4~+3eK6nJerGl?;^=oq{uoakD0fEeNM#SwD2{$tl>X^I^250y-DvEt$e$d5Fz<@^ z-oS+-mVQ^nW?uHPjbiC(l=j$?|6v&bGtF+Ln0T7aJTdV!@>|+|#c+C5@yEzL2k1x5 z=@F+B`7ofL7|kCd{~Q2>D$r#Qkh*`+(FUUWhe&-9%;fq*i0>u$h`uh zeqZDd`2wB#eG!f*nb;(bI5+*{r}@+V$J|U*+MKH+OdUk$$_P7A$=;}7cG z0>XSS@@IV@%m*WX)^Cz+?n99~>jNzE)&zw4kj_dV%!kwuo5T+nct0#3!VedyA5sKy zf%+j3;sW)`!D-h(SJ~=0i=0Pl)-5g*3?)c$u@1^cckQvaIuB zlgqMuCEML)>LC4#;nPvYbKXJvQ}bzckp7aA&!~fd=m*fvIv{nQ(OCyX^%LB`xjx!L^ zS9F*KI?-2Tn4Ku~UrnDtwEfjgR4n7wOjIo6Rke&}v5Ym|G63{(jZP*Y%r$BmK$vUP zGMdFQ);Y`Q09fR+7YK8mPD3Efbz&KEQf(H?*pMDPl0UtDLl&l(#RlC*PzTC}$Uhfs z7PHtG+2?{ZCRVXAV~SO5%sMDmu`%l)gZ5^+CU4qCHe087Gb4&qys3K%N+G@(@mTOu z8zoNhR+OG~TmC|t6kB*pmv|t|w<10s5{C!Ed@Jf*Z_iB4Vhiu23&~W7;t20#Ln@B& zP87M%$tZ>RPE_h=_m<7#2%FO_NAvCNo7F|R2xYUnC=kl#$UjbO7BAQmrQJ8@8|j~% zeYa$di5YBB52Y057TJjW$o7vt(^fIB{10HterapQl>O4yC~}`GPzrNv)UUtqAN!^4 z-nfPy$A7k~aW&g-H@2&B0U>S|t^Kq}v{~;d9f)#T*qUJ;?#3O1>En-eby*UA39?h6yPDitDia8z4y2(Hu7jx=pKb}#< zmX50}wOCs^F1B=;y>r;oxHuhV%#Yj0#s19EVhw3r>Gvi`!NG)PW6XNs{V+OWO zh);}$c+rH|dl8l3Oo;KKD{MP>(d0A?%)hix&YBS~njG^=SbVR=deLN|$kDh(yy*Ja zz7$~u|Lxy z&Tcoy&cy&QZ_b!en5z~ z#@@vS7Q;K@im9J6#J~268m%5KuO9wV}A|fmWPLpuu z?Ln)AJ3ao|In4Z&YXr?j7c>yr>9IeJ0g;^^`_mYZ2|PXar!j%f38u&XG}bCH&xrLj z21FgK>Js#f*q_EIMSVu>Ph&vTXT<(ACeW$Rh_SKLZ3nQinQ5QIoY^)r6O}e+>NvMr z^O`B+>?kxbE1d+TeO5*hGn$oA#EfPMMUGXiVn(xLcdP=?gV{RAfG}sr{#XTsIXm{p zs#YYdV`?m+JVn%Veol`=J!(12LO6v8q-%Yt6S-bjUB3TPGg zS`??7cjo^@w6c?0l=V~GYfyBZ_$~j{SQ9 zYC>Eb^Ikx{A88fyTIwvQ4B(b8RSyEfT&f-fgt=5bXiza+7FRs&J!lX$m&JZ3HAs?r zxq1+YjsV@Q22yvqPIMru%Vnb5XXIdR_Hy+gfiB~gs|O8|+?4=RrVQ>OBaE z`cp9;bQ(LU!Nu_TxME9sVK;MX@%cC&YCUMMguCLK9>g_*=AsK4i0lgWARw|U)PsP; zyh1%lpo@8hdeC5rd8K;L-vdzxtGWceQay-L)K{tp0a0J69wgAIuM`jZ8*buY*-E|0 zc-Nht-g8}Cn?5r&pQLTm^Y!U_-A(utinJk#<3$~Ncr^5)`ah6{Ueuu%=o)%ahTb(q z{g-1lRj13N^49dl?xx0Ws<^04h>yLTH6cFsvijIy@v+t3#{i7NYE2Fx%+=~+K$xr5 z#|Dd!z2>(g~bGjQ1YEJ|^z^_s%efwEo40MJA zw58r~fT(X5!#N$pX)A_%;)?6i#wv4KaZel%vxd_q;qLpU;c$(hx#)rhBD+rw2Z-!G zH5?!@?^DAO=wjZdhSMf7f2f9YIS_TQs!Pxxs^L(I`iE*bK-51}!x8AzKNQ0`kDJ&g zhOOdUk`tGNIX-LJze(24GsVRoX_KbVF!=KS`9nW)&w!Aw-_ zqv_cX-B+GO;;bS4Hv;tyazh?5h40BbLXHzXA|C++~&PR$#V*!|&W zyCnCGi9djW2nXmA4@lh`wIe`OZ%q6Ftlb^JZcO|EjAEZ8Hzxi7)-E}AQ{oR`ASMFP zc@fZ-dM^T^ep7-M4Zw?r7Q@?rHd<_JntXasV4D;Z8}uegM0iYXr?j7c>yr zDTzOT0g;`O_yZV_sW~O_2QYyyv8N;)z)H3W=u^|KeNDfMr)HuO>r}llLv5^66CN?h zu^x!%)TGzx_ET4ZPIPKgb((#vJ5(&_?zG(3G`8KHiOTTYo%olm)FINlle*rX0-Bb- z3Z;EoMiGOVmQloDrU^yTZm1Z{^u+ERP6065(-Z$Z0SI$?;-4n~VNOr{=3%H9%#6gp zYwrL$?2;V_cSho$C;;KkNZ3Wld-|bbF*DOw8hBPRGx7ewMJO{fig?RRp|n~G-ZCpK zmCWGwSs6tvWme*!J`A;%GAm)jA+P*~ilxj>+#7uW@y*VdVkxr||3;ru8k?PPDi$Lf zDwZj%^M)9^CWNVUoL{_%RJ2+fo{6Y)4Ulb6XSl(8xS!AUETm~sm~iA>i0|D$cHt< zi{Zmb#fqfUi2AR86M5dhj~#u@Z%3ua8%<@mhZEi_%lo+D(u;*@V?T4w#S1lhE~39M z@qb4FM1Nu8|BeDk@Cy_FcN79$@Cy_Ejza8oxCH-b`ba<1-2P}LDnUP*_y-r%LG)3% zMc=U$(qmDQ4xgVtBR#u`ZRnzmC~}K*EQi}9StMiWh{!Cq#9rz3O=d{j;*2P%vN$73 zsw@`bPi%{%%F=Xellj{bOEZe($Wk@?;WkH>CY;Xy$x^t-PbU1>)+Ooc9`PCJoc^XX zoD1%z54TD3r1}n!_MQ~qk-w#sA5aUIC%I>m^gG44#eEr6YBu4Ixu^n?GRu?1nFh#fGl?k_3$eYhfHdG*-7`tv8o+Q_v!6@s1I2U}>cgJX{HF-@=QRI; zs6UtRJW;Z1xMbH0%rN`KbQwrr!7l%Sa9_~;0>XVE@qb`Cq8P4BDqiwgGJ={b6aSgT z2$^52G)q9J0$qQB)Lo@F2#D$`xk2`54JM{lnk53=L|dgarmn zI*`?6LnbOsZO}BP4x$?*jU`Dt1Z_27hC;eBU zypvHRHQq@Q_ZYpyrp7x7yG?nE+aa@lbNZK7bJiuBGm6aj&58dt5$X`w=7e95kQE!q zm~Ku6U2Ioufo@DUCxd@vQ>jBTVvAc#M*@gyi{=s#?Jb&1K(x2$TG}D&%~rOPykSh& z3?d1)Y9dhtajUM1K!{rto~TI@cE}EPyCxxx${rT%k`M@YyCxwJ?siE+S>!ro54+PZ zasa~Jsf!#C=1yJYfG~IJA~&)a?nx>>@aa2}ntPJi{Q})c$%nm~z98ZOx=a94cdw=| z5Y@dW7CA5jxL4Cxpc~=6n!Y1te(uxs1ramQr7zHy`t${&zE9G(iu66X7#>I}K4p=M zOPARn5p{ngcru&=N!kBE;K>sHK@A^7_&^svkje)&d>{=Rl<;MK0EzyfMlaAse^8u1*LN4TQj6Y8*o=UH3Ge4~SJc;eo_^^ULgn@oWfI!o z#gGC_;LD_k{apfqwDM)rcDAe@0!=YIl9*#j$gi6v_QJxKm-C67znIlJo|y54ki3X& zttl)!{t|C0xzwo`PAcSXE#&J4meL9BW<+^XA+$d#B!vVqsnE@)wm^cIRA@cT2f^mA;;qk#OD+gLtiHXF`@IWdPAB2N%AvXKxgoso?MKjs+zv0!GM2qN!;@E2VWQtO_AnR6nDybZ!% zy3htemAQr7LV`H6l>Tv;`F?qBA+*27M1=fet(jYJAEyc=h`EKK=lYT07uLdg1@qvE zAdC;fUvxo8t@#DB;6xC{2H`IawL!2Ad909IP7n>H^ykA(Yx%J(h=3p-%Yu-7(PLQ< z{F!^Ws9=_y2qN%7_=_$GskO9VmYoP9utB&>KM$|I=Blw*brg>6?o_C;X?R^>gyCPn TzmR_s|6=|nOZY}=;;{b*d&PtA diff --git a/managed/models/agent_helpers.go b/managed/models/agent_helpers.go index 2f88827778..e9f15e20ae 100644 --- a/managed/models/agent_helpers.go +++ b/managed/models/agent_helpers.go @@ -903,10 +903,10 @@ func CreateAgent(q *reform.Querier, agentType AgentType, params *CreateAgentPara // ChangeCommonAgentParams contains parameters that can be changed for all Agents. type ChangeCommonAgentParams struct { - Disabled *bool // true - disable, false - enable, nil - do not change + Enabled *bool // true - enable, false - disable, nil - do not change CustomLabels map[string]string RemoveCustomLabels bool - DisablePushMetrics *bool + EnablePushMetrics *bool } // ChangeAgent changes common parameters for given Agent. @@ -916,15 +916,11 @@ func ChangeAgent(q *reform.Querier, agentID string, params *ChangeCommonAgentPar return nil, err } - if params.Disabled != nil { - if *params.Disabled { - row.Disabled = true - } else { - row.Disabled = false - } + if params.Enabled != nil { + row.Disabled = !(*params.Enabled) } - if params.DisablePushMetrics != nil { - row.PushMetrics = !(*params.DisablePushMetrics) + if params.EnablePushMetrics != nil { + row.PushMetrics = *params.EnablePushMetrics if row.AgentType == ExternalExporterType { if err := updateExternalExporterParams(q, row); err != nil { return nil, errors.Wrap(err, "failed to update External exporterParams for PushMetrics") diff --git a/managed/services/inventory/agents.go b/managed/services/inventory/agents.go index eaa899123c..352c3177bb 100644 --- a/managed/services/inventory/agents.go +++ b/managed/services/inventory/agents.go @@ -75,30 +75,8 @@ func (as *AgentsService) changeAgent(agentID string, common *inventoryv1.ChangeC RemoveCustomLabels: common.RemoveCustomLabels, } - got := 0 - if common.Enable { - got++ - params.Disabled = pointer.ToBool(false) - } - if common.Disable { - got++ - params.Disabled = pointer.ToBool(true) - } - if got > 1 { - return status.Errorf(codes.InvalidArgument, "expected at most one param: enable or disable") - } - got = 0 - if common.EnablePushMetrics { - got++ - params.DisablePushMetrics = pointer.ToBool(false) - } - if common.DisablePushMetrics { - got++ - params.DisablePushMetrics = pointer.ToBool(true) - } - if got > 1 { - return status.Errorf(codes.InvalidArgument, "expected one of param: enable_push_metrics or disable_push_metrics") - } + params.Enabled = common.Enable + params.EnablePushMetrics = common.EnablePushMetrics row, err := models.ChangeAgent(tx.Querier, agentID, params) if err != nil { diff --git a/managed/services/inventory/agents_test.go b/managed/services/inventory/agents_test.go index 341e32cf78..7a5172a7c5 100644 --- a/managed/services/inventory/agents_test.go +++ b/managed/services/inventory/agents_test.go @@ -81,7 +81,7 @@ func TestAgents(t *testing.T) { resp, err := as.ChangeNodeExporter(ctx, &inventoryv1.ChangeNodeExporterParams{ AgentId: "/agent_id/00000000-0000-4000-8000-000000000006", Common: &inventoryv1.ChangeCommonAgentParams{ - Disable: true, + Enable: pointer.ToBool(false), }, }) require.NoError(t, err) From db2fc88b3f645dc483e951ff55f1476e79cbb777 Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Thu, 1 Feb 2024 19:37:11 +0000 Subject: [PATCH 20/29] PMM-12811 make custom_labels map optional --- .../agents_azure_database_exporter_test.go | 6 +- .../agents_external_exporter_test.go | 6 +- .../inventory/agents_mongodb_exporter_test.go | 6 +- .../inventory/agents_mysqld_exporter_test.go | 6 +- .../inventory/agents_node_exporter_test.go | 6 +- .../agents_postgres_exporter_test.go | 6 +- .../agents_proxysql_exporter_test.go | 6 +- .../inventory/agents_rds_exporter_test.go | 6 +- api-tests/inventory/agents_test.go | 18 +- api/common/common.pb.go | 103 +- api/common/common.pb.validate.go | 101 + api/common/common.proto | 5 + api/inventory/v1/agents.pb.go | 3809 ++++++++--------- api/inventory/v1/agents.pb.validate.go | 33 +- api/inventory/v1/agents.proto | 3 +- .../agents_service/change_agent_responses.go | 1831 ++++++-- api/inventory/v1/json/v1.json | 169 +- api/swagger/swagger-dev.json | 169 +- descriptor.bin | Bin 680590 -> 680927 bytes managed/models/agent_helpers.go | 25 +- managed/services/inventory/agents.go | 8 +- managed/services/inventory/agents_test.go | 432 +- 22 files changed, 4184 insertions(+), 2570 deletions(-) diff --git a/api-tests/inventory/agents_azure_database_exporter_test.go b/api-tests/inventory/agents_azure_database_exporter_test.go index 6b13b95439..ffaee333d3 100644 --- a/api-tests/inventory/agents_azure_database_exporter_test.go +++ b/api-tests/inventory/agents_azure_database_exporter_test.go @@ -118,8 +118,10 @@ func TestAzureDatabaseExporter(t *testing.T) { //nolint:tparallel AgentID: agentID, Common: &agents.ChangeAgentParamsBodyAzureDatabaseExporterCommon{ Enable: pointer.ToBool(true), - CustomLabels: map[string]string{ - "new_label": "azure_database_exporter", + CustomLabels: &agents.ChangeAgentParamsBodyAzureDatabaseExporterCommonCustomLabels{ + Values: map[string]string{ + "new_label": "azure_database_exporter", + }, }, }, }, diff --git a/api-tests/inventory/agents_external_exporter_test.go b/api-tests/inventory/agents_external_exporter_test.go index 4d5710f9da..06e17650a9 100644 --- a/api-tests/inventory/agents_external_exporter_test.go +++ b/api-tests/inventory/agents_external_exporter_test.go @@ -175,8 +175,10 @@ func TestExternalExporter(t *testing.T) { AgentID: agentID, Common: &agents.ChangeAgentParamsBodyExternalExporterCommon{ Enable: pointer.ToBool(true), - CustomLabels: map[string]string{ - "new_label": "external_exporter", + CustomLabels: &agents.ChangeAgentParamsBodyExternalExporterCommonCustomLabels{ + Values: map[string]string{ + "new_label": "external_exporter", + }, }, }, }, diff --git a/api-tests/inventory/agents_mongodb_exporter_test.go b/api-tests/inventory/agents_mongodb_exporter_test.go index eeb6f98a2d..edc912d7a5 100644 --- a/api-tests/inventory/agents_mongodb_exporter_test.go +++ b/api-tests/inventory/agents_mongodb_exporter_test.go @@ -135,8 +135,10 @@ func TestMongoDBExporter(t *testing.T) { AgentID: agentID, Common: &agents.ChangeAgentParamsBodyMongodbExporterCommon{ Enable: pointer.ToBool(true), - CustomLabels: map[string]string{ - "new_label": "mongodb_exporter", + CustomLabels: &agents.ChangeAgentParamsBodyMongodbExporterCommonCustomLabels{ + Values: map[string]string{ + "new_label": "mongodb_exporter", + }, }, }, }, diff --git a/api-tests/inventory/agents_mysqld_exporter_test.go b/api-tests/inventory/agents_mysqld_exporter_test.go index 6913bc9d88..54007a0e8b 100644 --- a/api-tests/inventory/agents_mysqld_exporter_test.go +++ b/api-tests/inventory/agents_mysqld_exporter_test.go @@ -134,8 +134,10 @@ func TestMySQLdExporter(t *testing.T) { AgentID: agentID, Common: &agents.ChangeAgentParamsBodyMysqldExporterCommon{ Enable: pointer.ToBool(true), - CustomLabels: map[string]string{ - "new_label": "mysql_exporter", + CustomLabels: &agents.ChangeAgentParamsBodyMysqldExporterCommonCustomLabels{ + Values: map[string]string{ + "new_label": "mysql_exporter", + }, }, }, }, diff --git a/api-tests/inventory/agents_node_exporter_test.go b/api-tests/inventory/agents_node_exporter_test.go index afd2d1ea39..c32b6046ef 100644 --- a/api-tests/inventory/agents_node_exporter_test.go +++ b/api-tests/inventory/agents_node_exporter_test.go @@ -104,8 +104,10 @@ func TestNodeExporter(t *testing.T) { AgentID: agentID, Common: &agents.ChangeAgentParamsBodyNodeExporterCommon{ Enable: pointer.ToBool(true), - CustomLabels: map[string]string{ - "new_label": "node_exporter", + CustomLabels: &agents.ChangeAgentParamsBodyNodeExporterCommonCustomLabels{ + Values: map[string]string{ + "new_label": "node_exporter", + }, }, }, }, diff --git a/api-tests/inventory/agents_postgres_exporter_test.go b/api-tests/inventory/agents_postgres_exporter_test.go index c3c4e775ad..129d690b6b 100644 --- a/api-tests/inventory/agents_postgres_exporter_test.go +++ b/api-tests/inventory/agents_postgres_exporter_test.go @@ -133,8 +133,10 @@ func TestPostgresExporter(t *testing.T) { AgentID: agentID, Common: &agents.ChangeAgentParamsBodyPostgresExporterCommon{ Enable: pointer.ToBool(true), - CustomLabels: map[string]string{ - "new_label": "postgres_exporter", + CustomLabels: &agents.ChangeAgentParamsBodyPostgresExporterCommonCustomLabels{ + Values: map[string]string{ + "new_label": "postgres_exporter", + }, }, }, }, diff --git a/api-tests/inventory/agents_proxysql_exporter_test.go b/api-tests/inventory/agents_proxysql_exporter_test.go index 78f81dd225..2a210ffe80 100644 --- a/api-tests/inventory/agents_proxysql_exporter_test.go +++ b/api-tests/inventory/agents_proxysql_exporter_test.go @@ -133,8 +133,10 @@ func TestProxySQLExporter(t *testing.T) { AgentID: agentID, Common: &agents.ChangeAgentParamsBodyProxysqlExporterCommon{ Enable: pointer.ToBool(true), - CustomLabels: map[string]string{ - "new_label": "proxysql_exporter", + CustomLabels: &agents.ChangeAgentParamsBodyProxysqlExporterCommonCustomLabels{ + Values: map[string]string{ + "new_label": "proxysql_exporter", + }, }, }, }, diff --git a/api-tests/inventory/agents_rds_exporter_test.go b/api-tests/inventory/agents_rds_exporter_test.go index 7b250d4294..82c3213720 100644 --- a/api-tests/inventory/agents_rds_exporter_test.go +++ b/api-tests/inventory/agents_rds_exporter_test.go @@ -119,8 +119,10 @@ func TestRDSExporter(t *testing.T) { AgentID: agentID, Common: &agents.ChangeAgentParamsBodyRDSExporterCommon{ Enable: pointer.ToBool(true), - CustomLabels: map[string]string{ - "new_label": "rds_exporter", + CustomLabels: &agents.ChangeAgentParamsBodyRDSExporterCommonCustomLabels{ + Values: map[string]string{ + "new_label": "rds_exporter", + }, }, }, }, diff --git a/api-tests/inventory/agents_test.go b/api-tests/inventory/agents_test.go index 1e210e160e..f058607f59 100644 --- a/api-tests/inventory/agents_test.go +++ b/api-tests/inventory/agents_test.go @@ -590,8 +590,10 @@ func TestQanAgentExporter(t *testing.T) { AgentID: agentID, Common: &agents.ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon{ Enable: pointer.ToBool(true), - CustomLabels: map[string]string{ - "new_label": "QANMysqlPerfschemaAgent", + CustomLabels: &agents.ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommonCustomLabels{ + Values: map[string]string{ + "new_label": "QANMysqlPerfschemaAgent", + }, }, }, }, @@ -851,8 +853,10 @@ func TestPGStatStatementsQanAgent(t *testing.T) { AgentID: agentID, Common: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon{ Enable: pointer.ToBool(true), - CustomLabels: map[string]string{ - "new_label": "QANPostgreSQLPgStatementsAgent", + CustomLabels: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommonCustomLabels{ + Values: map[string]string{ + "new_label": "QANPostgreSQLPgStatementsAgent", + }, }, }, }, @@ -1112,8 +1116,10 @@ func TestPGStatMonitorQanAgent(t *testing.T) { AgentID: agentID, Common: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon{ Enable: pointer.ToBool(true), - CustomLabels: map[string]string{ - "new_label": "QANPostgreSQLPgStatMonitorAgent", + CustomLabels: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommonCustomLabels{ + Values: map[string]string{ + "new_label": "QANPostgreSQLPgStatMonitorAgent", + }, }, }, }, diff --git a/api/common/common.pb.go b/api/common/common.pb.go index 2426f03a9f..4d9495b672 100644 --- a/api/common/common.pb.go +++ b/api/common/common.pb.go @@ -69,6 +69,54 @@ func (x *StringArray) GetValues() []string { return nil } +// A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +type StringMap struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Values map[string]string `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *StringMap) Reset() { + *x = StringMap{} + if protoimpl.UnsafeEnabled { + mi := &file_common_common_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StringMap) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StringMap) ProtoMessage() {} + +func (x *StringMap) ProtoReflect() protoreflect.Message { + mi := &file_common_common_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StringMap.ProtoReflect.Descriptor instead. +func (*StringMap) Descriptor() ([]byte, []int) { + return file_common_common_proto_rawDescGZIP(), []int{1} +} + +func (x *StringMap) GetValues() map[string]string { + if x != nil { + return x.Values + } + return nil +} + var File_common_common_proto protoreflect.FileDescriptor var file_common_common_proto_rawDesc = []byte{ @@ -76,15 +124,23 @@ var file_common_common_proto_rawDesc = []byte{ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x25, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x42, 0x74, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x42, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x21, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x65, - 0x72, 0x63, 0x6f, 0x6e, 0x61, 0x2f, 0x70, 0x6d, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0xa2, 0x02, 0x03, 0x43, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0xca, 0x02, 0x06, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0xe2, 0x02, 0x12, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xea, 0x02, 0x06, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x6c, 0x75, 0x65, 0x73, 0x22, 0x7d, 0x0a, 0x09, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, + 0x70, 0x12, 0x35, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x4d, 0x61, 0x70, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x56, 0x61, 0x6c, 0x75, + 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, 0x42, 0x74, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x42, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, + 0x5a, 0x21, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x65, 0x72, + 0x63, 0x6f, 0x6e, 0x61, 0x2f, 0x70, 0x6d, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0xa2, 0x02, 0x03, 0x43, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0xca, 0x02, 0x06, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0xe2, 0x02, 0x12, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x06, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -100,18 +156,21 @@ func file_common_common_proto_rawDescGZIP() []byte { } var ( - file_common_common_proto_msgTypes = make([]protoimpl.MessageInfo, 1) + file_common_common_proto_msgTypes = make([]protoimpl.MessageInfo, 3) file_common_common_proto_goTypes = []interface{}{ (*StringArray)(nil), // 0: common.StringArray + (*StringMap)(nil), // 1: common.StringMap + nil, // 2: common.StringMap.ValuesEntry } ) var file_common_common_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name + 2, // 0: common.StringMap.values:type_name -> common.StringMap.ValuesEntry + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] 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_common_common_proto_init() } @@ -132,6 +191,18 @@ func file_common_common_proto_init() { return nil } } + file_common_common_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StringMap); 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{ @@ -139,7 +210,7 @@ func file_common_common_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_common_common_proto_rawDesc, NumEnums: 0, - NumMessages: 1, + NumMessages: 3, NumExtensions: 0, NumServices: 0, }, diff --git a/api/common/common.pb.validate.go b/api/common/common.pb.validate.go index 1c35c6ce91..5c76854986 100644 --- a/api/common/common.pb.validate.go +++ b/api/common/common.pb.validate.go @@ -133,3 +133,104 @@ var _ interface { Cause() error ErrorName() string } = StringArrayValidationError{} + +// Validate checks the field values on StringMap with the rules defined in the +// proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *StringMap) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on StringMap with the rules defined in +// the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in StringMapMultiError, or nil +// if none found. +func (m *StringMap) ValidateAll() error { + return m.validate(true) +} + +func (m *StringMap) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Values + + if len(errors) > 0 { + return StringMapMultiError(errors) + } + + return nil +} + +// StringMapMultiError is an error wrapping multiple validation errors returned +// by StringMap.ValidateAll() if the designated constraints aren't met. +type StringMapMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m StringMapMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m StringMapMultiError) AllErrors() []error { return m } + +// StringMapValidationError is the validation error returned by +// StringMap.Validate if the designated constraints aren't met. +type StringMapValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e StringMapValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e StringMapValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e StringMapValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e StringMapValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e StringMapValidationError) ErrorName() string { return "StringMapValidationError" } + +// Error satisfies the builtin error interface +func (e StringMapValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sStringMap.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = StringMapValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = StringMapValidationError{} diff --git a/api/common/common.proto b/api/common/common.proto index c3c1547cee..55265f25cd 100644 --- a/api/common/common.proto +++ b/api/common/common.proto @@ -6,3 +6,8 @@ package common; message StringArray { repeated string values = 1; } + +// A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +message StringMap { + map values = 1; +} diff --git a/api/inventory/v1/agents.pb.go b/api/inventory/v1/agents.pb.go index 1f70d20d24..49708baa8e 100644 --- a/api/inventory/v1/agents.pb.go +++ b/api/inventory/v1/agents.pb.go @@ -15,6 +15,8 @@ import ( _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + + common "github.com/percona/pmm/api/common" ) const ( @@ -2536,7 +2538,7 @@ type ChangeCommonAgentParams struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` // Replace all custom user-assigned labels. - CustomLabels map[string]string `protobuf:"bytes,2,rep,name=custom_labels,json=customLabels,proto3" json:"custom_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + CustomLabels *common.StringMap `protobuf:"bytes,2,opt,name=custom_labels,json=customLabels,proto3,oneof" json:"custom_labels,omitempty"` // Remove all custom user-assigned labels. RemoveCustomLabels bool `protobuf:"varint,3,opt,name=remove_custom_labels,json=removeCustomLabels,proto3" json:"remove_custom_labels,omitempty"` // Enables push metrics with vmagent. @@ -2582,7 +2584,7 @@ func (x *ChangeCommonAgentParams) GetEnable() bool { return false } -func (x *ChangeCommonAgentParams) GetCustomLabels() map[string]string { +func (x *ChangeCommonAgentParams) GetCustomLabels() *common.StringMap { if x != nil { return x.CustomLabels } @@ -7248,86 +7250,287 @@ var File_inventory_v1_agents_proto protoreflect.FileDescriptor var file_inventory_v1_agents_proto_rawDesc = []byte{ 0x0a, 0x19, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x1a, 0x1f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, - 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, - 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, - 0xa6, 0x02, 0x0a, 0x08, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 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, 0x25, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x73, 0x5f, - 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x73, 0x4f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x4d, - 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x75, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x1a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 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, 0x1a, 0x1f, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x6f, 0x67, 0x5f, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, + 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa6, 0x02, 0x0a, 0x08, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, + 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, 0x25, 0x0a, 0x0f, + 0x72, 0x75, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x73, 0x4f, 0x6e, 0x4e, 0x6f, 0x64, + 0x65, 0x49, 0x64, 0x12, 0x4d, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, + 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 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, 0xc6, 0x01, + 0x0a, 0x07, 0x56, 0x4d, 0x41, 0x67, 0x65, 0x6e, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, + 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x22, 0xbc, 0x04, 0x0a, 0x0c, 0x4e, 0x6f, 0x64, 0x65, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x12, 0x51, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x12, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, + 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, + 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 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, 0xfd, 0x06, 0x0a, 0x0e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x74, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, + 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, + 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, + 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, + 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, + 0x79, 0x12, 0x3f, 0x0a, 0x1c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x12, 0x53, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x75, 0x73, 0x68, 0x5f, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, + 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x15, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x3a, + 0x0a, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x17, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, + 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, + 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, + 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x19, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 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, 0xc5, 0x06, 0x0a, 0x0f, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, + 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x74, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, + 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, + 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x54, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, + 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x1c, 0x0a, - 0x09, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, - 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, - 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 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, 0xc6, 0x01, 0x0a, 0x07, 0x56, 0x4d, 0x41, - 0x67, 0x65, 0x6e, 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, - 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, - 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, - 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, - 0x74, 0x22, 0xbc, 0x04, 0x0a, 0x0c, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x30, 0x0a, + 0x14, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x70, 0x75, 0x73, + 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, + 0x2f, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, + 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x10, 0x73, 0x74, 0x61, 0x74, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x32, + 0x0a, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, + 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, + 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x1a, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, + 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0xeb, 0x05, + 0x0a, 0x10, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x51, 0x0a, 0x0d, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x43, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x30, - 0x0a, 0x14, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x70, 0x75, - 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 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, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, - 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, - 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, - 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0xfd, 0x06, 0x0a, 0x0e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, + 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, + 0x12, 0x55, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x75, 0x73, 0x68, 0x5f, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, + 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x15, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2a, + 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, + 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x30, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, + 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x61, + 0x75, 0x74, 0x6f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, + 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0xb9, 0x05, 0x0a, 0x10, + 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 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, 0x20, 0x0a, 0x0c, 0x70, + 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, + 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x55, + 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x12, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x15, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2a, 0x0a, 0x11, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, + 0x68, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, + 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x81, 0x06, 0x0a, 0x17, 0x51, 0x41, 0x4e, 0x4d, + 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, + 0x65, 0x6e, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, @@ -7344,46 +7547,38 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x3f, 0x0a, 0x1c, - 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x53, 0x0a, - 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0c, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x12, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 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, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x3a, 0x0a, 0x19, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, - 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, - 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x18, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, - 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0xc5, 0x06, 0x0a, 0x0f, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x38, 0x0a, 0x18, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, + 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x12, 0x36, 0x0a, 0x17, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, + 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x15, 0x71, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, + 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x5c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x37, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, + 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x15, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, + 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0xae, 0x06, 0x0a, 0x14, + 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, + 0x67, 0x65, 0x6e, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, @@ -7396,299 +7591,28 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, - 0x66, 0x79, 0x12, 0x54, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x75, 0x73, 0x68, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x15, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, - 0x2b, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x61, 0x74, - 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x11, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2a, 0x0a, - 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, - 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, - 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, - 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0xeb, 0x05, 0x0a, 0x10, 0x50, 0x6f, 0x73, - 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, - 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, - 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, - 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x55, 0x0a, 0x0d, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x12, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 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, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, - 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x16, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, - 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x75, - 0x74, 0x6f, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x61, 0x75, 0x74, 0x6f, 0x44, 0x69, - 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x27, 0x0a, 0x0f, - 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, - 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0xb9, 0x05, 0x0a, 0x10, 0x50, 0x72, 0x6f, 0x78, 0x79, - 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, - 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, - 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, - 0x72, 0x69, 0x66, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, - 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x55, 0x0a, 0x0d, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x30, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x12, 0x30, 0x0a, 0x14, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, - 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 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, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, - 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x16, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, - 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x18, 0x17, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, - 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, - 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x18, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 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, 0x81, 0x06, 0x0a, 0x17, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, - 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, - 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, - 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, - 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, - 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, - 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, - 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, - 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, - 0x67, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x36, 0x0a, 0x17, 0x71, - 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x5f, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x71, 0x75, - 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x12, 0x5c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, - 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, - 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, - 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x16, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0xae, 0x06, 0x0a, 0x14, 0x51, 0x41, 0x4e, 0x4d, 0x79, - 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, - 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, - 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, - 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, - 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, - 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, - 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, - 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, - 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, - 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x36, 0x0a, 0x17, - 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x5f, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x71, - 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x44, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x6c, 0x6f, 0x77, - 0x6c, 0x6f, 0x67, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x46, - 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x59, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, - 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, - 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, - 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x16, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, - 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0xe3, 0x04, 0x0a, 0x17, 0x51, 0x41, 0x4e, 0x4d, - 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, - 0x65, 0x6e, 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, 0x20, - 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, - 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, - 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, - 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x5c, 0x0a, 0x0d, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x11, - 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, - 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x4a, 0x04, - 0x08, 0x08, 0x10, 0x09, 0x52, 0x17, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, - 0x70, 0x6c, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x8c, 0x05, - 0x0a, 0x1e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, - 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 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, 0x20, 0x0a, 0x0c, 0x70, - 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x28, - 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, - 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, - 0x66, 0x79, 0x12, 0x63, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, - 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, + 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, + 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, + 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x38, 0x0a, + 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x12, 0x36, 0x0a, 0x17, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x15, 0x71, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, + 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x61, 0x78, + 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x53, 0x6c, 0x6f, + 0x77, 0x6c, 0x6f, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x59, 0x0a, 0x0d, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0f, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, + 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, @@ -7703,1343 +7627,1471 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 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, 0xc6, 0x05, 0x0a, - 0x1f, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, - 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 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, 0x20, 0x0a, 0x0c, 0x70, - 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, - 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x38, - 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, - 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x12, 0x36, 0x0a, 0x17, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, - 0x70, 0x6c, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x15, 0x71, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, - 0x65, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x64, 0x0a, 0x0d, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x3f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, - 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, - 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, - 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x16, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 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, 0xc3, 0x05, 0x0a, 0x0b, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xe3, 0x04, 0x0a, + 0x17, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x74, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, + 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, + 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, + 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x12, 0x5c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, + 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x31, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, + 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, + 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 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, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x52, 0x17, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x22, 0x8c, 0x05, 0x0a, 0x1e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, + 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x41, 0x67, 0x65, 0x6e, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x17, - 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x61, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x61, 0x77, 0x73, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x50, 0x0a, - 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, - 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, - 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, - 0x6f, 0x72, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x62, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x14, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x14, 0x62, 0x61, 0x73, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x65, 0x6e, 0x68, - 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x65, 0x6e, - 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x44, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x16, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x12, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, - 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x17, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, - 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, - 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, - 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x61, 0x75, 0x74, 0x6f, 0x44, 0x69, 0x73, 0x63, - 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 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, 0xfd, 0x03, 0x0a, 0x10, - 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 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, 0x25, 0x0a, 0x0f, 0x72, - 0x75, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x73, 0x4f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, - 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x50, 0x61, 0x74, 0x68, 0x12, 0x55, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x30, 0x0a, 0x14, - 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x70, 0x75, 0x73, 0x68, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2a, - 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, - 0x61, 0x74, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, - 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 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, 0x05, 0x0a, 0x15, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x17, - 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x43, 0x0a, 0x1e, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x1b, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x53, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x1c, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x19, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, - 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5a, 0x0a, - 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, - 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x0b, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x30, 0x0a, - 0x14, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x70, 0x75, 0x73, - 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, + 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, + 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, + 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x10, 0x0a, + 0x03, 0x74, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, + 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, + 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x63, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, + 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, - 0x70, 0x61, 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, + 0x70, 0x61, 0x74, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, - 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, + 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0xdf, 0x02, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1b, 0x0a, - 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, - 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x0d, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x33, 0x0a, 0x13, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 0x1a, + 0x01, 0x22, 0xc6, 0x05, 0x0a, 0x1f, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, + 0x41, 0x67, 0x65, 0x6e, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, + 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, + 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, + 0x69, 0x66, 0x79, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, + 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x36, 0x0a, 0x17, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x71, 0x75, 0x65, 0x72, 0x79, 0x45, + 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, + 0x64, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, + 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, + 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0xc3, 0x05, 0x0a, 0x0b, 0x52, + 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, + 0x61, 0x77, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x77, 0x73, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, + 0x65, 0x79, 0x12, 0x50, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 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, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x62, 0x61, 0x73, 0x69, + 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x62, 0x61, 0x73, 0x69, 0x63, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x3a, + 0x0a, 0x19, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x17, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x75, + 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, + 0x68, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x30, 0x0a, + 0x14, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x61, 0x75, 0x74, + 0x6f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 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, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x22, 0xa5, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, - 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, - 0x64, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x0a, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x09, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0xe7, 0x09, 0x0a, 0x12, - 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x70, - 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x08, 0x76, 0x6d, 0x5f, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x52, 0x07, 0x76, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x0c, 0x6e, 0x6f, - 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x0f, 0x6d, 0x79, - 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x12, 0x48, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, - 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, - 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x11, 0x70, - 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x62, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, - 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, - 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x59, 0x0a, 0x17, 0x71, 0x61, 0x6e, - 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, - 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x14, - 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, - 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, - 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, - 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x77, 0x0a, 0x21, 0x71, 0x61, 0x6e, 0x5f, - 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, - 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, - 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x12, 0x7a, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, - 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, - 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, - 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x1f, 0x71, 0x61, - 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, - 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, - 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x12, 0x3c, 0x0a, 0x0c, 0x72, 0x64, - 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x0b, 0x72, 0x64, 0x73, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x5b, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x22, 0xfd, 0x03, 0x0a, 0x10, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x25, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x73, 0x4f, + 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x55, 0x0a, 0x0d, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x30, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, + 0x74, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x12, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, + 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 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, 0x05, 0x0a, 0x15, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x43, 0x0a, 0x1e, + 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x1b, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x12, 0x3f, 0x0a, 0x1c, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x5a, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x15, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x22, 0x35, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, - 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x8b, 0x0a, 0x0a, - 0x10, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x35, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x08, - 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x07, 0x76, 0x6d, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x48, 0x00, 0x52, 0x07, 0x76, 0x6d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0d, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, - 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x47, - 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, - 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, - 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, - 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, - 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, - 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, - 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, - 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, - 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, - 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, - 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x14, - 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, - 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, - 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, - 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, 0x21, 0x71, 0x61, - 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, - 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, - 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, - 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, - 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, - 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, - 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, - 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x12, 0x5d, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0x4f, 0x0a, 0x13, 0x47, 0x65, - 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x6a, 0x0a, 0x14, 0x47, - 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x3e, 0x0a, 0x1c, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x69, 0x6e, 0x65, - 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x6f, 0x67, 0x4c, 0x69, 0x6e, - 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xd7, 0x0a, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x70, - 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, - 0x64, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, - 0x00, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0d, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, - 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x64, 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, - 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, - 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x6d, - 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, - 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x74, - 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, - 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, - 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x52, - 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, - 0x66, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, - 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x6d, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, - 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x31, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, + 0x72, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x12, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, + 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, + 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x8f, 0x02, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x3b, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x70, 0x48, 0x01, 0x52, 0x0c, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x14, + 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x33, + 0x0a, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x11, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x75, 0x73, 0x68, + 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xa5, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, + 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, + 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x0a, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x22, 0xe7, 0x09, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x08, + 0x76, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x4d, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x76, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x3f, + 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, + 0x45, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, + 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, + 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x12, 0x4b, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, + 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x10, 0x70, 0x6f, 0x73, + 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4b, 0x0a, + 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, + 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x62, 0x0a, 0x1a, 0x71, 0x61, + 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x17, 0x71, - 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, - 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, - 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, - 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x6d, 0x0a, 0x1a, - 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x82, 0x01, 0x0a, 0x21, - 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, - 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, - 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, - 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, - 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x12, 0x85, 0x01, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, - 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, - 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, - 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, - 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, - 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x22, 0xf9, 0x09, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, + 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x59, + 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, + 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, + 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, + 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x1a, 0x71, 0x61, 0x6e, + 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, + 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x77, 0x0a, + 0x21, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, + 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, + 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, + 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7a, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, + 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, + 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, + 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, + 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x12, + 0x3c, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, + 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x5b, 0x0a, + 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, + 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x22, 0x35, 0x0a, 0x0f, 0x47, 0x65, + 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, + 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x22, 0x8b, 0x0a, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, - 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x12, 0x47, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, - 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, - 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, - 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, - 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, - 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, - 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x12, 0x5d, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, - 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, - 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, - 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, - 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, - 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x14, - 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, - 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, - 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, - 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, 0x21, 0x71, 0x61, + 0x74, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, + 0x07, 0x76, 0x6d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x4d, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x07, 0x76, 0x6d, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x12, 0x41, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, + 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, + 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x10, + 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, + 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, + 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, + 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, + 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, + 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, + 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, + 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, + 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, + 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, + 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, + 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, + 0x64, 0x62, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, + 0x79, 0x0a, 0x21, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, + 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, + 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, + 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, - 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, - 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, - 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, - 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, - 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, - 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xc1, 0x0a, - 0x0a, 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, - 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, - 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x12, 0x59, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, + 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, + 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x5d, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, + 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, + 0x4f, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x22, 0x6a, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x3e, 0x0a, 0x1c, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6c, 0x6f, 0x67, + 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x18, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, + 0x6f, 0x67, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xd7, 0x0a, 0x0a, + 0x0f, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x3e, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x12, 0x4a, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0c, + 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x0f, + 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0e, + 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x53, + 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, + 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, + 0x64, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, - 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x11, 0x70, + 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x78, - 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, - 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x12, 0x4a, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x44, 0x53, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, - 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x69, 0x0a, - 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, - 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, - 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x70, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, - 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, - 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x67, 0x0a, 0x17, 0x71, 0x61, - 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x14, 0x71, - 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x12, 0x70, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, - 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, + 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, + 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, + 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0c, 0x72, + 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x64, 0x64, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x12, 0x66, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x6d, 0x0a, 0x1a, + 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x17, 0x71, + 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, + 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, + 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, + 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x12, 0x6d, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, + 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, + 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, + 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x12, 0x82, 0x01, 0x0a, 0x21, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, + 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, + 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x85, 0x01, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, + 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, + 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, + 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, + 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, + 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xf9, 0x09, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x70, + 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, + 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, + 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, + 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, + 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, + 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, + 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, + 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x5d, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, + 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, + 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, + 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, + 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, + 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, + 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, + 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, + 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, + 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, - 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x85, 0x01, 0x0a, 0x21, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, - 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x38, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, - 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1e, 0x71, - 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x88, 0x01, - 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, - 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, - 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, + 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, + 0x64, 0x62, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, + 0x79, 0x0a, 0x21, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, + 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, + 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, + 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, + 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, + 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, - 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x22, 0xc5, 0x09, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, + 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x22, 0xc1, 0x0a, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, - 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0f, - 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, - 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, - 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, - 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, + 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, + 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x6d, + 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, + 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x6f, 0x6e, + 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, - 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, - 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x3e, - 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, - 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x5d, - 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x64, 0x0a, + 0x12, 0x59, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, + 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x11, 0x65, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x12, 0x69, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x70, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, - 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, - 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, - 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, - 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, - 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, - 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, 0x21, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, - 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, - 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, - 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, - 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, - 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, - 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1f, - 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, - 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, - 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xdc, 0x01, 0x0a, 0x11, 0x41, 0x64, - 0x64, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, - 0x2e, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x73, 0x4f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, - 0x56, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x8f, 0x03, 0x0a, 0x15, 0x41, 0x64, 0x64, - 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x5a, 0x0a, - 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, - 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x6c, - 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, - 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, - 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x7d, 0x0a, 0x18, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x9d, 0x06, 0x0a, 0x17, 0x41, 0x64, - 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, - 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, - 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, - 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, - 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, - 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x3f, - 0x0a, 0x1c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, - 0x5c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0c, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, - 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, - 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x7f, 0x0a, 0x1a, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xe9, 0x07, 0x0a, 0x18, 0x41, - 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, - 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, - 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x2e, 0x0a, 0x13, - 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, - 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x6c, 0x73, 0x43, 0x65, - 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x48, 0x0a, 0x21, - 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, - 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x50, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x5d, 0x0a, - 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, + 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, + 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, + 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, + 0x67, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, + 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, + 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, + 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x70, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, + 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, + 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, + 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x85, 0x01, 0x0a, 0x21, 0x71, + 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, + 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, + 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x12, 0x88, 0x01, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, + 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, + 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, + 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, + 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, + 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xc5, 0x09, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, + 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x12, 0x47, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, + 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x6d, 0x6f, + 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, + 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, + 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, + 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x12, 0x5d, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, + 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, + 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, + 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, + 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, + 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, + 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, + 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, + 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, + 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, 0x21, 0x71, + 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, + 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, + 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, + 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, + 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, + 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xdc, + 0x01, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x73, 0x4f, 0x6e, 0x4e, 0x6f, + 0x64, 0x65, 0x49, 0x64, 0x12, 0x56, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x4d, + 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0b, 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, - 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x73, 0x12, 0x39, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x12, 0x37, 0x0a, - 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, - 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, - 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x2b, 0x0a, - 0x11, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x61, 0x74, 0x73, 0x43, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, - 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, - 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x80, 0x01, 0x0a, 0x1b, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x92, 0x06, 0x0a, 0x19, 0x41, 0x64, - 0x64, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x8f, 0x03, + 0x0a, 0x15, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, - 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, - 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, - 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, - 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x5e, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, - 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x08, - 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, - 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x74, - 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, - 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, - 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, - 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x33, 0x0a, - 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, - 0x76, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x12, 0x61, 0x75, 0x74, 0x6f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, - 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x81, - 0x01, 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, - 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x22, 0x95, 0x05, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, - 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, - 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x5e, - 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, + 0x49, 0x64, 0x12, 0x5a, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x08, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x33, 0x0a, 0x09, 0x6c, - 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, - 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, - 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x81, 0x01, 0x0a, 0x1c, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, + 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, + 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, + 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, + 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, + 0x7d, 0x0a, 0x18, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xe6, - 0x05, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, - 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, - 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x9d, + 0x06, 0x0a, 0x17, 0x41, 0x64, 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, + 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, + 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, + 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, + 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, + 0x63, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, + 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, + 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, + 0x4b, 0x65, 0x79, 0x12, 0x3f, 0x0a, 0x1c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, + 0x73, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x73, 0x74, 0x61, 0x74, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x12, 0x5c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x79, + 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 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, 0x0c, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, + 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, + 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, + 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, + 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x7f, + 0x0a, 0x1a, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, + 0xe9, 0x07, 0x0a, 0x18, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, + 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, - 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, - 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x10, - 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x65, 0x0a, 0x0d, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0c, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, - 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 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, 0x0d, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, - 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, - 0x67, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, - 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x88, 0x01, 0x0a, 0x23, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, - 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x22, 0x93, 0x06, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, - 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, - 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, - 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, - 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, - 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, - 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x28, 0x0a, - 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, - 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x31, 0x0a, - 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x66, 0x69, 0x6c, - 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6d, 0x61, - 0x78, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x62, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, - 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 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, 0x0e, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, - 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, - 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, + 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, + 0x79, 0x12, 0x48, 0x0a, 0x21, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x74, 0x6c, + 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x46, + 0x69, 0x6c, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x74, + 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, + 0x43, 0x61, 0x12, 0x5d, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, + 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 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, 0x0b, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, + 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0d, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, + 0x69, 0x73, 0x6d, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, + 0x73, 0x6d, 0x12, 0x37, 0x0a, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x73, + 0x74, 0x61, 0x74, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x33, 0x0a, 0x09, + 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, + 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x80, 0x01, 0x0a, 0x1b, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x92, + 0x06, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, + 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, + 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, + 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, + 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, + 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, + 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x5e, 0x0a, 0x0d, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x08, 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, 0x12, 0x21, + 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, + 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, + 0x65, 0x72, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, + 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, - 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x85, 0x01, 0x0a, 0x20, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, - 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, - 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x22, 0xa7, 0x06, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, - 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, + 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, 0x5f, + 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x61, 0x75, 0x74, 0x6f, 0x44, 0x69, 0x73, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, + 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 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, 0x81, 0x01, 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, + 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, + 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x95, 0x05, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x50, + 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, - 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, - 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, - 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, - 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x74, 0x6c, - 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x48, 0x0a, 0x21, 0x74, 0x6c, - 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, - 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x28, 0x0a, 0x10, 0x6d, - 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x65, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x69, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, + 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, + 0x69, 0x66, 0x79, 0x12, 0x5e, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, + 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 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, 0x08, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, + 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, + 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, + 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, + 0x81, 0x01, 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, + 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x22, 0xe6, 0x05, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, + 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, + 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, + 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, + 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, + 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, + 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, + 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, + 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, + 0x73, 0x12, 0x65, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, + 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0d, 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, 0x12, 0x38, 0x0a, 0x18, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, + 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x88, 0x01, 0x0a, + 0x23, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, + 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, + 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x93, 0x06, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x51, + 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, + 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, + 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, + 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, + 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, + 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, + 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, + 0x65, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, + 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, + 0x65, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, + 0x67, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x46, 0x69, 0x6c, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x62, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, - 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0c, 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, - 0x12, 0x39, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x12, 0x37, 0x0a, 0x17, 0x61, - 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, 0x75, - 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, - 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x88, 0x01, 0x0a, 0x23, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, + 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0e, 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, 0x12, 0x38, 0x0a, + 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x85, 0x01, + 0x0a, 0x20, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, + 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xbe, 0x05, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, - 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, - 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xa7, 0x06, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, + 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, + 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, - 0x6c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, - 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x08, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x10, 0x6d, - 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, - 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x2e, 0x0a, 0x13, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x6c, + 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, + 0x48, 0x0a, 0x21, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x74, 0x6c, 0x73, 0x43, + 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6c, + 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, + 0x5f, 0x63, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, + 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x65, 0x0a, 0x0d, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x40, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 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, 0x0c, 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, 0x12, 0x39, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, + 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, + 0x12, 0x37, 0x0a, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x16, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, + 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, + 0x88, 0x01, 0x0a, 0x23, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, + 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xbe, 0x05, 0x0a, 0x27, 0x41, + 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, + 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, + 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, + 0x72, 0x69, 0x66, 0x79, 0x12, 0x6c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, + 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 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, 0x08, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, + 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, + 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, + 0x73, 0x5f, 0x63, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, + 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, + 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, + 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x8f, 0x01, 0x0a, 0x2a, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, + 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xf6, 0x05, + 0x0a, 0x28, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, + 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, + 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, + 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, + 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, + 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x6d, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x48, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, + 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0a, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, + 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, + 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, + 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, - 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0e, 0x20, + 0x65, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, + 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x8f, 0x01, 0x0a, 0x2a, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x90, 0x01, 0x0a, 0x2b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, - 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xf6, 0x05, 0x0a, 0x28, 0x41, 0x64, 0x64, - 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, - 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, - 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, - 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, - 0x69, 0x66, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, - 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x34, 0x0a, - 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, - 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, - 0x6c, 0x65, 0x73, 0x12, 0x6d, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, - 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, - 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 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, 0x0a, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, - 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, - 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, - 0x65, 0x72, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, - 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x09, 0x6c, - 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, + 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xc5, 0x04, 0x0a, 0x14, 0x41, 0x64, + 0x64, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, + 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, + 0x24, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x77, 0x73, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, + 0x77, 0x73, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x59, 0x0a, 0x0d, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, + 0x06, 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, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x42, 0x61, 0x73, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x38, + 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, + 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, + 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, + 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x6c, + 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x90, 0x01, 0x0a, 0x2b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, - 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, - 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xc5, 0x04, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x52, 0x44, 0x53, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, - 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, - 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x77, - 0x73, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x61, 0x77, 0x73, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, - 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x77, 0x73, 0x53, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x59, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, - 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 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, 0x06, 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, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x62, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x73, - 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x7c, 0x0a, 0x17, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xcf, 0x03, 0x0a, 0x19, 0x41, - 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x73, - 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x73, - 0x4f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2c, 0x0a, 0x0b, 0x6c, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x42, - 0x0b, 0xfa, 0x42, 0x08, 0x2a, 0x06, 0x10, 0x80, 0x80, 0x04, 0x20, 0x00, 0x52, 0x0a, 0x6c, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x5e, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 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, 0x81, 0x01, 0x0a, - 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, + 0x01, 0x22, 0x7c, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x44, 0x53, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, + 0xcf, 0x03, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, + 0x0f, 0x72, 0x75, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x0c, 0x72, 0x75, 0x6e, 0x73, 0x4f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, + 0x2c, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x2a, 0x06, 0x10, 0x80, 0x80, 0x04, 0x20, + 0x00, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x5e, 0x0a, + 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, + 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 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, 0x81, 0x01, 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xcf, 0x05, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, + 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x6e, + 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x61, 0x7a, 0x75, 0x72, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, + 0x13, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x7a, 0x75, 0x72, + 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x26, 0x0a, + 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x54, 0x65, 0x6e, + 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x73, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x7a, 0x75, + 0x72, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x48, 0x0a, 0x1c, 0x61, + 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x19, 0x61, 0x7a, 0x75, 0x72, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x63, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, + 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0a, 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, 0x12, 0x21, + 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, + 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x86, 0x01, 0x0a, 0x21, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, @@ -9047,181 +9099,128 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x22, 0xcf, 0x05, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, - 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, - 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x5f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x32, 0x0a, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x13, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x12, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x48, 0x0a, 0x1c, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x19, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x63, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, - 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0a, - 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, - 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x33, 0x0a, 0x09, - 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 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, 0x86, 0x01, 0x0a, 0x21, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x7a, 0x75, - 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, - 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x4e, 0x0a, 0x12, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2a, 0xc7, 0x04, 0x0a, 0x09, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, - 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4d, 0x4d, 0x5f, 0x41, - 0x47, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4d, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, - 0x1c, 0x0a, 0x18, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, - 0x44, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x03, 0x12, 0x1e, 0x0a, - 0x1a, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x59, 0x53, 0x51, - 0x4c, 0x44, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x04, 0x12, 0x1f, 0x0a, - 0x1b, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x4f, 0x4e, 0x47, - 0x4f, 0x44, 0x42, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x05, 0x12, 0x20, - 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x53, - 0x54, 0x47, 0x52, 0x45, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x06, - 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, - 0x52, 0x4f, 0x58, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, - 0x10, 0x07, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x50, 0x45, 0x52, 0x46, 0x53, - 0x43, 0x48, 0x45, 0x4d, 0x41, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x08, 0x12, 0x26, 0x0a, - 0x22, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, - 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x53, 0x4c, 0x4f, 0x57, 0x4c, 0x4f, 0x47, 0x5f, 0x41, 0x47, - 0x45, 0x4e, 0x54, 0x10, 0x09, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x4f, 0x4e, 0x47, 0x4f, 0x44, 0x42, 0x5f, - 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x52, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x0a, - 0x12, 0x30, 0x0a, 0x2c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, - 0x41, 0x4e, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x51, 0x4c, 0x5f, 0x50, 0x47, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, - 0x10, 0x0b, 0x12, 0x31, 0x0a, 0x2d, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x51, 0x4c, 0x5f, - 0x50, 0x47, 0x53, 0x54, 0x41, 0x54, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x47, - 0x45, 0x4e, 0x54, 0x10, 0x0c, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45, 0x58, 0x50, - 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0d, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x47, 0x45, 0x4e, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x44, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, - 0x45, 0x52, 0x10, 0x0e, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x41, 0x5a, 0x55, 0x52, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, - 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0f, 0x32, 0xaf, 0x08, 0x0a, - 0x0d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xa4, - 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x53, 0x92, 0x41, 0x2c, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x73, 0x1a, 0x1d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x6c, 0x69, - 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, 0x2f, 0x76, 0x31, 0x2f, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, - 0x2f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x9b, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x50, 0x92, 0x41, 0x2a, 0x12, 0x09, 0x47, 0x65, 0x74, 0x20, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x1a, 0x1d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x73, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x79, 0x20, 0x49, 0x44, 0x2e, + 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, + 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, + 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0xc7, 0x04, 0x0a, 0x09, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x50, 0x4d, 0x4d, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x41, + 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4d, 0x5f, 0x41, 0x47, 0x45, + 0x4e, 0x54, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, + 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x44, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, + 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4d, 0x4f, 0x4e, 0x47, 0x4f, 0x44, 0x42, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, + 0x52, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, + 0x54, 0x45, 0x52, 0x10, 0x06, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x45, 0x58, 0x50, + 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x07, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x47, 0x45, 0x4e, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, + 0x50, 0x45, 0x52, 0x46, 0x53, 0x43, 0x48, 0x45, 0x4d, 0x41, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, + 0x10, 0x08, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x53, 0x4c, 0x4f, 0x57, 0x4c, + 0x4f, 0x47, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x09, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x47, + 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x4f, 0x4e, + 0x47, 0x4f, 0x44, 0x42, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x52, 0x5f, 0x41, 0x47, + 0x45, 0x4e, 0x54, 0x10, 0x0a, 0x12, 0x30, 0x0a, 0x2c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, + 0x51, 0x4c, 0x5f, 0x50, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x53, 0x5f, + 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x0b, 0x12, 0x31, 0x0a, 0x2d, 0x41, 0x47, 0x45, 0x4e, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, + 0x45, 0x53, 0x51, 0x4c, 0x5f, 0x50, 0x47, 0x53, 0x54, 0x41, 0x54, 0x4d, 0x4f, 0x4e, 0x49, 0x54, + 0x4f, 0x52, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x0c, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, + 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, + 0x4c, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0d, 0x12, 0x1b, 0x0a, 0x17, + 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x44, 0x53, 0x5f, 0x45, + 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0e, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x47, 0x45, + 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x5a, 0x55, 0x52, 0x45, 0x5f, 0x44, 0x41, + 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, + 0x0f, 0x32, 0xaf, 0x08, 0x0a, 0x0d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0xa4, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x1f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x53, 0x92, 0x41, 0x2c, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, + 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x1d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, + 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, + 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x9b, 0x01, 0x0a, 0x08, 0x47, + 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0x92, 0x41, 0x2a, 0x12, 0x09, 0x47, 0x65, 0x74, + 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x1a, 0x1d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, + 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x62, + 0x79, 0x20, 0x49, 0x44, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, + 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x47, 0x65, 0x74, 0x12, 0xac, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x55, 0x92, 0x41, 0x2b, 0x12, 0x0e, 0x47, 0x65, 0x74, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x20, 0x6c, 0x6f, 0x67, 0x73, 0x1a, 0x19, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x6f, 0x67, 0x73, 0x20, 0x62, 0x79, 0x20, 0x49, 0x44, 0x2e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, + 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0xa9, 0x01, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x5e, 0x92, 0x41, 0x38, 0x12, 0x19, 0x41, 0x64, 0x64, 0x20, 0x61, 0x6e, + 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x1a, 0x1b, 0x41, 0x64, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, - 0x47, 0x65, 0x74, 0x12, 0xac, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, - 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x55, 0x92, 0x41, 0x2b, - 0x12, 0x0e, 0x47, 0x65, 0x74, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x6f, 0x67, 0x73, - 0x1a, 0x19, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, - 0x6c, 0x6f, 0x67, 0x73, 0x20, 0x62, 0x79, 0x20, 0x49, 0x44, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x47, 0x65, 0x74, 0x4c, 0x6f, - 0x67, 0x73, 0x12, 0xa9, 0x01, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, - 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, - 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5e, - 0x92, 0x41, 0x38, 0x12, 0x19, 0x41, 0x64, 0x64, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x20, 0x74, 0x6f, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x1b, - 0x41, 0x64, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, + 0x41, 0x64, 0x64, 0x12, 0xbb, 0x01, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x92, 0x41, 0x3e, 0x12, 0x1c, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x69, + 0x6e, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x1e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x41, 0x64, 0x64, 0x12, 0xbb, - 0x01, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x20, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x67, 0x92, 0x41, 0x3e, 0x12, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x49, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, - 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x49, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, - 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0xbf, 0x01, 0x0a, - 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x6b, 0x92, 0x41, 0x42, 0x12, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x61, - 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x73, 0x20, - 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, - 0x2a, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0xa5, - 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x50, 0x01, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, - 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x61, 0x2f, 0x70, 0x6d, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x3b, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x49, 0x58, 0x58, 0xaa, 0x02, 0x0c, - 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0c, 0x49, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x18, 0x49, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0xbf, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x12, 0x20, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6b, 0x92, 0x41, 0x42, 0x12, 0x1e, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x20, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x42, 0xa5, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x61, 0x2f, 0x70, 0x6d, 0x6d, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x76, 0x31, + 0x3b, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x49, + 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x56, + 0x31, 0xca, 0x02, 0x0c, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5c, 0x56, 0x31, + 0xe2, 0x02, 0x18, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5c, 0x56, 0x31, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x49, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -9238,7 +9237,7 @@ func file_inventory_v1_agents_proto_rawDescGZIP() []byte { var ( file_inventory_v1_agents_proto_enumTypes = make([]protoimpl.EnumInfo, 1) - file_inventory_v1_agents_proto_msgTypes = make([]protoimpl.MessageInfo, 84) + file_inventory_v1_agents_proto_msgTypes = make([]protoimpl.MessageInfo, 83) file_inventory_v1_agents_proto_goTypes = []interface{}{ (AgentType)(0), // 0: inventory.v1.AgentType (*PMMAgent)(nil), // 1: inventory.v1.PMMAgent @@ -9310,67 +9309,67 @@ var ( nil, // 67: inventory.v1.RDSExporter.CustomLabelsEntry nil, // 68: inventory.v1.ExternalExporter.CustomLabelsEntry nil, // 69: inventory.v1.AzureDatabaseExporter.CustomLabelsEntry - nil, // 70: inventory.v1.ChangeCommonAgentParams.CustomLabelsEntry - nil, // 71: inventory.v1.AddPMMAgentParams.CustomLabelsEntry - nil, // 72: inventory.v1.AddNodeExporterParams.CustomLabelsEntry - nil, // 73: inventory.v1.AddMySQLdExporterParams.CustomLabelsEntry - nil, // 74: inventory.v1.AddMongoDBExporterParams.CustomLabelsEntry - nil, // 75: inventory.v1.AddPostgresExporterParams.CustomLabelsEntry - nil, // 76: inventory.v1.AddProxySQLExporterParams.CustomLabelsEntry - nil, // 77: inventory.v1.AddQANMySQLPerfSchemaAgentParams.CustomLabelsEntry - nil, // 78: inventory.v1.AddQANMySQLSlowlogAgentParams.CustomLabelsEntry - nil, // 79: inventory.v1.AddQANMongoDBProfilerAgentParams.CustomLabelsEntry - nil, // 80: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry - nil, // 81: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry - nil, // 82: inventory.v1.AddRDSExporterParams.CustomLabelsEntry - nil, // 83: inventory.v1.AddExternalExporterParams.CustomLabelsEntry - nil, // 84: inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry - (AgentStatus)(0), // 85: inventory.v1.AgentStatus - (LogLevel)(0), // 86: inventory.v1.LogLevel + nil, // 70: inventory.v1.AddPMMAgentParams.CustomLabelsEntry + nil, // 71: inventory.v1.AddNodeExporterParams.CustomLabelsEntry + nil, // 72: inventory.v1.AddMySQLdExporterParams.CustomLabelsEntry + nil, // 73: inventory.v1.AddMongoDBExporterParams.CustomLabelsEntry + nil, // 74: inventory.v1.AddPostgresExporterParams.CustomLabelsEntry + nil, // 75: inventory.v1.AddProxySQLExporterParams.CustomLabelsEntry + nil, // 76: inventory.v1.AddQANMySQLPerfSchemaAgentParams.CustomLabelsEntry + nil, // 77: inventory.v1.AddQANMySQLSlowlogAgentParams.CustomLabelsEntry + nil, // 78: inventory.v1.AddQANMongoDBProfilerAgentParams.CustomLabelsEntry + nil, // 79: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry + nil, // 80: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry + nil, // 81: inventory.v1.AddRDSExporterParams.CustomLabelsEntry + nil, // 82: inventory.v1.AddExternalExporterParams.CustomLabelsEntry + nil, // 83: inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry + (AgentStatus)(0), // 84: inventory.v1.AgentStatus + (LogLevel)(0), // 85: inventory.v1.LogLevel + (*common.StringMap)(nil), // 86: common.StringMap } ) var file_inventory_v1_agents_proto_depIdxs = []int32{ 56, // 0: inventory.v1.PMMAgent.custom_labels:type_name -> inventory.v1.PMMAgent.CustomLabelsEntry - 85, // 1: inventory.v1.VMAgent.status:type_name -> inventory.v1.AgentStatus + 84, // 1: inventory.v1.VMAgent.status:type_name -> inventory.v1.AgentStatus 57, // 2: inventory.v1.NodeExporter.custom_labels:type_name -> inventory.v1.NodeExporter.CustomLabelsEntry - 85, // 3: inventory.v1.NodeExporter.status:type_name -> inventory.v1.AgentStatus - 86, // 4: inventory.v1.NodeExporter.log_level:type_name -> inventory.v1.LogLevel + 84, // 3: inventory.v1.NodeExporter.status:type_name -> inventory.v1.AgentStatus + 85, // 4: inventory.v1.NodeExporter.log_level:type_name -> inventory.v1.LogLevel 58, // 5: inventory.v1.MySQLdExporter.custom_labels:type_name -> inventory.v1.MySQLdExporter.CustomLabelsEntry - 85, // 6: inventory.v1.MySQLdExporter.status:type_name -> inventory.v1.AgentStatus - 86, // 7: inventory.v1.MySQLdExporter.log_level:type_name -> inventory.v1.LogLevel + 84, // 6: inventory.v1.MySQLdExporter.status:type_name -> inventory.v1.AgentStatus + 85, // 7: inventory.v1.MySQLdExporter.log_level:type_name -> inventory.v1.LogLevel 59, // 8: inventory.v1.MongoDBExporter.custom_labels:type_name -> inventory.v1.MongoDBExporter.CustomLabelsEntry - 85, // 9: inventory.v1.MongoDBExporter.status:type_name -> inventory.v1.AgentStatus - 86, // 10: inventory.v1.MongoDBExporter.log_level:type_name -> inventory.v1.LogLevel + 84, // 9: inventory.v1.MongoDBExporter.status:type_name -> inventory.v1.AgentStatus + 85, // 10: inventory.v1.MongoDBExporter.log_level:type_name -> inventory.v1.LogLevel 60, // 11: inventory.v1.PostgresExporter.custom_labels:type_name -> inventory.v1.PostgresExporter.CustomLabelsEntry - 85, // 12: inventory.v1.PostgresExporter.status:type_name -> inventory.v1.AgentStatus - 86, // 13: inventory.v1.PostgresExporter.log_level:type_name -> inventory.v1.LogLevel + 84, // 12: inventory.v1.PostgresExporter.status:type_name -> inventory.v1.AgentStatus + 85, // 13: inventory.v1.PostgresExporter.log_level:type_name -> inventory.v1.LogLevel 61, // 14: inventory.v1.ProxySQLExporter.custom_labels:type_name -> inventory.v1.ProxySQLExporter.CustomLabelsEntry - 85, // 15: inventory.v1.ProxySQLExporter.status:type_name -> inventory.v1.AgentStatus - 86, // 16: inventory.v1.ProxySQLExporter.log_level:type_name -> inventory.v1.LogLevel + 84, // 15: inventory.v1.ProxySQLExporter.status:type_name -> inventory.v1.AgentStatus + 85, // 16: inventory.v1.ProxySQLExporter.log_level:type_name -> inventory.v1.LogLevel 62, // 17: inventory.v1.QANMySQLPerfSchemaAgent.custom_labels:type_name -> inventory.v1.QANMySQLPerfSchemaAgent.CustomLabelsEntry - 85, // 18: inventory.v1.QANMySQLPerfSchemaAgent.status:type_name -> inventory.v1.AgentStatus - 86, // 19: inventory.v1.QANMySQLPerfSchemaAgent.log_level:type_name -> inventory.v1.LogLevel + 84, // 18: inventory.v1.QANMySQLPerfSchemaAgent.status:type_name -> inventory.v1.AgentStatus + 85, // 19: inventory.v1.QANMySQLPerfSchemaAgent.log_level:type_name -> inventory.v1.LogLevel 63, // 20: inventory.v1.QANMySQLSlowlogAgent.custom_labels:type_name -> inventory.v1.QANMySQLSlowlogAgent.CustomLabelsEntry - 85, // 21: inventory.v1.QANMySQLSlowlogAgent.status:type_name -> inventory.v1.AgentStatus - 86, // 22: inventory.v1.QANMySQLSlowlogAgent.log_level:type_name -> inventory.v1.LogLevel + 84, // 21: inventory.v1.QANMySQLSlowlogAgent.status:type_name -> inventory.v1.AgentStatus + 85, // 22: inventory.v1.QANMySQLSlowlogAgent.log_level:type_name -> inventory.v1.LogLevel 64, // 23: inventory.v1.QANMongoDBProfilerAgent.custom_labels:type_name -> inventory.v1.QANMongoDBProfilerAgent.CustomLabelsEntry - 85, // 24: inventory.v1.QANMongoDBProfilerAgent.status:type_name -> inventory.v1.AgentStatus - 86, // 25: inventory.v1.QANMongoDBProfilerAgent.log_level:type_name -> inventory.v1.LogLevel + 84, // 24: inventory.v1.QANMongoDBProfilerAgent.status:type_name -> inventory.v1.AgentStatus + 85, // 25: inventory.v1.QANMongoDBProfilerAgent.log_level:type_name -> inventory.v1.LogLevel 65, // 26: inventory.v1.QANPostgreSQLPgStatementsAgent.custom_labels:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent.CustomLabelsEntry - 85, // 27: inventory.v1.QANPostgreSQLPgStatementsAgent.status:type_name -> inventory.v1.AgentStatus - 86, // 28: inventory.v1.QANPostgreSQLPgStatementsAgent.log_level:type_name -> inventory.v1.LogLevel + 84, // 27: inventory.v1.QANPostgreSQLPgStatementsAgent.status:type_name -> inventory.v1.AgentStatus + 85, // 28: inventory.v1.QANPostgreSQLPgStatementsAgent.log_level:type_name -> inventory.v1.LogLevel 66, // 29: inventory.v1.QANPostgreSQLPgStatMonitorAgent.custom_labels:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent.CustomLabelsEntry - 85, // 30: inventory.v1.QANPostgreSQLPgStatMonitorAgent.status:type_name -> inventory.v1.AgentStatus - 86, // 31: inventory.v1.QANPostgreSQLPgStatMonitorAgent.log_level:type_name -> inventory.v1.LogLevel + 84, // 30: inventory.v1.QANPostgreSQLPgStatMonitorAgent.status:type_name -> inventory.v1.AgentStatus + 85, // 31: inventory.v1.QANPostgreSQLPgStatMonitorAgent.log_level:type_name -> inventory.v1.LogLevel 67, // 32: inventory.v1.RDSExporter.custom_labels:type_name -> inventory.v1.RDSExporter.CustomLabelsEntry - 85, // 33: inventory.v1.RDSExporter.status:type_name -> inventory.v1.AgentStatus - 86, // 34: inventory.v1.RDSExporter.log_level:type_name -> inventory.v1.LogLevel + 84, // 33: inventory.v1.RDSExporter.status:type_name -> inventory.v1.AgentStatus + 85, // 34: inventory.v1.RDSExporter.log_level:type_name -> inventory.v1.LogLevel 68, // 35: inventory.v1.ExternalExporter.custom_labels:type_name -> inventory.v1.ExternalExporter.CustomLabelsEntry 69, // 36: inventory.v1.AzureDatabaseExporter.custom_labels:type_name -> inventory.v1.AzureDatabaseExporter.CustomLabelsEntry - 85, // 37: inventory.v1.AzureDatabaseExporter.status:type_name -> inventory.v1.AgentStatus - 86, // 38: inventory.v1.AzureDatabaseExporter.log_level:type_name -> inventory.v1.LogLevel - 70, // 39: inventory.v1.ChangeCommonAgentParams.custom_labels:type_name -> inventory.v1.ChangeCommonAgentParams.CustomLabelsEntry + 84, // 37: inventory.v1.AzureDatabaseExporter.status:type_name -> inventory.v1.AgentStatus + 85, // 38: inventory.v1.AzureDatabaseExporter.log_level:type_name -> inventory.v1.LogLevel + 86, // 39: inventory.v1.ChangeCommonAgentParams.custom_labels:type_name -> common.StringMap 0, // 40: inventory.v1.ListAgentsRequest.agent_type:type_name -> inventory.v1.AgentType 1, // 41: inventory.v1.ListAgentsResponse.pmm_agent:type_name -> inventory.v1.PMMAgent 2, // 42: inventory.v1.ListAgentsResponse.vm_agent:type_name -> inventory.v1.VMAgent @@ -9456,44 +9455,44 @@ var file_inventory_v1_agents_proto_depIdxs = []int32{ 10, // 122: inventory.v1.ChangeAgentResponse.qan_mongodb_profiler_agent:type_name -> inventory.v1.QANMongoDBProfilerAgent 11, // 123: inventory.v1.ChangeAgentResponse.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent 12, // 124: inventory.v1.ChangeAgentResponse.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent - 71, // 125: inventory.v1.AddPMMAgentParams.custom_labels:type_name -> inventory.v1.AddPMMAgentParams.CustomLabelsEntry - 72, // 126: inventory.v1.AddNodeExporterParams.custom_labels:type_name -> inventory.v1.AddNodeExporterParams.CustomLabelsEntry - 86, // 127: inventory.v1.AddNodeExporterParams.log_level:type_name -> inventory.v1.LogLevel + 70, // 125: inventory.v1.AddPMMAgentParams.custom_labels:type_name -> inventory.v1.AddPMMAgentParams.CustomLabelsEntry + 71, // 126: inventory.v1.AddNodeExporterParams.custom_labels:type_name -> inventory.v1.AddNodeExporterParams.CustomLabelsEntry + 85, // 127: inventory.v1.AddNodeExporterParams.log_level:type_name -> inventory.v1.LogLevel 16, // 128: inventory.v1.ChangeNodeExporterParams.common:type_name -> inventory.v1.ChangeCommonAgentParams - 73, // 129: inventory.v1.AddMySQLdExporterParams.custom_labels:type_name -> inventory.v1.AddMySQLdExporterParams.CustomLabelsEntry - 86, // 130: inventory.v1.AddMySQLdExporterParams.log_level:type_name -> inventory.v1.LogLevel + 72, // 129: inventory.v1.AddMySQLdExporterParams.custom_labels:type_name -> inventory.v1.AddMySQLdExporterParams.CustomLabelsEntry + 85, // 130: inventory.v1.AddMySQLdExporterParams.log_level:type_name -> inventory.v1.LogLevel 16, // 131: inventory.v1.ChangeMySQLdExporterParams.common:type_name -> inventory.v1.ChangeCommonAgentParams - 74, // 132: inventory.v1.AddMongoDBExporterParams.custom_labels:type_name -> inventory.v1.AddMongoDBExporterParams.CustomLabelsEntry - 86, // 133: inventory.v1.AddMongoDBExporterParams.log_level:type_name -> inventory.v1.LogLevel + 73, // 132: inventory.v1.AddMongoDBExporterParams.custom_labels:type_name -> inventory.v1.AddMongoDBExporterParams.CustomLabelsEntry + 85, // 133: inventory.v1.AddMongoDBExporterParams.log_level:type_name -> inventory.v1.LogLevel 16, // 134: inventory.v1.ChangeMongoDBExporterParams.common:type_name -> inventory.v1.ChangeCommonAgentParams - 75, // 135: inventory.v1.AddPostgresExporterParams.custom_labels:type_name -> inventory.v1.AddPostgresExporterParams.CustomLabelsEntry - 86, // 136: inventory.v1.AddPostgresExporterParams.log_level:type_name -> inventory.v1.LogLevel + 74, // 135: inventory.v1.AddPostgresExporterParams.custom_labels:type_name -> inventory.v1.AddPostgresExporterParams.CustomLabelsEntry + 85, // 136: inventory.v1.AddPostgresExporterParams.log_level:type_name -> inventory.v1.LogLevel 16, // 137: inventory.v1.ChangePostgresExporterParams.common:type_name -> inventory.v1.ChangeCommonAgentParams - 76, // 138: inventory.v1.AddProxySQLExporterParams.custom_labels:type_name -> inventory.v1.AddProxySQLExporterParams.CustomLabelsEntry - 86, // 139: inventory.v1.AddProxySQLExporterParams.log_level:type_name -> inventory.v1.LogLevel + 75, // 138: inventory.v1.AddProxySQLExporterParams.custom_labels:type_name -> inventory.v1.AddProxySQLExporterParams.CustomLabelsEntry + 85, // 139: inventory.v1.AddProxySQLExporterParams.log_level:type_name -> inventory.v1.LogLevel 16, // 140: inventory.v1.ChangeProxySQLExporterParams.common:type_name -> inventory.v1.ChangeCommonAgentParams - 77, // 141: inventory.v1.AddQANMySQLPerfSchemaAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams.CustomLabelsEntry - 86, // 142: inventory.v1.AddQANMySQLPerfSchemaAgentParams.log_level:type_name -> inventory.v1.LogLevel + 76, // 141: inventory.v1.AddQANMySQLPerfSchemaAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams.CustomLabelsEntry + 85, // 142: inventory.v1.AddQANMySQLPerfSchemaAgentParams.log_level:type_name -> inventory.v1.LogLevel 16, // 143: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams.common:type_name -> inventory.v1.ChangeCommonAgentParams - 78, // 144: inventory.v1.AddQANMySQLSlowlogAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams.CustomLabelsEntry - 86, // 145: inventory.v1.AddQANMySQLSlowlogAgentParams.log_level:type_name -> inventory.v1.LogLevel + 77, // 144: inventory.v1.AddQANMySQLSlowlogAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams.CustomLabelsEntry + 85, // 145: inventory.v1.AddQANMySQLSlowlogAgentParams.log_level:type_name -> inventory.v1.LogLevel 16, // 146: inventory.v1.ChangeQANMySQLSlowlogAgentParams.common:type_name -> inventory.v1.ChangeCommonAgentParams - 79, // 147: inventory.v1.AddQANMongoDBProfilerAgentParams.custom_labels:type_name -> inventory.v1.AddQANMongoDBProfilerAgentParams.CustomLabelsEntry - 86, // 148: inventory.v1.AddQANMongoDBProfilerAgentParams.log_level:type_name -> inventory.v1.LogLevel + 78, // 147: inventory.v1.AddQANMongoDBProfilerAgentParams.custom_labels:type_name -> inventory.v1.AddQANMongoDBProfilerAgentParams.CustomLabelsEntry + 85, // 148: inventory.v1.AddQANMongoDBProfilerAgentParams.log_level:type_name -> inventory.v1.LogLevel 16, // 149: inventory.v1.ChangeQANMongoDBProfilerAgentParams.common:type_name -> inventory.v1.ChangeCommonAgentParams - 80, // 150: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry - 86, // 151: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.log_level:type_name -> inventory.v1.LogLevel + 79, // 150: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry + 85, // 151: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.log_level:type_name -> inventory.v1.LogLevel 16, // 152: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams.common:type_name -> inventory.v1.ChangeCommonAgentParams - 81, // 153: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry - 86, // 154: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.log_level:type_name -> inventory.v1.LogLevel + 80, // 153: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry + 85, // 154: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.log_level:type_name -> inventory.v1.LogLevel 16, // 155: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams.common:type_name -> inventory.v1.ChangeCommonAgentParams - 82, // 156: inventory.v1.AddRDSExporterParams.custom_labels:type_name -> inventory.v1.AddRDSExporterParams.CustomLabelsEntry - 86, // 157: inventory.v1.AddRDSExporterParams.log_level:type_name -> inventory.v1.LogLevel + 81, // 156: inventory.v1.AddRDSExporterParams.custom_labels:type_name -> inventory.v1.AddRDSExporterParams.CustomLabelsEntry + 85, // 157: inventory.v1.AddRDSExporterParams.log_level:type_name -> inventory.v1.LogLevel 16, // 158: inventory.v1.ChangeRDSExporterParams.common:type_name -> inventory.v1.ChangeCommonAgentParams - 83, // 159: inventory.v1.AddExternalExporterParams.custom_labels:type_name -> inventory.v1.AddExternalExporterParams.CustomLabelsEntry + 82, // 159: inventory.v1.AddExternalExporterParams.custom_labels:type_name -> inventory.v1.AddExternalExporterParams.CustomLabelsEntry 16, // 160: inventory.v1.ChangeExternalExporterParams.common:type_name -> inventory.v1.ChangeCommonAgentParams - 84, // 161: inventory.v1.AddAzureDatabaseExporterParams.custom_labels:type_name -> inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry - 86, // 162: inventory.v1.AddAzureDatabaseExporterParams.log_level:type_name -> inventory.v1.LogLevel + 83, // 161: inventory.v1.AddAzureDatabaseExporterParams.custom_labels:type_name -> inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry + 85, // 162: inventory.v1.AddAzureDatabaseExporterParams.log_level:type_name -> inventory.v1.LogLevel 16, // 163: inventory.v1.ChangeAzureDatabaseExporterParams.common:type_name -> inventory.v1.ChangeCommonAgentParams 17, // 164: inventory.v1.AgentsService.ListAgents:input_type -> inventory.v1.ListAgentsRequest 19, // 165: inventory.v1.AgentsService.GetAgent:input_type -> inventory.v1.GetAgentRequest @@ -10269,7 +10268,7 @@ func file_inventory_v1_agents_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_inventory_v1_agents_proto_rawDesc, NumEnums: 1, - NumMessages: 84, + NumMessages: 83, NumExtensions: 0, NumServices: 1, }, diff --git a/api/inventory/v1/agents.pb.validate.go b/api/inventory/v1/agents.pb.validate.go index 05aa1da19c..eb08c37b5c 100644 --- a/api/inventory/v1/agents.pb.validate.go +++ b/api/inventory/v1/agents.pb.validate.go @@ -1956,14 +1956,43 @@ func (m *ChangeCommonAgentParams) validate(all bool) error { var errors []error - // no validation rules for CustomLabels - // no validation rules for RemoveCustomLabels if m.Enable != nil { // no validation rules for Enable } + if m.CustomLabels != nil { + if all { + switch v := interface{}(m.GetCustomLabels()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeCommonAgentParamsValidationError{ + field: "CustomLabels", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeCommonAgentParamsValidationError{ + field: "CustomLabels", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetCustomLabels()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeCommonAgentParamsValidationError{ + field: "CustomLabels", + reason: "embedded message failed validation", + cause: err, + } + } + } + } + if m.EnablePushMetrics != nil { // no validation rules for EnablePushMetrics } diff --git a/api/inventory/v1/agents.proto b/api/inventory/v1/agents.proto index 2f872b4f0f..69b4e9e3e2 100644 --- a/api/inventory/v1/agents.proto +++ b/api/inventory/v1/agents.proto @@ -2,6 +2,7 @@ syntax = "proto3"; package inventory.v1; +import "common/common.proto"; import "google/api/annotations.proto"; import "inventory/v1/agent_status.proto"; import "inventory/v1/log_level.proto"; @@ -579,7 +580,7 @@ message ChangeCommonAgentParams { // Enable this Agent. Agents are enabled by default when they get added. optional bool enable = 1; // Replace all custom user-assigned labels. - map custom_labels = 2; + optional common.StringMap custom_labels = 2; // Remove all custom user-assigned labels. bool remove_custom_labels = 3; // Enables push metrics with vmagent. diff --git a/api/inventory/v1/json/client/agents_service/change_agent_responses.go b/api/inventory/v1/json/client/agents_service/change_agent_responses.go index 52c967e82a..2ea210d0a9 100644 --- a/api/inventory/v1/json/client/agents_service/change_agent_responses.go +++ b/api/inventory/v1/json/client/agents_service/change_agent_responses.go @@ -4260,23 +4260,75 @@ type ChangeAgentParamsBodyAzureDatabaseExporterCommon struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - // Remove all custom user-assigned labels. RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` + + // custom labels + CustomLabels *ChangeAgentParamsBodyAzureDatabaseExporterCommonCustomLabels `json:"custom_labels,omitempty"` } // Validate validates this change agent params body azure database exporter common func (o *ChangeAgentParamsBodyAzureDatabaseExporterCommon) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCustomLabels(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyAzureDatabaseExporterCommon) validateCustomLabels(formats strfmt.Registry) error { + if swag.IsZero(o.CustomLabels) { // not required + return nil + } + + if o.CustomLabels != nil { + if err := o.CustomLabels.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "azure_database_exporter" + "." + "common" + "." + "custom_labels") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "azure_database_exporter" + "." + "common" + "." + "custom_labels") + } + return err + } + } + return nil } -// ContextValidate validates this change agent params body azure database exporter common based on context it is used +// ContextValidate validate this change agent params body azure database exporter common based on the context it is used func (o *ChangeAgentParamsBodyAzureDatabaseExporterCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCustomLabels(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyAzureDatabaseExporterCommon) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { + if o.CustomLabels != nil { + if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "azure_database_exporter" + "." + "common" + "." + "custom_labels") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "azure_database_exporter" + "." + "common" + "." + "custom_labels") + } + return err + } + } + return nil } @@ -4298,6 +4350,43 @@ func (o *ChangeAgentParamsBodyAzureDatabaseExporterCommon) UnmarshalBinary(b []b return nil } +/* +ChangeAgentParamsBodyAzureDatabaseExporterCommonCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyAzureDatabaseExporterCommonCustomLabels +*/ +type ChangeAgentParamsBodyAzureDatabaseExporterCommonCustomLabels struct { + // values + Values map[string]string `json:"values,omitempty"` +} + +// Validate validates this change agent params body azure database exporter common custom labels +func (o *ChangeAgentParamsBodyAzureDatabaseExporterCommonCustomLabels) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body azure database exporter common custom labels based on context it is used +func (o *ChangeAgentParamsBodyAzureDatabaseExporterCommonCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyAzureDatabaseExporterCommonCustomLabels) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyAzureDatabaseExporterCommonCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyAzureDatabaseExporterCommonCustomLabels + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + /* ChangeAgentParamsBodyExternalExporter change agent params body external exporter swagger:model ChangeAgentParamsBodyExternalExporter @@ -4398,23 +4487,75 @@ type ChangeAgentParamsBodyExternalExporterCommon struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - // Remove all custom user-assigned labels. RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` + + // custom labels + CustomLabels *ChangeAgentParamsBodyExternalExporterCommonCustomLabels `json:"custom_labels,omitempty"` } // Validate validates this change agent params body external exporter common func (o *ChangeAgentParamsBodyExternalExporterCommon) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCustomLabels(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyExternalExporterCommon) validateCustomLabels(formats strfmt.Registry) error { + if swag.IsZero(o.CustomLabels) { // not required + return nil + } + + if o.CustomLabels != nil { + if err := o.CustomLabels.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "external_exporter" + "." + "common" + "." + "custom_labels") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "external_exporter" + "." + "common" + "." + "custom_labels") + } + return err + } + } + return nil } -// ContextValidate validates this change agent params body external exporter common based on context it is used +// ContextValidate validate this change agent params body external exporter common based on the context it is used func (o *ChangeAgentParamsBodyExternalExporterCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCustomLabels(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyExternalExporterCommon) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { + if o.CustomLabels != nil { + if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "external_exporter" + "." + "common" + "." + "custom_labels") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "external_exporter" + "." + "common" + "." + "custom_labels") + } + return err + } + } + return nil } @@ -4436,6 +4577,43 @@ func (o *ChangeAgentParamsBodyExternalExporterCommon) UnmarshalBinary(b []byte) return nil } +/* +ChangeAgentParamsBodyExternalExporterCommonCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyExternalExporterCommonCustomLabels +*/ +type ChangeAgentParamsBodyExternalExporterCommonCustomLabels struct { + // values + Values map[string]string `json:"values,omitempty"` +} + +// Validate validates this change agent params body external exporter common custom labels +func (o *ChangeAgentParamsBodyExternalExporterCommonCustomLabels) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body external exporter common custom labels based on context it is used +func (o *ChangeAgentParamsBodyExternalExporterCommonCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyExternalExporterCommonCustomLabels) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyExternalExporterCommonCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyExternalExporterCommonCustomLabels + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + /* ChangeAgentParamsBodyMongodbExporter change agent params body mongodb exporter swagger:model ChangeAgentParamsBodyMongodbExporter @@ -4536,23 +4714,75 @@ type ChangeAgentParamsBodyMongodbExporterCommon struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - // Remove all custom user-assigned labels. RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` + + // custom labels + CustomLabels *ChangeAgentParamsBodyMongodbExporterCommonCustomLabels `json:"custom_labels,omitempty"` } // Validate validates this change agent params body mongodb exporter common func (o *ChangeAgentParamsBodyMongodbExporterCommon) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCustomLabels(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyMongodbExporterCommon) validateCustomLabels(formats strfmt.Registry) error { + if swag.IsZero(o.CustomLabels) { // not required + return nil + } + + if o.CustomLabels != nil { + if err := o.CustomLabels.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "mongodb_exporter" + "." + "common" + "." + "custom_labels") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "mongodb_exporter" + "." + "common" + "." + "custom_labels") + } + return err + } + } + return nil } -// ContextValidate validates this change agent params body mongodb exporter common based on context it is used +// ContextValidate validate this change agent params body mongodb exporter common based on the context it is used func (o *ChangeAgentParamsBodyMongodbExporterCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCustomLabels(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyMongodbExporterCommon) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { + if o.CustomLabels != nil { + if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "mongodb_exporter" + "." + "common" + "." + "custom_labels") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "mongodb_exporter" + "." + "common" + "." + "custom_labels") + } + return err + } + } + return nil } @@ -4574,6 +4804,43 @@ func (o *ChangeAgentParamsBodyMongodbExporterCommon) UnmarshalBinary(b []byte) e return nil } +/* +ChangeAgentParamsBodyMongodbExporterCommonCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyMongodbExporterCommonCustomLabels +*/ +type ChangeAgentParamsBodyMongodbExporterCommonCustomLabels struct { + // values + Values map[string]string `json:"values,omitempty"` +} + +// Validate validates this change agent params body mongodb exporter common custom labels +func (o *ChangeAgentParamsBodyMongodbExporterCommonCustomLabels) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body mongodb exporter common custom labels based on context it is used +func (o *ChangeAgentParamsBodyMongodbExporterCommonCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyMongodbExporterCommonCustomLabels) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyMongodbExporterCommonCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyMongodbExporterCommonCustomLabels + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + /* ChangeAgentParamsBodyMysqldExporter change agent params body mysqld exporter swagger:model ChangeAgentParamsBodyMysqldExporter @@ -4674,61 +4941,21 @@ type ChangeAgentParamsBodyMysqldExporterCommon struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - // Remove all custom user-assigned labels. RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` + + // custom labels + CustomLabels *ChangeAgentParamsBodyMysqldExporterCommonCustomLabels `json:"custom_labels,omitempty"` } // Validate validates this change agent params body mysqld exporter common func (o *ChangeAgentParamsBodyMysqldExporterCommon) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change agent params body mysqld exporter common based on context it is used -func (o *ChangeAgentParamsBodyMysqldExporterCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyMysqldExporterCommon) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyMysqldExporterCommon) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyMysqldExporterCommon - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeAgentParamsBodyNodeExporter change agent params body node exporter -swagger:model ChangeAgentParamsBodyNodeExporter -*/ -type ChangeAgentParamsBodyNodeExporter struct { - // agent id - AgentID string `json:"agent_id,omitempty"` - - // common - Common *ChangeAgentParamsBodyNodeExporterCommon `json:"common,omitempty"` -} - -// Validate validates this change agent params body node exporter -func (o *ChangeAgentParamsBodyNodeExporter) Validate(formats strfmt.Registry) error { var res []error - if err := o.validateCommon(formats); err != nil { + if err := o.validateCustomLabels(formats); err != nil { res = append(res, err) } @@ -4738,17 +4965,17 @@ func (o *ChangeAgentParamsBodyNodeExporter) Validate(formats strfmt.Registry) er return nil } -func (o *ChangeAgentParamsBodyNodeExporter) validateCommon(formats strfmt.Registry) error { - if swag.IsZero(o.Common) { // not required +func (o *ChangeAgentParamsBodyMysqldExporterCommon) validateCustomLabels(formats strfmt.Registry) error { + if swag.IsZero(o.CustomLabels) { // not required return nil } - if o.Common != nil { - if err := o.Common.Validate(formats); err != nil { + if o.CustomLabels != nil { + if err := o.CustomLabels.Validate(formats); err != nil { if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "node_exporter" + "." + "common") + return ve.ValidateName("body" + "." + "mysqld_exporter" + "." + "common" + "." + "custom_labels") } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "node_exporter" + "." + "common") + return ce.ValidateName("body" + "." + "mysqld_exporter" + "." + "common" + "." + "custom_labels") } return err } @@ -4757,11 +4984,11 @@ func (o *ChangeAgentParamsBodyNodeExporter) validateCommon(formats strfmt.Regist return nil } -// ContextValidate validate this change agent params body node exporter based on the context it is used -func (o *ChangeAgentParamsBodyNodeExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validate this change agent params body mysqld exporter common based on the context it is used +func (o *ChangeAgentParamsBodyMysqldExporterCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error - if err := o.contextValidateCommon(ctx, formats); err != nil { + if err := o.contextValidateCustomLabels(ctx, formats); err != nil { res = append(res, err) } @@ -4771,13 +4998,13 @@ func (o *ChangeAgentParamsBodyNodeExporter) ContextValidate(ctx context.Context, return nil } -func (o *ChangeAgentParamsBodyNodeExporter) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { - if o.Common != nil { - if err := o.Common.ContextValidate(ctx, formats); err != nil { +func (o *ChangeAgentParamsBodyMysqldExporterCommon) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { + if o.CustomLabels != nil { + if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "node_exporter" + "." + "common") + return ve.ValidateName("body" + "." + "mysqld_exporter" + "." + "common" + "." + "custom_labels") } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "node_exporter" + "." + "common") + return ce.ValidateName("body" + "." + "mysqld_exporter" + "." + "common" + "." + "custom_labels") } return err } @@ -4787,7 +5014,7 @@ func (o *ChangeAgentParamsBodyNodeExporter) contextValidateCommon(ctx context.Co } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyNodeExporter) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyMysqldExporterCommon) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -4795,8 +5022,8 @@ func (o *ChangeAgentParamsBodyNodeExporter) MarshalBinary() ([]byte, error) { } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyNodeExporter) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyNodeExporter +func (o *ChangeAgentParamsBodyMysqldExporterCommon) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyMysqldExporterCommon if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -4805,35 +5032,26 @@ func (o *ChangeAgentParamsBodyNodeExporter) UnmarshalBinary(b []byte) error { } /* -ChangeAgentParamsBodyNodeExporterCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. -swagger:model ChangeAgentParamsBodyNodeExporterCommon +ChangeAgentParamsBodyMysqldExporterCommonCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyMysqldExporterCommonCustomLabels */ -type ChangeAgentParamsBodyNodeExporterCommon struct { - // Enable this Agent. Agents are enabled by default when they get added. - Enable *bool `json:"enable,omitempty"` - - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - - // Enables push metrics with vmagent. - EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` +type ChangeAgentParamsBodyMysqldExporterCommonCustomLabels struct { + // values + Values map[string]string `json:"values,omitempty"` } -// Validate validates this change agent params body node exporter common -func (o *ChangeAgentParamsBodyNodeExporterCommon) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body mysqld exporter common custom labels +func (o *ChangeAgentParamsBodyMysqldExporterCommonCustomLabels) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body node exporter common based on context it is used -func (o *ChangeAgentParamsBodyNodeExporterCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body mysqld exporter common custom labels based on context it is used +func (o *ChangeAgentParamsBodyMysqldExporterCommonCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyNodeExporterCommon) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyMysqldExporterCommonCustomLabels) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -4841,8 +5059,8 @@ func (o *ChangeAgentParamsBodyNodeExporterCommon) MarshalBinary() ([]byte, error } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyNodeExporterCommon) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyNodeExporterCommon +func (o *ChangeAgentParamsBodyMysqldExporterCommonCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyMysqldExporterCommonCustomLabels if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -4851,19 +5069,19 @@ func (o *ChangeAgentParamsBodyNodeExporterCommon) UnmarshalBinary(b []byte) erro } /* -ChangeAgentParamsBodyPostgresExporter change agent params body postgres exporter -swagger:model ChangeAgentParamsBodyPostgresExporter +ChangeAgentParamsBodyNodeExporter change agent params body node exporter +swagger:model ChangeAgentParamsBodyNodeExporter */ -type ChangeAgentParamsBodyPostgresExporter struct { +type ChangeAgentParamsBodyNodeExporter struct { // agent id AgentID string `json:"agent_id,omitempty"` // common - Common *ChangeAgentParamsBodyPostgresExporterCommon `json:"common,omitempty"` + Common *ChangeAgentParamsBodyNodeExporterCommon `json:"common,omitempty"` } -// Validate validates this change agent params body postgres exporter -func (o *ChangeAgentParamsBodyPostgresExporter) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body node exporter +func (o *ChangeAgentParamsBodyNodeExporter) Validate(formats strfmt.Registry) error { var res []error if err := o.validateCommon(formats); err != nil { @@ -4876,7 +5094,7 @@ func (o *ChangeAgentParamsBodyPostgresExporter) Validate(formats strfmt.Registry return nil } -func (o *ChangeAgentParamsBodyPostgresExporter) validateCommon(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyNodeExporter) validateCommon(formats strfmt.Registry) error { if swag.IsZero(o.Common) { // not required return nil } @@ -4884,9 +5102,9 @@ func (o *ChangeAgentParamsBodyPostgresExporter) validateCommon(formats strfmt.Re if o.Common != nil { if err := o.Common.Validate(formats); err != nil { if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "postgres_exporter" + "." + "common") + return ve.ValidateName("body" + "." + "node_exporter" + "." + "common") } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "postgres_exporter" + "." + "common") + return ce.ValidateName("body" + "." + "node_exporter" + "." + "common") } return err } @@ -4895,8 +5113,8 @@ func (o *ChangeAgentParamsBodyPostgresExporter) validateCommon(formats strfmt.Re return nil } -// ContextValidate validate this change agent params body postgres exporter based on the context it is used -func (o *ChangeAgentParamsBodyPostgresExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validate this change agent params body node exporter based on the context it is used +func (o *ChangeAgentParamsBodyNodeExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error if err := o.contextValidateCommon(ctx, formats); err != nil { @@ -4909,13 +5127,13 @@ func (o *ChangeAgentParamsBodyPostgresExporter) ContextValidate(ctx context.Cont return nil } -func (o *ChangeAgentParamsBodyPostgresExporter) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyNodeExporter) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { if o.Common != nil { if err := o.Common.ContextValidate(ctx, formats); err != nil { if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "postgres_exporter" + "." + "common") + return ve.ValidateName("body" + "." + "node_exporter" + "." + "common") } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "postgres_exporter" + "." + "common") + return ce.ValidateName("body" + "." + "node_exporter" + "." + "common") } return err } @@ -4925,7 +5143,7 @@ func (o *ChangeAgentParamsBodyPostgresExporter) contextValidateCommon(ctx contex } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyPostgresExporter) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyNodeExporter) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -4933,8 +5151,8 @@ func (o *ChangeAgentParamsBodyPostgresExporter) MarshalBinary() ([]byte, error) } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyPostgresExporter) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyPostgresExporter +func (o *ChangeAgentParamsBodyNodeExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyNodeExporter if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -4943,68 +5161,28 @@ func (o *ChangeAgentParamsBodyPostgresExporter) UnmarshalBinary(b []byte) error } /* -ChangeAgentParamsBodyPostgresExporterCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. -swagger:model ChangeAgentParamsBodyPostgresExporterCommon +ChangeAgentParamsBodyNodeExporterCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. +swagger:model ChangeAgentParamsBodyNodeExporterCommon */ -type ChangeAgentParamsBodyPostgresExporterCommon struct { +type ChangeAgentParamsBodyNodeExporterCommon struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - // Remove all custom user-assigned labels. RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` -} - -// Validate validates this change agent params body postgres exporter common -func (o *ChangeAgentParamsBodyPostgresExporterCommon) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change agent params body postgres exporter common based on context it is used -func (o *ChangeAgentParamsBodyPostgresExporterCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyPostgresExporterCommon) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyPostgresExporterCommon) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyPostgresExporterCommon - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeAgentParamsBodyProxysqlExporter change agent params body proxysql exporter -swagger:model ChangeAgentParamsBodyProxysqlExporter -*/ -type ChangeAgentParamsBodyProxysqlExporter struct { - // agent id - AgentID string `json:"agent_id,omitempty"` - // common - Common *ChangeAgentParamsBodyProxysqlExporterCommon `json:"common,omitempty"` + // custom labels + CustomLabels *ChangeAgentParamsBodyNodeExporterCommonCustomLabels `json:"custom_labels,omitempty"` } -// Validate validates this change agent params body proxysql exporter -func (o *ChangeAgentParamsBodyProxysqlExporter) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body node exporter common +func (o *ChangeAgentParamsBodyNodeExporterCommon) Validate(formats strfmt.Registry) error { var res []error - if err := o.validateCommon(formats); err != nil { + if err := o.validateCustomLabels(formats); err != nil { res = append(res, err) } @@ -5014,17 +5192,17 @@ func (o *ChangeAgentParamsBodyProxysqlExporter) Validate(formats strfmt.Registry return nil } -func (o *ChangeAgentParamsBodyProxysqlExporter) validateCommon(formats strfmt.Registry) error { - if swag.IsZero(o.Common) { // not required +func (o *ChangeAgentParamsBodyNodeExporterCommon) validateCustomLabels(formats strfmt.Registry) error { + if swag.IsZero(o.CustomLabels) { // not required return nil } - if o.Common != nil { - if err := o.Common.Validate(formats); err != nil { + if o.CustomLabels != nil { + if err := o.CustomLabels.Validate(formats); err != nil { if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "proxysql_exporter" + "." + "common") + return ve.ValidateName("body" + "." + "node_exporter" + "." + "common" + "." + "custom_labels") } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "proxysql_exporter" + "." + "common") + return ce.ValidateName("body" + "." + "node_exporter" + "." + "common" + "." + "custom_labels") } return err } @@ -5033,11 +5211,11 @@ func (o *ChangeAgentParamsBodyProxysqlExporter) validateCommon(formats strfmt.Re return nil } -// ContextValidate validate this change agent params body proxysql exporter based on the context it is used -func (o *ChangeAgentParamsBodyProxysqlExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validate this change agent params body node exporter common based on the context it is used +func (o *ChangeAgentParamsBodyNodeExporterCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error - if err := o.contextValidateCommon(ctx, formats); err != nil { + if err := o.contextValidateCustomLabels(ctx, formats); err != nil { res = append(res, err) } @@ -5047,13 +5225,13 @@ func (o *ChangeAgentParamsBodyProxysqlExporter) ContextValidate(ctx context.Cont return nil } -func (o *ChangeAgentParamsBodyProxysqlExporter) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { - if o.Common != nil { - if err := o.Common.ContextValidate(ctx, formats); err != nil { +func (o *ChangeAgentParamsBodyNodeExporterCommon) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { + if o.CustomLabels != nil { + if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "proxysql_exporter" + "." + "common") + return ve.ValidateName("body" + "." + "node_exporter" + "." + "common" + "." + "custom_labels") } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "proxysql_exporter" + "." + "common") + return ce.ValidateName("body" + "." + "node_exporter" + "." + "common" + "." + "custom_labels") } return err } @@ -5063,7 +5241,7 @@ func (o *ChangeAgentParamsBodyProxysqlExporter) contextValidateCommon(ctx contex } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyProxysqlExporter) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyNodeExporterCommon) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -5071,8 +5249,8 @@ func (o *ChangeAgentParamsBodyProxysqlExporter) MarshalBinary() ([]byte, error) } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyProxysqlExporter) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyProxysqlExporter +func (o *ChangeAgentParamsBodyNodeExporterCommon) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyNodeExporterCommon if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -5081,35 +5259,26 @@ func (o *ChangeAgentParamsBodyProxysqlExporter) UnmarshalBinary(b []byte) error } /* -ChangeAgentParamsBodyProxysqlExporterCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. -swagger:model ChangeAgentParamsBodyProxysqlExporterCommon +ChangeAgentParamsBodyNodeExporterCommonCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyNodeExporterCommonCustomLabels */ -type ChangeAgentParamsBodyProxysqlExporterCommon struct { - // Enable this Agent. Agents are enabled by default when they get added. - Enable *bool `json:"enable,omitempty"` - - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - - // Enables push metrics with vmagent. - EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` +type ChangeAgentParamsBodyNodeExporterCommonCustomLabels struct { + // values + Values map[string]string `json:"values,omitempty"` } -// Validate validates this change agent params body proxysql exporter common -func (o *ChangeAgentParamsBodyProxysqlExporterCommon) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body node exporter common custom labels +func (o *ChangeAgentParamsBodyNodeExporterCommonCustomLabels) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body proxysql exporter common based on context it is used -func (o *ChangeAgentParamsBodyProxysqlExporterCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body node exporter common custom labels based on context it is used +func (o *ChangeAgentParamsBodyNodeExporterCommonCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyProxysqlExporterCommon) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyNodeExporterCommonCustomLabels) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -5117,8 +5286,8 @@ func (o *ChangeAgentParamsBodyProxysqlExporterCommon) MarshalBinary() ([]byte, e } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyProxysqlExporterCommon) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyProxysqlExporterCommon +func (o *ChangeAgentParamsBodyNodeExporterCommonCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyNodeExporterCommonCustomLabels if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -5127,19 +5296,19 @@ func (o *ChangeAgentParamsBodyProxysqlExporterCommon) UnmarshalBinary(b []byte) } /* -ChangeAgentParamsBodyQANMongodbProfilerAgent change agent params body QAN mongodb profiler agent -swagger:model ChangeAgentParamsBodyQANMongodbProfilerAgent +ChangeAgentParamsBodyPostgresExporter change agent params body postgres exporter +swagger:model ChangeAgentParamsBodyPostgresExporter */ -type ChangeAgentParamsBodyQANMongodbProfilerAgent struct { +type ChangeAgentParamsBodyPostgresExporter struct { // agent id AgentID string `json:"agent_id,omitempty"` // common - Common *ChangeAgentParamsBodyQANMongodbProfilerAgentCommon `json:"common,omitempty"` + Common *ChangeAgentParamsBodyPostgresExporterCommon `json:"common,omitempty"` } -// Validate validates this change agent params body QAN mongodb profiler agent -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body postgres exporter +func (o *ChangeAgentParamsBodyPostgresExporter) Validate(formats strfmt.Registry) error { var res []error if err := o.validateCommon(formats); err != nil { @@ -5152,7 +5321,7 @@ func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) Validate(formats strfmt.R return nil } -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) validateCommon(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyPostgresExporter) validateCommon(formats strfmt.Registry) error { if swag.IsZero(o.Common) { // not required return nil } @@ -5160,9 +5329,9 @@ func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) validateCommon(formats st if o.Common != nil { if err := o.Common.Validate(formats); err != nil { if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "common") + return ve.ValidateName("body" + "." + "postgres_exporter" + "." + "common") } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "common") + return ce.ValidateName("body" + "." + "postgres_exporter" + "." + "common") } return err } @@ -5171,8 +5340,8 @@ func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) validateCommon(formats st return nil } -// ContextValidate validate this change agent params body QAN mongodb profiler agent based on the context it is used -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validate this change agent params body postgres exporter based on the context it is used +func (o *ChangeAgentParamsBodyPostgresExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error if err := o.contextValidateCommon(ctx, formats); err != nil { @@ -5185,13 +5354,13 @@ func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) ContextValidate(ctx conte return nil } -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyPostgresExporter) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { if o.Common != nil { if err := o.Common.ContextValidate(ctx, formats); err != nil { if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "common") + return ve.ValidateName("body" + "." + "postgres_exporter" + "." + "common") } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "common") + return ce.ValidateName("body" + "." + "postgres_exporter" + "." + "common") } return err } @@ -5201,7 +5370,7 @@ func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) contextValidateCommon(ctx } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyPostgresExporter) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -5209,8 +5378,8 @@ func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) MarshalBinary() ([]byte, } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyQANMongodbProfilerAgent +func (o *ChangeAgentParamsBodyPostgresExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyPostgresExporter if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -5219,68 +5388,28 @@ func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) UnmarshalBinary(b []byte) } /* -ChangeAgentParamsBodyQANMongodbProfilerAgentCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. -swagger:model ChangeAgentParamsBodyQANMongodbProfilerAgentCommon +ChangeAgentParamsBodyPostgresExporterCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. +swagger:model ChangeAgentParamsBodyPostgresExporterCommon */ -type ChangeAgentParamsBodyQANMongodbProfilerAgentCommon struct { +type ChangeAgentParamsBodyPostgresExporterCommon struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - // Remove all custom user-assigned labels. RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` -} - -// Validate validates this change agent params body QAN mongodb profiler agent common -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCommon) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change agent params body QAN mongodb profiler agent common based on context it is used -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCommon) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCommon) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyQANMongodbProfilerAgentCommon - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeAgentParamsBodyQANMysqlPerfschemaAgent change agent params body QAN mysql perfschema agent -swagger:model ChangeAgentParamsBodyQANMysqlPerfschemaAgent -*/ -type ChangeAgentParamsBodyQANMysqlPerfschemaAgent struct { - // agent id - AgentID string `json:"agent_id,omitempty"` - // common - Common *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon `json:"common,omitempty"` + // custom labels + CustomLabels *ChangeAgentParamsBodyPostgresExporterCommonCustomLabels `json:"custom_labels,omitempty"` } -// Validate validates this change agent params body QAN mysql perfschema agent -func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body postgres exporter common +func (o *ChangeAgentParamsBodyPostgresExporterCommon) Validate(formats strfmt.Registry) error { var res []error - if err := o.validateCommon(formats); err != nil { + if err := o.validateCustomLabels(formats); err != nil { res = append(res, err) } @@ -5290,17 +5419,17 @@ func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) Validate(formats strfmt.R return nil } -func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) validateCommon(formats strfmt.Registry) error { - if swag.IsZero(o.Common) { // not required +func (o *ChangeAgentParamsBodyPostgresExporterCommon) validateCustomLabels(formats strfmt.Registry) error { + if swag.IsZero(o.CustomLabels) { // not required return nil } - if o.Common != nil { - if err := o.Common.Validate(formats); err != nil { + if o.CustomLabels != nil { + if err := o.CustomLabels.Validate(formats); err != nil { if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "common") + return ve.ValidateName("body" + "." + "postgres_exporter" + "." + "common" + "." + "custom_labels") } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "common") + return ce.ValidateName("body" + "." + "postgres_exporter" + "." + "common" + "." + "custom_labels") } return err } @@ -5309,11 +5438,11 @@ func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) validateCommon(formats st return nil } -// ContextValidate validate this change agent params body QAN mysql perfschema agent based on the context it is used -func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validate this change agent params body postgres exporter common based on the context it is used +func (o *ChangeAgentParamsBodyPostgresExporterCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error - if err := o.contextValidateCommon(ctx, formats); err != nil { + if err := o.contextValidateCustomLabels(ctx, formats); err != nil { res = append(res, err) } @@ -5323,13 +5452,13 @@ func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) ContextValidate(ctx conte return nil } -func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { - if o.Common != nil { - if err := o.Common.ContextValidate(ctx, formats); err != nil { +func (o *ChangeAgentParamsBodyPostgresExporterCommon) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { + if o.CustomLabels != nil { + if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "common") + return ve.ValidateName("body" + "." + "postgres_exporter" + "." + "common" + "." + "custom_labels") } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "common") + return ce.ValidateName("body" + "." + "postgres_exporter" + "." + "common" + "." + "custom_labels") } return err } @@ -5339,7 +5468,7 @@ func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) contextValidateCommon(ctx } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyPostgresExporterCommon) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -5347,7 +5476,590 @@ func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) MarshalBinary() ([]byte, } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) UnmarshalBinary(b []byte) error { +func (o *ChangeAgentParamsBodyPostgresExporterCommon) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyPostgresExporterCommon + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyPostgresExporterCommonCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyPostgresExporterCommonCustomLabels +*/ +type ChangeAgentParamsBodyPostgresExporterCommonCustomLabels struct { + // values + Values map[string]string `json:"values,omitempty"` +} + +// Validate validates this change agent params body postgres exporter common custom labels +func (o *ChangeAgentParamsBodyPostgresExporterCommonCustomLabels) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body postgres exporter common custom labels based on context it is used +func (o *ChangeAgentParamsBodyPostgresExporterCommonCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyPostgresExporterCommonCustomLabels) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyPostgresExporterCommonCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyPostgresExporterCommonCustomLabels + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyProxysqlExporter change agent params body proxysql exporter +swagger:model ChangeAgentParamsBodyProxysqlExporter +*/ +type ChangeAgentParamsBodyProxysqlExporter struct { + // agent id + AgentID string `json:"agent_id,omitempty"` + + // common + Common *ChangeAgentParamsBodyProxysqlExporterCommon `json:"common,omitempty"` +} + +// Validate validates this change agent params body proxysql exporter +func (o *ChangeAgentParamsBodyProxysqlExporter) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCommon(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyProxysqlExporter) validateCommon(formats strfmt.Registry) error { + if swag.IsZero(o.Common) { // not required + return nil + } + + if o.Common != nil { + if err := o.Common.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "proxysql_exporter" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "proxysql_exporter" + "." + "common") + } + return err + } + } + + return nil +} + +// ContextValidate validate this change agent params body proxysql exporter based on the context it is used +func (o *ChangeAgentParamsBodyProxysqlExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCommon(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyProxysqlExporter) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { + if o.Common != nil { + if err := o.Common.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "proxysql_exporter" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "proxysql_exporter" + "." + "common") + } + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyProxysqlExporter) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyProxysqlExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyProxysqlExporter + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyProxysqlExporterCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. +swagger:model ChangeAgentParamsBodyProxysqlExporterCommon +*/ +type ChangeAgentParamsBodyProxysqlExporterCommon struct { + // Enable this Agent. Agents are enabled by default when they get added. + Enable *bool `json:"enable,omitempty"` + + // Remove all custom user-assigned labels. + RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` + + // Enables push metrics with vmagent. + EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` + + // custom labels + CustomLabels *ChangeAgentParamsBodyProxysqlExporterCommonCustomLabels `json:"custom_labels,omitempty"` +} + +// Validate validates this change agent params body proxysql exporter common +func (o *ChangeAgentParamsBodyProxysqlExporterCommon) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCustomLabels(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyProxysqlExporterCommon) validateCustomLabels(formats strfmt.Registry) error { + if swag.IsZero(o.CustomLabels) { // not required + return nil + } + + if o.CustomLabels != nil { + if err := o.CustomLabels.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "proxysql_exporter" + "." + "common" + "." + "custom_labels") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "proxysql_exporter" + "." + "common" + "." + "custom_labels") + } + return err + } + } + + return nil +} + +// ContextValidate validate this change agent params body proxysql exporter common based on the context it is used +func (o *ChangeAgentParamsBodyProxysqlExporterCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCustomLabels(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyProxysqlExporterCommon) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { + if o.CustomLabels != nil { + if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "proxysql_exporter" + "." + "common" + "." + "custom_labels") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "proxysql_exporter" + "." + "common" + "." + "custom_labels") + } + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyProxysqlExporterCommon) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyProxysqlExporterCommon) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyProxysqlExporterCommon + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyProxysqlExporterCommonCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyProxysqlExporterCommonCustomLabels +*/ +type ChangeAgentParamsBodyProxysqlExporterCommonCustomLabels struct { + // values + Values map[string]string `json:"values,omitempty"` +} + +// Validate validates this change agent params body proxysql exporter common custom labels +func (o *ChangeAgentParamsBodyProxysqlExporterCommonCustomLabels) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body proxysql exporter common custom labels based on context it is used +func (o *ChangeAgentParamsBodyProxysqlExporterCommonCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyProxysqlExporterCommonCustomLabels) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyProxysqlExporterCommonCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyProxysqlExporterCommonCustomLabels + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyQANMongodbProfilerAgent change agent params body QAN mongodb profiler agent +swagger:model ChangeAgentParamsBodyQANMongodbProfilerAgent +*/ +type ChangeAgentParamsBodyQANMongodbProfilerAgent struct { + // agent id + AgentID string `json:"agent_id,omitempty"` + + // common + Common *ChangeAgentParamsBodyQANMongodbProfilerAgentCommon `json:"common,omitempty"` +} + +// Validate validates this change agent params body QAN mongodb profiler agent +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCommon(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) validateCommon(formats strfmt.Registry) error { + if swag.IsZero(o.Common) { // not required + return nil + } + + if o.Common != nil { + if err := o.Common.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "common") + } + return err + } + } + + return nil +} + +// ContextValidate validate this change agent params body QAN mongodb profiler agent based on the context it is used +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCommon(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { + if o.Common != nil { + if err := o.Common.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "common") + } + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANMongodbProfilerAgent + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyQANMongodbProfilerAgentCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. +swagger:model ChangeAgentParamsBodyQANMongodbProfilerAgentCommon +*/ +type ChangeAgentParamsBodyQANMongodbProfilerAgentCommon struct { + // Enable this Agent. Agents are enabled by default when they get added. + Enable *bool `json:"enable,omitempty"` + + // Remove all custom user-assigned labels. + RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` + + // Enables push metrics with vmagent. + EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` + + // custom labels + CustomLabels *ChangeAgentParamsBodyQANMongodbProfilerAgentCommonCustomLabels `json:"custom_labels,omitempty"` +} + +// Validate validates this change agent params body QAN mongodb profiler agent common +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCommon) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCustomLabels(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCommon) validateCustomLabels(formats strfmt.Registry) error { + if swag.IsZero(o.CustomLabels) { // not required + return nil + } + + if o.CustomLabels != nil { + if err := o.CustomLabels.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "common" + "." + "custom_labels") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "common" + "." + "custom_labels") + } + return err + } + } + + return nil +} + +// ContextValidate validate this change agent params body QAN mongodb profiler agent common based on the context it is used +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCustomLabels(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCommon) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { + if o.CustomLabels != nil { + if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "common" + "." + "custom_labels") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "common" + "." + "custom_labels") + } + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCommon) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCommon) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANMongodbProfilerAgentCommon + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyQANMongodbProfilerAgentCommonCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyQANMongodbProfilerAgentCommonCustomLabels +*/ +type ChangeAgentParamsBodyQANMongodbProfilerAgentCommonCustomLabels struct { + // values + Values map[string]string `json:"values,omitempty"` +} + +// Validate validates this change agent params body QAN mongodb profiler agent common custom labels +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCommonCustomLabels) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body QAN mongodb profiler agent common custom labels based on context it is used +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCommonCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCommonCustomLabels) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCommonCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANMongodbProfilerAgentCommonCustomLabels + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyQANMysqlPerfschemaAgent change agent params body QAN mysql perfschema agent +swagger:model ChangeAgentParamsBodyQANMysqlPerfschemaAgent +*/ +type ChangeAgentParamsBodyQANMysqlPerfschemaAgent struct { + // agent id + AgentID string `json:"agent_id,omitempty"` + + // common + Common *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon `json:"common,omitempty"` +} + +// Validate validates this change agent params body QAN mysql perfschema agent +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCommon(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) validateCommon(formats strfmt.Registry) error { + if swag.IsZero(o.Common) { // not required + return nil + } + + if o.Common != nil { + if err := o.Common.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "common") + } + return err + } + } + + return nil +} + +// ContextValidate validate this change agent params body QAN mysql perfschema agent based on the context it is used +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCommon(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { + if o.Common != nil { + if err := o.Common.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "common") + } + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) UnmarshalBinary(b []byte) error { var res ChangeAgentParamsBodyQANMysqlPerfschemaAgent if err := swag.ReadJSON(b, &res); err != nil { return err @@ -5364,23 +6076,75 @@ type ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - // Remove all custom user-assigned labels. RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` + + // custom labels + CustomLabels *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommonCustomLabels `json:"custom_labels,omitempty"` } // Validate validates this change agent params body QAN mysql perfschema agent common func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCustomLabels(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon) validateCustomLabels(formats strfmt.Registry) error { + if swag.IsZero(o.CustomLabels) { // not required + return nil + } + + if o.CustomLabels != nil { + if err := o.CustomLabels.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "common" + "." + "custom_labels") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "common" + "." + "custom_labels") + } + return err + } + } + return nil } -// ContextValidate validates this change agent params body QAN mysql perfschema agent common based on context it is used +// ContextValidate validate this change agent params body QAN mysql perfschema agent common based on the context it is used func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCustomLabels(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { + if o.CustomLabels != nil { + if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "common" + "." + "custom_labels") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "common" + "." + "custom_labels") + } + return err + } + } + return nil } @@ -5402,6 +6166,43 @@ func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon) UnmarshalBinary(b [ return nil } +/* +ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommonCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommonCustomLabels +*/ +type ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommonCustomLabels struct { + // values + Values map[string]string `json:"values,omitempty"` +} + +// Validate validates this change agent params body QAN mysql perfschema agent common custom labels +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommonCustomLabels) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body QAN mysql perfschema agent common custom labels based on context it is used +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommonCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommonCustomLabels) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommonCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommonCustomLabels + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + /* ChangeAgentParamsBodyQANMysqlSlowlogAgent change agent params body QAN mysql slowlog agent swagger:model ChangeAgentParamsBodyQANMysqlSlowlogAgent @@ -5410,15 +6211,113 @@ type ChangeAgentParamsBodyQANMysqlSlowlogAgent struct { // agent id AgentID string `json:"agent_id,omitempty"` - // common - Common *ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon `json:"common,omitempty"` + // common + Common *ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon `json:"common,omitempty"` +} + +// Validate validates this change agent params body QAN mysql slowlog agent +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCommon(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) validateCommon(formats strfmt.Registry) error { + if swag.IsZero(o.Common) { // not required + return nil + } + + if o.Common != nil { + if err := o.Common.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "common") + } + return err + } + } + + return nil +} + +// ContextValidate validate this change agent params body QAN mysql slowlog agent based on the context it is used +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCommon(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { + if o.Common != nil { + if err := o.Common.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "common") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "common") + } + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANMysqlSlowlogAgent + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. +swagger:model ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon +*/ +type ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon struct { + // Enable this Agent. Agents are enabled by default when they get added. + Enable *bool `json:"enable,omitempty"` + + // Remove all custom user-assigned labels. + RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` + + // Enables push metrics with vmagent. + EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` + + // custom labels + CustomLabels *ChangeAgentParamsBodyQANMysqlSlowlogAgentCommonCustomLabels `json:"custom_labels,omitempty"` } -// Validate validates this change agent params body QAN mysql slowlog agent -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body QAN mysql slowlog agent common +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon) Validate(formats strfmt.Registry) error { var res []error - if err := o.validateCommon(formats); err != nil { + if err := o.validateCustomLabels(formats); err != nil { res = append(res, err) } @@ -5428,17 +6327,17 @@ func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) Validate(formats strfmt.Regi return nil } -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) validateCommon(formats strfmt.Registry) error { - if swag.IsZero(o.Common) { // not required +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon) validateCustomLabels(formats strfmt.Registry) error { + if swag.IsZero(o.CustomLabels) { // not required return nil } - if o.Common != nil { - if err := o.Common.Validate(formats); err != nil { + if o.CustomLabels != nil { + if err := o.CustomLabels.Validate(formats); err != nil { if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "common") + return ve.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "common" + "." + "custom_labels") } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "common") + return ce.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "common" + "." + "custom_labels") } return err } @@ -5447,11 +6346,11 @@ func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) validateCommon(formats strfm return nil } -// ContextValidate validate this change agent params body QAN mysql slowlog agent based on the context it is used -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validate this change agent params body QAN mysql slowlog agent common based on the context it is used +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error - if err := o.contextValidateCommon(ctx, formats); err != nil { + if err := o.contextValidateCustomLabels(ctx, formats); err != nil { res = append(res, err) } @@ -5461,13 +6360,13 @@ func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) ContextValidate(ctx context. return nil } -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) contextValidateCommon(ctx context.Context, formats strfmt.Registry) error { - if o.Common != nil { - if err := o.Common.ContextValidate(ctx, formats); err != nil { +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { + if o.CustomLabels != nil { + if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { if ve, ok := err.(*errors.Validation); ok { - return ve.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "common") + return ve.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "common" + "." + "custom_labels") } else if ce, ok := err.(*errors.CompositeError); ok { - return ce.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "common") + return ce.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "common" + "." + "custom_labels") } return err } @@ -5477,7 +6376,7 @@ func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) contextValidateCommon(ctx co } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -5485,8 +6384,8 @@ func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) MarshalBinary() ([]byte, err } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyQANMysqlSlowlogAgent +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -5495,35 +6394,26 @@ func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) UnmarshalBinary(b []byte) er } /* -ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon ChangeCommonAgentParams contains parameters that can be changed for all Agents. -swagger:model ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon +ChangeAgentParamsBodyQANMysqlSlowlogAgentCommonCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyQANMysqlSlowlogAgentCommonCustomLabels */ -type ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon struct { - // Enable this Agent. Agents are enabled by default when they get added. - Enable *bool `json:"enable,omitempty"` - - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - - // Enables push metrics with vmagent. - EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` +type ChangeAgentParamsBodyQANMysqlSlowlogAgentCommonCustomLabels struct { + // values + Values map[string]string `json:"values,omitempty"` } -// Validate validates this change agent params body QAN mysql slowlog agent common -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body QAN mysql slowlog agent common custom labels +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCommonCustomLabels) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body QAN mysql slowlog agent common based on context it is used -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body QAN mysql slowlog agent common custom labels based on context it is used +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCommonCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCommonCustomLabels) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -5531,8 +6421,8 @@ func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon) MarshalBinary() ([]byt } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCommonCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANMysqlSlowlogAgentCommonCustomLabels if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -5640,23 +6530,75 @@ type ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - // Remove all custom user-assigned labels. RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` + + // custom labels + CustomLabels *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommonCustomLabels `json:"custom_labels,omitempty"` } // Validate validates this change agent params body QAN postgresql pgstatements agent common func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCustomLabels(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon) validateCustomLabels(formats strfmt.Registry) error { + if swag.IsZero(o.CustomLabels) { // not required + return nil + } + + if o.CustomLabels != nil { + if err := o.CustomLabels.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent" + "." + "common" + "." + "custom_labels") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent" + "." + "common" + "." + "custom_labels") + } + return err + } + } + return nil } -// ContextValidate validates this change agent params body QAN postgresql pgstatements agent common based on context it is used +// ContextValidate validate this change agent params body QAN postgresql pgstatements agent common based on the context it is used func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCustomLabels(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { + if o.CustomLabels != nil { + if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent" + "." + "common" + "." + "custom_labels") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent" + "." + "common" + "." + "custom_labels") + } + return err + } + } + return nil } @@ -5678,6 +6620,43 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon) UnmarshalBin return nil } +/* +ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommonCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommonCustomLabels +*/ +type ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommonCustomLabels struct { + // values + Values map[string]string `json:"values,omitempty"` +} + +// Validate validates this change agent params body QAN postgresql pgstatements agent common custom labels +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommonCustomLabels) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body QAN postgresql pgstatements agent common custom labels based on context it is used +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommonCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommonCustomLabels) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommonCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommonCustomLabels + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + /* ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent change agent params body QAN postgresql pgstatmonitor agent swagger:model ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent @@ -5778,23 +6757,75 @@ type ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - // Remove all custom user-assigned labels. RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` + + // custom labels + CustomLabels *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommonCustomLabels `json:"custom_labels,omitempty"` } // Validate validates this change agent params body QAN postgresql pgstatmonitor agent common func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCustomLabels(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon) validateCustomLabels(formats strfmt.Registry) error { + if swag.IsZero(o.CustomLabels) { // not required + return nil + } + + if o.CustomLabels != nil { + if err := o.CustomLabels.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent" + "." + "common" + "." + "custom_labels") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent" + "." + "common" + "." + "custom_labels") + } + return err + } + } + return nil } -// ContextValidate validates this change agent params body QAN postgresql pgstatmonitor agent common based on context it is used +// ContextValidate validate this change agent params body QAN postgresql pgstatmonitor agent common based on the context it is used func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCustomLabels(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { + if o.CustomLabels != nil { + if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent" + "." + "common" + "." + "custom_labels") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent" + "." + "common" + "." + "custom_labels") + } + return err + } + } + return nil } @@ -5816,6 +6847,43 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon) UnmarshalBi return nil } +/* +ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommonCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommonCustomLabels +*/ +type ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommonCustomLabels struct { + // values + Values map[string]string `json:"values,omitempty"` +} + +// Validate validates this change agent params body QAN postgresql pgstatmonitor agent common custom labels +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommonCustomLabels) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body QAN postgresql pgstatmonitor agent common custom labels based on context it is used +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommonCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommonCustomLabels) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommonCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommonCustomLabels + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + /* ChangeAgentParamsBodyRDSExporter change agent params body RDS exporter swagger:model ChangeAgentParamsBodyRDSExporter @@ -5916,23 +6984,75 @@ type ChangeAgentParamsBodyRDSExporterCommon struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` - // Replace all custom user-assigned labels. - CustomLabels map[string]string `json:"custom_labels,omitempty"` - // Remove all custom user-assigned labels. RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` + + // custom labels + CustomLabels *ChangeAgentParamsBodyRDSExporterCommonCustomLabels `json:"custom_labels,omitempty"` } // Validate validates this change agent params body RDS exporter common func (o *ChangeAgentParamsBodyRDSExporterCommon) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCustomLabels(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyRDSExporterCommon) validateCustomLabels(formats strfmt.Registry) error { + if swag.IsZero(o.CustomLabels) { // not required + return nil + } + + if o.CustomLabels != nil { + if err := o.CustomLabels.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "rds_exporter" + "." + "common" + "." + "custom_labels") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "rds_exporter" + "." + "common" + "." + "custom_labels") + } + return err + } + } + return nil } -// ContextValidate validates this change agent params body RDS exporter common based on context it is used +// ContextValidate validate this change agent params body RDS exporter common based on the context it is used func (o *ChangeAgentParamsBodyRDSExporterCommon) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCustomLabels(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyRDSExporterCommon) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { + if o.CustomLabels != nil { + if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "rds_exporter" + "." + "common" + "." + "custom_labels") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "rds_exporter" + "." + "common" + "." + "custom_labels") + } + return err + } + } + return nil } @@ -5953,3 +7073,40 @@ func (o *ChangeAgentParamsBodyRDSExporterCommon) UnmarshalBinary(b []byte) error *o = res return nil } + +/* +ChangeAgentParamsBodyRDSExporterCommonCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyRDSExporterCommonCustomLabels +*/ +type ChangeAgentParamsBodyRDSExporterCommonCustomLabels struct { + // values + Values map[string]string `json:"values,omitempty"` +} + +// Validate validates this change agent params body RDS exporter common custom labels +func (o *ChangeAgentParamsBodyRDSExporterCommonCustomLabels) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body RDS exporter common custom labels based on context it is used +func (o *ChangeAgentParamsBodyRDSExporterCommonCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyRDSExporterCommonCustomLabels) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyRDSExporterCommonCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyRDSExporterCommonCustomLabels + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} diff --git a/api/inventory/v1/json/v1.json b/api/inventory/v1/json/v1.json index c8ae550f57..6121022712 100644 --- a/api/inventory/v1/json/v1.json +++ b/api/inventory/v1/json/v1.json @@ -2687,11 +2687,18 @@ "type": "object", "properties": { "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "enable": { @@ -2729,11 +2736,18 @@ "type": "object", "properties": { "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "enable": { @@ -2771,11 +2785,18 @@ "type": "object", "properties": { "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "enable": { @@ -2813,11 +2834,18 @@ "type": "object", "properties": { "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "enable": { @@ -2855,11 +2883,18 @@ "type": "object", "properties": { "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "enable": { @@ -2897,11 +2932,18 @@ "type": "object", "properties": { "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "enable": { @@ -2939,11 +2981,18 @@ "type": "object", "properties": { "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "enable": { @@ -2981,11 +3030,18 @@ "type": "object", "properties": { "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "enable": { @@ -3023,11 +3079,18 @@ "type": "object", "properties": { "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "enable": { @@ -3065,11 +3128,18 @@ "type": "object", "properties": { "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "enable": { @@ -3107,11 +3177,18 @@ "type": "object", "properties": { "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "enable": { @@ -3149,11 +3226,18 @@ "type": "object", "properties": { "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "enable": { @@ -3191,11 +3275,18 @@ "type": "object", "properties": { "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "enable": { diff --git a/api/swagger/swagger-dev.json b/api/swagger/swagger-dev.json index 0503070268..478cea5d9d 100644 --- a/api/swagger/swagger-dev.json +++ b/api/swagger/swagger-dev.json @@ -6452,11 +6452,18 @@ "x-order": 0 }, "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "remove_custom_labels": { @@ -6494,11 +6501,18 @@ "x-order": 0 }, "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "remove_custom_labels": { @@ -6536,11 +6550,18 @@ "x-order": 0 }, "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "remove_custom_labels": { @@ -6578,11 +6599,18 @@ "x-order": 0 }, "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "remove_custom_labels": { @@ -6620,11 +6648,18 @@ "x-order": 0 }, "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "remove_custom_labels": { @@ -6662,11 +6697,18 @@ "x-order": 0 }, "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "remove_custom_labels": { @@ -6704,11 +6746,18 @@ "x-order": 0 }, "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "remove_custom_labels": { @@ -6746,11 +6795,18 @@ "x-order": 0 }, "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "remove_custom_labels": { @@ -6788,11 +6844,18 @@ "x-order": 0 }, "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "remove_custom_labels": { @@ -6830,11 +6893,18 @@ "x-order": 0 }, "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "remove_custom_labels": { @@ -6872,11 +6942,18 @@ "x-order": 0 }, "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "remove_custom_labels": { @@ -6914,11 +6991,18 @@ "x-order": 0 }, "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "remove_custom_labels": { @@ -6956,11 +7040,18 @@ "x-order": 0 }, "custom_labels": { - "description": "Replace all custom user-assigned labels.", + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", "type": "object", - "additionalProperties": { - "type": "string" + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } }, + "x-nullable": true, "x-order": 1 }, "remove_custom_labels": { diff --git a/descriptor.bin b/descriptor.bin index cc6776d594a9781b8936c4874768674ae464e8da..7a588190fd56b0fabb532f42451193bf4b92d5fe 100644 GIT binary patch delta 35425 zcmZX-d7Ks1o&Mjqwp;f$>qS|bt($$Zo2799Ai-p^UO^!NS4m;KZ^&*z*v^?9Ci zPF3CFmdE<G>nBs~lfWem&yqUyb}_$3kt` zuXXT*)=Z_N(NNhPYPYLTtk zTRbM~+Ai5Jxcr~xASzU%a#f2$%`a-tto_gHM_hN^$m?r=GU}SzYermm>MurUySO2nOP+MSB+WtSI@{PhJEo{y6OvRfDg=}XSUQ`IO zhA3>`^{i64c=^a{M_h6B$g|p%TV4K@s1M#6h3hV_~Is+DCsaD$FZs~G)eNcGrkNK~vrX4-E+i+^)?Q44kRl*+`Glz0wtKCs$mv#s9xh@`#Y*$J z#Z;`+)|rY;RRI~%F6ilMCe&;fbn}Rs?dp2Cki|-POmoE|6_07ISft`H%@xy1cx-T- zi;+_C*r2aRR6KUTKo_x8X$sp1{asm!n(c#L9#OM>-+r!Uxe|5=>RnNpiXECmmZ{ib zz;Ui(btUW=409E$sn{`S@Q8{Xhcvp1Eh=HB;P@t2)`FUyfVGotv*>D=KylI=P6gsMxuSzlyCZVV7Wlih6S4T2r%2a|5lZ z*`;s)@^CDGM6InFoZb9`aCocQv`zVI2-+lSkL>Ad!sD|?KZv5C9N=R22vWsUG2wcY z+ImE4^*H8O@?KPmdIepxHbyh*lL5V&X-ec?C6n>02(1?xKhV(VQlD(j;G}

-|yb*^NbFi%$XN7Y-gD> zcg&E>c~*0q8nd(9=~GvgIsL(=O~&l(>_5ha{jxLq7Ne62K?L>eW~xT+?2>O(BX>59 zUdF%$mFOE)BMUX(ti52=l_RsUzY0&x4qYC$Z}pAz7;`>>?C@L7gBE2M{+Mj}mJ3ZO zp}*xu4n*j0xsfxcdY(q^YlHcl4xQJ`()gX{#*Z>s=P`cY;9QI$UXU%mmO(sjL|7hh zflC?+AYD*wZH5j6>4Hi-lb8lvq{Qq?Qy~L>kxNYwtczS~f?!=lYMyACV%RRp8pec! zPSB+a%&1+`+@415lA`f0M|$$+1`Q=*jU zKX+*gBKpr=nubcNt8JR{H+{OgnWZ$n+NCLFu&#D#8cOEZ+B7{dk~F>6od^Yxu61b& zf^;ou+Ji9&1+L4w|0L`+;JW5Ul%Us@+L`2_hN`shP;NB!$*JqJYkm?QKj8Z2`bx{| zn@>e)c|E71ln9lUqqAFY2>Y3<1J;4&o+%AS7j24C26J@FR^?L-lgs$)?7bVpVcDJm zX_Wo=r>Okb%}k}?uieE7O&b21#f?N1Dh+>=z5i)A=+DQc(O@ub{-(LN%EI52tY|5t z&EGVS23h#Kto1EnP1f=%hVXaIBqiYQnom&)_`Bv)BmsY)oq1I_^tj(Q*H_y8zGSD9 z(4^h(nNAKBO#jN2XiOoy{i<;PNi9)%sJ!DyP%Jyh`g%+u?d4%8$h>=;VOLk8afNKp z=V9Ly!l0T3`nUqtVwtQefOw08Fvk`8^fOaz7__KF6AD3HHh4@pWEhZE!HKKPIs=Hi zSZ)ir6AImG%R@}7Ei2K)LRPyr>36OzZyD(bI&+X<6ASo@g9Mvcz+fCC*u+A=0p-(7 zuvV35azPd|oNlz@6ebt&7h9FZ2@r#E5a#3plC|AvU5Ta?WHHAzhCyrEoKj%SZB-U4 zK>Wo)m{Y|3wrR6XC7PN&^o#KPhN<~Ew}CRXP^@*7Hc+M(diE~&Hk7uNXj(z0R7*G8 z(%7`Tv9>U$6|f}RSX-FW3V2dq!>m-I=>?fm5118BaC$yc6`0ctSdwM3;04mn3k|bf zCCUmirEkG(N1IvR+jcOs0!eR~?O?p>G;G6Zo9$Z`X$3uAk$(j(tLzQ^12P1=|54yPk#unwwqlKVkQiqJSkvG&gSx zF9KplmWUYvaibFqksO>?2-?^5%j!x|`)u(YX}j#Y>%(Lys|}Ud)QHTEbzXkLSQMq4 zu#zgmqoVl*nbdK^00uc#0BL`I0gJNjV^KgnN-L{~g;cblAd@-?W&(3Te#$r$&|NJ` zVJ;}(QBrY)M@0(@S)ps(m+>tUXQ5Xy5avR!Vj#?g1(pa}C`Zhc(W30)--g3zl36lZ zlsAb>0iA>?g}A7|3c;RcsS+*zl7yq6#PBWli3udwVlQDJ!4`W70|~a+OE?Pfu;os| z0Q$e&OBe`qxtA~y=5jCLD8Ro~I0*x2b47lg zALUq&$vu9Kd&HIGi9*%8+2~(|KWqI&A?;|~BbIwSDfc*e7=LpHPx> zBZ-BcHb!y+f79U8d4n>Nr@fI-s;V-Q;auK0Knc%cB-!j6(*`+6#0kqoIA}ctNPuVa z6PAZO>pdivhir2m0x-yV2oUBr?;${#+vFj?FimrLUnpd|4u(IWO?k)*`Ps@tUhvn9 zQkXAz4~gX=FIf-Cy8V`6ddXV|MG#-|76OF$lDCjp7V@$z_gT1(IjHlP7~b;~fe3Dg>NVl0${6KL>@HAJkrS{ixq)SE5bHN!jDS z4|}veu$MHY&<}e_ zCzA9LBk4x|hIquE7!cwSuW2B}BVN;q&?nM#@A^;jwxs4yyqc+_N>Z~n0EyK6S$4<& zgu@#?%PG?DXZhJlzn^*iChE~qt6%yj{T|KxC;cAv`lS@+QNIRAv<4WHy?X!W$R3RXh;hxWLW-iNrf0 zs~>}SC*(~@yb}U9^HT@Pguu=GiNrfGFpKx>;W1(P)QN0oT_2^}iGf?UQPOoE*4iI}qaJ03m4Ukw~^vvg^i%jrCL5zPqNS z*C~NpuTuxg6j7wtM0%Z?Z508A00JOrS-nZDydG0Kz;MU?mh_eH?7B33T z39<|SC+yY;pvgITlTzKBz%9lpHFZ&)Hta>IZfQ>3@~{!&o~%6#cf>*k{L zwjj`LfyQjgM1;B^@16v=AmE;W7WveKxF8=91h+72bxYWt^U{KQVNR6n7Ut(A*)7b^ z3)wBoetb(<4^cW>loO@1MFBSmY>U#_qJTRDx-nIh&K75n-ojnZ)i=`9#rY{pW{ZPj zcgK^=76(0gl`k_u1+mvLsBD0uxLRgVm#v<}fUM33Qj_9p?+8?cx7s^GQ48ru zQkZgHrM?uVhML?~;<`+o_biC#$_RJgs3*-k>DBCrG;* z@lyxNo}jje5q~NPzv{#f;Of2V#Set}suw>H=Br-(sg%6mEFrSmsbSKz-#Y*$@b-HL z0K(fZS#~m=M9Bw&pth#Ew)UD)SJsaH*_FSwQ$rfG;bbYZ%L*WI4tPfZ66b(-gj5^k zw}YUjrc>>CqnNZmofLM;R@0M4j{1PwDZlLv0tyk{R!{WmL#dLyA5{G*EY$q0HXHIG zQ+}&Ig+FNfzNY+B%VAU^Ne*#R+2l!aLpJ|UVasnG3aVR}VJwy84qt`{+Q4ct$(0X+ zK+j|%04DQ6P~FQ|PDz$?*jWyM6F%%u7)a2=K52n;_prB|l5F9~mo0}Q(2wMFS9CD&Nkl`wrk*ky}lGfKANAdEa<4$Xh{|{CbakR00z1BI1uKT z&@Cx|Fvo;$Nl}sqjSJ1ayhZ@baXeSB*UhZt$AxYsPbtiCAu9__yCs>>gzUaK;RVC^ z8{z~WD>$M&XhP^FUrHfP;Ay*&QAtbriJ_T8VWxCoV(2yjK$sIlw+R5koEW+}w4@dN zbj&g{M78exna-a`J28@<++7BOS#k3(53TiF_3^+=$6K1<=qTU-rt~xu9TjU)0NUQLbo)g z6#9(NEse`c>6xKf8aD!9&h!@=2yLd){>An zgIIZoL9guMBs!OFE3?5iKY?)Pgl<^~ggYnf(bME-S(!c8<|ltcoa^%w2yw2@Pawp( z%1a*4o^Qp()zPAPe$G^8&-Y@Y6y|)1N$bk8 zGJAp5L^kUGlGzKqBq)Noz)J!Mae|*{cY2@K1Q6zZUK2o=_jyf}mD%@O zO=N>-vAn!LzbMM=`@JNn3Gsd}iL&P12aF_6=5Jbjz)J!M@c}OhAjAjM;y6j7x{|C2 ztF|+VjIPc82;2tcs3N%`l4SGi6pAK;rx(KV@m-A39~FX|=Sm&ZQ~9 zAg2r<%ym9ZfiTzkG_960*4s4w^PDglygol!31huaQYyk*uOyWkt0jyL&1wYFCfKSG z2zP^5BM|Neuf}RgW24k~Y5hj8Lk>dO=yeE$vQawJCaqeU*pv;qGd!VTQ{IZyuqkxg zGwMLu6uRwMwbZcLO)UVEQ)0BuZhv;DuDJCFn~MQvVZP@)F`8l$X4OfKXmiV4tn-82RkWnUc@Gu++g! z*ObEC7uIw(j@v>V+#i}pktYGT;QM{50AcR;sRD$#Kjc>Am8MPVz8A8XJ~ey)=ixEg z&b!0&hjPF^%5PyNm-l?O03pAp3-~=lMni{0{$}?66>RMPdp`Rr4*0W`hz^DB?qCZe zqC+BIWXOo<<80^r@RItE^RbnPJ`Rg^&(gw(=;M$*OM{^xqEEAby(b(z_|u#s5q%oE z7XVrq5q%o+0)TEAwUCHD58VqBjX*{UY-J9F`+4Z@xdJ)8&qH3A&_b()Wb{Q=yCCe_ z@I`)7($5!O1=NA^g;zlf>1S+Y-x>fgxMO*E>aLmeGd6NdEJ|UHjTjC+XlNn*jE}O} z|HXS90J=Gz$HtB+8I6zJ^9D*`j*ocWZ~-!ESxIh;s&3B)|1~_n&5e?i3cR!q{yw!fW(^=;l+B8)>7&H$H>0N*^mub$Rk#ur%E<|jChk%yHx5z z{bPj7$y8fPHj}dv3)w4A=5e{Jqkxkmw;-bql*y4>khK(=lI>c^CVooZigYq1a!WDl zs8YnFbB1XJolMOJ-y5D)KQ*UFAXD>ml0c^FoHS3hlt89sv+oVhZJ3r*q>O2iyJtup zDAUw2y=~G`6U+1{+t4;W%e>;l0fJ1=*_vLaM{b2mDeUPHD^#t4T55X9c(sF<0~mfi z9LOTKF95>KBDXI9!ptHRsj0A~CYKpe&?!5!lJ+srF$tjM7YF@CkVoNLo@7=SL#^^t)@ zp6f3ikjQg&>GUp3D`n5T=u2A#jzFK6)0L9*{Dq(t`aE3-z01-{DLFqfTZIzgwUIQT91(CCIps9_O4>DX*bYa$ONjPNi!knTM zT^N=68eOz99=uXX*{{2K&EX){eM-WUc*?$(6NN{I>SWkv|#ntE)%X{^wOAuci9P-`4(g5SFANZZqU8*G1L#iAL)_MkVW_HulvqYSZU+k$W`KTA92)3L3KSEenU8 zP9T5}R3JUpN7eSNKx&$*UHY4=4J6L`=(u|G+_kmjvLXBXvT%6)27hfh2xWu6Hb5vF zA|6c+HNyegnAI&0hmG8rH!8JkZ0@~L%f_gUeW$0jQOic9;V}$&n@X}Js(Lvp3{7g! z``Ir?m-)d%80jA1mWX$Grt7tzHX8J2ly?)erU&ttEz86IZs35;IEtzMj5h%woq9$l zFx#>z-Io3C!EjFFww$Ap*ybhN#*Dw4IUH5J9Tm*k z>;C1=C{>{42bIswAUBN_1zU!+xP2$PJH^5 zEfm_C6xtJYv<3zw)E*g_4F!6I>~*2|VU?f{#jE$gYWr4KTQi8SL^U>lfrd-|+DK4e zje@~067N(t3HwmIWC5(UuY9&Od(u~<&I5gILcJO_=yy6AbTat0C>ZJrc@i^MOvE)FssGc_=yd>o$}k;n;6P z!C9`IB9VYTlGYh-MAbe|WaMu&MLoafYZK~?=!`Sn`QhYyqu^9mm=X%;L+MuL-l*C> zrEF_9w|k@76MbbO?Tt=8#YMu<_eH_KxI(>F1ay&_^fo`ZxmPm!eR-#}0NEFvah3~( z(Z3l57rRhpLIHiJv^lu-Mlf#-WjsQuAJm$*=@>fefjMpxK^NI)M+tNgd}%coWTTlwW{(L|`XqQOI5 zD3;tq;NFjAU@as1q!9URYP3H(C&pwFSpHgmHCNqGGQ+}_;p$;c= zCPCD$k{phzZi=n(=>_S-+Qqa&gYD9)O7c+@+!%)@7?|RZqO@hXNrTW%{W=mw)}TO~ zHPAk)0aE!$)Y1+okbWJpb}K4{A4ieh$bg^%ty2R{X$$MAK&T(f+-<9Lzv+`GvKOWu zk5hPTg6Z2n8ms#xYHJ_5QwsN!h@UT7F6h%JvTMM0`dN{nHC!Ogej2s20tTAOz56&S zm-w?NvbodLPH&6}`#x%Q`B`*~{mB8Pa6gOqiKA^6Gy6P>tkbnKw+Mjt1$H3R&!c1e zxD(Lo^7E*_enO~$qM4&PRc-}r@?6=~(VQ#0I+}B_t1qJH6c+0He=%GcvmPt0{Y99Ho+Yecd|xLWw>MFM*TEXTnuS!99e4v!3FweWk6%& z=4NF;W8>l0%i3wBIWCUA<(ie_0R07#*elFwoAlK$@Kx*9>u;(qrI>@vsxh z9Z~JzV=Bqban;ngFtjY!sJ(jBPk(7wZpT2oIZiv9o!>E%=q<6cj>~{#BG`Hdkjl5j z?p6elHg1WXcK}I(TVm%Og4R23iSZ8IS3O25zBNnNh9@-Lng^A7Z;eZ>OvkB1&|BlS z70x+`j;$oq;;KJ8yE&Gc(_-$dXgH2lUvG=~^|hP}gy4YIQ-SpSwz%5<9ETtWaHVudd$_M^^nHk^pEu7)aea;`Vkn2h!dhF%Oq4mBKkb z_u3mL1ezphBCz^8C$6!M1%x{%X4h)DSmB*L*wi*FDxED?=B_vzW-b&6F3>J{fpG7NyAATCQ16O| zHo6{jCFbQ+t>b{6Dkq$mQ=4Rk^Kveg@6NfhLZIi$3GdFia>BcFDo!{*jt00s$q9kh z&f1$hLi6KJc6AJdI$!x501Zy#7rxFA03Y)8cjoBo(&0lDKM}bA=AnToSVgX_E9hNP73j!5Sw$ zFy;4q>2;9wminXz(JIg`LV(m=8oNaZkXDy^m*^mYJm9AY5LBRDNB|2>!fqu2hWkM5 zRuUbwKV25Pl>`Vb(5@taL|zuVl>`v#ve>O8ItVR~-AV!k6=)X{K&Z=Ovyfas8-}uNe}3$lHQ7(D&?(c%DGg2DCbIg zK+l!*9?H3r-a|PR>8(*ix42xRellDL5q-w)vDP%136o; zbqgTehyB_I2>0Q*(Ko9bUU{>U9?&;yZhYm&Ocu+GmkU(qW_WG_w5Ou61>*J~yoQ6A6bA8Mm z6iK+FB>Z?BJntk7rucD5SigzxC<#B2z58T%eA5$t4&oqno`}0z&j!-i6LGyh_#p~~ z8{??a^aR8S1MQ+8XiB@=I~qW!8{;8%6WCG8ebO&&K~RBqa&7{{eKM}Kb1D$-lYVL2 zQD~E2v4P+M?d=>O)J<`nol}9P^6@9Q9;4i+a;lUI^i(PLskpAmb0yuU;$|+=-JEkJ zU7+Vmx|{Q6CEd+AmAYHv$WG)P^(g{Dn~*@LTjDPL+%P8EE^mnk>iaGlWTd+_j?QwW znl*uTnxqi!*0_(oy#a)}HFmc*I!d`u$I&+&Rg)&ru3{*J`gGjS2bOZ5j?X!_+@i@e zi*%pKo7Jodw9{8dBi(1>-gb8Zg!@ct z9FF^4*JVlfxj6DUBKy(ynXDy&9b+Z-_>P|mvb&_m$`B@7D6=)vlbBQYkt=1B-y;~rwg#^`078A;Odpa>C(U?oKuyQQ+OcJ55+u%*Q^NS8Xk(fo@MU13EExrp}5Z0wJ@ zJ*Y1Ze3xV7J_qfV7f9GoWB0fmNZ3zf9?+=EK)U>CTywhVvY_qqr*Y@gOqV;W%b(jW zHv;JL=f2B8Q|P)3B=+a(@`aOW?V?LEDRFoAK?DcdivgtWq{Q8I0TOjm;_kY1;gJznV^ZR7yHM<|#-zmD zvW=oH8ofUxyy&j02jX%7?ZpI|(i*!u022KVNzY#8{$xdLStb?X27%^eDALT0exB$oR(euKVg^4x|;hnU>{v)G%a!OqfkopX$je) z(+3iLTGH`rCV2&I^l3?_Q_Wqfu9~@~XKP*zPq<`y9#n%k-CqRi5Olh~2ta~P_t!ws z2A!^Jpj%&ERX1h8HK)x^^ktuJF!j3T?3}47ZFYX1n$l+H=gCOUNwTeBbR0~* zsW2yJYDSxrxYsx+g*hkT8Sr5}H}0w#jo&rC93E+y$FF$Z_0~)_FL59Dp$?pRiTk)u zSIuPe6Z@+=0OvbDao!4qIX`hm1%x?2;fanuP|;Nr*@CR~&amI$1^I>0{Iwu)AE=-X zlm!X*Z{=-WHGeHccv+Wi;b2ZqZ)}3Cc>v)qOq|I9;Vw*=gk*AE&CQY|Yx+@oiuoQ8 z2S|uT-mQQHTjc!?NU%lT?|=kbq_ftCJ-TWSw>Zhx+>)MP-j?D3?8W&wYvZ;!aqllu z3VU%<)5W-DSN)`DNn&1`YXmT6OY&~$M@37#X;KPvNy57t`rU6={XB4K)@C=iN|)y6 zt#=2O<|(M(4=qjj!LQc4-73lQr0OAOn%$_mJW1`tnQk(g2fb;6I0c{;6Og(O`XmDq z^+B)KZq_s(^n#_>3HCv6n%$)L72Y&KoF>qkCeV~R(*zQIg-mk*eePaK9!{$EW13yQ zVw$6_{pqN)&$6zWUA`x5QF&MsfK0Qy&gGG>nkL6MBM#a#0@CIq-ZX)<`G_}7Ai8

@E|0!kXYo0E3+JfH0r%83=^=giKIhyzFi^{7Fz((=~f#d)O`;^jdgq z{gZiz<%3TqCA*xXHsmK0Zb|94e%DyPT*pGr#hRt0sSJe6>(LZ;hY zQ^^)=jod5d~WPL%&`@t#Xfh+E{j#~C8__q6k}?&c2G)85N~FrW5b288*v_pe z&^W-weZe~kkYF!(Ljw}*1#f6Tg1sO^yGz#JUH15Lw&RWP?)sPW;gSiyoRsWMaO%K$ zIqB7>+|N)j!JXOSz2Sg{ojFC$w=*f()lhfid^;1~PnK_Xm-FqmzL|Y(AMgC_&WSR< z-QF^(Nn5*RnU;w0y^>`2TpymCE#4OrK0Rz!%cqlxcsviNERWoB0*i^Zz$<;phWtZ+h#ltt1DMs&|}q*HZI9lG=w@ zwX(Z|-nv0V1zIZtQum;@03cBh$^x#^0uGEo4tnbrv|e=3TX(Ho=WTD@AWjx&ts7`c zopl3={OWP1?qpo`nG0ZR^5@` zQe4h2M~2mz6)uN;BQp0-@tpUK?yNvArQ z`_XLY!SI@fqd7&ce$*!?b)X!TtII6wcNbejCplQ*`S-iXe_Dx^*8A;+P^E zRIU5!7@!!N3He3Wb{Y^!;o~I6!n~D|tYnM7X{U5Rs?}l~tf5<5^_&*fg z#*{ix{!l!oz4?}LoeciwZ1KBcpN5-rifsJmqFcdJ2g=PwzQZA#tdoo1QZ(yQ^SgQu za9X$IY#I73MYk@c6!tAew=S*Is`l3Gy7$8V4Y%e4BSXKn=yvhcfpTk+1*w)Gbu#on z747dh05tX|zDD8(M2`NaqWc{Or7-_gbl;7t(^B@fqWOeP69DFI`K6SH-&SR*c97QrOf zUyANFfS{G=UyANFKo2Q=M$z2{0HFY&wMC#Qb+!m3`i!Ep#h$$6P^@|=`_Un6@%Ey# z#h&W!9mOy0^vjn3ZFeao;2lM`#|IMdj-uP+1L^G@MYqQnw7tEf==S(M)!RFZevc1i zFu*>#x_f8Q?eQrk`khjX!~rDwokh3D7qrpuEMkaKVow?3UD>P;!r}ktt~{vPyvvU; zbqIQwM%V_GdhhZBOsNZcmj>7drT*PTJg~p{Bv>}&oV2&y>i0B8NSW`xjPUNfB^lw} zYDruDo-)FFigv3H;Kc9oxdnuIPtk4lfiUkWx~+as8R1`xcB>CC$XOE*=3jkQ0%88O z==`v!{P14qhfV*)5AXGUND;()y&nQ0-s}Car~L45&3*`^QLyzxAl$!sKLo=4oA<+> z8qxcl9|BFy^l~z^!46HfJ9&KeMHbkUoRig{;s!tWJ7k` zC*f%qZpeeG%?*B>sYB2Wew={>-Qb5=&<5S0VYWf3zcG7=pbZ=Ipt6jOc~Du#MsFFt zWf_~CWdJzGO+J}`FgJP20K(klEu*(AW3#o4Mu0(1y+D|oeHsE`ZkAMaj6}c;TvFRmF@q95mZAy3^P0ALY_ftF&=JQ4OwGbf8=Zk!* zOIxPivV|A3`%o%GIl_zikjfEWEV^I5QVQ|KqWfA;Z#lyDZ1?A3L&J9Oq8x;>-Mc6d z%J!nWo7h`ku%npqW9mB2Pg~y|d1Eqz9o|DJg}Flukqb;OSu^dDd4=DEsrAyXoT>HF zuA=))1*I@|75VUyJwMh50L0@$bSaW=f0KXtzy;9)7wW4mA8s%Z(~1w)!Tz#wI7brXAasv1BrUj z+YgYa2fh6ONy~%Yegv(S4|@CQt1iFe?dJzTqJw>O_4yrdKa>*v9dAECqQB$qN68A8;Vy-}B=wXv4p!@wVZq ze@F|O0oiI7{@9^gly?h-h^!FkXLPA+0uv3mH;q6^vMZ?`JuNZAj}WFE%lWx z9d@<^Fv!^w5awZTOF)>1y)E^XEgg|94I9Sa5Rc@Yl{p>p=0qvPBi@|)%A7uN<^+KG zNzRlxeUhK1%;}T-G#SXxWKNCspXC(U(r4b5`WjpMOtz$N81>Zx=4du3iY{$9>ivj= zP>y;(0@BJ+??-**M`O}#Nfh;~AH#>)%(9fDaK@z0ihyv&q*&3h znizlqyfN>ltmwwnZHy^}d1LBKtgp6ilTvG90GN|1rWmTeWSU=gql+0|}d@ZZifXY?ivs z7?AwUQnwisv__DnZZp{wbo{_rE7^Os?k-E(okmxf~w;2<((PyN% z*vaMuaIu+Lmr`_U{meY5+MMafxxewQnHpzHp@~`94Nw|pULHAYgA_N{G3sdxFqkt~4(V2GulVTfUXnWm5*Gt;{Zk5_&?B zzY4Obd8vDiPr3$2r6Q(8nx!$NN)6hU0*jRXjBp*NELT0kwb zMshrWCKu(GO6Il58wsT_7s*J>gMj{WuO(@=^Nnyez12c$Nq(MkuO+E_9zZG7C8>KJ z&|mJgG|leY8}`gvx1zU8bE3>^Y3iN|P!rKt}57IwFH?WdCl2+}=&TAc=RCy##2N@3< zsP3-$st0k5PIJ(98c5hR-h+UIUE@6nNT1hu4-&L}UgJGzp!&Sld(aPnLhxOg zL6j1Gt@j`x(bswp6136R%7gU9xPe+pJ;r$d|Gya5HQUuDN-m|yH>7?%=Eoi$4L#=l zA4o%w`JorI4Lzozw+&JM@su^y$+}VAKikkI>S)$f9P~}d#~#m{kdHm?eQcn7>Nj{x-b*>v7B6AyK-nV0(}rfCM)2v>eR(gt zt{qAQ+SLw)P@ndT0U*?;Q}^M$fwHP+omBxi!Dqcy0bxGttqKV9Sy`2Ci4T-jZNqWi z6Gc?rwi3K%(w$HXJb5Y`4#PL7Vlvz2O`u z(d_Yt1ESABYdAnt>I?@+^gS{hzVa845wb*-S<_);TWCf zpzSn}u=~8>013O#8xD{@@AHNuX#2d+8&19Yyx$wnWk8~XeROqtzc(C8iN4<(4v^^k zz2OMj==)_j`hrZo4Cg?0U5Du03lHQ$)#d>|&eS330dFoqf*$b0ENFus&@kJe)PFlm zI!5O5sgN0bzdRT?`2GBkyAM@|BO> z#s)x}ALnh#S3dS;Mk&mX{l=zVzVfNt*Z^RDnlt4qpL#E&6y~Se*vOIU$XyQ3P>($?d;@5XYC?{;Q#qOe|GRD%t&4 z12rd>Qv0LN25I}olG}fQ=nl|!2T0u;OK$%KBz{IZvREG)5wh_xBqI8 z#BM6N{TGNl09q>ono?&)K%(DN!ixG}MT08IoShfX%5;>0|`5&wPhFw`OF)Dkxs^tcL0(5a=myaA%a<4Fw?F86_4GdP+Y?4l^@*vOBj*W|o{ia1hGO zoFZ$PDN27s!CGczwYAZ}hFLj9jxwv{Zaxe$jxwvndP5KV_;-ofCYJ2;d;tBMoipVq zvrF!IKBY7^yTqngJ~l{>GRMlM2|#b>c-;VD&hfed!kpuEGq{r6RjQirbTgQmca?ba zx&=W8D-q{;-GJy1(54`ey7RnlfJB`q-I!l3f;pFYUN?d^UFLb+3|3;??R5j9&p@ji zpec2_0TTUg=|*qW45=gwOI2%1g`r)){6ge8zZpI9`fEpIU(`kIS}!c|R9R2shUhF7 zWpzEGGcR1^d(T1QFDkj;PymU)sN{Y_0i^SbO71rlg0}OEO8kaGZaPGrUz{!J5%q3Z zoCj5>7nj_93+fPbu`ZE5TsTDXSW?P{+#8;fo!*mG=#reMa7+AHQWN45jin`mmKx%* z*-bt9Sl7~=D5)&XiIU1v5id0@B9&#?D?Ov{4qcX0q>*JMw>ckTG_tJ3=KS9bg=_p^ zi4SdElx=F8o|4_wE2E#50&^4L~A?-$UoolP^r_Z5+5Ber{=(7WWceSRi)4vzz|K@ zt4rp7Vs;172e0<}r-Uxw6Gp|cG0XbK&)jtsKqh4P?xQ~|H zk4uMElC`C(^-d*2skye~Ua}af{95N#0wOBVo-dHP>-+@*5_O#}kl9&->C-x|5<#12 z>%2;aDl;DQDgmJqpj8Rblsc6FiT;>WG8mOKR+5dSs@Jl&`!LaLEb-ZP%`T1V?xwHK zE*zuN9JHMV5_Xfn%0R+y^0Nz&K5z1~i=gfECO^A0s?VFV)qR;=Hs?Xr*Uf%*p$c{M|H4mz$wt5*;hoD;}V~Mm;=$Y)l`$fI$pUEkb z%rhl-cZ@o!B-7S})Tr5o$AW6*xtt=&JeRkkY2`V!(%VoNyXUj6{iDA1&*v1)CeN2j z_7}m8Mkvph`0>7_a1~$7{zH@(bBd(#VyR?5DA8!7@nVU^rk>$8D(kmrkM)mEyJ&k( zQNC|4xi5)OhmLJ8@#P53*g(c~duhOhX2uq@W4gUG@B$;HMk!*4olA!S=+zFdB_OeP zcr5{my~EF?jhb(EmCUXAY|8*dxXTNPB8a>EtO$g-tHcd8iLg-%*gal^G^!;m*oqJc zcaIk#5bhp{P?KDvmawn7Ne)1FU-gq55az3Xk^{ng)lYK6D#;tAsyCf{hf(v5Qfj|G zH%xli>*WigKR~MlAa(b8`2vZ$w|SBSGk|-&dru^LJixT=plwZW*M-^<`pjkRfBq~>>!aFpDYF-j znx<;ee)j@MOYfFiw<(u7l@oY`SE}k}K5cjc^$wNzh4Huf#|rp;@jpvdE3;Ac(YMreBwiCk!(TU0Yph(w_R%M5i%kBDjNGB$jhn(X&fsG}%l%uK5od{ef z+(Fw3)%sI8n%>-rz;wbLV(~;fVI`SS4(_BAgKD!k21Uc0X5=HmKaCyD$VWm}IwKzm zKIEAEZ#kOP+=(F4t$h+QY#LE8z{T2_u$ zGHviu{-IU+KYj+LiCP G;Qs?w#ApQo delta 34824 zcmZv_d7Ks1x$fV)YE|vpyBRmg4Bag<)6LLG#2Gb{#yOsQZ*ESaNj%XLjT+6#bnj^f zaYRId6o*R?5s?rAh$12m$e<#kqKG0g$*4FXK^)XSopyb}^jLby_TZ1b z3)|E6QFv12$K{qk|Lu)8U3cwIuesu9S6*{try#xj)1ZCY`rNQ%`h)LdrEB7F^(ECamxSeF zC90}gR=(%e_UWklxI;Q|YpFUtcWJTZaiww)no5{d)s;^w2T@hUR9AINKl>lyNln#J zt8#VOL{&jmC2SFNFSjU10tKN?9tEJT-CReSS_WNRQz1hgJfdUE&RtwbK&zmOYYOPt zDmcy~wRP%TZn9&Cm9TYCF489gB2q*W9s4 z$9ByflSYZxS*eFE79|~-~^B8d0d~qu4lOtb_nWS zQ<;t(noXAJ*rESG*Ri@1b_|BOj@5MR7&Lf9$Bsi9UB?!cuv2hilWS{1&rZQ0kLcNH z=rGr_WhLy~>{d%Uc5XiJmUQe~*VA=uRSCN^U&U5*>=JZ#7F*G=OE-TNTUWxaL4P&% zB-UEfvupDJt?AjdPrvera$pG5nyNwROFs@rw5mzklus)glLcyBI^_4^iRphn8V1t6BmknOJ$XKrqS;z=M=+(PV`KK8HFfjerPr@tu4-8`Gi2{0Hv5iOS((btO z30Z#vx*@&)!LVDp?I&S*Ktr=v3hstdmOTt&AT@NaDeo&VErp61R&`F=?x*3tR>P9k z*|Zdtzr*dc+&wIg8>+~F;m#V3SR3x9286ZYOwCAKDClfXN^iJ4JiGr%&HXheCzY~n zRS)`~M7C=F3jr7CjC9Dg;fcdE?O-P7jG$$9dLWo*v}*4W%riQ6&Q7+VnHrg$>~PBr z@o{AHn3|@M?u_ZH&Ybb!Y)q!}HxK>gwa-%y6E4+Z>2+j7ItX$-K2eXE`cWP`*za0eJd{a|Gu+I16IH9CJcnt z@4E@h&hR`<*lC0L8(+?AW@*~abJIo}tn-+*?{Nx&rtSQ6^#2LZOt1NQSnhwm3lAC~ zonLI7%@_#M`IUBA{AJ+6v~E+_Gi@^>jt7TK^@T1DX@q#8i$f5^3yH&TWuq}+7YDUd z{ub6}a~))pc5(BVnzW0HnTX?>Chg)LcCLefGrBbBpC0>D*!wJ9Cyrq4(xB`-jMSmp zrWtKmy0p^Ew_)khzWvt^Rp2TOT>CGR&WM z?pppC(HT~vUsk2*gZ~!(tko}*4%w823dpN%KwkUXq}=~%=R6Gbw1Mo=~@?%AV}8|kjHbjp}=+N zPp=A3=zm@FAd185O6{@`pohA2=vZ#d`V%=fq<_CEJhA@`&HWX8H#DD$g6{@SMHfC) z@ZFe>{A1WRn@z9|G<&9CyRm2kkv5n&wro{CHDhwYewz-7%&_#6l}X$XL;P(sQL*-0 zcNxMg)_zNwqErbLYrjihy*eB*@ORBFD#(6UvN=f)2Krs|6cA*82s)&%o|kkR9A+W* zhi0Ba><`VSrV#r>^QjSHe@aLHdpLB!pPKtCu>MrCOGB6i)}L4!4i+-Uh^(e``@e_p zxw%keH3daC&x)+3Br6v<2}M>D%jUq0SzR%s(__C18yZFzkc*aNaTrhyn9&9F!og6m zci(J*41*RGGq#W(ofkHy6Rrv4`mqHj&-SD^pbfQf5aQTEkJ|E(Y^;_QGcJAhny~TI zaRm~__GuY$w17xBh=p+lRKh_lj4Sl*Up_sv(5hm_r-QEz&m26yfI8Sd)DLES0eNr` z%J>3FX9sOvF%t@zK=l5W?a-PLIh45m6cs>Z!nH!5Ao_XPh;1rnV*1Us;rR^{^V4ht zWn!UN>nLrYOf2;5RqmBh+E&b@g0!V}SQxZruu1t~ZDCF-pe%N;nb(C^ww_iCNFdbt1r~67YNd)4BTVk*6=qJ#T@9Wx40lq-BMQ6*CjGz``<#*(^z?2@s_x3+W9*lK;x&fdkN= zEFhlt%Ce0CCY?Qm{$zpuiHZReAV^QAC;vy-x8do0&Lv1s7mD2+r4^K?3pI6_JeUAM zT4CiOUGyJe+^`})SxM0fuMYHtxWcQ036P?dRvoy^ZJ6bi`8i9GR(g4$73NAW4<}3DW93C?!a%B@+LRNJN$Rg+kRw>Epi(uWtQ9A?cKfL?n@TQ6h0> z{fpjr4r1ss>f8)VRIZ-O{l2-{@A-?2QBBJy#FFTb0zIz7VAdOz7{O(Y0#f0%0xS0?w@mhYml8o29WJL0Fqa>rgk-r6UrzIR4y>QS9aifIeSJ}W^)lKQlKZe&fY|1GT zj!pg=MVWAH^1=~GINox?0l>gpUO0d--}1r%WU#lqa6}T0x4m$H@Dpf-0|@nPFC0Lq zZ+qd00)*ooD;)gIY`x<{5s004eEI>g^Ntq|Aa>sI!VyV0c3I)zZ+ze7g#!q2mlqBo z#9dxEA_>PHCmbg!Q8~i69P$@P!m-B-2d&Weh^{p{QVp}ut>X^tt~Gf7$w=Pv2PS zdnjAu8~Gb^hy1AnF?YyEH4t-$d=ke>x5GAx`5WTloTwx|?30*Qh=+X=$4cTOHi^@p zjtb+!NBjxU1o4Q^VIagKK8ItWFMJN;t#TM_FEJ4A7e0r9S#NS!#d@q9{wm!)DjZS& zRZdabewCk~()KH#wz1Oo8=JQLEs*=EwEf1XEv*p0@#}r8_5PUF`w=+FcETLXiAvsM z{tD3w@t9BESjjs&9rDAtZ+iL|>aEd%tHEi3H#%@NI1t|Gz^(bQQg>{6!LCeZQ-O;Q%uhyyV; zE^vi-th^l`Xv02YIDpe1AGmrP2y=Yk>Tw{<@d0U|k|S2)P6%v0o^Bl*mg_IsfIZ-J)F>qxytq>;$uB?ugvXg?WtcKYVXD8)n zt(=_{xVoBFn3FW5GA~xnP7btXKNqHQc5*)3%Gt?*E3avVIXNKpeoN{VEAiBzYDIe5 zxbUXdQ-h=?TRDqLy=m!+ap9Q_)4cN>#L%?BRn|ZZO$%IQT~vNdXQmg2rws$(!t|V} zteYOV0-IKt(*svv7nOB00$X4MV9xN)17XexT!9UQIU{fdc2Q_%;0o-MfN;U~Dgoin z3|xT?%zBe{+FTcvcC&(@Lzjm1;j6;->FMoEDZS&?uv-I1y#;0Ato)3Xg|l?Vijbl_ zoz3O?V>ociZ3yh_+-oJ_Y$~%XV(AEPcHoNcqLOe9GZmSW8Ua|DlQWftbNt1k73Q3P z+FKQLQCT=Qz3(=%X>RVM5^!$7&R*F|wq7rXGkpAcQl5eL+Zx73Z z7v$%tyju_yYaCH|w;(wFgz_aBk-S?J1U=Haso{Cdk5)^tt#W~I7X?&!c2H&BqM&Q{ z^016c<}FSOlfuEAt1@qKKBzKpaZv2xh|0Xh0r&Z}sVOS+9u1~k6ZV0q#Cz218xZ27 zUf+Na9}OtWwb3ss@s?YCNf+FSFfRAK$y>Hu-}m6NhMwtRDGC^A0OV(W>vuIE#DI* z`5JuxeK=wmfazM}Jpp2GjSmeV_SX1ZPn49;yIcprd_HF?*Pr*fPAkmkeXb|U^|dzF z(?JthVb}UAL=(idKGlH`*ZMe4gw{2uI*>uZHc^3a*ZEWjX1!giCrb78|39hTfzwvC zOq;i(gkPVZwi155&xk|`|B6j`m|AyV$-P&~zv5G#R+z8&luwlM8(hi*U~b5nO8E^w zMQu-RC_W;k};E7kU4N%ljnD`!{l?^8StdES2|f zmGW=;luxp?_D!GiiBf*EOZju}VZq#-pQBQKvrl(+A2{<+ubt zQI2min4oqkaW*vfj&^S2erp%vXCgdcc!mQ;-=$HF9;ljveOF!5Xw$3 z2#NA~zZHZg0M~uLR|Fu;{az7(F!w7-J7@lp-tPxNZI|lW+H0@-MeR*j|KbmJ0ZD>3 zL=0^{N|o&IdzqjWJMVj$NVJLmfWoCqdd|+UW&{`~IN)t*BmIF_3R)q5ASZr@Qj{w3 zCqdOcVWG>_wdpHo@%VoDG#=mIIGLxFpQt)GwH%rf0dg>XVsd!;_YMZtEwY&_l_VJd z3`z71R*OMod>RCLqGAB(&Zj~337HC&q(X<&Gw-F;IPA}mgIGK4BNT{}hrRriBos%S z`~aAnBRNy@bHvLJtuT*x`6)?$zHp@m0Ol7ydVny$@cILU`GwD?lF(Pp`U8XuwpRoQ z_babIz^pg=bBaz_`tyzSr#^l5hOmPzH3qdXaau{kb`3OnGm@Wg^3#_5eB%?dBzKQl z`AM5nwBT6oyVU2HS08#pJm%G>B=s2`+JXasnbABju-8qGtbndMq!s4qkb*;taY^bk zHtjJr{9*lAo*6ibglBB%)?oTT85{C^Sxae275}*OzNzHQxX^79I0$82=r##JDC0u6 zh?Z3GkHs9 zS8CG=aYE=y?UJhdiJ`rNz3sokxN#!S8yrz3#>CK7+Vq4tQ6rAlgX(f6o*Y&^N`~B+ z?rdvnlpz1wW^$PH&ceB@aGt`sXi){=(iHC!5X)0SS3m=?JSB7mbXnmy6($9ABLL>q zoT;du8oC0SR+v*mS3s8))zi{Z|0g_e@HBs6IS6H1=qhI*lxd->oOyYM3Ow|;rhyCx zwsQxBJ3VxjGcfB-IP0-5lRyogo;y7}w|+)WQRvRd&rP8_L+7SykQa2Q#M5V|hZoh) z%so`l&J0~0NFOLO!{d8qp;uPW&Pq@JOZdZvSw8eQ2xXQJJs^}>3OyC%Wku_3E-D2% zbI&7Ikc)F5%-NwU$$>Cuhpr?qD`@A~41uW|OmlLkVt0JMeazDYaiNcSAjE|}=F1A*hi%OBH?BUM zUj&8j!#?I|h4`?K`Lfo`M{LZW2*B4ze9!}7KH`HO2=fsQIYvQWU5S^5Rh!de_l2X| zEDe)BS*%wp)|a_h2jI#w?+Oru%X~ZlF}TdfdbMJ6xr=oG%;h;#vA*2LI;}95`&h45 ztUsk#|MqbHhWM1fP(X-J`G^NXe9A|Bwa_y@;!gs?1>1-R!hOa^JTU7`#DANMT&;+I zHblU`m0mbK?3X^##k3p7QA}{yn@|Qko1d{V;8~rqVzXMVu5z&n$dHRoAk0-hHi0l# z`Pi&hBCN5o*$9BSCO>86!x|r(w8C7Y*i_b4D<7U$)}0Gc>F|6`R60EGbB|Vt&xbDe zs+A6FCHog}mdb{;J_CUe*ZK?uLR_m1)CR0t*|085YhR29WP3&qz+RURtCUz5x?LEp zu-Aod7gnv5SfAz6lm}Vf*85DN0or<>NkC}peI`{aAvW4f;ykOFu8lsGfG{`uR06`> z=u@d$8Nprb2ib&e%CDnRVUtfH`as#_lc-u%X>s-||TWg!z_FA|TASG}sm7 zP>V|ZPFOWIJ#S8Ud7F2_q+OOnEtEssTn+)4t!>^DAojNThyr47o6n&ZiuN5YhX62l zX3Et7sVfz>!h>4GV zNB}YMv98j8%S@0n2W5hHsIH{+yqT{~sVDC4RnT49bd%!QsMv{1H;Nn6biPih#$<6uWo znv5~-Ap(7%j4?b!xPUZiS&45kRewounjfCu`WE9J<+W6r+?KvNpBE}_f~uv^1mg;-VL;{=?1xj1OfasXqBZNy@^WT2962)4 zq<8c(r=*J(a8qPrPE@8$%ui97GEt|fb*ZH?Ws>1d>%Tu2pPbe%49i1-eoUpxB;)Q2 z(iiF^`K$LuT5469Y>4yI(vN#HZn`jRSBq2|C}qGwGcz4IIIH4*3z4AybV@Dq5jWH61%; z;oedU%QR!(~cOgHu=7XU*}&xcgHOgC$Pk zq?N*Fb~<=*cuxK7oT50K?dO?3P-bhM_3BA0#o?Uv{>9;W4RieYauCWKABR9Fb97y6 zGYV*~N!!j1yW*dsaBe=BqHwNpN=<9l7o{GQF^R%?=~a(}Lk7>wDT=>&rqn0PfmWGP z&ojL3t@vxD_?vHdv2tQV@#O6BGl%RkdsTt(=bMs!O$x}6^9^rPDvnwy2p1@h`kut! z0zR665EuAp0zzD%Xp+#kQUESd^yWf;{!k8BiKiLz65}?FK*&oZN|N|i3dN-&=Mvvo z&jIhU0&%GiM0!JBD)QMGnLu2YE?5$NyM9@INfd(1dR2j?j zQ51X2eeBVPQI;$A^nz6@N%d1!afbnznWwzs0%1Po6&DEeDf#zPqPBG@yhOX|bb@=l$Gr5X$p@Zh=sqH#{sHno&S&HSh`P$J@EJ zvhwk;^W_}yC!qvbo1cUdV6ACmU$JSOCBRw@-=3*!Q;Aa=ei5M$!@Ox&L{t#85!#&2Tppg>w3*kB zvV7$rl+C7vy=p*p(p7803Ae4p@0h9&Od&f_-4=YuBx*9It|BMZZ+*~ZPPYr()n*S{2axaqIH`I>^q2Ug94_2-c$io+t^^bfix}KOgsBt zCY`agO&8l*Vpg^zH?FUCWk7F9VzS*-cPuw)NpG9Q&34ntDi07-+oe3#6ljOxcOZdE3DX2S5FxWNn!eW!KH^s{hz-s#*C7n6H zou=ym-y2gqO@n@by61N(I7RbLLsj6zaUs1Q$C~WlRCRQ+i`ypQ-kjUZTCv^gqvc z#?n4>!9~szqP^b)mo~Z9YD|H>DXI8=Q{CUUVrst`aK49_+HWqp#F?Vve$NDruCWD{ zfZmcS@b~h|rwaVN{PMME!qj_a@K9%p68wF`FS2Z;x5O0Co6-jMeN%1qp>4K-ecyDn z`Uu3*`-a=JHazuWkO@wAmRey6=qyQ`Uqdn)sW<_|)qlke;9VG7E_5PgQ2=41q-1 zr>4Ux<+f$w0=O{Yr&=89crxb^n0A%;u&KH=va+Xlj}L2`(TWUgmsC~a&rEPj6lTW2 z1=9I5ljx^Fw9Bg_#@HMLan3;d2n2|&Bc`RDOdx(8v0^JKjh`E1Hyj|SK&#WhthI$z zR3OyPCGCvb1Q-9mFveaM5L}>r@D7Cgg=uS_Yy;tbVff{q^%(S}F}8kd7f9KFR&Ie% zzclS^`U11gy?Q$;7x*hv9FD>I@d1S z!~^Y1;XtTgo8x*rs*1v|O+Wp5P7}p2-{jP|$zsoySbdXoC05_$T*T_AF{e1gQYWCl zTvDf_rrU7e3iYTNp{UTXgv~KyPIQe@BOsTniKwC#?lIHZ$~+M6G1I7DC5nq2jf#vF zHV|B(A6D`+Drz29@-r$LVU?_%io?;7IoAy_Q*KC8y8a(4=Vn7%7=k^$t}-xWE@5VVqUSA=BfzGi!+*xl)bHR154yK|#T+PkAt zD>sIc_U@={g;Nd8ag}&dRCTXYnd9g=DdLWYX5l!w_~(e<8%wZ2R2e~@aha3nhFuV3mYR#IvSfK*Kof)ywv|I%6{>a$u>yQZ`&`ux_>itnSD>gu= z_eZX%>L4^LGPbA!F)YxAClKnasHwXxqrh43tc;S&T$u;>`BiqIKyZP!&IQ7KAnGy5 zw?cg&8rtYQ=1R=YsVd%po+<&Hol~2nfU|Qhogd7(s@8y>D*=2k=Slz{%&7?AoXGTd zK1l$9cG2mOZHwnbooz`BggQs@&}1i>EO;m~XE?4D5NM^SLneR^MLkdUt#BWTPCMP5 zEdn?kWwN+f`Dqh8*y1aNM2);W%f05<(KA65zotaGNMfPamSAK@X~zecC} zVG+Q2`LGf|pbt(7;JkcT?UU!_!yk-5zIBmo3kEu|6a{HXpy-wJhpbjc4n+rV_J#EYV;RZbN;(sNNn?a`#v>!{Rw zI0{y{)C1H0uur{?O1;HC=s}DMw6zD2zKbJQdjJ`Au~&(XN{~nV$^e22wDkk9&?M{% z2r%47B3D3kRPFI-ns>Z6e>AUX;yiHxluKv03UegHyU5@q#6 zQ)IwdZ&yHcRO&tEuLlS&&@NCwxR3b-3JCSF$Q2MBwT)VuQOJjCo{q}AtA(x5 zfEo5_U-AGM_Gw@8bX4j+<4Yb89s_O31BCjFFL{7apHazkz9v~ObFECDSsz~5w31(# zWa-I4C@UkL#%V1ELRlGg(3cYe)2R}#iK;faZ0$tPH4!&Rl&qbUtj|Tk8!lPFG(V?g z)sKWbDOq2L%%Cp4YR|svieLZo%8SlFKfBv@(G|bBBE9S7uzM5Db`_#C+!vzmR<(gR z@j_Iuk6g$UjcX&*n0W}|l!3O|2WG7`_C^K}>e^_C-TQS??!Fkgnid2VXqV?EFx(fT zTDz(O;l3ETnzobBI$x@R-~#Pk93a$nQJq~?fm!DhhdYnS-IsEzau?{S%H5Zux+c$6 z^1c)`b4lLyIakRG^jszH`g~X=@A{ld-R=BT6mtN*3isaoGng8w@wQ&I2 z8mLp2yBnjym-tqw8>7qq8`QvbuEcLeRR>%)bsoYfZ>efmI(1e$ZH|KdE}g(MZ&o_# zet2i4)0Xs&4Pn2gEq>wRAbqy@bqmO7Tl~7!S;75|pAZm^0`0m5%v#%7%>hDv$FEzR zl{Q=bx&?v?v=Y$-hP%}+TxfKbHd`aNZgp1LZ1W2U2rkerAV8?w`~m{ZI=gkNvzEN= zIaO%`^i-wI_UO1KyJ@B~-0gnx>8v$xN6uB+06kY}vm+l?X|p4z(s!p{w>oEO1GMWF z5b939ZUL1xJN?4dS!wgGU$;P*0@`&82=`sTZULdb>({N$N}FAN0Rce;+H3_v-Q^b$ zAkOQ}2b=H#i ze#8smXVi}T`AzBP8^iB3fb9ZCE8O?}0tSTpz80`1!mgE%Bc5XD z$#@rK)4?b>Tb~YU_#ayMI79$(%h{YA zqaGu(2YX$VB8Sr2O}qqpC~^;fIH;qMd-wyy=%I+GFMV*eYbE|Xsv4L6uT5d^)}Kc_ zZq-B6u5$Iu^x;k6ITwEEz2hK;zKq<%X&{EajCkH6?|^vsWz^-2%sWB5oBuNEdV1zv zS9$lfyzAS@-&~5Xy^lb(c^`q8{#rij0aaHC!_oAUO-M$3-#VzL4IHx@{;t_W+EKCF@B=Y7Dz4Z?0GJs-UL=HFr4eJ| zpmTb#-qhl~L;~zhNhHR^?qv*G;f{%UhOVc{U8NB>r(53&&uhAw-}gE1r42X7?)_i- zK)E?~Pl&oz;#=dYJ7RmQv>QEdjT2k5cGH!)Ep|8aK^O(gcYw?{Pr!#NkBQArs^5Vzz+*Pej(_{C7 z3q2uDkKGG7-L*8$i0u#G01P=JXKH1dk)NbirWyH3GI2BGbnvlo;HllSw^U~4Of5_^ zWA_RLtuSZCJh%N!k9xanVVWHW{k!Zd)c!CXy)EpTuB$JenO?p=zB7C4g&uf97c1XD z?9Gn(=8X*tEmpH*_tBf~TCC>8*~`WJ%}mURotOe4&WW9v0wKVR

sL36(ld94{puIxL+j@@i@X}r2g;(D7bWzQ+3xx^ z-Qx7V1E?W?GuGn#H1*JbaUPNSea+&SU(BkE?NN!B#8rC2?XOw)Bw5JmxhK zgjJwTS0H^K^Fas1>SGGJZ1)W&>>l&^DrocdF|Ua|lTv_DWeJ-&a_r{1*Tdvm&=G*H?I@q!rsMyix+O zy}~P{ptZe1N~xC&YowGb0(pw;O$yZOk@>YO44 zT%A*-fUCVY)JOrJlL9u@Kj#C6gHWFH+6RR4oY%e@dGvy`?~H~Qa*9;%1s`Mdf%1Y> zPakQl$#&{-I7Lk@KVhE1}Sch){U2~;tm5a_RBd_^7pcrTv}niEXf_1 zF;Tx)tz6Y)H=-Dr zZ3yKZ`AJIycjPB64crmCuMyE1LpyZAvKN$U^drMvasD+T4nW`K*EJyYU9tNb5fJ*W zn6DA3imeIwe%Kz#bx#tuf{yLU-Kap^<3*cRhV)cMzKnr!PEnyFM zxu)64(g82mwNjoByj+7gO`w%)VAks78i@4|B-aCw>$*yOFs_=MZulVV-}+#j)MdI{ zCwC92ggyOV_#0;rd1rx`JLKgVh`B>vo`IzFAurE@RzeSXd9IVMhpjwc2Eg{=+_qdj z?B$tOY#;XW48-7hcAIsQ=Oby`kHS-acqBKf5s&!Ur4L4r_}K+w^oXBa zL2LAgCf6FJ{}(a8$Qh8{)5Ua7@4h{0m%j87?|5_6UctI-C-p@>hJ^eJFXVL+@~^T| zHXZyi^7xgHCtC3BE3f82cwb4)_2r{Fsrff?djB88e;WqKkP{pr%x`=o0%3k5QI|Z{ zNz{+U_RDF247qX+2=kcNM%bbD4HhQ<}$o)w6paYYnTyQDg)`>n-vLwC~y-zD$2@+AsqNb-Jb(be#@ z!o0Ouu|FQElf2(vOuy-1y1RGRjbNks(37qr$N(A-<=^nWn@+h=@Z>cQNo3f%{DqteF* zWmH@Jp3=vM(zZt^bRY7e#X%?!72PHu2<4%o+vN9@&wovCI6|TO*PJ3v{Hu>f`at<> z(P?5&Y2x3CRucgka+(N)`M09m;sRm*t>`qdr!?{J&6)^gaIn=xAl$!uO$5UIyVt~? zny-aU6IXnWCN9j0(!_;c6X^+Yq1VKo(!__ICIXnEhkc3z@!(;vi9ifJ>@^XHp@*f3 zQkkC8#7C^kq>H}5gGchqB1wG2iwr#>KH^2DrzCNS6`4i=6SgGxK$5t`iwvzWmq=u^ z;q56&Tq>wPyWA_r2@3iry<&hkS)f%6VAkps1Bmq}r5Ho0 zpn6r}XNy%kP>d7OnY=reo;xmV-Nn8x)(hUV#iVamRQ1vsta3sD-~?9r69Ce6l@|&i zL#*;b0mT1RUMK{u|Es)E^pgK;BosA2;%`i^$xX}qHC`@g#q=647eGv}@p2((O|Ow$ zXq(qda`8M9|Ns4ZRfo%HVkFw^RRA*5^ZqIT8R>a19Y98U-d_YkJJR#I2zDg;uT9VR zhR>#~&5cSr*5*bf9c#UG^pbR}lXTQK@;BbB^N|LGxXud*5aK#7Aid=IdI`vgVf-zS z6D1?-eTdQualK?jd)8i(kyl7)?h-Pj_RFv2zDh=3@g)YWFkdOU+l0L&BOB7KN5fwA z8*+-&V?%y=QjZP!=`m%mr-P26jIZYu>Bj56sOXjH#_L6H3|^f1hi<%)-hGTO+`QqJ z_FkDnyis)D(Eu{a8%4flr9DzFDa4!iwl@75-pnUK((q={{fd+>Fy1WkD^k^$y(A5r zi@ICL97q{97oC&>A#V0k3WT`1=Le~s2XW&(S6mSS5_l!E%K=!dsfs)+pT;x^~!3b?OwisFt>a80y5-w z$(L@s^{&M47OVC+73xjTcZ-RAJFvHMc$Zfp5SJfl;~z-hUH)1EvARpw@+zqin5((V zCxD<$fL&gNdMkf+dldpPu|TUrz^v7&5D@FTr9y-7xlbj2uUK_wIz2EAZQd&;y)wz^ zBX0FF8O=f9NGg(3<{GlA|2!Bgy$V-4U9TfB123R0DqOXO})0{n)Du5ThUa$rZFl zKi1@0qx3&mWFOZ*-LQpUY>%NDuIGTgczv=h+`-(ubmpK>#6HrQLsn<_o0C1{qY#K+ zhrG@JAs+HN(?>dU*y;>_3*`Xjlkl9?l3X6Om= zh?ki@l9?|gGc}F;&4^#*M2XE8`8i5#zR1s!8T?9OQ$M^ z;_5#j#G4Z*T79%nyCu;hj$! z%~oHf<=u(fY=M|qpcO4(*6KtHi1oV@S332p#FLY%CF%bxn;~r`%UwMb=qGolB-w`Q zUjTSJ#d{0H-ju{`sDRj;lDG{O5ND?(ZbKz#MPN$eHdOuO?9?QCjQS%0wx{N{L(XxCicT!fDE}H2g010xLrOF=FG%BKL;C=n>d|fexy@iD;_|&a}!r10pZR~sF76h^pj4_v*N+uobo&` z9zclmym$a1&hz5YPo>g)D<1sKi1YI+qEczT7Y|w?&X;&(cl-NEuNI{`^Z`K!}fe!2v>i)C*4kO1w0wdcp}#e|j!WT$R*c8T_~x91v#>v{x5M-^YCf1F`zJ zA~<_E3Fi7f?gdBC=Go(3aQZ8UmwCYf;WN+*4lrwVf&;|*vIN1=|A;oA512donA$APvyTth9o3835ZWbK5$Xm0pl&#r8@sNI-0_^nxU4ZLgFd z>Fa3&R7R~%YulM~f4Dj~su5TF>8B4yS9`q&Vsy2ieL-tM!k>@Zf_dvU+}5GLA-jwixUva3tpTCNSt0w zC$=|dG`yHoq)IP(RiY1+7o|$d*8x(cmlAuo2aqAR+5=&}8sqfhp19&V}3!TP#e80(h6~7 z;%~vni)Yn>OXwP};O9are9jNSfYCvU}bPraL@uuAx&4>FyTi$H*@lLag_ibKn1}a^)d$j=(NkFSMz^v7&4G`J0BrBiZOhmFUQKAl_I|G>Ky2^#Y9eTD@0XhB3oP|gllPhCfBG`r zahEDHIcO)FE)4O$pKKsQyzeI)$Pn-QxfZlTysx>oL(u<&bbJ@{-TDu5qpEm5$c;)( zKJaQ%FE#mSN>{|>BcEd&gYl6U6CjL_yqMI>@r}$;gmVA8aHH%i*Uuv%+-Km#+d@bGSRsVH<(Ig*Vd&Qv- zl&`(w)Jr~&N^!a}ol=jZIZ^6yG{4$XkE339>ZKl|((8Me-VLMpv}?8p;~`ZI{niqa(;LYdREfuzs_swM*O*?d$Cr4NrybQGxjP{()S7cHnc&^z zAciKC+*S&Rp$R3ol>*}Bgp%7z30f~Fl-Nq?^G}21<-}5OO4{v_uyeYo*2EV9?HtgU zwYqBp#Q4M#Hw?5U0x>?Zbll0=E2)Ck_{36&5!tu=21#rtmD0=ShF#LyI_`c<%1vwF zNhSAWl%ANLRN{+%HJMkS$?2ta+}oL)QzRjibBZKnvM5TpL6VRu>HT$vPmGmZjle-D zQ%dfR01(QQlB*F0NkgWVT#beQ0ECjf*xwM2=a2ke8SCDYQ2k2ie> zPs=G1k!d+aA~H>sei;Q3nO>r*Shzark-ghFD62|1=7*G`OfR{+3ADnWUZSedBe_9R zlo_S$x%@ByzR$>+Qj{4b_h6n@m@`UjdL>_jq$o38@&IssrcWLq%$YuUfG}tJ=|^zN_bFL*(xK^q~{X z$V=vXH#vx*`6c(O1t5mzm)x%wfOt8-$WJmmXDOg@g?`fCx`B$k0$FRdeKc;f! z@sj&`AFVk2c!^&gw6>l3FDM=_bzaWxwn{k>o5|;YZF{`bWqB#gGJc3w<)=!z6F8i| ziIAs!-UG4zl+Sx0)}JbICs3I*M49vq(UiTj+yulku+2gs+-H0)0pUJVa=-8#T8USd zs@AxS7)sBTCHFSOP=(kkpAjIe0`2(%>AT8bARty(=>lc@WiURi@);p$V{Mhsh@py% z)jlIYoG;L31TbrL83DxlYGuS=GNQ2(uPs%*TPh4a{-5{DBmel@-&}dl73m%QOsCds zOMH)9t4yQLVqN-hKUSG_-g^#Wf1SVFKsZTevJ6{WTk zw^3+A8V;b^*^pC|LmNu&ZWn#jN%E~FsZs08>*-|!Ox@7ebBZ$O^?VeqFRyEqUKxc5 zc%u~b?9wrPxm&SA`t$(PVlW5%c`JwBD3$Cla~rc9dZWb8=q;HG{AMXQKKN!27j|e0jkHajmnPA>3IXq=@)L!Dawn@CHH|3`as!S;)4!K zQ6N*jxzzu{Y(W>aQ@yz~;DRjW8kIR)w8-|IQcr2R#U~sM7~bL&4v66`exYsD0<^W1 z{knj^nU$?R+kgachaYXUfz@)wJ7vrVazb1=~yo!rksO6$p2`GF7Wyqbk~+ zZq)-Yojd)i2ZXuPuX;e3JN>FRtP<}oRqb;*K8&8bONspq+%RRw9-reN`~lhv0;KOA zpW{HR?rF|(FtfME=eVGq-aS6YhbdL0f*pZe6IoLZ6GQ{oU2+gh8hEV%qG5qi5E&Xum}PWTcNut=p8# zoXT*X*p;e!WZxJZPQQaCe)D@CpYE@!#Q!K&Eh`tgoMt~nnHHuL+ogksCB^iUc5#bz z#cOdXZ5V9YcKAmr$!^5QRh)7BSt&SH3VCAq&1-RwbjM|3b^4!!O^c?_N^$l{3-v-n zJ}b4&e%>pHL!XuE&(LZl$bTw)q-4G<#e9vdlpR>~;*-1?=MLt*zABlc^lDo!X1yk{ zjJZQRz2s1#5|1tica*~}eQVRw5HqxCbUDtx2c$-v7+r3i>46|lj4t;Z;hf+*i1C=R z8CUjB6pVGk9kfoU*DYmpJH4zE1tTZiA?pNhP>(MM_gW{OkQ3v%7p}|9s8ZAM<#xS2 z#EJ3cA>VdRpn~yTWizqaiNHDG4q7MF>z=Zi-0Vb`*C7WZThRB zW<=A}d?rGin3~Uolz3`B6Z{-9{;#r`-t0u^oNx!N6YBMsvYFZJM3_0@4*ei=f-Vn~ zgZVgdYHixH(R`=rfpVOENC^)OPCQVy@2Cpm!~^9)XStcse>6S2Y#wTM!Z;_~LFt7XV{e@}%q*QaELylDSRC9F mo>M+|S3wU;s;Y|jy!y_q!;g#kSL9#9ztYm-$Cdwj!T$wsMz68} diff --git a/managed/models/agent_helpers.go b/managed/models/agent_helpers.go index e9f15e20ae..5087aa19c4 100644 --- a/managed/models/agent_helpers.go +++ b/managed/models/agent_helpers.go @@ -903,10 +903,9 @@ func CreateAgent(q *reform.Querier, agentType AgentType, params *CreateAgentPara // ChangeCommonAgentParams contains parameters that can be changed for all Agents. type ChangeCommonAgentParams struct { - Enabled *bool // true - enable, false - disable, nil - do not change - CustomLabels map[string]string - RemoveCustomLabels bool - EnablePushMetrics *bool + Enabled *bool // true - enable, false - disable, nil - no change + CustomLabels *map[string]string // empty map - remove all custom labels, non-empty - change, nil - no change + EnablePushMetrics *bool } // ChangeAgent changes common parameters for given Agent. @@ -919,6 +918,7 @@ func ChangeAgent(q *reform.Querier, agentID string, params *ChangeCommonAgentPar if params.Enabled != nil { row.Disabled = !(*params.Enabled) } + if params.EnablePushMetrics != nil { row.PushMetrics = *params.EnablePushMetrics if row.AgentType == ExternalExporterType { @@ -928,14 +928,15 @@ func ChangeAgent(q *reform.Querier, agentID string, params *ChangeCommonAgentPar } } - if params.RemoveCustomLabels { - if err = row.SetCustomLabels(nil); err != nil { - return nil, err - } - } - if len(params.CustomLabels) != 0 { - if err = row.SetCustomLabels(params.CustomLabels); err != nil { - return nil, err + if params.CustomLabels != nil { + if len(*params.CustomLabels) == 0 { + if err = row.SetCustomLabels(nil); err != nil { + return nil, err + } + } else { + if err = row.SetCustomLabels(*params.CustomLabels); err != nil { + return nil, err + } } } diff --git a/managed/services/inventory/agents.go b/managed/services/inventory/agents.go index 352c3177bb..a9512e2eae 100644 --- a/managed/services/inventory/agents.go +++ b/managed/services/inventory/agents.go @@ -71,13 +71,11 @@ func (as *AgentsService) changeAgent(agentID string, common *inventoryv1.ChangeC var agent inventoryv1.Agent e := as.db.InTransaction(func(tx *reform.TX) error { params := &models.ChangeCommonAgentParams{ - CustomLabels: common.CustomLabels, - RemoveCustomLabels: common.RemoveCustomLabels, + Enabled: common.Enable, + EnablePushMetrics: common.EnablePushMetrics, + CustomLabels: &common.CustomLabels.Values, } - params.Enabled = common.Enable - params.EnablePushMetrics = common.EnablePushMetrics - row, err := models.ChangeAgent(tx.Querier, agentID, params) if err != nil { return err diff --git a/managed/services/inventory/agents_test.go b/managed/services/inventory/agents_test.go index 7a5172a7c5..9670256763 100644 --- a/managed/services/inventory/agents_test.go +++ b/managed/services/inventory/agents_test.go @@ -27,6 +27,7 @@ import ( "google.golang.org/grpc/status" "gopkg.in/reform.v1" + "github.com/percona/pmm/api/common" inventoryv1 "github.com/percona/pmm/api/inventory/v1" "github.com/percona/pmm/managed/models" "github.com/percona/pmm/managed/utils/tests" @@ -34,193 +35,232 @@ import ( func TestAgents(t *testing.T) { t.Run("Basic", func(t *testing.T) { - // FIXME split this test into several smaller - ss, as, _, teardown, ctx, _ := setup(t) - defer teardown(t) - - as.r.(*mockAgentsRegistry).On("IsConnected", models.PMMServerAgentID).Return(true) - actualAgents, err := as.List(ctx, models.AgentFilters{}) - require.NoError(t, err) - require.Len(t, actualAgents, 4) // PMM Server's pmm-agent, node_exporter, postgres_exporter, PostgreSQL QAN - - as.r.(*mockAgentsRegistry).On("IsConnected", "/agent_id/00000000-0000-4000-8000-000000000005").Return(true) - as.state.(*mockAgentsStateUpdater).On("RequestStateUpdate", ctx, "/agent_id/00000000-0000-4000-8000-000000000005") - as.cc.(*mockConnectionChecker).On("CheckConnectionToService", ctx, - mock.AnythingOfType(reflect.TypeOf(&reform.TX{}).Name()), - mock.AnythingOfType(reflect.TypeOf(&models.Service{}).Name()), - mock.AnythingOfType(reflect.TypeOf(&models.Agent{}).Name())).Return(nil) - as.sib.(*mockServiceInfoBroker).On("GetInfoFromService", ctx, - mock.AnythingOfType(reflect.TypeOf(&reform.TX{}).Name()), - mock.AnythingOfType(reflect.TypeOf(&models.Service{}).Name()), - mock.AnythingOfType(reflect.TypeOf(&models.Agent{}).Name())).Return(nil) - as.vmdb.(*mockPrometheusService).On("RequestConfigurationUpdate").Return() - - pmmAgent, err := as.AddPMMAgent(ctx, &inventoryv1.AddPMMAgentParams{ - RunsOnNodeId: models.PMMServerNodeID, + t.Cleanup(func() { teardown(t) }) + + var ( + pmmAgentID string + ms *inventoryv1.MySQLService + ps *inventoryv1.PostgreSQLService + expectedNodeExporter *inventoryv1.NodeExporter + expectedMySQLdExporter *inventoryv1.MySQLdExporter + expectedMongoDBExporter *inventoryv1.MongoDBExporter + expectedQANMySQLSlowlogAgent *inventoryv1.QANMySQLSlowlogAgent + expectedPostgresExporter *inventoryv1.PostgresExporter + expectedExternalExporter *inventoryv1.ExternalExporter + ) + + t.Run("AddPMMAgent", func(t *testing.T) { + as.r.(*mockAgentsRegistry).On("IsConnected", models.PMMServerAgentID).Return(true) + actualAgents, err := as.List(ctx, models.AgentFilters{}) + require.NoError(t, err) + require.Len(t, actualAgents, 4) // PMM Server's pmm-agent, node_exporter, postgres_exporter, PostgreSQL QAN + + as.r.(*mockAgentsRegistry).On("IsConnected", "/agent_id/00000000-0000-4000-8000-000000000005").Return(true) + as.state.(*mockAgentsStateUpdater).On("RequestStateUpdate", ctx, "/agent_id/00000000-0000-4000-8000-000000000005") + as.cc.(*mockConnectionChecker).On("CheckConnectionToService", ctx, + mock.AnythingOfType(reflect.TypeOf(&reform.TX{}).Name()), + mock.AnythingOfType(reflect.TypeOf(&models.Service{}).Name()), + mock.AnythingOfType(reflect.TypeOf(&models.Agent{}).Name())).Return(nil) + as.sib.(*mockServiceInfoBroker).On("GetInfoFromService", ctx, + mock.AnythingOfType(reflect.TypeOf(&reform.TX{}).Name()), + mock.AnythingOfType(reflect.TypeOf(&models.Service{}).Name()), + mock.AnythingOfType(reflect.TypeOf(&models.Agent{}).Name())).Return(nil) + as.vmdb.(*mockPrometheusService).On("RequestConfigurationUpdate").Return() + + pmmAgent, err := as.AddPMMAgent(ctx, &inventoryv1.AddPMMAgentParams{ + RunsOnNodeId: models.PMMServerNodeID, + }) + + pmmAgentID = pmmAgent.AgentId + require.NoError(t, err) + expectedPMMAgent := &inventoryv1.PMMAgent{ + AgentId: "/agent_id/00000000-0000-4000-8000-000000000005", + RunsOnNodeId: models.PMMServerNodeID, + Connected: true, + } + assert.Equal(t, expectedPMMAgent, pmmAgent) }) - require.NoError(t, err) - expectedPMMAgent := &inventoryv1.PMMAgent{ - AgentId: "/agent_id/00000000-0000-4000-8000-000000000005", - RunsOnNodeId: models.PMMServerNodeID, - Connected: true, - } - assert.Equal(t, expectedPMMAgent, pmmAgent) - actualNodeExporter, err := as.AddNodeExporter(ctx, &inventoryv1.AddNodeExporterParams{ - PmmAgentId: pmmAgent.AgentId, - }) - require.NoError(t, err) - expectedNodeExporter := &inventoryv1.NodeExporter{ - AgentId: "/agent_id/00000000-0000-4000-8000-000000000006", - PmmAgentId: "/agent_id/00000000-0000-4000-8000-000000000005", - Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, - } - assert.Equal(t, expectedNodeExporter, actualNodeExporter) + t.Run("AddNodeExporter", func(t *testing.T) { + actualNodeExporter, err := as.AddNodeExporter(ctx, &inventoryv1.AddNodeExporterParams{ + PmmAgentId: pmmAgentID, + CustomLabels: map[string]string{"cluster": "test-cluster", "environment": "test-env"}, + }) + require.NoError(t, err) + expectedNodeExporter := &inventoryv1.NodeExporter{ + AgentId: "/agent_id/00000000-0000-4000-8000-000000000006", + PmmAgentId: "/agent_id/00000000-0000-4000-8000-000000000005", + Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, + CustomLabels: map[string]string{ + "cluster": "test-cluster", + "environment": "test-env", + }, + } + assert.Equal(t, expectedNodeExporter, actualNodeExporter) + }) + + t.Run("ChangeNodeExporterAndRemoveCustomLabels", func(t *testing.T) { + resp, err := as.ChangeNodeExporter(ctx, &inventoryv1.ChangeNodeExporterParams{ + AgentId: "/agent_id/00000000-0000-4000-8000-000000000006", + Common: &inventoryv1.ChangeCommonAgentParams{ + Enable: pointer.ToBool(false), + // passing an empty map to remove custom labels + CustomLabels: &common.StringMap{}, + }, + }) + require.NoError(t, err) + actualNodeExporter := resp.GetNodeExporter() + expectedNodeExporter = &inventoryv1.NodeExporter{ + AgentId: "/agent_id/00000000-0000-4000-8000-000000000006", + PmmAgentId: "/agent_id/00000000-0000-4000-8000-000000000005", + Disabled: true, + Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, + } + assert.Equal(t, expectedNodeExporter, actualNodeExporter) - resp, err := as.ChangeNodeExporter(ctx, &inventoryv1.ChangeNodeExporterParams{ - AgentId: "/agent_id/00000000-0000-4000-8000-000000000006", - Common: &inventoryv1.ChangeCommonAgentParams{ - Enable: pointer.ToBool(false), - }, - }) - require.NoError(t, err) - actualNodeExporter = resp.GetNodeExporter() - expectedNodeExporter = &inventoryv1.NodeExporter{ - AgentId: "/agent_id/00000000-0000-4000-8000-000000000006", - PmmAgentId: "/agent_id/00000000-0000-4000-8000-000000000005", - Disabled: true, - Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, - } - assert.Equal(t, expectedNodeExporter, actualNodeExporter) + actualAgent, err := as.Get(ctx, "/agent_id/00000000-0000-4000-8000-000000000006") + require.NoError(t, err) + assert.Equal(t, expectedNodeExporter, actualAgent) + }) + + t.Run("AddMySQLExporter", func(t *testing.T) { + var err error + ss.vc.(*mockVersionCache).On("RequestSoftwareVersionsUpdate").Once() + ms, err = ss.AddMySQL(ctx, &models.AddDBMSServiceParams{ + ServiceName: "test-mysql", + NodeID: models.PMMServerNodeID, + Address: pointer.ToString("127.0.0.1"), + Port: pointer.ToUint16(3306), + }) + require.NoError(t, err) - actualAgent, err := as.Get(ctx, "/agent_id/00000000-0000-4000-8000-000000000006") - require.NoError(t, err) - assert.Equal(t, expectedNodeExporter, actualAgent) + actualAgent, _, err := as.AddMySQLdExporter(ctx, &inventoryv1.AddMySQLdExporterParams{ + PmmAgentId: pmmAgentID, + ServiceId: ms.ServiceId, + Username: "username", + }) + require.NoError(t, err) + expectedMySQLdExporter = &inventoryv1.MySQLdExporter{ + AgentId: "/agent_id/00000000-0000-4000-8000-000000000008", + PmmAgentId: "/agent_id/00000000-0000-4000-8000-000000000005", + ServiceId: ms.ServiceId, + Username: "username", + Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, + } + assert.Equal(t, expectedMySQLdExporter, actualAgent) - ss.vc.(*mockVersionCache).On("RequestSoftwareVersionsUpdate").Once() - s, err := ss.AddMySQL(ctx, &models.AddDBMSServiceParams{ - ServiceName: "test-mysql", - NodeID: models.PMMServerNodeID, - Address: pointer.ToString("127.0.0.1"), - Port: pointer.ToUint16(3306), + exporter, err := as.Get(ctx, "/agent_id/00000000-0000-4000-8000-000000000008") + require.NoError(t, err) + assert.Equal(t, expectedMySQLdExporter, exporter.(*inventoryv1.MySQLdExporter)) }) - require.NoError(t, err) - actualAgent, _, err = as.AddMySQLdExporter(ctx, &inventoryv1.AddMySQLdExporterParams{ - PmmAgentId: pmmAgent.AgentId, - ServiceId: s.ServiceId, - Username: "username", - }) - require.NoError(t, err) - expectedMySQLdExporter := &inventoryv1.MySQLdExporter{ - AgentId: "/agent_id/00000000-0000-4000-8000-000000000008", - PmmAgentId: "/agent_id/00000000-0000-4000-8000-000000000005", - ServiceId: s.ServiceId, - Username: "username", - Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, - } - assert.Equal(t, expectedMySQLdExporter, actualAgent) + t.Run("AddMongoDBExporter", func(t *testing.T) { + ms, err := ss.AddMongoDB(ctx, &models.AddDBMSServiceParams{ + ServiceName: "test-mongo", + NodeID: models.PMMServerNodeID, + Address: pointer.ToString("127.0.0.1"), + Port: pointer.ToUint16(27017), + }) + require.NoError(t, err) - actualAgent, err = as.Get(ctx, "/agent_id/00000000-0000-4000-8000-000000000008") - require.NoError(t, err) - assert.Equal(t, expectedMySQLdExporter, actualAgent) + actualAgent, err := as.AddMongoDBExporter(ctx, &inventoryv1.AddMongoDBExporterParams{ + PmmAgentId: pmmAgentID, + ServiceId: ms.ServiceId, + Username: "username", + StatsCollections: nil, + CollectionsLimit: 0, // no limit + }) + require.NoError(t, err) + expectedMongoDBExporter = &inventoryv1.MongoDBExporter{ + AgentId: "/agent_id/00000000-0000-4000-8000-00000000000a", + PmmAgentId: pmmAgentID, + ServiceId: ms.ServiceId, + Username: "username", + Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, + } + assert.Equal(t, expectedMongoDBExporter, actualAgent) - ms, err := ss.AddMongoDB(ctx, &models.AddDBMSServiceParams{ - ServiceName: "test-mongo", - NodeID: models.PMMServerNodeID, - Address: pointer.ToString("127.0.0.1"), - Port: pointer.ToUint16(27017), - }) - require.NoError(t, err) + exporter, err := as.Get(ctx, "/agent_id/00000000-0000-4000-8000-00000000000a") + require.NoError(t, err) + assert.Equal(t, expectedMongoDBExporter, exporter.(*inventoryv1.MongoDBExporter)) - actualAgent, err = as.AddMongoDBExporter(ctx, &inventoryv1.AddMongoDBExporterParams{ - PmmAgentId: pmmAgent.AgentId, - ServiceId: ms.ServiceId, - Username: "username", - StatsCollections: nil, - CollectionsLimit: 0, // no limit }) - require.NoError(t, err) - expectedMongoDBExporter := &inventoryv1.MongoDBExporter{ - AgentId: "/agent_id/00000000-0000-4000-8000-00000000000a", - PmmAgentId: pmmAgent.AgentId, - ServiceId: ms.ServiceId, - Username: "username", - Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, - } - assert.Equal(t, expectedMongoDBExporter, actualAgent) - actualAgent, err = as.Get(ctx, "/agent_id/00000000-0000-4000-8000-00000000000a") - require.NoError(t, err) - assert.Equal(t, expectedMongoDBExporter, actualAgent) + t.Run("AddQANMySQLSlowlogAgent", func(t *testing.T) { + actualAgent, err := as.AddQANMySQLSlowlogAgent(ctx, &inventoryv1.AddQANMySQLSlowlogAgentParams{ + PmmAgentId: pmmAgentID, + ServiceId: ms.ServiceId, + Username: "username", + }) + require.NoError(t, err) + expectedQANMySQLSlowlogAgent = &inventoryv1.QANMySQLSlowlogAgent{ + AgentId: "/agent_id/00000000-0000-4000-8000-00000000000b", + PmmAgentId: pmmAgentID, + ServiceId: ms.ServiceId, + Username: "username", + Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, + } + assert.Equal(t, expectedQANMySQLSlowlogAgent, actualAgent) - actualAgent, err = as.AddQANMySQLSlowlogAgent(ctx, &inventoryv1.AddQANMySQLSlowlogAgentParams{ - PmmAgentId: pmmAgent.AgentId, - ServiceId: s.ServiceId, - Username: "username", + exporter, err := as.Get(ctx, "/agent_id/00000000-0000-4000-8000-00000000000b") + require.NoError(t, err) + assert.Equal(t, expectedQANMySQLSlowlogAgent, exporter.(*inventoryv1.QANMySQLSlowlogAgent)) }) - require.NoError(t, err) - expectedQANMySQLSlowlogAgent := &inventoryv1.QANMySQLSlowlogAgent{ - AgentId: "/agent_id/00000000-0000-4000-8000-00000000000b", - PmmAgentId: pmmAgent.AgentId, - ServiceId: s.ServiceId, - Username: "username", - Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, - } - assert.Equal(t, expectedQANMySQLSlowlogAgent, actualAgent) - actualAgent, err = as.Get(ctx, "/agent_id/00000000-0000-4000-8000-00000000000b") - require.NoError(t, err) - assert.Equal(t, expectedQANMySQLSlowlogAgent, actualAgent) + t.Run("AddPostgreSQLExporter", func(t *testing.T) { + var err error + ps, err = ss.AddPostgreSQL(ctx, &models.AddDBMSServiceParams{ + ServiceName: "test-postgres", + NodeID: models.PMMServerNodeID, + Address: pointer.ToString("127.0.0.1"), + Port: pointer.ToUint16(5432), + }) + require.NoError(t, err) - ps, err := ss.AddPostgreSQL(ctx, &models.AddDBMSServiceParams{ - ServiceName: "test-postgres", - NodeID: models.PMMServerNodeID, - Address: pointer.ToString("127.0.0.1"), - Port: pointer.ToUint16(5432), - }) - require.NoError(t, err) + actualAgent, err := as.AddPostgresExporter(ctx, &inventoryv1.AddPostgresExporterParams{ + PmmAgentId: pmmAgentID, + ServiceId: ps.ServiceId, + Username: "username", + }) + require.NoError(t, err) + expectedPostgresExporter = &inventoryv1.PostgresExporter{ + AgentId: "/agent_id/00000000-0000-4000-8000-00000000000d", + PmmAgentId: pmmAgentID, + ServiceId: ps.ServiceId, + Username: "username", + Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, + } + assert.Equal(t, expectedPostgresExporter, actualAgent) - actualAgent, err = as.AddPostgresExporter(ctx, &inventoryv1.AddPostgresExporterParams{ - PmmAgentId: pmmAgent.AgentId, - ServiceId: ps.ServiceId, - Username: "username", + exporter, err := as.Get(ctx, "/agent_id/00000000-0000-4000-8000-00000000000d") + require.NoError(t, err) + assert.Equal(t, expectedPostgresExporter, exporter.(*inventoryv1.PostgresExporter)) }) - require.NoError(t, err) - expectedPostgresExporter := &inventoryv1.PostgresExporter{ - AgentId: "/agent_id/00000000-0000-4000-8000-00000000000d", - PmmAgentId: pmmAgent.AgentId, - ServiceId: ps.ServiceId, - Username: "username", - Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, - } - assert.Equal(t, expectedPostgresExporter, actualAgent) - - actualAgent, err = as.Get(ctx, "/agent_id/00000000-0000-4000-8000-00000000000d") - require.NoError(t, err) - assert.Equal(t, expectedPostgresExporter, actualAgent) - actualAgent, err = as.AddExternalExporter(ctx, &inventoryv1.AddExternalExporterParams{ - RunsOnNodeId: models.PMMServerNodeID, - ServiceId: ps.ServiceId, - Username: "username", - ListenPort: 9222, + t.Run("AddExternalExporter", func(t *testing.T) { + actualAgent, err := as.AddExternalExporter(ctx, &inventoryv1.AddExternalExporterParams{ + RunsOnNodeId: models.PMMServerNodeID, + ServiceId: ps.ServiceId, + Username: "username", + ListenPort: 9222, + }) + require.NoError(t, err) + expectedExternalExporter = &inventoryv1.ExternalExporter{ + AgentId: "/agent_id/00000000-0000-4000-8000-00000000000e", + RunsOnNodeId: models.PMMServerNodeID, + ServiceId: ps.ServiceId, + Username: "username", + Scheme: "http", + MetricsPath: "/metrics", + ListenPort: 9222, + } + assert.Equal(t, expectedExternalExporter, actualAgent) }) - require.NoError(t, err) - expectedExternalExporter := &inventoryv1.ExternalExporter{ - AgentId: "/agent_id/00000000-0000-4000-8000-00000000000e", - RunsOnNodeId: models.PMMServerNodeID, - ServiceId: ps.ServiceId, - Username: "username", - Scheme: "http", - MetricsPath: "/metrics", - ListenPort: 9222, - } - assert.Equal(t, expectedExternalExporter, actualAgent) + var actualAgents []inventoryv1.Agent t.Run("ListAllAgents", func(t *testing.T) { - actualAgents, err = as.List(ctx, models.AgentFilters{}) + actualAgents, err := as.List(ctx, models.AgentFilters{}) require.NoError(t, err) for i, a := range actualAgents { t.Logf("%d: %T %s", i, a, a) @@ -228,7 +268,7 @@ func TestAgents(t *testing.T) { require.Len(t, actualAgents, 11) // TODO: fix protobuf equality https://jira.percona.com/browse/PMM-6743 - assert.Equal(t, pmmAgent.AgentId, actualAgents[3].(*inventoryv1.PMMAgent).AgentId) + assert.Equal(t, pmmAgentID, actualAgents[3].(*inventoryv1.PMMAgent).AgentId) assert.Equal(t, expectedNodeExporter.AgentId, actualAgents[4].(*inventoryv1.NodeExporter).AgentId) assert.Equal(t, expectedMySQLdExporter.AgentId, actualAgents[5].(*inventoryv1.MySQLdExporter).AgentId) assert.Equal(t, expectedMongoDBExporter.AgentId, actualAgents[6].(*inventoryv1.MongoDBExporter).AgentId) @@ -238,7 +278,7 @@ func TestAgents(t *testing.T) { }) t.Run("FilterByServiceID", func(t *testing.T) { - actualAgents, err = as.List(ctx, models.AgentFilters{ServiceID: s.ServiceId}) + actualAgents, err := as.List(ctx, models.AgentFilters{ServiceID: ms.ServiceId}) require.NoError(t, err) require.Len(t, actualAgents, 2) assert.Equal(t, expectedMySQLdExporter, actualAgents[0]) @@ -246,7 +286,7 @@ func TestAgents(t *testing.T) { }) t.Run("FilterByPMMAgent", func(t *testing.T) { - actualAgents, err = as.List(ctx, models.AgentFilters{PMMAgentID: pmmAgent.AgentId}) + actualAgents, err := as.List(ctx, models.AgentFilters{PMMAgentID: pmmAgentID}) require.NoError(t, err) require.Len(t, actualAgents, 5) assert.Equal(t, expectedNodeExporter, actualAgents[0]) @@ -257,7 +297,7 @@ func TestAgents(t *testing.T) { }) t.Run("FilterByNode", func(t *testing.T) { - actualAgents, err = as.List(ctx, models.AgentFilters{NodeID: models.PMMServerNodeID}) + actualAgents, err := as.List(ctx, models.AgentFilters{NodeID: models.PMMServerNodeID}) require.NoError(t, err) require.Len(t, actualAgents, 2) assert.Equal(t, expectedNodeExporter, actualAgents[1]) @@ -265,33 +305,35 @@ func TestAgents(t *testing.T) { t.Run("FilterByAgentType", func(t *testing.T) { agentType := models.ExternalExporterType - actualAgents, err = as.List(ctx, models.AgentFilters{AgentType: &agentType}) + actualAgents, err := as.List(ctx, models.AgentFilters{AgentType: &agentType}) require.NoError(t, err) require.Len(t, actualAgents, 1) assert.Equal(t, expectedExternalExporter, actualAgents[0]) }) t.Run("FilterByMultipleFields", func(t *testing.T) { - actualAgents, err = as.List(ctx, models.AgentFilters{PMMAgentID: pmmAgent.AgentId, NodeID: models.PMMServerNodeID}) + actualAgents, err := as.List(ctx, models.AgentFilters{PMMAgentID: pmmAgentID, NodeID: models.PMMServerNodeID}) tests.AssertGRPCError(t, status.New(codes.InvalidArgument, `expected at most one param: pmm_agent_id, node_id or service_id`), err) assert.Nil(t, actualAgents) }) - as.r.(*mockAgentsRegistry).On("Kick", ctx, "/agent_id/00000000-0000-4000-8000-000000000005").Return(true) - err = as.Remove(ctx, "/agent_id/00000000-0000-4000-8000-000000000005", true) - require.NoError(t, err) - actualAgent, err = as.Get(ctx, "/agent_id/00000000-0000-4000-8000-000000000005") - tests.AssertGRPCError(t, status.New(codes.NotFound, `Agent with ID "/agent_id/00000000-0000-4000-8000-000000000005" not found.`), err) - assert.Nil(t, actualAgent) + t.Run("RemovePMMAgent", func(t *testing.T) { + as.r.(*mockAgentsRegistry).On("Kick", ctx, "/agent_id/00000000-0000-4000-8000-000000000005").Return(true) + err := as.Remove(ctx, "/agent_id/00000000-0000-4000-8000-000000000005", true) + require.NoError(t, err) + actualAgent, err := as.Get(ctx, "/agent_id/00000000-0000-4000-8000-000000000005") + tests.AssertGRPCError(t, status.New(codes.NotFound, `Agent with ID "/agent_id/00000000-0000-4000-8000-000000000005" not found.`), err) + assert.Nil(t, actualAgent) - actualAgents, err = as.List(ctx, models.AgentFilters{}) - require.NoError(t, err) - require.Len(t, actualAgents, 5) // PMM Server's pmm-agent, node_exporter, postgres_exporter, PostgreSQL QAN, External exporter + actualAgents, err = as.List(ctx, models.AgentFilters{}) + require.NoError(t, err) + require.Len(t, actualAgents, 5) // PMM Server's pmm-agent, node_exporter, postgres_exporter, PostgreSQL QAN, External exporter + }) }) t.Run("GetEmptyID", func(t *testing.T) { _, as, _, teardown, ctx, _ := setup(t) - defer teardown(t) + t.Cleanup(func() { teardown(t) }) actualNode, err := as.Get(ctx, "") tests.AssertGRPCError(t, status.New(codes.InvalidArgument, `Empty Agent ID.`), err) @@ -300,7 +342,7 @@ func TestAgents(t *testing.T) { t.Run("AddPMMAgent", func(t *testing.T) { _, as, _, teardown, ctx, _ := setup(t) - defer teardown(t) + t.Cleanup(func() { teardown(t) }) as.r.(*mockAgentsRegistry).On("IsConnected", "/agent_id/00000000-0000-4000-8000-000000000005").Return(false) actualAgent, err := as.AddPMMAgent(ctx, &inventoryv1.AddPMMAgentParams{ @@ -329,7 +371,7 @@ func TestAgents(t *testing.T) { t.Run("AddPmmAgentNotFound", func(t *testing.T) { _, as, _, teardown, ctx, _ := setup(t) - defer teardown(t) + t.Cleanup(func() { teardown(t) }) _, err := as.AddNodeExporter(ctx, &inventoryv1.AddNodeExporterParams{ PmmAgentId: "no-such-id", @@ -339,7 +381,7 @@ func TestAgents(t *testing.T) { t.Run("AddRDSExporter", func(t *testing.T) { _, as, ns, teardown, ctx, _ := setup(t) - defer teardown(t) + t.Cleanup(func() { teardown(t) }) node, err := ns.AddRemoteRDSNode(ctx, &inventoryv1.AddRemoteRDSNodeParams{ NodeName: "rds1", @@ -384,7 +426,7 @@ func TestAgents(t *testing.T) { t.Run("AddExternalExporter", func(t *testing.T) { ss, as, _, teardown, ctx, _ := setup(t) - defer teardown(t) + t.Cleanup(func() { teardown(t) }) as.vmdb.(*mockPrometheusService).On("RequestConfigurationUpdate").Return() @@ -421,7 +463,7 @@ func TestAgents(t *testing.T) { t.Run("AddServiceNotFound", func(t *testing.T) { _, as, _, teardown, ctx, _ := setup(t) - defer teardown(t) + t.Cleanup(func() { teardown(t) }) as.r.(*mockAgentsRegistry).On("IsConnected", "/agent_id/00000000-0000-4000-8000-000000000005").Return(true) pmmAgent, err := as.AddPMMAgent(ctx, &inventoryv1.AddPMMAgentParams{ @@ -438,14 +480,15 @@ func TestAgents(t *testing.T) { t.Run("RemoveNotFound", func(t *testing.T) { _, as, _, teardown, ctx, _ := setup(t) - defer teardown(t) + t.Cleanup(func() { teardown(t) }) err := as.Remove(ctx, "no-such-id", false) tests.AssertGRPCError(t, status.New(codes.NotFound, `Agent with ID "no-such-id" not found.`), err) }) + t.Run("PushMetricsMongodbExporter", func(t *testing.T) { ss, as, _, teardown, ctx, _ := setup(t) - defer teardown(t) + t.Cleanup(func() { teardown(t) }) as.r.(*mockAgentsRegistry).On("IsConnected", models.PMMServerAgentID).Return(true) actualAgents, err := as.List(ctx, models.AgentFilters{}) @@ -497,9 +540,10 @@ func TestAgents(t *testing.T) { } assert.Equal(t, expectedMongoDBExporter, actualAgent) }) + t.Run("PushMetricsNodeExporter", func(t *testing.T) { _, as, _, teardown, ctx, _ := setup(t) - defer teardown(t) + t.Cleanup(func() { teardown(t) }) as.r.(*mockAgentsRegistry).On("IsConnected", models.PMMServerAgentID).Return(true) actualAgents, err := as.List(ctx, models.AgentFilters{}) @@ -533,9 +577,10 @@ func TestAgents(t *testing.T) { } assert.Equal(t, expectedNodeExporter, actualNodeExporter) }) + t.Run("PushMetricsPostgresSQLExporter", func(t *testing.T) { ss, as, _, teardown, ctx, _ := setup(t) - defer teardown(t) + t.Cleanup(func() { teardown(t) }) as.r.(*mockAgentsRegistry).On("IsConnected", models.PMMServerAgentID).Return(true) actualAgents, err := as.List(ctx, models.AgentFilters{}) @@ -588,9 +633,10 @@ func TestAgents(t *testing.T) { } assert.Equal(t, expectedPostgresExporter, actualAgent) }) + t.Run("PushMetricsMySQLExporter", func(t *testing.T) { ss, as, _, teardown, ctx, _ := setup(t) - defer teardown(t) + t.Cleanup(func() { teardown(t) }) as.r.(*mockAgentsRegistry).On("IsConnected", models.PMMServerAgentID).Return(true) actualAgents, err := as.List(ctx, models.AgentFilters{}) @@ -645,9 +691,10 @@ func TestAgents(t *testing.T) { } assert.Equal(t, expectedMySQLdExporter, actualAgent) }) + t.Run("PushMetricsRdsExporter", func(t *testing.T) { _, as, ns, teardown, ctx, _ := setup(t) - defer teardown(t) + t.Cleanup(func() { teardown(t) }) node, err := ns.AddRemoteRDSNode(ctx, &inventoryv1.AddRemoteRDSNodeParams{ NodeName: "rds1", @@ -691,9 +738,10 @@ func TestAgents(t *testing.T) { } assert.Equal(t, expectedAgent, agent) }) + t.Run("PushMetricsExternalExporter", func(t *testing.T) { ss, as, _, teardown, ctx, _ := setup(t) - defer teardown(t) + t.Cleanup(func() { teardown(t) }) as.state.(*mockAgentsStateUpdater).On("RequestStateUpdate", ctx, "pmm-server") service, err := ss.AddExternalService(ctx, &models.AddDBMSServiceParams{ From 75ed7e3b2b128041c9060a57af6910459e3c91b2 Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Thu, 1 Feb 2024 20:07:38 +0000 Subject: [PATCH 21/29] PMM-12811 fix Advisor params --- api-tests/server/settings_test.go | 84 +++++++++++++------------- managed/services/server/server_test.go | 4 +- 2 files changed, 44 insertions(+), 44 deletions(-) diff --git a/api-tests/server/settings_test.go b/api-tests/server/settings_test.go index 52953a5eb5..dbf17b5ada 100644 --- a/api-tests/server/settings_test.go +++ b/api-tests/server/settings_test.go @@ -39,7 +39,7 @@ func TestSettings(t *testing.T) { res, err := serverClient.Default.ServerService.GetSettings(nil) require.NoError(t, err) assert.True(t, res.Payload.Settings.TelemetryEnabled) - assert.True(t, res.Payload.Settings.SttEnabled) + assert.True(t, res.Payload.Settings.AdvisorEnabled) expected := &server.GetSettingsOKBodySettingsMetricsResolutions{ Hr: "5s", Mr: "10s", @@ -109,19 +109,19 @@ func TestSettings(t *testing.T) { res, err := serverClient.Default.ServerService.ChangeSettings(&server.ChangeSettingsParams{ Body: server.ChangeSettingsBody{ - EnableStt: pointer.ToBool(true), + EnableAdvisor: pointer.ToBool(true), EnableTelemetry: pointer.ToBool(true), }, Context: pmmapitests.Context, }) require.NoError(t, err) - assert.True(t, res.Payload.Settings.SttEnabled) + assert.True(t, res.Payload.Settings.AdvisorEnabled) assert.True(t, res.Payload.Settings.TelemetryEnabled) resg, err := serverClient.Default.ServerService.GetSettings(nil) require.NoError(t, err) assert.True(t, resg.Payload.Settings.TelemetryEnabled) - assert.True(t, resg.Payload.Settings.SttEnabled) + assert.True(t, resg.Payload.Settings.AdvisorEnabled) }) t.Run("EnableAdvisorsAndDisableTelemetry", func(t *testing.T) { @@ -129,13 +129,13 @@ func TestSettings(t *testing.T) { res, err := serverClient.Default.ServerService.ChangeSettings(&server.ChangeSettingsParams{ Body: server.ChangeSettingsBody{ - EnableStt: pointer.ToBool(true), + EnableAdvisor: pointer.ToBool(true), EnableTelemetry: pointer.ToBool(false), }, Context: pmmapitests.Context, }) require.NoError(t, err) - assert.True(t, res.Payload.Settings.SttEnabled) + assert.True(t, res.Payload.Settings.AdvisorEnabled) assert.False(t, res.Payload.Settings.TelemetryEnabled) }) @@ -144,19 +144,19 @@ func TestSettings(t *testing.T) { res, err := serverClient.Default.ServerService.ChangeSettings(&server.ChangeSettingsParams{ Body: server.ChangeSettingsBody{ - EnableStt: pointer.ToBool(false), + EnableAdvisor: pointer.ToBool(false), EnableTelemetry: pointer.ToBool(true), }, Context: pmmapitests.Context, }) require.NoError(t, err) - assert.False(t, res.Payload.Settings.SttEnabled) + assert.False(t, res.Payload.Settings.AdvisorEnabled) assert.True(t, res.Payload.Settings.TelemetryEnabled) resg, err := serverClient.Default.ServerService.GetSettings(nil) require.NoError(t, err) assert.True(t, resg.Payload.Settings.TelemetryEnabled) - assert.False(t, resg.Payload.Settings.SttEnabled) + assert.False(t, resg.Payload.Settings.AdvisorEnabled) }) t.Run("DisableAdvisorsAndDisableTelemetry", func(t *testing.T) { @@ -164,19 +164,19 @@ func TestSettings(t *testing.T) { res, err := serverClient.Default.ServerService.ChangeSettings(&server.ChangeSettingsParams{ Body: server.ChangeSettingsBody{ - EnableStt: pointer.ToBool(false), + EnableAdvisor: pointer.ToBool(false), EnableTelemetry: pointer.ToBool(false), }, Context: pmmapitests.Context, }) require.NoError(t, err) - assert.False(t, res.Payload.Settings.SttEnabled) + assert.False(t, res.Payload.Settings.AdvisorEnabled) assert.False(t, res.Payload.Settings.TelemetryEnabled) resg, err := serverClient.Default.ServerService.GetSettings(nil) require.NoError(t, err) assert.False(t, resg.Payload.Settings.TelemetryEnabled) - assert.False(t, resg.Payload.Settings.SttEnabled) + assert.False(t, resg.Payload.Settings.AdvisorEnabled) }) t.Run("EnableAdvisorsWhileTelemetryEnabled", func(t *testing.T) { @@ -194,17 +194,17 @@ func TestSettings(t *testing.T) { res, err = serverClient.Default.ServerService.ChangeSettings(&server.ChangeSettingsParams{ Body: server.ChangeSettingsBody{ - EnableStt: pointer.ToBool(true), + EnableAdvisor: pointer.ToBool(true), }, Context: pmmapitests.Context, }) require.NoError(t, err) - assert.True(t, res.Payload.Settings.SttEnabled) + assert.True(t, res.Payload.Settings.AdvisorEnabled) resg, err := serverClient.Default.ServerService.GetSettings(nil) require.NoError(t, err) assert.True(t, resg.Payload.Settings.TelemetryEnabled) - assert.True(t, resg.Payload.Settings.SttEnabled) + assert.True(t, resg.Payload.Settings.AdvisorEnabled) }) t.Run("DisableAdvisorsWhileItIsDisabled", func(t *testing.T) { @@ -212,17 +212,17 @@ func TestSettings(t *testing.T) { res, err := serverClient.Default.ServerService.ChangeSettings(&server.ChangeSettingsParams{ Body: server.ChangeSettingsBody{ - EnableStt: pointer.ToBool(false), + EnableAdvisor: pointer.ToBool(false), }, Context: pmmapitests.Context, }) require.NoError(t, err) - assert.False(t, res.Payload.Settings.SttEnabled) + assert.False(t, res.Payload.Settings.AdvisorEnabled) resg, err := serverClient.Default.ServerService.GetSettings(nil) require.NoError(t, err) assert.True(t, resg.Payload.Settings.TelemetryEnabled) - assert.False(t, resg.Payload.Settings.SttEnabled) + assert.False(t, resg.Payload.Settings.AdvisorEnabled) }) t.Run("AdvisorsEnabledState", func(t *testing.T) { @@ -230,33 +230,33 @@ func TestSettings(t *testing.T) { res, err := serverClient.Default.ServerService.ChangeSettings(&server.ChangeSettingsParams{ Body: server.ChangeSettingsBody{ - EnableStt: pointer.ToBool(true), + EnableAdvisor: pointer.ToBool(true), }, Context: pmmapitests.Context, }) require.NoError(t, err) - assert.True(t, res.Payload.Settings.SttEnabled) + assert.True(t, res.Payload.Settings.AdvisorEnabled) resg, err := serverClient.Default.ServerService.GetSettings(nil) require.NoError(t, err) assert.True(t, resg.Payload.Settings.TelemetryEnabled) - assert.True(t, resg.Payload.Settings.SttEnabled) + assert.True(t, resg.Payload.Settings.AdvisorEnabled) t.Run("EnableAdvisorsWhileItIsEnabled", func(t *testing.T) { res, err := serverClient.Default.ServerService.ChangeSettings(&server.ChangeSettingsParams{ Body: server.ChangeSettingsBody{ - EnableStt: pointer.ToBool(true), + EnableAdvisor: pointer.ToBool(true), }, Context: pmmapitests.Context, }) require.NoError(t, err) - assert.True(t, res.Payload.Settings.SttEnabled) + assert.True(t, res.Payload.Settings.AdvisorEnabled) resg, err := serverClient.Default.ServerService.GetSettings(nil) require.NoError(t, err) assert.True(t, resg.Payload.Settings.TelemetryEnabled) - assert.True(t, resg.Payload.Settings.SttEnabled) + assert.True(t, resg.Payload.Settings.AdvisorEnabled) }) t.Run("DisableTelemetryWhileAdvisorsEnabled", func(t *testing.T) { @@ -267,7 +267,7 @@ func TestSettings(t *testing.T) { Context: pmmapitests.Context, }) require.NoError(t, err) - assert.True(t, res.Payload.Settings.SttEnabled) + assert.True(t, res.Payload.Settings.AdvisorEnabled) assert.False(t, res.Payload.Settings.TelemetryEnabled) }) }) @@ -288,24 +288,24 @@ func TestSettings(t *testing.T) { resg, err := serverClient.Default.ServerService.GetSettings(nil) require.NoError(t, err) assert.False(t, resg.Payload.Settings.TelemetryEnabled) - assert.True(t, resg.Payload.Settings.SttEnabled) + assert.True(t, resg.Payload.Settings.AdvisorEnabled) t.Run("EnableAdvisorsWhileTelemetryDisabled", func(t *testing.T) { defer restoreSettingsDefaults(t) res, err := serverClient.Default.ServerService.ChangeSettings(&server.ChangeSettingsParams{ Body: server.ChangeSettingsBody{ - EnableStt: pointer.ToBool(true), + EnableAdvisor: pointer.ToBool(true), }, Context: pmmapitests.Context, }) require.NoError(t, err) - assert.True(t, res.Payload.Settings.SttEnabled) + assert.True(t, res.Payload.Settings.AdvisorEnabled) assert.False(t, res.Payload.Settings.TelemetryEnabled) resg, err := serverClient.Default.ServerService.GetSettings(nil) require.NoError(t, err) - assert.True(t, resg.Payload.Settings.SttEnabled) + assert.True(t, resg.Payload.Settings.AdvisorEnabled) assert.False(t, resg.Payload.Settings.TelemetryEnabled) }) @@ -324,7 +324,7 @@ func TestSettings(t *testing.T) { resg, err := serverClient.Default.ServerService.GetSettings(nil) require.NoError(t, err) assert.True(t, resg.Payload.Settings.TelemetryEnabled) - assert.True(t, resg.Payload.Settings.SttEnabled) + assert.True(t, resg.Payload.Settings.AdvisorEnabled) }) }) @@ -410,7 +410,7 @@ func TestSettings(t *testing.T) { res, err := serverClient.Default.ServerService.ChangeSettings(&server.ChangeSettingsParams{ Body: server.ChangeSettingsBody{ - SttCheckIntervals: &server.ChangeSettingsParamsBodySttCheckIntervals{ + AdvisorRunIntervals: &server.ChangeSettingsParamsBodyAdvisorRunIntervals{ FrequentInterval: "1", }, }, @@ -426,7 +426,7 @@ func TestSettings(t *testing.T) { res, err := serverClient.Default.ServerService.ChangeSettings(&server.ChangeSettingsParams{ Body: server.ChangeSettingsBody{ - SttCheckIntervals: &server.ChangeSettingsParamsBodySttCheckIntervals{ + AdvisorRunIntervals: &server.ChangeSettingsParamsBodyAdvisorRunIntervals{ StandardInterval: "0.9s", }, }, @@ -442,7 +442,7 @@ func TestSettings(t *testing.T) { res, err := serverClient.Default.ServerService.ChangeSettings(&server.ChangeSettingsParams{ Body: server.ChangeSettingsBody{ - SttCheckIntervals: &server.ChangeSettingsParamsBodySttCheckIntervals{ + AdvisorRunIntervals: &server.ChangeSettingsParamsBodyAdvisorRunIntervals{ RareInterval: "1.5s", }, }, @@ -601,7 +601,7 @@ func TestSettings(t *testing.T) { res, err := serverClient.Default.ServerService.ChangeSettings(&server.ChangeSettingsParams{ Body: server.ChangeSettingsBody{ - SttCheckIntervals: &server.ChangeSettingsParamsBodySttCheckIntervals{ + AdvisorRunIntervals: &server.ChangeSettingsParamsBodyAdvisorRunIntervals{ RareInterval: "28800s", // 8 hours StandardInterval: "1800s", // 30 minutes FrequentInterval: "20s", @@ -610,21 +610,21 @@ func TestSettings(t *testing.T) { Context: pmmapitests.Context, }) require.NoError(t, err) - expected := &server.ChangeSettingsOKBodySettingsSttCheckIntervals{ + expected := &server.ChangeSettingsOKBodySettingsAdvisorRunIntervals{ RareInterval: "28800s", StandardInterval: "1800s", FrequentInterval: "20s", } - assert.Equal(t, expected, res.Payload.Settings.SttCheckIntervals) + assert.Equal(t, expected, res.Payload.Settings.AdvisorRunIntervals) getRes, err := serverClient.Default.ServerService.GetSettings(nil) require.NoError(t, err) - getExpected := &server.GetSettingsOKBodySettingsSttCheckIntervals{ + getExpected := &server.ChangeSettingsOKBodySettingsAdvisorRunIntervals{ RareInterval: "28800s", StandardInterval: "1800s", FrequentInterval: "20s", } - assert.Equal(t, getExpected, getRes.Payload.Settings.SttCheckIntervals) + assert.Equal(t, getExpected, getRes.Payload.Settings.AdvisorRunIntervals) t.Run("DefaultsAreNotRestored", func(t *testing.T) { defer restoreSettingsDefaults(t) @@ -634,22 +634,22 @@ func TestSettings(t *testing.T) { Context: pmmapitests.Context, }) require.NoError(t, err) - expected := &server.ChangeSettingsOKBodySettingsSttCheckIntervals{ + expected := &server.ChangeSettingsOKBodySettingsAdvisorRunIntervals{ RareInterval: "28800s", StandardInterval: "1800s", FrequentInterval: "20s", } - assert.Equal(t, expected, res.Payload.Settings.SttCheckIntervals) + assert.Equal(t, expected, res.Payload.Settings.AdvisorRunIntervals) // Check if the values were persisted getRes, err := serverClient.Default.ServerService.GetSettings(nil) require.NoError(t, err) - getExpected := &server.GetSettingsOKBodySettingsSttCheckIntervals{ + getExpected := &server.ChangeSettingsOKBodySettingsAdvisorRunIntervals{ RareInterval: "28800s", StandardInterval: "1800s", FrequentInterval: "20s", } - assert.Equal(t, getExpected, getRes.Payload.Settings.SttCheckIntervals) + assert.Equal(t, getExpected, getRes.Payload.Settings.AdvisorRunIntervals) }) }) diff --git a/managed/services/server/server_test.go b/managed/services/server/server_test.go index da85f5f791..56a1812edd 100644 --- a/managed/services/server/server_test.go +++ b/managed/services/server/server_test.go @@ -213,10 +213,10 @@ func TestServer(t *testing.T) { })) assert.NoError(t, s.validateChangeSettingsRequest(ctx, &serverv1.ChangeSettingsRequest{ - EnableStt: pointer.ToBool(false), + EnableAdvisor: pointer.ToBool(false), })) assert.NoError(t, s.validateChangeSettingsRequest(ctx, &serverv1.ChangeSettingsRequest{ - EnableStt: pointer.ToBool(true), + EnableAdvisor: pointer.ToBool(true), })) }) From 8ecef170e745b1656a203c2039d387a2e3300682 Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Thu, 1 Feb 2024 20:08:28 +0000 Subject: [PATCH 22/29] PMM-12811 get rid of remove_custom_labels field --- .../agents_azure_database_exporter_test.go | 4 +- .../agents_external_exporter_test.go | 4 +- .../inventory/agents_mongodb_exporter_test.go | 4 +- .../inventory/agents_mysqld_exporter_test.go | 4 +- .../inventory/agents_node_exporter_test.go | 4 +- .../agents_postgres_exporter_test.go | 4 +- .../agents_proxysql_exporter_test.go | 4 +- .../inventory/agents_rds_exporter_test.go | 4 +- api-tests/inventory/agents_test.go | 21 +- api/inventory/v1/agents.pb.go | 2504 ++++++++--------- api/inventory/v1/agents.pb.validate.go | 2 - api/inventory/v1/agents.proto | 4 +- .../agents_service/change_agent_responses.go | 39 - api/inventory/v1/json/v1.json | 65 - api/swagger/swagger-dev.json | 91 +- descriptor.bin | Bin 680955 -> 680803 bytes managed/services/inventory/agents_test.go | 1 - 17 files changed, 1286 insertions(+), 1473 deletions(-) diff --git a/api-tests/inventory/agents_azure_database_exporter_test.go b/api-tests/inventory/agents_azure_database_exporter_test.go index ffaee333d3..ee881fec87 100644 --- a/api-tests/inventory/agents_azure_database_exporter_test.go +++ b/api-tests/inventory/agents_azure_database_exporter_test.go @@ -88,8 +88,8 @@ func TestAzureDatabaseExporter(t *testing.T) { //nolint:tparallel AzureDatabaseExporter: &agents.ChangeAgentParamsBodyAzureDatabaseExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyAzureDatabaseExporterCommon{ - Enable: pointer.ToBool(false), - RemoveCustomLabels: true, + Enable: pointer.ToBool(false), + CustomLabels: &agents.ChangeAgentParamsBodyAzureDatabaseExporterCommonCustomLabels{}, }, }, }, diff --git a/api-tests/inventory/agents_external_exporter_test.go b/api-tests/inventory/agents_external_exporter_test.go index 06e17650a9..0d3cee6df0 100644 --- a/api-tests/inventory/agents_external_exporter_test.go +++ b/api-tests/inventory/agents_external_exporter_test.go @@ -146,8 +146,8 @@ func TestExternalExporter(t *testing.T) { ExternalExporter: &agents.ChangeAgentParamsBodyExternalExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyExternalExporterCommon{ - Enable: pointer.ToBool(false), - RemoveCustomLabels: true, + Enable: pointer.ToBool(false), + CustomLabels: &agents.ChangeAgentParamsBodyExternalExporterCommonCustomLabels{}, }, }, }, diff --git a/api-tests/inventory/agents_mongodb_exporter_test.go b/api-tests/inventory/agents_mongodb_exporter_test.go index edc912d7a5..82832d1ce3 100644 --- a/api-tests/inventory/agents_mongodb_exporter_test.go +++ b/api-tests/inventory/agents_mongodb_exporter_test.go @@ -103,8 +103,8 @@ func TestMongoDBExporter(t *testing.T) { MongodbExporter: &agents.ChangeAgentParamsBodyMongodbExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyMongodbExporterCommon{ - Enable: pointer.ToBool(false), - RemoveCustomLabels: true, + Enable: pointer.ToBool(false), + CustomLabels: &agents.ChangeAgentParamsBodyMongodbExporterCommonCustomLabels{}, }, }, }, diff --git a/api-tests/inventory/agents_mysqld_exporter_test.go b/api-tests/inventory/agents_mysqld_exporter_test.go index 54007a0e8b..0f73c7222d 100644 --- a/api-tests/inventory/agents_mysqld_exporter_test.go +++ b/api-tests/inventory/agents_mysqld_exporter_test.go @@ -104,8 +104,8 @@ func TestMySQLdExporter(t *testing.T) { MysqldExporter: &agents.ChangeAgentParamsBodyMysqldExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyMysqldExporterCommon{ - Enable: pointer.ToBool(false), - RemoveCustomLabels: true, + Enable: pointer.ToBool(false), + CustomLabels: &agents.ChangeAgentParamsBodyMysqldExporterCommonCustomLabels{}, }, }, }, diff --git a/api-tests/inventory/agents_node_exporter_test.go b/api-tests/inventory/agents_node_exporter_test.go index c32b6046ef..5df7c9a8d5 100644 --- a/api-tests/inventory/agents_node_exporter_test.go +++ b/api-tests/inventory/agents_node_exporter_test.go @@ -75,8 +75,8 @@ func TestNodeExporter(t *testing.T) { NodeExporter: &agents.ChangeAgentParamsBodyNodeExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyNodeExporterCommon{ - Enable: pointer.ToBool(false), - RemoveCustomLabels: true, + Enable: pointer.ToBool(false), + CustomLabels: &agents.ChangeAgentParamsBodyNodeExporterCommonCustomLabels{}, }, }, }, diff --git a/api-tests/inventory/agents_postgres_exporter_test.go b/api-tests/inventory/agents_postgres_exporter_test.go index 129d690b6b..4885bcdbc1 100644 --- a/api-tests/inventory/agents_postgres_exporter_test.go +++ b/api-tests/inventory/agents_postgres_exporter_test.go @@ -102,8 +102,8 @@ func TestPostgresExporter(t *testing.T) { PostgresExporter: &agents.ChangeAgentParamsBodyPostgresExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyPostgresExporterCommon{ - Enable: pointer.ToBool(false), - RemoveCustomLabels: true, + Enable: pointer.ToBool(false), + CustomLabels: &agents.ChangeAgentParamsBodyPostgresExporterCommonCustomLabels{}, }, }, }, diff --git a/api-tests/inventory/agents_proxysql_exporter_test.go b/api-tests/inventory/agents_proxysql_exporter_test.go index 2a210ffe80..c06fc7b0ab 100644 --- a/api-tests/inventory/agents_proxysql_exporter_test.go +++ b/api-tests/inventory/agents_proxysql_exporter_test.go @@ -102,8 +102,8 @@ func TestProxySQLExporter(t *testing.T) { ProxysqlExporter: &agents.ChangeAgentParamsBodyProxysqlExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyProxysqlExporterCommon{ - Enable: pointer.ToBool(false), - RemoveCustomLabels: true, + Enable: pointer.ToBool(false), + CustomLabels: &agents.ChangeAgentParamsBodyProxysqlExporterCommonCustomLabels{}, }, }, }, diff --git a/api-tests/inventory/agents_rds_exporter_test.go b/api-tests/inventory/agents_rds_exporter_test.go index 82c3213720..20817b2794 100644 --- a/api-tests/inventory/agents_rds_exporter_test.go +++ b/api-tests/inventory/agents_rds_exporter_test.go @@ -88,8 +88,8 @@ func TestRDSExporter(t *testing.T) { RDSExporter: &agents.ChangeAgentParamsBodyRDSExporter{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyRDSExporterCommon{ - Enable: pointer.ToBool(false), - RemoveCustomLabels: true, + Enable: pointer.ToBool(false), + CustomLabels: &agents.ChangeAgentParamsBodyRDSExporterCommonCustomLabels{}, }, }, }, diff --git a/api-tests/inventory/agents_test.go b/api-tests/inventory/agents_test.go index f058607f59..9eb4d66f9a 100644 --- a/api-tests/inventory/agents_test.go +++ b/api-tests/inventory/agents_test.go @@ -65,11 +65,10 @@ func TestAgents(t *testing.T) { mySqldExporter := addAgent(t, agents.AddAgentBody{ MysqldExporter: &agents.AddAgentParamsBodyMysqldExporter{ - ServiceID: serviceID, - Username: "username", - Password: "password", - PMMAgentID: pmmAgentID, - + ServiceID: serviceID, + Username: "username", + Password: "password", + PMMAgentID: pmmAgentID, SkipConnectionCheck: true, }, }) @@ -560,8 +559,8 @@ func TestQanAgentExporter(t *testing.T) { QANMysqlPerfschemaAgent: &agents.ChangeAgentParamsBodyQANMysqlPerfschemaAgent{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon{ - Enable: pointer.ToBool(false), - RemoveCustomLabels: true, + Enable: pointer.ToBool(false), + CustomLabels: &agents.ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommonCustomLabels{}, }, }, }, @@ -823,8 +822,8 @@ func TestPGStatStatementsQanAgent(t *testing.T) { QANPostgresqlPgstatementsAgent: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon{ - Enable: pointer.ToBool(false), - RemoveCustomLabels: true, + Enable: pointer.ToBool(false), + CustomLabels: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommonCustomLabels{}, }, }, }, @@ -1086,8 +1085,8 @@ func TestPGStatMonitorQanAgent(t *testing.T) { QANPostgresqlPgstatmonitorAgent: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent{ AgentID: agentID, Common: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon{ - Enable: pointer.ToBool(false), - RemoveCustomLabels: true, + Enable: pointer.ToBool(false), + CustomLabels: &agents.ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommonCustomLabels{}, }, }, }, diff --git a/api/inventory/v1/agents.pb.go b/api/inventory/v1/agents.pb.go index 49708baa8e..44f0515de4 100644 --- a/api/inventory/v1/agents.pb.go +++ b/api/inventory/v1/agents.pb.go @@ -2539,10 +2539,8 @@ type ChangeCommonAgentParams struct { Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` // Replace all custom user-assigned labels. CustomLabels *common.StringMap `protobuf:"bytes,2,opt,name=custom_labels,json=customLabels,proto3,oneof" json:"custom_labels,omitempty"` - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `protobuf:"varint,3,opt,name=remove_custom_labels,json=removeCustomLabels,proto3" json:"remove_custom_labels,omitempty"` // Enables push metrics with vmagent. - EnablePushMetrics *bool `protobuf:"varint,4,opt,name=enable_push_metrics,json=enablePushMetrics,proto3,oneof" json:"enable_push_metrics,omitempty"` + EnablePushMetrics *bool `protobuf:"varint,3,opt,name=enable_push_metrics,json=enablePushMetrics,proto3,oneof" json:"enable_push_metrics,omitempty"` } func (x *ChangeCommonAgentParams) Reset() { @@ -2591,13 +2589,6 @@ func (x *ChangeCommonAgentParams) GetCustomLabels() *common.StringMap { return nil } -func (x *ChangeCommonAgentParams) GetRemoveCustomLabels() bool { - if x != nil { - return x.RemoveCustomLabels - } - return false -} - func (x *ChangeCommonAgentParams) GetEnablePushMetrics() bool { if x != nil && x.EnablePushMetrics != nil { return *x.EnablePushMetrics @@ -7869,583 +7860,709 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 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, 0x8f, 0x02, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xdd, 0x01, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x70, 0x48, 0x01, 0x52, 0x0c, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x14, - 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x72, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x33, - 0x0a, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x11, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x10, - 0x0a, 0x0e, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x75, 0x73, 0x68, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xa5, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, - 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, - 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x0a, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x22, 0xe7, 0x09, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x08, - 0x76, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x4d, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x76, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x3f, + 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x11, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x42, 0x16, + 0x0a, 0x14, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xa5, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0c, + 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, + 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x0a, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x09, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0xe7, + 0x09, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x08, 0x76, 0x6d, + 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x4d, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x52, 0x07, 0x76, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x0d, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, + 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x45, 0x0a, + 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, + 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x0f, 0x6d, + 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4b, + 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, + 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x11, 0x70, + 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x62, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, + 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, + 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, + 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x59, 0x0a, 0x17, + 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, + 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, + 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, + 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, + 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, + 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x77, 0x0a, 0x21, 0x71, + 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7a, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, + 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, + 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, + 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, + 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, + 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x12, 0x4b, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x12, 0x3c, 0x0a, + 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0e, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x0b, + 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x5b, 0x0a, 0x17, 0x61, + 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x22, 0x35, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, + 0x8b, 0x0a, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, + 0x00, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x07, 0x76, + 0x6d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x4d, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x07, 0x76, 0x6d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, - 0x45, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, - 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, - 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x12, 0x4b, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, - 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x10, 0x70, 0x6f, 0x73, - 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4b, 0x0a, - 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, - 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x62, 0x0a, 0x1a, 0x71, 0x61, - 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, - 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, - 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x59, - 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, - 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, - 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, - 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x1a, 0x71, 0x61, 0x6e, - 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, - 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x77, 0x0a, + 0x72, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x12, 0x47, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, + 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x6d, 0x6f, + 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, + 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, + 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, + 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, + 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, + 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x71, 0x61, + 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, + 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, + 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, + 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, + 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, + 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, 0x21, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, - 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7a, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, - 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, - 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, - 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, - 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x12, - 0x3c, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, - 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x5b, 0x0a, - 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, - 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, - 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x22, 0x35, 0x0a, 0x0f, 0x47, 0x65, - 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, - 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x22, 0x8b, 0x0a, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, - 0x07, 0x76, 0x6d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x4d, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x07, 0x76, 0x6d, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, + 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, + 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, + 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, + 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, + 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, + 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x5d, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x61, + 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0x4f, 0x0a, + 0x13, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x6a, + 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x3e, 0x0a, 0x1c, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, + 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x18, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x6f, 0x67, + 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xd7, 0x0a, 0x0a, 0x0f, 0x41, + 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, + 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x64, 0x64, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x4a, + 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, + 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x0f, 0x6d, 0x79, + 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, + 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x10, + 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, + 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x12, 0x56, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, + 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x11, 0x70, 0x72, 0x6f, + 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, + 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x12, 0x56, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0c, 0x72, 0x64, 0x73, + 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x64, 0x64, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x12, 0x66, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x6d, 0x0a, 0x1a, 0x71, 0x61, + 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, + 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, + 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x17, 0x71, 0x61, 0x6e, + 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, + 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, + 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, + 0x6d, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, + 0x62, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x82, + 0x01, 0x0a, 0x21, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, + 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, + 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, + 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x12, 0x85, 0x01, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, + 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, + 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x36, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, + 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, + 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, + 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x22, 0xf9, 0x09, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x70, 0x6d, 0x6d, + 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, - 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, + 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, - 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, + 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, - 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, - 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, - 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, - 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, - 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, - 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, - 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, - 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, - 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, - 0x64, 0x62, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, - 0x79, 0x0a, 0x21, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, - 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, - 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, - 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, - 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, - 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, - 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, - 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x5d, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, - 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, - 0x4f, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x22, 0x6a, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x3e, 0x0a, 0x1c, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6c, 0x6f, 0x67, - 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x18, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, - 0x6f, 0x67, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xd7, 0x0a, 0x0a, - 0x0f, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x3e, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x12, 0x4a, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0c, - 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x0f, - 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0e, - 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x53, - 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x5d, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x61, + 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, + 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, + 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, + 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x71, 0x61, + 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, + 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, + 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, + 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, + 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, + 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, + 0x21, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, + 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, + 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, + 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, + 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, + 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, + 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, + 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, + 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x22, 0xc1, 0x0a, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, + 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, + 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x10, 0x6d, + 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, - 0x64, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, - 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x11, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, - 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, - 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, - 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0c, 0x72, - 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x64, 0x64, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x12, 0x66, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x6d, 0x0a, 0x1a, - 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x17, 0x71, - 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, - 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, - 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, - 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x12, 0x6d, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, - 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, - 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, - 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x12, 0x82, 0x01, 0x0a, 0x21, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, - 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, - 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x85, 0x01, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, - 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, - 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, - 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, - 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, - 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xf9, 0x09, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x70, - 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, - 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, - 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, - 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, - 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, - 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, - 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, - 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x5d, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, - 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, - 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, - 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, - 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, - 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, - 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, - 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, - 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, - 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, - 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, - 0x64, 0x62, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, - 0x79, 0x0a, 0x21, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, - 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, + 0x74, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, + 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x59, + 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, + 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, + 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x11, 0x65, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x12, 0x69, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x70, 0x0a, 0x1a, 0x71, + 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x31, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, + 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, + 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x67, 0x0a, + 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, + 0x6f, 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, + 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, + 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, + 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x70, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, + 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, + 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x85, 0x01, 0x0a, 0x21, 0x71, 0x61, 0x6e, + 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, - 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, - 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, - 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, - 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, - 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x22, 0xc1, 0x0a, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, - 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x6d, - 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, - 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x6f, 0x6e, - 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, - 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x12, 0x59, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, - 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x11, 0x65, - 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x12, 0x69, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x70, 0x0a, - 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, - 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, - 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, - 0x67, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, - 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, - 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, - 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x70, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, - 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, - 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, - 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x85, 0x01, 0x0a, 0x21, 0x71, - 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, - 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, - 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x12, 0x88, 0x01, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, - 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, - 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, - 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, - 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, - 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xc5, 0x09, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, - 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x12, 0x47, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, - 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x6d, 0x6f, - 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, - 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, - 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, - 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x12, 0x5d, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, - 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, - 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, - 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, - 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, - 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, - 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, - 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, - 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, - 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, 0x21, 0x71, - 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, - 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, - 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, - 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, - 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, - 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xdc, - 0x01, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x73, 0x4f, 0x6e, 0x4e, 0x6f, - 0x64, 0x65, 0x49, 0x64, 0x12, 0x56, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x4d, - 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, + 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, + 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, + 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x12, 0x88, 0x01, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, + 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, + 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, + 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, + 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x22, 0xc5, 0x09, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0d, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, + 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, + 0x47, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, + 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, + 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, + 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, + 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, + 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, + 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x12, 0x5d, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, + 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, + 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, + 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, + 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x14, 0x71, + 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, + 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, + 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, + 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, 0x21, 0x71, 0x61, 0x6e, + 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, + 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, + 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, + 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, + 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, + 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, + 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xdc, 0x01, 0x0a, + 0x11, 0x41, 0x64, 0x64, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, + 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x73, 0x4f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, + 0x49, 0x64, 0x12, 0x56, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x4d, 0x4d, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x8f, 0x03, 0x0a, 0x15, + 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x5a, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x3f, 0x0a, 0x11, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, + 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, + 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x33, + 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, + 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x8f, 0x03, - 0x0a, 0x15, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x5a, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7d, 0x0a, + 0x18, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, + 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x9d, 0x06, 0x0a, + 0x17, 0x41, 0x64, 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, + 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, + 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, + 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, + 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, + 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, + 0x79, 0x12, 0x3f, 0x0a, 0x1c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x12, 0x5c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x79, 0x53, 0x51, + 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 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, 0x0c, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0e, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, + 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x33, 0x0a, + 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, + 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x1a, 0x3f, 0x0a, 0x11, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, - 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, - 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, - 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, - 0x7d, 0x0a, 0x18, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x9d, - 0x06, 0x0a, 0x17, 0x41, 0x64, 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, + 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, 0x7f, 0x0a, 0x1a, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, + 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xe9, 0x07, + 0x0a, 0x18, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, + 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, + 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, + 0x2e, 0x0a, 0x13, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x6c, + 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, + 0x48, 0x0a, 0x21, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x74, 0x6c, 0x73, 0x43, + 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6c, + 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, + 0x5f, 0x63, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, + 0x12, 0x5d, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, + 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0b, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, + 0x6d, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, + 0x12, 0x37, 0x0a, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x16, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x61, + 0x74, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, + 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, + 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x80, 0x01, 0x0a, 0x1b, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, + 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x92, 0x06, 0x0a, + 0x19, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, @@ -8459,230 +8576,327 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, - 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, - 0x63, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, - 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, - 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, - 0x4b, 0x65, 0x79, 0x12, 0x3f, 0x0a, 0x1c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x73, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x73, 0x74, 0x61, 0x74, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x12, 0x5c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x79, - 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 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, 0x0c, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, - 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, - 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, - 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, - 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x7f, - 0x0a, 0x1a, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, - 0xe9, 0x07, 0x0a, 0x18, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, - 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, + 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x5e, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x64, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x08, 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, 0x12, 0x21, 0x0a, 0x0c, + 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, + 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x15, + 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, + 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, + 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x64, 0x69, + 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x12, 0x61, 0x75, 0x74, 0x6f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, + 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 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, 0x81, 0x01, 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x73, 0x74, + 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x95, 0x05, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, + 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, + 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, - 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, - 0x79, 0x12, 0x48, 0x0a, 0x21, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x74, 0x6c, - 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x46, - 0x69, 0x6c, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x74, - 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, - 0x43, 0x61, 0x12, 0x5d, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, - 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x79, 0x12, 0x5e, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x78, 0x79, + 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0b, 0x20, 0x01, 0x28, 0x08, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x08, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0d, + 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, - 0x69, 0x73, 0x6d, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, - 0x73, 0x6d, 0x12, 0x37, 0x0a, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x73, - 0x74, 0x61, 0x74, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x33, 0x0a, 0x09, - 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, - 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x80, 0x01, 0x0a, 0x1b, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x92, - 0x06, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, - 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, - 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, - 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, - 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, - 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, - 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x5e, 0x0a, 0x0d, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x08, 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, 0x12, 0x21, - 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, - 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, - 0x65, 0x72, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, - 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, - 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, 0x5f, - 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x61, 0x75, 0x74, 0x6f, 0x44, 0x69, 0x73, 0x63, 0x6f, - 0x76, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, - 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 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, 0x81, 0x01, 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, - 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, - 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x95, 0x05, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x50, - 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, - 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, - 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, - 0x69, 0x66, 0x79, 0x12, 0x5e, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, - 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 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, 0x08, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, - 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, - 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, - 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, - 0x81, 0x01, 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, - 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x33, + 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, + 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x81, 0x01, + 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, + 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x22, 0xe6, 0x05, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, + 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, + 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, + 0x72, 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, + 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, + 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, + 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, + 0x65, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, + 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, + 0x0d, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, + 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, + 0x73, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, + 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x88, 0x01, 0x0a, 0x23, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, + 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x93, 0x06, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, + 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, + 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, + 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, + 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, + 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, + 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, + 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, + 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x12, 0x6d, 0x61, 0x78, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x62, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, + 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0e, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, + 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, + 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x85, 0x01, 0x0a, 0x20, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, + 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x22, 0xe6, 0x05, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, - 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, + 0x6d, 0x6f, 0x6e, 0x22, 0xa7, 0x06, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x6f, + 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, + 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, + 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x2e, 0x0a, + 0x13, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x6c, 0x73, 0x43, + 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x48, 0x0a, + 0x21, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x50, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, + 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x28, + 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x65, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x40, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0c, 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, 0x12, 0x39, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x12, 0x37, + 0x0a, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x16, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x88, 0x01, + 0x0a, 0x23, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, + 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xbe, 0x05, 0x0a, 0x27, 0x41, 0x64, 0x64, + 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, + 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x12, 0x6c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, + 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 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, 0x08, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x28, + 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, + 0x63, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, + 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, + 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, + 0x4b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, + 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x8f, 0x01, 0x0a, 0x2a, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, + 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xf6, 0x05, 0x0a, 0x28, + 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, + 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, @@ -8696,531 +8910,305 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, - 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, - 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, - 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, - 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, - 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, - 0x73, 0x12, 0x65, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, - 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0d, 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, 0x12, 0x38, 0x0a, 0x18, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, - 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x88, 0x01, 0x0a, - 0x23, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, - 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, + 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x12, 0x34, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x6d, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, + 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, + 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0a, + 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, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, + 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, + 0x69, 0x6e, 0x67, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, + 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, + 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x33, + 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 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, 0x90, 0x01, 0x0a, 0x2b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, + 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, + 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, - 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x93, 0x06, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x51, - 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, - 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, - 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, - 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, - 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, - 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, - 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, - 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, - 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, - 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, - 0x65, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, - 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, - 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, - 0x65, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, - 0x67, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x46, 0x69, 0x6c, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x62, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, - 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0e, 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, 0x12, 0x38, 0x0a, - 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x85, 0x01, - 0x0a, 0x20, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, - 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xa7, 0x06, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, - 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, - 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, - 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, - 0x2e, 0x0a, 0x13, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x6c, - 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, - 0x48, 0x0a, 0x21, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x74, 0x6c, 0x73, 0x43, - 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6c, - 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, - 0x5f, 0x63, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, - 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x65, 0x0a, 0x0d, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x40, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 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, 0x0c, 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, 0x12, 0x39, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, - 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, - 0x12, 0x37, 0x0a, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x16, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, - 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, + 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xc5, 0x04, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x52, + 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, + 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x77, 0x73, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x77, 0x73, + 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x59, 0x0a, 0x0d, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x34, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x64, 0x64, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 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, 0x06, 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, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x42, 0x61, 0x73, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x38, 0x0a, 0x18, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, + 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, + 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, + 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, - 0x88, 0x01, 0x0a, 0x23, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, - 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xbe, 0x05, 0x0a, 0x27, 0x41, - 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, - 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, - 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, - 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, - 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, - 0x72, 0x69, 0x66, 0x79, 0x12, 0x6c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, - 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 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, 0x08, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, - 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, - 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, - 0x73, 0x5f, 0x63, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, - 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, - 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, - 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x8f, 0x01, 0x0a, 0x2a, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, + 0x7c, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xf6, 0x05, - 0x0a, 0x28, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, - 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, - 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, - 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, - 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, - 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, - 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, - 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, - 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x6d, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x48, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, - 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0a, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, - 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, - 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, - 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, - 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x90, 0x01, 0x0a, 0x2b, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, - 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xc5, 0x04, 0x0a, 0x14, 0x41, 0x64, - 0x64, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, - 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, - 0x24, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x77, 0x73, 0x41, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, - 0x77, 0x73, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x59, 0x0a, 0x0d, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, - 0x06, 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, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x42, 0x61, 0x73, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x38, - 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, - 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x6c, - 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, - 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 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, 0x7c, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x44, 0x53, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, - 0xcf, 0x03, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, - 0x0f, 0x72, 0x75, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x0c, 0x72, 0x75, 0x6e, 0x73, 0x4f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, - 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, - 0x2c, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x2a, 0x06, 0x10, 0x80, 0x80, 0x04, 0x20, - 0x00, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x5e, 0x0a, - 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, - 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 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, 0x81, 0x01, 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xcf, 0x05, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xcf, 0x03, + 0x0a, 0x19, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x0f, 0x72, + 0x75, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x72, + 0x75, 0x6e, 0x73, 0x4f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2c, 0x0a, + 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0d, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x2a, 0x06, 0x10, 0x80, 0x80, 0x04, 0x20, 0x00, 0x52, + 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x5e, 0x0a, 0x0d, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, + 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 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, + 0x81, 0x01, 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x22, 0xcf, 0x05, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, 0x72, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x20, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x6e, 0x6f, 0x64, + 0x65, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x7a, + 0x75, 0x72, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x61, + 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x61, + 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x13, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x7a, 0x75, 0x72, 0x65, + 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x48, 0x0a, 0x1c, 0x61, 0x7a, 0x75, + 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x19, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x63, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x6e, - 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, - 0x13, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x26, 0x0a, - 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x54, 0x65, 0x6e, - 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x73, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x48, 0x0a, 0x1c, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x19, 0x61, 0x7a, 0x75, 0x72, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x63, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, - 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0a, 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, 0x12, 0x21, - 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, - 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x86, 0x01, 0x0a, 0x21, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, - 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, - 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, - 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0xc7, 0x04, 0x0a, 0x09, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x50, 0x4d, 0x4d, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x41, - 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4d, 0x5f, 0x41, 0x47, 0x45, - 0x4e, 0x54, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, - 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x44, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, - 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x4d, 0x4f, 0x4e, 0x47, 0x4f, 0x44, 0x42, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, - 0x52, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, - 0x54, 0x45, 0x52, 0x10, 0x06, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x45, 0x58, 0x50, - 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x07, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x47, 0x45, 0x4e, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, - 0x50, 0x45, 0x52, 0x46, 0x53, 0x43, 0x48, 0x45, 0x4d, 0x41, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, - 0x10, 0x08, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x53, 0x4c, 0x4f, 0x57, 0x4c, - 0x4f, 0x47, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x09, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x47, - 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x4f, 0x4e, - 0x47, 0x4f, 0x44, 0x42, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x52, 0x5f, 0x41, 0x47, - 0x45, 0x4e, 0x54, 0x10, 0x0a, 0x12, 0x30, 0x0a, 0x2c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, + 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0a, 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, 0x12, 0x21, 0x0a, 0x0c, + 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, + 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 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, 0x86, 0x01, 0x0a, 0x21, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x4e, + 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x15, + 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0xc7, 0x04, 0x0a, 0x09, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x18, 0x0a, 0x14, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4d, + 0x4d, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x47, 0x45, + 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4d, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, + 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x03, + 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, + 0x59, 0x53, 0x51, 0x4c, 0x44, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x04, + 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, + 0x4f, 0x4e, 0x47, 0x4f, 0x44, 0x42, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, + 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, + 0x52, 0x10, 0x06, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, + 0x54, 0x45, 0x52, 0x10, 0x07, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x50, 0x45, + 0x52, 0x46, 0x53, 0x43, 0x48, 0x45, 0x4d, 0x41, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x08, + 0x12, 0x26, 0x0a, 0x22, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, + 0x41, 0x4e, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x53, 0x4c, 0x4f, 0x57, 0x4c, 0x4f, 0x47, + 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x09, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x47, 0x45, 0x4e, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x4f, 0x4e, 0x47, 0x4f, + 0x44, 0x42, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x52, 0x5f, 0x41, 0x47, 0x45, 0x4e, + 0x54, 0x10, 0x0a, 0x12, 0x30, 0x0a, 0x2c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x51, 0x4c, + 0x5f, 0x50, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x47, + 0x45, 0x4e, 0x54, 0x10, 0x0b, 0x12, 0x31, 0x0a, 0x2d, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, - 0x51, 0x4c, 0x5f, 0x50, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x53, 0x5f, - 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x0b, 0x12, 0x31, 0x0a, 0x2d, 0x41, 0x47, 0x45, 0x4e, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, - 0x45, 0x53, 0x51, 0x4c, 0x5f, 0x50, 0x47, 0x53, 0x54, 0x41, 0x54, 0x4d, 0x4f, 0x4e, 0x49, 0x54, - 0x4f, 0x52, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x0c, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, - 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, - 0x4c, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0d, 0x12, 0x1b, 0x0a, 0x17, - 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x44, 0x53, 0x5f, 0x45, - 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0e, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x47, 0x45, - 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x5a, 0x55, 0x52, 0x45, 0x5f, 0x44, 0x41, - 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, - 0x0f, 0x32, 0xaf, 0x08, 0x0a, 0x0d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x12, 0xa4, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x73, 0x12, 0x1f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x53, 0x92, 0x41, 0x2c, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, - 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x1d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, - 0x20, 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, - 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x9b, 0x01, 0x0a, 0x08, 0x47, - 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0x92, 0x41, 0x2a, 0x12, 0x09, 0x47, 0x65, 0x74, - 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x1a, 0x1d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, - 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x62, - 0x79, 0x20, 0x49, 0x44, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, - 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x47, 0x65, 0x74, 0x12, 0xac, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x55, 0x92, 0x41, 0x2b, 0x12, 0x0e, 0x47, 0x65, 0x74, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x20, 0x6c, 0x6f, 0x67, 0x73, 0x1a, 0x19, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x6f, 0x67, 0x73, 0x20, 0x62, 0x79, 0x20, 0x49, 0x44, 0x2e, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, - 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0xa9, 0x01, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x5e, 0x92, 0x41, 0x38, 0x12, 0x19, 0x41, 0x64, 0x64, 0x20, 0x61, 0x6e, - 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x1a, 0x1b, 0x41, 0x64, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, - 0x41, 0x64, 0x64, 0x12, 0xbb, 0x01, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x51, 0x4c, 0x5f, 0x50, 0x47, 0x53, 0x54, 0x41, 0x54, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, + 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x0c, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, + 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0d, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x47, + 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x44, 0x53, 0x5f, 0x45, 0x58, 0x50, + 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0e, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x47, 0x45, 0x4e, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x5a, 0x55, 0x52, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, + 0x42, 0x41, 0x53, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0f, 0x32, + 0xaf, 0x08, 0x0a, 0x0d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0xa4, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x1f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x20, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x53, 0x92, 0x41, 0x2c, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x1d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, + 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, 0x2f, + 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x73, 0x2f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x9b, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0x92, 0x41, 0x2a, 0x12, 0x09, 0x47, 0x65, 0x74, 0x20, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x1a, 0x1d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, + 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x79, 0x20, + 0x49, 0x44, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, + 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x73, 0x2f, 0x47, 0x65, 0x74, 0x12, 0xac, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, + 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x55, + 0x92, 0x41, 0x2b, 0x12, 0x0e, 0x47, 0x65, 0x74, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x6c, + 0x6f, 0x67, 0x73, 0x1a, 0x19, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x20, 0x6c, 0x6f, 0x67, 0x73, 0x20, 0x62, 0x79, 0x20, 0x49, 0x44, 0x2e, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x47, 0x65, + 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0xa9, 0x01, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x5e, 0x92, 0x41, 0x38, 0x12, 0x19, 0x41, 0x64, 0x64, 0x20, 0x61, 0x6e, 0x20, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x1a, 0x1b, 0x41, 0x64, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x20, 0x74, 0x6f, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x41, 0x64, + 0x64, 0x12, 0xbb, 0x01, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x12, 0x20, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x92, 0x41, 0x3e, 0x12, 0x1c, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x69, - 0x6e, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x1e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x92, 0x41, 0x3e, 0x12, 0x1c, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, + 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x49, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, + 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, + 0xbf, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, + 0x20, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6b, 0x92, 0x41, 0x42, 0x12, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x12, 0xbf, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x12, 0x20, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6b, 0x92, 0x41, 0x42, 0x12, 0x1e, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, - 0x6d, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x20, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, - 0x6f, 0x6d, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x42, 0xa5, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x61, 0x2f, 0x70, 0x6d, 0x6d, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x76, 0x31, - 0x3b, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x49, - 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x56, - 0x31, 0xca, 0x02, 0x0c, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5c, 0x56, 0x31, - 0xe2, 0x02, 0x18, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5c, 0x56, 0x31, 0x5c, - 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x49, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x42, 0xa5, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x70, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x61, 0x2f, 0x70, 0x6d, 0x6d, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x3b, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x49, 0x58, 0x58, + 0xaa, 0x02, 0x0c, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x56, 0x31, 0xca, + 0x02, 0x0c, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5c, 0x56, 0x31, 0xe2, 0x02, + 0x18, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, + 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x49, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( diff --git a/api/inventory/v1/agents.pb.validate.go b/api/inventory/v1/agents.pb.validate.go index eb08c37b5c..5a50d1b52d 100644 --- a/api/inventory/v1/agents.pb.validate.go +++ b/api/inventory/v1/agents.pb.validate.go @@ -1956,8 +1956,6 @@ func (m *ChangeCommonAgentParams) validate(all bool) error { var errors []error - // no validation rules for RemoveCustomLabels - if m.Enable != nil { // no validation rules for Enable } diff --git a/api/inventory/v1/agents.proto b/api/inventory/v1/agents.proto index 69b4e9e3e2..edbd32b4a6 100644 --- a/api/inventory/v1/agents.proto +++ b/api/inventory/v1/agents.proto @@ -581,10 +581,8 @@ message ChangeCommonAgentParams { optional bool enable = 1; // Replace all custom user-assigned labels. optional common.StringMap custom_labels = 2; - // Remove all custom user-assigned labels. - bool remove_custom_labels = 3; // Enables push metrics with vmagent. - optional bool enable_push_metrics = 4; + optional bool enable_push_metrics = 3; } // List diff --git a/api/inventory/v1/json/client/agents_service/change_agent_responses.go b/api/inventory/v1/json/client/agents_service/change_agent_responses.go index 2ea210d0a9..8995dd25cb 100644 --- a/api/inventory/v1/json/client/agents_service/change_agent_responses.go +++ b/api/inventory/v1/json/client/agents_service/change_agent_responses.go @@ -4260,9 +4260,6 @@ type ChangeAgentParamsBodyAzureDatabaseExporterCommon struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` @@ -4487,9 +4484,6 @@ type ChangeAgentParamsBodyExternalExporterCommon struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` @@ -4714,9 +4708,6 @@ type ChangeAgentParamsBodyMongodbExporterCommon struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` @@ -4941,9 +4932,6 @@ type ChangeAgentParamsBodyMysqldExporterCommon struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` @@ -5168,9 +5156,6 @@ type ChangeAgentParamsBodyNodeExporterCommon struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` @@ -5395,9 +5380,6 @@ type ChangeAgentParamsBodyPostgresExporterCommon struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` @@ -5622,9 +5604,6 @@ type ChangeAgentParamsBodyProxysqlExporterCommon struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` @@ -5849,9 +5828,6 @@ type ChangeAgentParamsBodyQANMongodbProfilerAgentCommon struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` @@ -6076,9 +6052,6 @@ type ChangeAgentParamsBodyQANMysqlPerfschemaAgentCommon struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` @@ -6303,9 +6276,6 @@ type ChangeAgentParamsBodyQANMysqlSlowlogAgentCommon struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` @@ -6530,9 +6500,6 @@ type ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCommon struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` @@ -6757,9 +6724,6 @@ type ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCommon struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` @@ -6984,9 +6948,6 @@ type ChangeAgentParamsBodyRDSExporterCommon struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` - // Remove all custom user-assigned labels. - RemoveCustomLabels bool `json:"remove_custom_labels,omitempty"` - // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` diff --git a/api/inventory/v1/json/v1.json b/api/inventory/v1/json/v1.json index 6121022712..3b7355e8af 100644 --- a/api/inventory/v1/json/v1.json +++ b/api/inventory/v1/json/v1.json @@ -2711,11 +2711,6 @@ "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", "x-order": 2 } }, @@ -2760,11 +2755,6 @@ "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", "x-order": 2 } }, @@ -2809,11 +2799,6 @@ "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", "x-order": 2 } }, @@ -2858,11 +2843,6 @@ "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", "x-order": 2 } }, @@ -2907,11 +2887,6 @@ "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", "x-order": 2 } }, @@ -2956,11 +2931,6 @@ "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", "x-order": 2 } }, @@ -3005,11 +2975,6 @@ "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", "x-order": 2 } }, @@ -3054,11 +3019,6 @@ "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", "x-order": 2 } }, @@ -3103,11 +3063,6 @@ "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", "x-order": 2 } }, @@ -3152,11 +3107,6 @@ "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", "x-order": 2 } }, @@ -3201,11 +3151,6 @@ "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", "x-order": 2 } }, @@ -3250,11 +3195,6 @@ "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", "x-order": 2 } }, @@ -3299,11 +3239,6 @@ "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 - }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", "x-order": 2 } }, diff --git a/api/swagger/swagger-dev.json b/api/swagger/swagger-dev.json index 1c841eb595..b68a73e9ad 100644 --- a/api/swagger/swagger-dev.json +++ b/api/swagger/swagger-dev.json @@ -6466,16 +6466,11 @@ "x-nullable": true, "x-order": 1 }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 2 - }, "enable_push_metrics": { "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 + "x-order": 2 } }, "x-order": 1 @@ -6515,16 +6510,11 @@ "x-nullable": true, "x-order": 1 }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 2 - }, "enable_push_metrics": { "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 + "x-order": 2 } }, "x-order": 1 @@ -6564,16 +6554,11 @@ "x-nullable": true, "x-order": 1 }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 2 - }, "enable_push_metrics": { "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 + "x-order": 2 } }, "x-order": 1 @@ -6613,16 +6598,11 @@ "x-nullable": true, "x-order": 1 }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 2 - }, "enable_push_metrics": { "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 + "x-order": 2 } }, "x-order": 1 @@ -6662,16 +6642,11 @@ "x-nullable": true, "x-order": 1 }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 2 - }, "enable_push_metrics": { "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 + "x-order": 2 } }, "x-order": 1 @@ -6711,16 +6686,11 @@ "x-nullable": true, "x-order": 1 }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 2 - }, "enable_push_metrics": { "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 + "x-order": 2 } }, "x-order": 1 @@ -6760,16 +6730,11 @@ "x-nullable": true, "x-order": 1 }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 2 - }, "enable_push_metrics": { "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 + "x-order": 2 } }, "x-order": 1 @@ -6809,16 +6774,11 @@ "x-nullable": true, "x-order": 1 }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 2 - }, "enable_push_metrics": { "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 + "x-order": 2 } }, "x-order": 1 @@ -6858,16 +6818,11 @@ "x-nullable": true, "x-order": 1 }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 2 - }, "enable_push_metrics": { "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 + "x-order": 2 } }, "x-order": 1 @@ -6907,16 +6862,11 @@ "x-nullable": true, "x-order": 1 }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 2 - }, "enable_push_metrics": { "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 + "x-order": 2 } }, "x-order": 1 @@ -6956,16 +6906,11 @@ "x-nullable": true, "x-order": 1 }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 2 - }, "enable_push_metrics": { "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 + "x-order": 2 } }, "x-order": 1 @@ -7005,16 +6950,11 @@ "x-nullable": true, "x-order": 1 }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 2 - }, "enable_push_metrics": { "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 + "x-order": 2 } }, "x-order": 1 @@ -7054,16 +6994,11 @@ "x-nullable": true, "x-order": 1 }, - "remove_custom_labels": { - "description": "Remove all custom user-assigned labels.", - "type": "boolean", - "x-order": 2 - }, "enable_push_metrics": { "description": "Enables push metrics with vmagent.", "type": "boolean", "x-nullable": true, - "x-order": 3 + "x-order": 2 } }, "x-order": 1 diff --git a/descriptor.bin b/descriptor.bin index 8eedee675ff2030b2390e7a85c98ab6e48ec3da7..64a67982c5af1499accd3129cfcd146ebecbc513 100644 GIT binary patch delta 21855 zcmYkEd6ZSfz3;pCsXZM);55*5L(|c`F>ti|V4eSh`a zd)Mz+Zz`C zDf>fIsIDxmxH~GGy0&=FvO+N~g%uUgteE;N|#WuQ&+`G!EQ~81;K%Xiam;f=~jx? znTn50<;bYv%3uHSPsL)VV!?DnvCbql#p#ud*)6Cjnf2Lu&la-w^(IJc96qGedXx54 zB z(kibB&}=lls*C5^)Syk-?B@$(%9~8k$@eKB*sAvq_|{57 zff}lkP+Lu>lD68;RecnRwAJ*h_mQ|O+e|RTH_EdHHBvyNZKhLou`JKNdmwjfo9W%G zy$Q9=3~uqEpzS7T_l*TYff}knsO_dxjkXeLyQytawA!ICzTRvule4kK2)(}_L<-sAF4{~k#3f54a2({mI8ltU)+HYE~QY6%VGxk~^s&mPFVuB9e z*qKP6M(RwYPx6`2nMj}HkFRr?P@kCLBYmhYC3C<8dIenw1!|}+ggRh4Ie+LLbRpCM zQ|$~AB+>yhaIlYbR>>SR!9_l)vxo$0q_c>0&~&2Aue9ZN7NHKB#&fkdp$?k!FDzE! zJf%|fg{e4-*M<#0xXD{>3Bea8sV-iG0hPpnjxblU5&yGrP8p;&U}w1?osXEbyNwPK z{fOz|92jJx9WlMmFLp07HNYjwS$M}0Q$2=D2~1Tf`qEU~9y;f%BG#8C>0LaFfvb{= zQuLJxZVL-GHe5+Xe`S&`_AXROV#kbeWe9QEU}x9a=5@?;arcu}@;c`HmeArzUmMfg z_Z8~{omJClTRS^b1(AL&?v5Xq(USjhW89O0(1LFH0MQ;d-TV2-vN9Yujs1Pb&Prel=X;z-{a z{IFsobtG^=`w9bJ1+de5B;!s z&iK$==^MpkK%FI>(2frWT%oN<$A>@sv6td8w}fV>ZxmAj^&X3<+!FfdQ?3d+qrD|; zY4uu6<<>k$aS_mMv#P9%+!}W4>m!Sc+#1%q?Lbw4i%bZO^K}R*=$2ZLVJC#OBfRu1 zq!YqXqemBeQ?@-y(cNLil(2GSQEa2(H#h(Ck8YdR1KHhS(#Lv74=K@!q4$pKL1rTC zyaS~3#L#;O$QTnt?;RkMU}EUKL(qB0#1QWo#VqL|wKh4M_)1}Pd2$|9s&{gjo@EoK z4?!n~-AmlA!1OFdQ^SgX_jc2ho>Rl5uf3B!CD;4Hz)cj0f&-nYf@FSQ*vZ)(i1fa& z9mmT(6uDks}wyDRy>y7`)c8u z@&h3rELPY{tZ-Hs{KZ=#OpIBfcfwwh`s~oS>W6repz~mmzO%z#ZaD`TZ+6(f$zF9Y zNp+6SJqRgiCqdc3wz<|h7KnCEIK<7pUgCsvL*vR2LJPVZ2qK*u_I0iUBApxh4OTCq z2SejFSP)Xs%~KHRgJHSOZK+_}+it128M51)7n)J_0Yhj(x90`X&I|hu(^jPO!jT>R zYIzd#bE!BXs8Vsl`MI>AWD<%FYc`tvKO=Tq{nvAeZ8V3qv!+=Oj)Dy49yw zAWpb2ta0-JM7mJsLs_h_mssILp}E*=#R@^^Ni?E;C~O*|t!N(#FTBWKEl&7wXfF4S zvKIq&mWUHR95!oUal(hgOE2?MoUr^zKCDLNqaKgo*x!&g_ zP6#?vr4i}ku!75*RFzruh z=~YYVE!9a6F)HXbAs~I1hJF(QGU`%wiE1g3Cv}N{kb-U_0aliU{Z0Z#`()^M64g?A zPlbLb0igxmP68zIQ=#8UfJmPT{Z67<=;_e7jRb@gbQ=i}>C>UzNR&eZ+unXBQ7xsn zOrHmY7IZ5Wh<2H-R3Or2q2EbV%O+%bE|t;)RVt;oJeNx4EidOA@?oX)Kpj>}?}dC=DZLl+VJW?py7#G;%KNpjGa4A}O5OW_Xjkgq zr&>zyMcw;A3=6uw4~XabUDTdloI(aT}Q2fkW+)AQw!mnBlHy`@-R34`~2vBEUJBE{Mv%~Gtdg=Sc7bHn$4 zb>r`TdDGaduDaxxH~sEUV{iP!joCeK7wXD1yH$wJXkQEKoNI$5@mko{ZXa-ODY4f> z(_s^axMa|6`$5}U?_O$vNM8>}xN~4{sogh1zqy5wf^K;(!)V_K8{Dc2qJ1Ouo7>(( zYjw{Cp#|L=9T4f-u+gompzVD2XrD2)`(`ec+67fAwfkn+SXQkR@0;NnEyep*u9e~i zRV&5&Rz9p0?_0T)zUxBcmh#?#)Gp|zB#3lf*mtnMjgg#~*M+S^eaaN?+o8GCw@UGX zZlUaLi}&qtpnJmsB7HmbZ#a5O?YlTRgV_mmuq-?h6x&Ecr(Yu@%;D`f+!R?233KCG0@_FPKe9lCDS*s=lLx&AD3W1>L#@BHgF!7Kn78u3I&-(rEwm&uU4w*a2R|)TXNF0|7Uq~&PPlj zK658Wkf?{l)ZJ2$sE5NoZoL9|c89~dOYOThL3dt09QM1UIMj}S{Aif1Us4z}s@B%t z(J*kQM9?<&au*L0`)J5FGK0vtPbvC3teBAfuZ@L)UB3>Ky5gn8>mwPT$d+s@TsHQE zCdr2cIuZKsU_b($2>A|1t_UQ_6JhPeHc3I3%+o%!%u}lk0PmGU(n(UIDg$6PgqkuJ(7{&OgldFAN z(THqTd-c4JfuSi|R_zq^RP_EZ$rg+-*{n)Z1B9C+SX! zvL`kcF1#Kf+bNnYNW3YLpG+X}rbK=+fh0R6@{>u>O{OUklc|XtTPMj*&EDNyXufu8 z9#oQ?8u@SU=tIz{5mQ2DC`iz$QSS@w3>9=ir$#jw*w;>VvJg$<{$`K;s?d^s@AHBo zZ?SqlbaxqKh-rG4L57&7cNt`eX?l|d-4N5{Cd-?xI_W<>Tl;ZgbldbisLa3Vc~F^u z(+dnwo!F~A)8ER5{NL1VmB8-gjv+(tm1`MNZ%Pzwlpi8+ff&Umi!z9 zQO?jg2%?-Jb5OqMtdk{pW_H8A!YG6h!kKxlvO>*_Qnz5yig0FBs`8J81!`7y!`4Fc z@L9P;7N%MG<;lV{E5AH$*_!#yV7 z;nvB*G(QT4)b7v5zm)te``Nnao-yuWr({i&vu!#OXMU8p3I|DHel)1XI#Zo2QVS!@ zqH$xPIlEzdA!-Mmf6|C_VdSj|M7l8I3!8y90~V==qik-kq%Qm3{(>1@7j$Cehx11y z>(s+h?7W;-EB5!dZ+C>qIjaXcreJv7Y zN7|F~v%7Z`iWe+aQ=*ADizEM16C}>!$om^eoW*kW7uz@-)E>*$?Qle~XrRh)7U70OQ^0B+3T%v|ZE6OENbxrYVJ6JbfltkIi zk;xU=$2$wf^3wcj_^Y1qr`pr(ocM5nc5=6 zwS#U3f%ILblMf{7GA-DC&K8$x#nS96cA45@KPmX-YKssT3p!f_ZL7CMkm$?B7KdPq z^`+?fsA7Ni>aIddx97#hWpS;SbXR&?1ju%!W(yK;rP?A$yp?K;AhohmZBfwK%SyGy zdP#OwHg$KQdF-k@s3f^cZIM0%U8S}N5_FZ?qM!@9N^EhoO&D8T9c9n|YhlE>_0|tp z=doqP)p~nrCH88$y-o?e6a~F%2WQ=eB)zhK8yr_zU+t*3OE7KjF@eN+DUTx-_>y`= zy)416I1A+e+_6`5)_@3KQ40hSzM>XbFXsK4v%pb+C0|`2%GY$hfhb=S3v9I)&2xSu z$}a9=2BH)Xd?Qa*Jn)Subu~>Z$~Pk3E?r=ic;K5+HlvFt*#=C$>9g__|yo7Pw9gmp(|=iQ&r5uU;JRoio<;#XhVHbk;>9(s$Il zK&0=eb=BJwZEjt~;qT@*)t+b7wCIWOT{W$G*_dxQV_G1W2s_gP8FYi17KnC(npV9S z-UrUKejrB82Rz#k)IC6geW1<-66^zYE|6d!h;uCv|F0Jd{3yHOlfpyoALTbp-0q_& zb+5GPgXW`Xz`){QE5YqPjjOM*dz2mgQ(??y0N1-czus;H+MZvpc;NP^Vxi_%cAU8|E(~K9J(XjrAr)$bXUZo!`;{JNOwhj`&q}X4@w-Zyki4Q z?mc-9C6s&Av1vuQM;*I9sN!_w9NWIPf11-a!_qs(3#djwe1G+r9*1l5LXPk zn*-WbZ`&Zz4~cEJV%v?S=x|gqEqmwF!jNudwnsHvka$Pcwn5?@ zRoezh_NdynpiB0s+IFKP`=#t=>#yhkg#I!QEvbH~=1nW1zf|)E3H_y-x1bCCrI@!I zJ{x6Edo1hvdExx)j^#mRz+-xM=|j+CdUHX79@CpE=z<=To9lwo|G4;iYc{3U)SU74 zC|l2_xs4|G7#ppvAI}F8TR*P0-YB;Ijo5le+c!F&_>kPbQ9}ojd?SYbFZOb{Ip1bC zeo^>s`?tA7ocvpzf{oV6zZEAJi)@t5>}fLNa6B5YML;%ojdBZbiL==s7Di^<4i}=fTXLZo`Yo~F z)zK5-EwMkiHj1H7$hsdXTyf!q*dH?akfA5Uem@5iVM6Tpb085W#JHjyjT*(*Z;!JP zQ3@gs#|`|a_W$05Fcd+ayw^h9`jTu~GbcVw}CZqcEle zKshm2ij7Z<{SK5?a-A6a9cZI`yD&N1d7{w7gOML_n4I4%aq-EqKatalaB|EBRJJ6I z;^Ozl+0Oq{7=co3{NC7~5An|6${#XwZZ+7gD^&rX4j{UJ-&?P%N_Q(1rNp^0W zjju8Nt_O%cH;*m3&W-))o>pSdmAa9K1rmF1>`(WCF816QCzO(G5+|IOH6AORckR49 zsEjyIZ!diaI#2H|NYHtDcLiP0d2)AMQ2H;3gI?Lq^OB+2*kgrgq`X_=BlrB8tOG8{ z2M`BbAOpzRzDXSLp*XuHD-0b4pnOQ@6G&YjB!2i8^+Sk3LFb1c(!Z!5 zf=K_Oe%K^8@^SBnFCNDaAJ2v2hmWft(i7q1>W59@hficjj^l?S7LqDN@2om85 z^+S*dPlzAN_Nz(!@JVMf+2bb|`pNv^h#x+w9z#!rPpZc>$v*dK@tBtOr}Lr33ZGVY zp%0R$#a+ZBnq+&s+<8Ryf4|{)yF9;4al+;KLy@iQaU*n4H*{@F)Ms)jYoD8=6q-IHXjkgDYY}aVEAo13yJ%GepqxJxj z>>9NPL04^S)E=58*_XXN0K|Sdk1e^rtoA@Fv0qku0Ezvw+Jm5r{j%7D9NU`39$w9! z__lD-)vxA3WyDwY_R@!-uj=gu3HqwuT|pQ0Rk^z^DE(j0E<9DZsQvXksGN0Q&x493 zysnneES9j=TLQo}uGKjNqFk$%0HR#0me4Gg@Rqj(z>=>{5anAs`#_X$i6zLvvso2o_tysd_x@Vvj<=e4;;nysdus*AdO#Nv7k8pi16hl~_U#1ws`usAv zb??Rgwcoj7;mtvUp3mIW2GPH#TL%#Rdol0+uCXcO3-8C-xT%FJNm=~heO<>vl<&v< zq>qa$e(-+Wr_LUQn#B(`PVZt`hHuPotQf(@ICekuMHdtsenM_c0T zhKb4L+2NkXaHX}mcb7hLkf^)lk^f2_1k6L< zrS&4{>SdR@(LgD;-RedVHyU(q1lm^bMj+95iyI9i=Ru|DlepsU?EeL(z1t^o(rn#m zkfeLiyAeRP2Q^!ecn8&uK;j)#Hv&oapt_NuOZK3;(I83oQ}0Fqu|LgYORk@)8_`Pa zPt}b;Vt=Y`B)jP}K|hzf z>w?n%aP~`M#qPAmsvSLQZ)Qsqf@R*v>ATgukVn)rwkLMDx zq2u}Wi47gkuaA57joMK5Z;>eu2iP*GtqAW( zyl)MXGumB={d%DcknmlJKMI2=?@IjX4n%oZ;*D!?DVms6OiA1+YcM@0ChSY(lr>nK zU{c~wSrGYv?n#66os{?kE=bf#3C3kldN9*uQsPfpg08eCCH|B(SSoXJ;!jx+IfKr) zK-=n#3ncpF#BZZoO3}2W;_0Mv52PJ72qPK>qUSJGd=N#FOXrTC;spSat+fHfA|t~*DyWthp!g7hAbObW9qNx z|Afx+&~gP?;?G{R5;{x#*$X6emiV)mpbMQP*x4AHHg+~6o7>4;Fmgs7R0f=(H@(H$ z*$lbqPQnl~6W%cmb>AHf=xiF>`M^D~7JIImnTy4?W{OzORV`v$vl4r*%I0)t#hs;7 zk0wT)mH1;7h;UZok5w(=T5}Tjohe|+&vp>yoWvjSL6mb6|Aj$|xYmQ&MO{o=+k<(Q z;#UtQ{+j~&AbBwH-xRcnU(L_{+{IkfK0lX;U(HYaR|NDyGC%QO5wwWMFHG!CZ8SiB z3v;Dxm=-4f?GCLd7bfh~#I9Q8AoXzK?Fy}InP6vEAlio$zhwf^KAf;+l2>RgVpogK zcnHX~!p=iLw2Rb3K(ve0Lt13>wD|8lq)Dtw@(7{#AdAxYyF`=5A(4`_fz@mbEnT@A&D1WNE@Xe)(CC z7O||Syz>BD=2PlCAj+rIc|ep;sq+jeMaz?lXT9?bq380%Z<&Tj&8|@Afw%5=G zso0#Y?{3cRwlYbES&M0vbXR$c0mychW(yK;m0Ao)yj5y3Ajz&$ixG6mu2PF>m1I{t zi{bx-UY&=QR9CCT&`RjlYB3<8SF6Pcy3nh|V*Y_g*D5=vm$H6U=114Pln0doU(&lv zAA-IlcUM+Qkf1N=%@uS(Uy_^ag3|vLF`+T?qPr!#vdZ+fFL?OSJ-}9LM6cvSh!MS_ zM${@s^qMoGQ2;?&5ak={L?FsH#EGO@Tg8dq z%pUA(29M_d0$Qpd!Z)>4L4iN5?_LyFM(*^RbK+pzAL^Y zuew{smo_B!RrfjWiOObbL;h^UnKq~+(jE1N#J}%u6=(V&Yv^bCFsyje2f0u@>4W^C ziYI-L_!r)-Vo4t+?u9pi^21yymh@rbUwG4s^23A|-r_H<_6tkrFWHOLCMtiV_CgcF zkJMg3gdeHB3@t@ll8Wu#UWU?hOOm*sIv*fB3A|24pPLRG^^+G_RZq))9>fR4+ z)e4~5SHM=am!VQX+tgklrW5Gw1+=Z+UO=L66MGqhy|k60-ATnQ*}~rDyl%UbWVp4L zHc5A{w-Fz_kr@n;6THB&+*#;i}O9$|G8+Aj%_J zs36KC2|vOr^S(`-miTusAj-cb{Amj@vo^VRUx}Hu zw|}KJ#)nA0QX2!2e5E$lCXVv;-|aZEesv7^bv~eY%Gc^-bVvQQo?6<(Q%=aKWo-M2 zTp~ttLM@CwNKVLkMQo@|jO66s*$^LaZ%*bIiJP1f8)|Gnl}p4% zPUR0@Y~++0P@CAuch-QK+rG;+;vnCt_0S2;cWOOtvb7nXt?p-9%Hvain&Lww<5Pc{ z0+EbQ{b{Pb6irAg?nvEfs-2z_(!~9~WxG`IZK*#^L0m8B$^oSBZK*#^fkeG6^{Z~X zGo9N~f10A%*TZe8KTWkuIo+Q6(-g$K1D)xBw$+;sNc7uNOlKgbGprQdlUB^l-mEvx zUGGWxDo>70!zA5F*?0BkvTG-4ntVv0NvS_CfdrbA`tuUV%$t<@^OB&e+DR$rr3M=m z`IIy`KkNQTp(cC0!9-(0cMpcyET^P?9RLYFCFR|LtWzMtr=&f{*q=oebit>jz0R{= z#tswLnVM!ld!$gC^=oAQPR&Eh?U|bTZ${}!=&5OKA1{QaW!E&C#M7(5LE)g%8 zCK9Q!Vd5pzvpJ2Xefad$@9Oyw$@J8}832(?PyJS5n3zbGx~)P7H%xqER_eZhAJ)YEo0SX2J!Yl;3wU}m)~uAntXS1BagRAtCrxGkPp)&c zT0n$zv|2!fbF^B9m!f%T#X?^#!|6FMZ=7L`U0sI`B9eD=&dF9an_}CNTqseO=)D|aOJj-LOD81E((G8Xxpd^xTq32hG?z$eEEUOhb}UNc zsWj+OdqwuxtI^rnoPqom7(UROAVu<2>W|zbY>_;ba^(J*6?0L`vQGw@8%8e6B~l#A z)OAMK;#elGBfrQvg5ro)q``A(n9creVaPx60YUgg2b4Nlk*3Z^XeHYfDZg&e6uJT#>|a~Vu&%GC$w0fBbV#~uvn4I8CTlfKJ|xgueXbyZ*6L~klI2=mO$1$*Yjrj0 zkSyOivzq*Dh>5NS-94buw))isB=}ppnt%jsbHO+17bBPqo`qaPAqK|YEo0cCS>X3Ehz3iv0jPhPCkrH_? zA4S%Y_hgi2E8$VUpFP-W1`U5dmq>}cpQi4YZaZv=yr1$L@=n6@+n5IZv;RFLuC>R$ z4qGIArguwE?aw#&7kyTO~%)}Pp->X5?NoZ26%$W9Msx!J50MH8VnYej*C-mD90hb%W+ zvJq`&@bE2KNPLK7i>`(sk}WB(#H0v2WQV#T5&LA2Yn2tl;lqzGko>yWML z4!gQ#UE4W-?$E`J7IZswaRbrq(8X<3DcYS@?DNGtik`dE#QmMOQBnAOdZ7bNN)DPFm+qk^)O#U3qQn*EL4qs2Q)=ICB6UWkVey5a?Gt1n)V=zFDjdr`b+ zm!gAd#ph||$fV)gn|^!qf4|B7A)B+&98BF`;roR-Thc$I=|iLsy7WOhAJX(e1~{bY zgJge5vln#J;*ex7c7C>G|5^4whMBXk{Y;+_AIhg`?EaPnNYKyHuHA}7vL4O1Z)rt8 z`}YDz)9-M~@9h4#7)1QW?%&diXNr}z7dBiXzuNxCZ0U_jP1bEe+%p?G+;p${TbkH+ z=TQaM6n&Kjr_*fgaC2_?t2DBId_o#9g0Ir<_Lu(!8TzZV?P6Iz1WhSAmYNf3#NQB0 z?FUb+eSx1{^B?BDzDdm~dUY?xw%2{EJN_fSY2>5IQZ%j@+*K^p4sOWe5oTn0TrskL zxknmFVqCGSEpI`R7*}jL&nLlOFO0?)&4i*RQE6Nf{zI39^t!ER?xdGXqS8nb{v($J zKj(Z;G5B|v#50n_J-oS=smG{diT4z%1}c)oJ;f21`y{ZkXkyV!Ig>=-lkgw9B&659 zMKkS85`j&^f5cvjaSEjyhTXa+cqT0!d`~oe(?C@;kvVEk=JXnwe*k zDEK7&hb{@}^+3_gIg>=eCgDH2(k4NddBtEcNnFs7HFlUQ%JYhm{gX#zXh>pS(fu^3 zAW6(C4!hLf3I2>(G{0ybI+KL)N%#+464LA8qIvX862>OsKN@C}U?1{$F<3zo^$pp+ z4i2J^=ShSl@pztu92p+Zli)YWqa{W2in6MJLK8G%59V%j%y z?;CF%1p6pWknC^`K@dbmR73<68!p(OAdR4iNGGjehlnU3?>E<4lg<01#;9+v_02g~ zGr!gBbI!Xjwj6z_W%NzuPvkz@VkXQ93hDL-;<|<1w&s=$G~;uH>a=HDzB=6%l=QWuB{82hUEfV7#6w~0;yUqFzTZ)FR*`oVYoE} zdL`|;C_nUPdBeXZSMc@nSb4=%bXSO#S4@v4g~Brf2Nil1a;8TyTy4tUHs!;^hVT61 z4}UBaDhhei1IB6-*A^z1|mEJ}U8yihkb>XWvYS5-Md^&$tX_LuS_&Rwgn@pD~g;L4X))l(Y89j^P zJErV?Q*Jw7R=7ZbP`8*~{e0z88D6%ShDL9S z(yhz@Us{eSpqeVj)K*hb)KXiy(oKP$Iq9aYG6h^v^wKty8{+Hcumn^~IV^2671f23 z%%+}pHf=LC%~~5%+sxn=Zwj>C22N;)Ey=_ z)E634ED2Uq22(psMV%I7YKQ65st{80L8)7?w&hepKF>nF=ulR8yfXJ!vY$)XvOQh^d{k&XWjByGo|%9IcJ1UFPfO`}V~}v)kmp<_lv?0o7EDsokccUQ02x+cbPdA(nQV zv(EOGlA_sTa^LWU36_A~QYn{UYEKqbf~h@OPzk2?n6F>pO%;k}ugP8EO%*T&)SwDj z+G{Fw=nGidYleJVD`RP|xoniTR8chhOzx_ZFRj27SWQ)6YM-eXqNSMHXId{+h^c*M z)Ro>;m!f&k97IeiFP)&8k z)P7Up^r2_2E2j3FYNwq*EbTV~2YXB1ispdHo$G_@h9#g{>V~BQrh+uT#HL?2OdT+d zU)9=}I$+K|r%;LV6pP`g`Nc_1n|+g8;bFXsXmJaDk{~mi6EZ z(>TC$K}U@lI3GNXz}0ZYmimHIN{ib{Q% zaZ#xg#+>a9i!1?kxI~stn7(IfDby2Yq|6E#AEwRdz?|U=MTUSnTyY8R=%Ci=JC)&% z4mwA8E;@8$V4R{=THOJvThW~xgOhGWcWw+uIti=Hp*v#&^DXaIga)VsB0@7JXu7b_ zwL~^i8Sa?i;!C_+lxA#TzT>%~EI^$l6>!G}r+rgPp^gnM`L?H`EH?$_bYCb^0@OYh zDY+>)IX+#WmTn4KT0IvjxjBnbv;*k&U6oclZVr0%^_E3DZVu|*CZIBhcH9yer{*B2 zK)1jGaeGTpH_TJJLA@myab}^0tc`jV!#jhriRpRE^VL1>4B|dkAbLqgjtkQA=kp`e zY0LBBcgF>OqeKz*#syv{fY=)sc%1+;;Nt?X69S!1j0@0-5zL5Ql2;RgTxH$B^osZL zttB2Xt9jx!VnACV>1N{vVt+!=vq&%HOz&biDJc7!SDD__oD{@;Z3p(2nC}j9ZhnBs zGoVvYAWrTMDxA6jq23)7s|r`keg=$}y92v-GeAlw2YxREf(vv30&QvH_C7$UlLPiX zR}x@VG5lvx_Go(Kh5Qwze+CGyC}5Q+;Itt3h*v-`Hl_tApkzsvgnn;eT+)LWK%kRe zAa(Bzs@&QQ#NWNafF@6+aJo*ps+&J6l@Xerd0!SGJsT1H}4Mil`BDpdqL9-eb0empH;6hJD080;LZbbosjoy?f z;6uTHkqY5H6nstHB7k!;w<3T*bt?imCv#f?bx!6M0emz5a_g&La1|tw#&5?>fGSU@6y_wsV;`|g0kga6{@K@ zFJSLclGLk~)O$S0E%m7fru=bDy=qCl`8w%Acm=w>2avk+1HbnG;&r~NM71Qy6S^{h zpaR|g0a#uV>^Bf#xK9Lr15quhw;=Ev2oPML+du%Zyddx!2q4r2f!{z>3wko}8we0o zpxZwHp*|Vd{X;1*U|ZX7AgU$x7V3C_-~!zO1%$g$7bqaqg@NBdRLkCDQAU;211eQg zZ&5~-%v)5-xKv)8aV7PD%9YexoN*=f7H3pa?o6{o|jmy}sd(*Z$=C>l%J~!=KW#SLH|koWjT^EmbkJEQocg%1&fiP*r1d zxTYAs7?i!~bGU|@F9zI~ND9|T3cnQO-tZ|5ruZdE;Z7-*6kd_Oy()i3X@#yqJfzNw zpr6xhAkJ0aGe-a!K9SGOna9P`Q%2uVro}bzjS<)Lk7Iw~*K5By)joLIR<#4*CxE-5AQ@ zcy-Wvx(}JuT@#oKe5s@^&@GcSHg(qo1Kni?5bB!1UuM)u=B^FQzj&%-F3{~_D8%jB zV6YmN%v~E?baA0e$xa7ScU|UIR!yK=zG`ght_zyop#lhZU2vYeL#dI}eLZt4nG006 zlDV&EZY6VHw{ERhGIu?SdyNlSQg?k|bPh@Ct`9m!X(`&~ z+X2#9{NllvX*5Dq|H`cK0t7RZutO0-Kxt6&{p=VR;|6p%&3w! z+cK)8&9*t*m&vGPja8K(}g92zQsRT0pqFbk(YrwAr1xm9zn>TS=SUnOjMl-MVVk=17}8 zq>VeN1L5w`RSO7rkFHukxO;Tfs?Cu$dv(Sl?8AA$yF=; z;rjeHzXx^;6{T?Z>p}&DyI&TnzNB1TG5jbf`!pyY-mT&MpZ%<1)TNi6|MTm9slbz4+eeQ*$K!P9t`?jU@zJPx&!pV zp#S-W)2&hHhd7&u!Jzb!4f(MBP>^#+#X6gUhk`2C2S7|83V1y;h`{?4!_R}VThbjH z@&kK(9>o0$7htZB#CSAFe|I2%&NTq${80@Rh_9o8e=h^X-qC>fGID4J66(>Q?mQc+ zKo{!KpwGEB)IO5c$6csr0vMp<8Y|Ei`dES3J}$A!o2@<~7bk*TP5SZaW++_AMX-CB z1%!Jdh@5-?;hqS%*t^hjK{tlEmh|gCj7MJLLX~$AJae}JeRA?v>&DRE1^_X4V_0-+ z1kf5leMBewh=hy{bG7NP9;PAfu`wUE0o9U7$k?#LsRDJOjt#483YS+QtqC*e*^e|sQ*?lt^RuoE>{Am%29 zeqI4FH!<|{3P`LILqD$sx_LD*WL`DVul*#}Nntwl`%zsw^wYe#nkP7zlsS-iCx!lP z9;G;#6f!|%HUM!jDXcliPF#V`!KASEYxa_=pG?2W>D*2EGq0SS85OsawTr2P(aGAy zK#We-9v0|~PL>{)o3DOSKMiwL>4A&lmUQ$V^JWCkh?|FQ6oI%%GZ!)wQ*klO8ek?) z3Dcg(^QXf!FsJCO0>YdUMs8jLVNMCVb}O7?nbf@}On-Mg|JAg8Gc)*}j40Fb9-WT; z>~y?GrlY+0>?iB=)b!fT`Lo)mW>LxlHZ@G#dPW_5O%02cesEa7riE$!gna)q`{g1$ zPs^CHd`-*RC(GBgtbO$0^f1>uz5JK?fnRk)6~pJ5_K&P#(?kEJx1U|ZriZ-gJuGi} z`^g$MEB!z3sxBtrcnOC(G8H zbkx@T$o4rIMV6~Mp;t8OK$#P=ktc2;( zS@{7>zwXS8d07PAVa`(>q!i}7u)4Nzxpmotdy_D|_w)R>O8s&@2zGwfa`}M3{A~X9 zfH^;`?PK@1{fps~VcB9YhyAJfWEi`5F#Sbe7OEVAunKe&1xVe6I?;ewT__Xn-=+V+ zOtpoYtO8xKE>t<}FS))*Fz^~La+uxwx2z9Zk#{TWej zS!e4d+~=Ge@;|{or@;a-_ngWh5OdF|90G~;Ih8|!F4pH%4(lb>rKidvPjIj_b0G09 zRXL;-2TN5BfjC&IawyO_SSoUOri~prT$cX&-TYV2T9z3Vx68DP>#ZCvlP-1?T)cqT z)eUaA^oHO3{DuoJNPB*eZyr%^6^{}(P(ZA_kXaGMdqEYUUe?~1yy5|9)Jr;XfG}TD z#RI~8NfobNHViAg;;q@qE@?$Z6vbPiGme@NSBT=Z+O{&%uZHRDE@mLXhM0LZ3s!{h z)i801O)1P*L++ctW|;`zsxU3@YQEB0Z-sAF#uVXO6(&Qhz)%WvRmgROsBFC~9jirU zM?e(CTb&U_@m8zWQVMakXszr8>qYR^ih2zuR@t(zRSg3|T&o%egt%5Utlpk^clk90%HH=c|ud9aD%eH-kXjmtHMf^5oL=nFYs$`Tx+@MNUFXH#+DN4ozhWJg@ z5g^9iR3!sq>`hfNAjaMlC7UUFUoX1&cKY(3{QYfjXFVqB_jZ`LyKd^hc{@C9U}3PO zpnmV9_w3CNX@4i9i0-`;CT@FEpA+4CCv0lAf>|%Rx77*eS42H{K#*HAwrJm0RZU7^ zZxz)PxvkHkecRI?@5`Tm&i1UCqJi79W{L)G4~uT!4h0L_WvuK6nCf#qIjN;v_T^`` z@6=_Dhj4a=95q}_J>l#O`}Vh5U7ss*%JNzbU}o&joXdv+cB@uX3Ujw=b$zaqgObzg zbkzQQSlXKnt-RLXnIQ1=4`cU|szJ2xfJ!xp#si%K0I7RG z6#$6U1EK)Zt_HVrJ)lxeu~(-9D%B05L+`6pgJ>+!^$XCJdZ`9t{e6+@R;0SI7#G-Ascw{T4~bM?IO>pw$wLesQjrE?=#YvukQ6?oA}!Eq=phy9Mv3z9 zDI)!EJfR;BXAUIN!z$90;^44~G!O@eRip(v2Zu$Z<*?Z(d)6a#a$ReBZLO(Ie=|L< zw7bl!DZ&$FuE&9RI-)%e#M2S&aUhyD^5@kNK%xe_^C}STO_AT-0pZ>h`SWU{i1;m0w!7m2 zy>(0E&zL}r-4glJDiCA0ME0L8CCYSs@N#XJub4FP`lCR0qk)ZTSRd|8IU6y(2RI*T|m}fH40W@o@qX z9w5xWM(o;U3)?6%es?0( zME*bzA_0I-7J;_Z%OVi#Qz9>mO?-$UDq9?t5AP>eTpi!|_iKOi^XnQ${r-kO|HoBV zq(45Cuk8NM$g5?OwBp{h=h6JR>GOy3;i!AH36$XE-pC*GfjGH0^2dB2Ex0%G$9#dV z1@}h&nBOEVm=T>k<`*uXk(rkGXGH#hPfbkEkc^VC17dncgxHC%q`_rC>^CR2t&y0#L-k%v2 zUA$k6%8|ZFbn$_-$MJkyC;u}69?)q8g!n+@PxL^D4@CY%-z19uQ2N{Bd_bqiXJo)b z8BbL4A)Ss?g!fS7Rk2A_@nNru0E@gT0%1O^stAPnu&QE{sNy5(KR-hiAIY4FDn6pB zNF6ATs46x|k3Du$6@df|cB%-3`0*F*~U2^AjTe7 zRRm(}aZyFtgf)pOK5>fN@BsD`*&vBBKB00$DeNayZklAb`=pZ_MoF%ypUlD#fqYW+ zhEkYMir$E7G|6^%k*LNMrA1l0MHv@m10>40NcG~hV)%4a_N>>7)2R8h>cwf2X-iZu zKr{j9^a4oTB|6W5SY4u%_q5zkB-@tg?4{Vx-X*FRr^)1hM)d+jGl5PofVR}@1rY1c zh+Yh58`WG4|2rz%p052OKdk$INAY00jcS%~my0l5IBL0u$wLe+S4{w7Xt`eHi;^0M91|SYzRAmt89K0yXAg8!yQHGb( znq&EM|Mlg}sJMMuJC`~beOWsfh|!m|Zv{G|FH7G#qtt&T;xydeaOr=fCu&Vyde*Ug z%`p4zip+~h#VeT?k&0JTDw;(qR*F<~wyo5;#6u`6RV08=R;oxei%7gCB5_{ZYZ*oK z;WeFp)PeGv=z|5uSb}%z4 z`gAZeD*AL#lX;Nn(;>H&;eXnDNGB-};vrQjAjCteQiDXL4!f<)YGcB-!x>Mc>aa=` z72zFLsTw3wbws3U#0dV!$dN2k5v(IBSd>CMqJlL@1nUbgSOAz`WK0pPFS0g@V11Fb zk$yX-f@KdbgY2e;XWH?ysX3;qMJfDaqFPtlfkU;vjM53c&85UFJD4w3wSX|cRMi5) z{8CkGkf_$^IGq}r!EK{szlGu{oYAotEFhfGF@p6A>kYvgn;s0!uiD4P{+Kh!zEd9? z^ZHlB5eQ|hP~^}&NR;a4*l8Sq9=3V}F3A6#A{P*SJA)q`N(K8V7)Rd&U%{x;^$9M=8wPW3O?8>HS?yTibnE zm?BE|#s2L9b)eiA`?m)zB1*IV*43QbJ}YC07|n|PTLY@Vm=*iC1}!4uv*Yv~c7*A) zt_bJsj3_EJJN7p{)Py)YX2T{b)FMZ#2h;Jr&1GprHxsr$sNz5gya!{ya{|J9FlOf@ z;?N=*G{=hrfHuxiaR9=cqv8OBIY-5zMYc|JPZ5W74SqZ3X5%2+r@5*PREIrRw87r< zw}>jui_;Z*^3z5D7>IdUQ$>~L#s0dVQmFG{f8F0Asx&`N|FJjU1XBcQe#R6*njiaH ze@bD_kGb`ikA1X=AT98+0-&)AR91j67pSZNVJ=Wv8Bz=v#br->Ss6mjMX}#H4Us%u ztg-?k9-xyIAaxh(GzMaIu}tIZMXAAz_hOY5fi9mGtE>!>%y~*>1w_n1Co4c(>SYCp z^`~NFWh7gt)?)ZvT(+65Q)}9@#?+@h8uJyk?hD+l@Scm~4y!b+(t@R;H0NH!|HQvk z;|Ef6sp<_74@*^VfP}wP^+uozf2rzCtAxMo6utR3p5S0v=0KXTO!bCR94u440pehp z>Wx6>V43L6zc8e&vTb^S-mg1LZpd5GODj#yRg&a9bYnmjT)d!T0K~-$G6pgPKwP|_ zLm<$(ctM81xuE__X?>;nR{KktQPHQDGNYnTFR4DYiaxFI`UD`H6`B`7m@8DDfG}66 zKDA2duR487J9?4GuVzG%r&m>;s0r~^kta#yR*|PwvAr4}0kFug@<5oYG?9TYSH=En zyj4_cb(}u;VZJflDlS)NE=8T!OcXP;E$iRGH@X4cRD<yk@ zqz;q~vA_Lp6@_{;PA~g7Uq^iMO7qQ(DeClQHh!W`Z^r%-yj8^Mt@N=fGqC-wj3TP^ zR_t%TsRQM$nA>mBmR9@T(rXKV{(oDw1qkzP)fOPkw^dtCFNRyM22yvcHUWs$tuh7emIci4Y}JV^&`s>Esx7BWUTjls0TDCMX$#Pn zdTjw>eVb^@S!hdJG29iG-IR8%F(bS0isPYHNZKUaJx)mYpJ4ZBut3c1Q6T|hZjTBH zkXZMqkO*|K?olCWlUVniA|zMy1PA*v2NLf-6%tBuuup{qh=YA9Bm$j-eIg_mF@9|# zB>U6G;@7$B8=f_~VQy(($oM2Q?vnEYcy_ z*e25P2~+pJ{H5vWJ|-OciRL6l5I@nJ1Va2I=7X&==i5X%K8#u)7Ne z!u?baGC;VW#{9~K=vABa-Dh5}0EF^HVk+IF?h_=b2*> zlFwDOD24vHo=Vz8NRGNwNhbj2(Tpj2a#U4|QkX~OR3Z}8CVFyQB&Z&jA}7bQF%>yE zu0lj9#N#SNZ6YTpoDjj3z0Qe@DXMZJn+>8WCsc^qL{)A~+}k(+%o`J*|3H{GCSH$# zFmFt}9<|9{XKdn*PyqUOY~qhlK$v3_e}n?U9GmzfRC_VJB`Lc-aYv|jYTlB>?z@`p zlHj){{s;vk9-z}BAa!p|{1FO>)mszv$X*kH8Sz^ae}od~vgOvqAEDYM*=|ex5eh`i zK&MAQTk7=)i1phN^k^V@)KLuYO3G#=<-==Ey(YTy!mBR&^KWlRzg2I#^|&kHHK3fV zI;0ij6Z`S#?*VAUcx?m_H{%n3zyjiCeBuvSK-w@q@dqq{t_|Z84pk|`h5@ag^#QMaf_gVHctOA|&iAmK+`#!frL~2s{s|M59 zHYqbI{WdA_?^UUT(Md^NA5Q^IP8UOIpPW%df+lAak)X*!k<{!E2}%?9Y4napgd|P; zPJ$wcY2xn-fDqHf?<6`zfuIjjp@o| zaUc7M93H{vnNt%W{ChIKDA7H_Z?SxoXlmMJfN32%HKT|CO-=kALx&ZhsR?@!d9&9c z0yHhr*ZV-+fz_Qz(6q$A-lr6I(-O|XB77YpLDPM50SJD&CKnLqbWJWG%;}n3LyO_e zq-?fNuA$VNnegH2E*Kpu({h$37l?R(Zsq`~J4=%bh}BsqlM761W@&N>bW>-RCf87z zB=>7_fruICk_%`{eR2V@e!nD_e4=JpF`Sc>EhV}BzgNc>{rQjA{r)%Cru&;rW%oG= zua4!l+%Rdy+_dXy=KN7}HF_Rme{SNx9|6Sv+{AxB0!Z+46aW1PfiC#D3Ez(pg63Oh@3hB>Xn>uS!|X>L=VvA)k>+P6B$4KeiSJtHB+`O(RkOLKZ9ztn6k3q@ zbNn!yLJJbk@jtW_B3zh`8fbnzbYVu3+*zoi#IJziWub_Yd{=T9xf3o#8Vlyab?C&ueZ0VLq?91%&y0;=eRHycjM^ z%3kytGMt*r693_f;WD?DYleWZ3Uti{Qg^uy1rV#tPi6?1h?Z-H2y~Ndxn{_4nGG*! zhJa`-&}9hFmii0G#)Ncy0R8U{llMl_VZ$ zm!D2)#Y(^Y0BFQYZ3GZED|MuSxLK*o50Eyj)a6H@Yr{%iembQMubo_efLI5+E&|$O zzx)8P{+cd7K&-!}%a1^3{WV>FI%WA;llB?H^0Ov0Dn8d}Zc_)NYb3WNb2|mCOMfxM zG`FqGD3Uen5`Sw(9jPQ*E+1Ozl;vlA`m}gipHU=h)@NR1;aM+Unk|K9zL6%aW>DK3 z8AY<@jU;hj0q(R}^G3qA^&N%b-I)GBC>t}1q|C-7aTn>GHf1&@Y+2=vZ>MC#rgUDb zId{~ij3Q~UDe*rYLLCCzl<-p#vZMp)(@n{c%k7db(Dmu2r1dhJVx5vGo84kN0zg!o zHN}9~-mEDG#P()gZ98QV+LD}dJI@pPVT>m9Lqj< zTgH@q@HWj*N?~r343*WdQ})3-{OSiF?Mo3od*4zdW5713qAa!?ZZUeEp`($o|>BQZd+X7uL@7CNNA#-$(<~E3!fiAa! zw$$e~5bJv+x2wqQGm7DXr0gSdJ8p14$mp)n&VX|u`KAB;zcVEK_ceSF;R9XxKq|kl z;RA8-zJxDx1W5GnYxDwL^zTdbqVQ)(^dF{M+szplf2d=`LwTA+?sqMK82vEm-lI?; z>N9zZmz4FlKU8=o^$sR{gZSHpT*&u_KTXP>O26M>zE$~Y65BiYu#E7-&yw8eLb|BK ze6{ph658LqkOFf4v!ti}%>jXU`7CKWPZkk@rWhVc%+Vy|cghm`;IUVh@BumhFspSe zF(;_ivk=)@e`WRYk9axBqw-=nrjYwfA>j1r4IyxFGyP7lhQhwP5a`mJ6cXND%&!3xZEo-&M%{%>~ggj3Dmf zN?e8sucCf;6)FcRB#65T!!GhcpjzR$f|+3@QG6>^?@DE)OQtQEjdH7@y#s=XZb=V--jXYM!EhdQihV-&d)AGy5vLFJ2cq|J- z_C$|mLGTs!a9+VYaWaU&2jL&OAf(oUf?0Gjh`G*#&UddMg diff --git a/managed/services/inventory/agents_test.go b/managed/services/inventory/agents_test.go index 9670256763..8e584380be 100644 --- a/managed/services/inventory/agents_test.go +++ b/managed/services/inventory/agents_test.go @@ -184,7 +184,6 @@ func TestAgents(t *testing.T) { exporter, err := as.Get(ctx, "/agent_id/00000000-0000-4000-8000-00000000000a") require.NoError(t, err) assert.Equal(t, expectedMongoDBExporter, exporter.(*inventoryv1.MongoDBExporter)) - }) t.Run("AddQANMySQLSlowlogAgent", func(t *testing.T) { From 35100a4352aa4d03df8a990f6b9366872297ff1d Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Sat, 3 Feb 2024 09:19:02 +0000 Subject: [PATCH 23/29] PMM-12811 remove a duplicate test --- api-tests/management/action/explain_test.go | 25 --------------------- 1 file changed, 25 deletions(-) diff --git a/api-tests/management/action/explain_test.go b/api-tests/management/action/explain_test.go index e1cee0c477..04156ca2bf 100644 --- a/api-tests/management/action/explain_test.go +++ b/api-tests/management/action/explain_test.go @@ -31,31 +31,6 @@ import ( func TestRunExplain(t *testing.T) { t.Skip("not implemented yet") - t.Run("ByQuery", func(t *testing.T) { - explainActionOK, err := client.Default.ActionsService.StartMySQLExplainAction(&actions.StartMySQLExplainActionParams{ - Context: pmmapitests.Context, - Body: actions.StartMySQLExplainActionBody{ - // PMMAgentID: "/agent_id/f235005b-9cca-4b73-bbbd-1251067c3138", - ServiceID: "/service_id/5a9a7aa6-7af4-47be-817c-6d88e955bff2", - QueryID: "3923dace316a86643fcf87cb45e0558a", - }, - }) - require.NoError(t, err) - require.NotEmpty(t, explainActionOK.Payload.ActionID) - - time.Sleep(2 * time.Second) - - actionOK, err := client.Default.ActionsService.GetAction(&actions.GetActionParams{ - Context: pmmapitests.Context, - Body: actions.GetActionBody{ - ActionID: explainActionOK.Payload.ActionID, - }, - }) - require.NoError(t, err) - require.Empty(t, actionOK.Payload.Error) - t.Log(actionOK.Payload.Output) - }) - t.Run("ByQueryID", func(t *testing.T) { explainActionOK, err := client.Default.ActionsService.StartMySQLExplainAction(&actions.StartMySQLExplainActionParams{ Context: pmmapitests.Context, From 993f1d3bee3f6b65a8633f4ed2de4ae494bdf8ad Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Mon, 5 Feb 2024 07:22:31 +0000 Subject: [PATCH 24/29] PMM-12811 follow up on review --- api/inventory/v1/agents.proto | 2 -- 1 file changed, 2 deletions(-) diff --git a/api/inventory/v1/agents.proto b/api/inventory/v1/agents.proto index edbd32b4a6..90acd85743 100644 --- a/api/inventory/v1/agents.proto +++ b/api/inventory/v1/agents.proto @@ -664,8 +664,6 @@ message GetAgentLogsResponse { // TODO Add VMAgent? -// TODO Change VMAgent? - message AddAgentRequest { oneof agent { AddPMMAgentParams pmm_agent = 1; From aa2153144755b8931f3840c464cf80a15d687577 Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Mon, 5 Feb 2024 21:08:51 +0000 Subject: [PATCH 25/29] PMM-12811 pass context to changeAgent --- managed/services/inventory/agents.go | 36 +++++++++---------- .../services/inventory/grpc/agents_server.go | 2 +- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/managed/services/inventory/agents.go b/managed/services/inventory/agents.go index a9512e2eae..cbf49158d5 100644 --- a/managed/services/inventory/agents.go +++ b/managed/services/inventory/agents.go @@ -67,9 +67,9 @@ func toInventoryAgent(q *reform.Querier, row *models.Agent, registry agentsRegis } // changeAgent changes common parameters for given Agent. -func (as *AgentsService) changeAgent(agentID string, common *inventoryv1.ChangeCommonAgentParams) (inventoryv1.Agent, error) { //nolint:ireturn +func (as *AgentsService) changeAgent(ctx context.Context, agentID string, common *inventoryv1.ChangeCommonAgentParams) (inventoryv1.Agent, error) { //nolint:ireturn var agent inventoryv1.Agent - e := as.db.InTransaction(func(tx *reform.TX) error { + e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { params := &models.ChangeCommonAgentParams{ Enabled: common.Enable, EnablePushMetrics: common.EnablePushMetrics, @@ -87,11 +87,9 @@ func (as *AgentsService) changeAgent(agentID string, common *inventoryv1.ChangeC } // List selects all Agents in a stable order for a given service. -// -//nolint:unparam func (as *AgentsService) List(ctx context.Context, filters models.AgentFilters) ([]inventoryv1.Agent, error) { var res []inventoryv1.Agent - e := as.db.InTransaction(func(tx *reform.TX) error { + e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { got := 0 if filters.PMMAgentID != "" { got++ @@ -202,7 +200,7 @@ func (as *AgentsService) AddNodeExporter(ctx context.Context, p *inventoryv1.Add // ChangeNodeExporter updates node_exporter Agent with given parameters. func (as *AgentsService) ChangeNodeExporter(ctx context.Context, p *inventoryv1.ChangeNodeExporterParams) (*inventoryv1.ChangeAgentResponse, error) { - ag, err := as.changeAgent(p.AgentId, p.Common) + ag, err := as.changeAgent(ctx, p.AgentId, p.Common) if err != nil { return nil, err } @@ -277,7 +275,7 @@ func (as *AgentsService) AddMySQLdExporter(ctx context.Context, p *inventoryv1.A // ChangeMySQLdExporter updates mysqld_exporter Agent with given parameters. func (as *AgentsService) ChangeMySQLdExporter(ctx context.Context, p *inventoryv1.ChangeMySQLdExporterParams) (*inventoryv1.ChangeAgentResponse, error) { - ag, err := as.changeAgent(p.AgentId, p.Common) + ag, err := as.changeAgent(ctx, p.AgentId, p.Common) if err != nil { return nil, err } @@ -349,7 +347,7 @@ func (as *AgentsService) AddMongoDBExporter(ctx context.Context, p *inventoryv1. // ChangeMongoDBExporter updates mongo_exporter Agent with given parameters. func (as *AgentsService) ChangeMongoDBExporter(ctx context.Context, p *inventoryv1.ChangeMongoDBExporterParams) (*inventoryv1.ChangeAgentResponse, error) { - ag, err := as.changeAgent(p.AgentId, p.Common) + ag, err := as.changeAgent(ctx, p.AgentId, p.Common) if err != nil { return nil, err } @@ -418,7 +416,7 @@ func (as *AgentsService) AddQANMySQLPerfSchemaAgent(ctx context.Context, p *inve // ChangeQANMySQLPerfSchemaAgent updates MySQL PerfSchema QAN Agent with given parameters. func (as *AgentsService) ChangeQANMySQLPerfSchemaAgent(ctx context.Context, p *inventoryv1.ChangeQANMySQLPerfSchemaAgentParams) (*inventoryv1.ChangeAgentResponse, error) { //nolint:lll - ag, err := as.changeAgent(p.AgentId, p.Common) + ag, err := as.changeAgent(ctx, p.AgentId, p.Common) if err != nil { return nil, err } @@ -491,7 +489,7 @@ func (as *AgentsService) AddQANMySQLSlowlogAgent(ctx context.Context, p *invento // ChangeQANMySQLSlowlogAgent updates MySQL Slowlog QAN Agent with given parameters. func (as *AgentsService) ChangeQANMySQLSlowlogAgent(ctx context.Context, p *inventoryv1.ChangeQANMySQLSlowlogAgentParams) (*inventoryv1.ChangeAgentResponse, error) { - ag, err := as.changeAgent(p.AgentId, p.Common) + ag, err := as.changeAgent(ctx, p.AgentId, p.Common) if err != nil { return nil, err } @@ -562,7 +560,7 @@ func (as *AgentsService) AddPostgresExporter(ctx context.Context, p *inventoryv1 // ChangePostgresExporter updates postgres_exporter Agent with given parameters. func (as *AgentsService) ChangePostgresExporter(ctx context.Context, p *inventoryv1.ChangePostgresExporterParams) (*inventoryv1.ChangeAgentResponse, error) { - ag, err := as.changeAgent(p.AgentId, p.Common) + ag, err := as.changeAgent(ctx, p.AgentId, p.Common) if err != nil { return nil, err } @@ -632,7 +630,7 @@ func (as *AgentsService) AddQANMongoDBProfilerAgent(ctx context.Context, p *inve // //nolint:lll,dupl func (as *AgentsService) ChangeQANMongoDBProfilerAgent(ctx context.Context, p *inventoryv1.ChangeQANMongoDBProfilerAgentParams) (*inventoryv1.ChangeAgentResponse, error) { - ag, err := as.changeAgent(p.AgentId, p.Common) + ag, err := as.changeAgent(ctx, p.AgentId, p.Common) if err != nil { return nil, err } @@ -702,7 +700,7 @@ func (as *AgentsService) AddProxySQLExporter(ctx context.Context, p *inventoryv1 // ChangeProxySQLExporter updates proxysql_exporter Agent with given parameters. func (as *AgentsService) ChangeProxySQLExporter(ctx context.Context, p *inventoryv1.ChangeProxySQLExporterParams) (*inventoryv1.ChangeAgentResponse, error) { - ag, err := as.changeAgent(p.AgentId, p.Common) + ag, err := as.changeAgent(ctx, p.AgentId, p.Common) if err != nil { return nil, err } @@ -769,7 +767,7 @@ func (as *AgentsService) AddQANPostgreSQLPgStatementsAgent(ctx context.Context, // ChangeQANPostgreSQLPgStatementsAgent updates PostgreSQL Pg stat statements QAN Agent with given parameters. func (as *AgentsService) ChangeQANPostgreSQLPgStatementsAgent(ctx context.Context, p *inventoryv1.ChangeQANPostgreSQLPgStatementsAgentParams) (*inventoryv1.ChangeAgentResponse, error) { //nolint:lll - ag, err := as.changeAgent(p.AgentId, p.Common) + ag, err := as.changeAgent(ctx, p.AgentId, p.Common) if err != nil { return nil, err } @@ -837,7 +835,7 @@ func (as *AgentsService) AddQANPostgreSQLPgStatMonitorAgent(ctx context.Context, // ChangeQANPostgreSQLPgStatMonitorAgent updates PostgreSQL Pg stat monitor QAN Agent with given parameters. func (as *AgentsService) ChangeQANPostgreSQLPgStatMonitorAgent(ctx context.Context, req *inventoryv1.ChangeQANPostgreSQLPgStatMonitorAgentParams) (*inventoryv1.ChangeAgentResponse, error) { //nolint:lll - ag, err := as.changeAgent(req.AgentId, req.Common) + ag, err := as.changeAgent(ctx, req.AgentId, req.Common) if err != nil { return nil, err } @@ -895,7 +893,7 @@ func (as *AgentsService) AddRDSExporter(ctx context.Context, p *inventoryv1.AddR // ChangeRDSExporter updates rds_exporter Agent with given parameters. func (as *AgentsService) ChangeRDSExporter(ctx context.Context, req *inventoryv1.ChangeRDSExporterParams) (*inventoryv1.ChangeAgentResponse, error) { - ag, err := as.changeAgent(req.AgentId, req.Common) + ag, err := as.changeAgent(ctx, req.AgentId, req.Common) if err != nil { return nil, err } @@ -957,8 +955,8 @@ func (as *AgentsService) AddExternalExporter(ctx context.Context, p *inventoryv1 } // ChangeExternalExporter updates external-exporter Agent with given parameters. -func (as *AgentsService) ChangeExternalExporter(req *inventoryv1.ChangeExternalExporterParams) (*inventoryv1.ChangeAgentResponse, error) { - ag, err := as.changeAgent(req.AgentId, req.Common) +func (as *AgentsService) ChangeExternalExporter(ctx context.Context, req *inventoryv1.ChangeExternalExporterParams) (*inventoryv1.ChangeAgentResponse, error) { + ag, err := as.changeAgent(ctx, req.AgentId, req.Common) if err != nil { return nil, err } @@ -1015,7 +1013,7 @@ func (as *AgentsService) ChangeAzureDatabaseExporter( ctx context.Context, req *inventoryv1.ChangeAzureDatabaseExporterParams, ) (*inventoryv1.ChangeAgentResponse, error) { - ag, err := as.changeAgent(req.AgentId, req.Common) + ag, err := as.changeAgent(ctx, req.AgentId, req.Common) if err != nil { return nil, err } diff --git a/managed/services/inventory/grpc/agents_server.go b/managed/services/inventory/grpc/agents_server.go index ff9387b4c0..fcbba9a843 100644 --- a/managed/services/inventory/grpc/agents_server.go +++ b/managed/services/inventory/grpc/agents_server.go @@ -240,7 +240,7 @@ func (s *agentsServer) ChangeAgent(ctx context.Context, req *inventoryv1.ChangeA case *inventoryv1.ChangeAgentRequest_RdsExporter: return s.s.ChangeRDSExporter(ctx, req.GetRdsExporter()) case *inventoryv1.ChangeAgentRequest_ExternalExporter: - return s.s.ChangeExternalExporter(req.GetExternalExporter()) + return s.s.ChangeExternalExporter(ctx, req.GetExternalExporter()) case *inventoryv1.ChangeAgentRequest_AzureDatabaseExporter: return s.s.ChangeAzureDatabaseExporter(ctx, req.GetAzureDatabaseExporter()) case *inventoryv1.ChangeAgentRequest_QanMysqlPerfschemaAgent: From f4293f0ab8e11015402674e0d7727d8f1e3e6fc8 Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Mon, 5 Feb 2024 22:05:33 +0000 Subject: [PATCH 26/29] PMM-12811 move tableCount to MysqldExporter --- .../inventory/add_agent_mysqld_exporter.go | 2 +- .../inventory/agents_mysqld_exporter_test.go | 6 +- api/inventory/v1/agents.pb.go | 3078 ++++++++--------- api/inventory/v1/agents.pb.validate.go | 6 +- api/inventory/v1/agents.proto | 8 +- .../agents_service/add_agent_responses.go | 6 +- .../agents_service/change_agent_responses.go | 6 +- .../agents_service/get_agent_responses.go | 3 + .../agents_service/list_agents_responses.go | 3 + api/inventory/v1/json/v1.json | 76 +- .../my_sql_service/add_my_sql_responses.go | 3 + .../client/rds_service/add_rds_responses.go | 3 + api/management/v1/json/v1.json | 32 +- api/swagger/swagger-dev.json | 120 +- api/swagger/swagger.json | 36 +- descriptor.bin | Bin 680803 -> 680604 bytes managed/services/converters.go | 1 + managed/services/inventory/agents.go | 6 +- managed/services/inventory/agents_test.go | 6 +- .../services/inventory/grpc/agents_server.go | 3 +- managed/services/inventory/services_test.go | 4 +- 21 files changed, 1732 insertions(+), 1676 deletions(-) diff --git a/admin/commands/inventory/add_agent_mysqld_exporter.go b/admin/commands/inventory/add_agent_mysqld_exporter.go index 095eb92704..2d51e9e0ef 100644 --- a/admin/commands/inventory/add_agent_mysqld_exporter.go +++ b/admin/commands/inventory/add_agent_mysqld_exporter.go @@ -156,6 +156,6 @@ func (cmd *AddAgentMysqldExporterCommand) RunCmd() (commands.Result, error) { } return &addAgentMysqldExporterResult{ Agent: resp.Payload.MysqldExporter, - TableCount: resp.Payload.TableCount, + TableCount: resp.Payload.MysqldExporter.TableCount, }, nil } diff --git a/api-tests/inventory/agents_mysqld_exporter_test.go b/api-tests/inventory/agents_mysqld_exporter_test.go index 0f73c7222d..80a75c37c6 100644 --- a/api-tests/inventory/agents_mysqld_exporter_test.go +++ b/api-tests/inventory/agents_mysqld_exporter_test.go @@ -70,7 +70,7 @@ func TestMySQLdExporter(t *testing.T) { TablestatsGroupTableLimit: 2000, }, }) - assert.EqualValues(t, 0, mySqldExporter.TableCount) + assert.EqualValues(t, 0, mySqldExporter.MysqldExporter.TableCount) assert.EqualValues(t, 2000, mySqldExporter.MysqldExporter.TablestatsGroupTableLimit) agentID := mySqldExporter.MysqldExporter.AgentID defer pmmapitests.RemoveAgents(t, agentID) @@ -215,7 +215,7 @@ func TestMySQLdExporter(t *testing.T) { TablestatsGroupTableLimit: 2000, }, }) - assert.Greater(t, mySqldExporter.TableCount, int32(0)) + assert.Greater(t, mySqldExporter.MysqldExporter.TableCount, int32(0)) assert.EqualValues(t, 2000, mySqldExporter.MysqldExporter.TablestatsGroupTableLimit) agentID := mySqldExporter.MysqldExporter.AgentID defer pmmapitests.RemoveAgents(t, agentID) @@ -386,7 +386,7 @@ func TestMySQLdExporter(t *testing.T) { PushMetrics: true, }, }) - assert.EqualValues(t, 0, mySqldExporter.TableCount) + assert.EqualValues(t, 0, mySqldExporter.MysqldExporter.TableCount) assert.EqualValues(t, 2000, mySqldExporter.MysqldExporter.TablestatsGroupTableLimit) agentID := mySqldExporter.MysqldExporter.AgentID defer pmmapitests.RemoveAgents(t, agentID) diff --git a/api/inventory/v1/agents.pb.go b/api/inventory/v1/agents.pb.go index 44f0515de4..23e1691e5c 100644 --- a/api/inventory/v1/agents.pb.go +++ b/api/inventory/v1/agents.pb.go @@ -462,6 +462,8 @@ type MySQLdExporter struct { PushMetricsEnabled bool `protobuf:"varint,13,opt,name=push_metrics_enabled,json=pushMetricsEnabled,proto3" json:"push_metrics_enabled,omitempty"` // List of disabled collector names. DisabledCollectors []string `protobuf:"bytes,14,rep,name=disabled_collectors,json=disabledCollectors,proto3" json:"disabled_collectors,omitempty"` + // Actual table count at the moment of adding. + TableCount int32 `protobuf:"varint,15,opt,name=table_count,json=tableCount,proto3" json:"table_count,omitempty"` // Actual Agent status. Status AgentStatus `protobuf:"varint,20,opt,name=status,proto3,enum=inventory.v1.AgentStatus" json:"status,omitempty"` // Listen port for scraping metrics. @@ -606,6 +608,13 @@ func (x *MySQLdExporter) GetDisabledCollectors() []string { return nil } +func (x *MySQLdExporter) GetTableCount() int32 { + if x != nil { + return x.TableCount + } + return 0 +} + func (x *MySQLdExporter) GetStatus() AgentStatus { if x != nil { return x.Status @@ -3527,8 +3536,6 @@ type AddAgentResponse struct { // *AddAgentResponse_QanPostgresqlPgstatementsAgent // *AddAgentResponse_QanPostgresqlPgstatmonitorAgent Agent isAddAgentResponse_Agent `protobuf_oneof:"agent"` - // Actual table count for SQL databases at the moment of adding. - TableCount int32 `protobuf:"varint,20,opt,name=table_count,json=tableCount,proto3" json:"table_count,omitempty"` } func (x *AddAgentResponse) Reset() { @@ -3668,13 +3675,6 @@ func (x *AddAgentResponse) GetQanPostgresqlPgstatmonitorAgent() *QANPostgreSQLPg return nil } -func (x *AddAgentResponse) GetTableCount() int32 { - if x != nil { - return x.TableCount - } - return 0 -} - type isAddAgentResponse_Agent interface { isAddAgentResponse_Agent() } @@ -3921,7 +3921,6 @@ type isChangeAgentRequest_Agent interface { } type ChangeAgentRequest_NodeExporter struct { - // ChangePMMAgentParams pmm_agent = 1; NodeExporter *ChangeNodeExporterParams `protobuf:"bytes,2,opt,name=node_exporter,json=nodeExporter,proto3,oneof"` } @@ -4020,8 +4019,6 @@ type ChangeAgentResponse struct { // *ChangeAgentResponse_QanPostgresqlPgstatementsAgent // *ChangeAgentResponse_QanPostgresqlPgstatmonitorAgent Agent isChangeAgentResponse_Agent `protobuf_oneof:"agent"` - // Actual table count for SQL databases at the moment of adding. - TableCount int32 `protobuf:"varint,20,opt,name=table_count,json=tableCount,proto3" json:"table_count,omitempty"` } func (x *ChangeAgentResponse) Reset() { @@ -4154,19 +4151,11 @@ func (x *ChangeAgentResponse) GetQanPostgresqlPgstatmonitorAgent() *QANPostgreSQ return nil } -func (x *ChangeAgentResponse) GetTableCount() int32 { - if x != nil { - return x.TableCount - } - return 0 -} - type isChangeAgentResponse_Agent interface { isChangeAgentResponse_Agent() } type ChangeAgentResponse_NodeExporter struct { - // PMMAgent pmm_agent = 1; NodeExporter *NodeExporter `protobuf:"bytes,2,opt,name=node_exporter,json=nodeExporter,proto3,oneof"` } @@ -7320,7 +7309,7 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 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, 0xfd, 0x06, 0x0a, 0x0e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9e, 0x07, 0x0a, 0x0e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, @@ -7354,174 +7343,85 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 0x63, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x15, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x3a, - 0x0a, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x17, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, - 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, - 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, - 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, - 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x19, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 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, 0xc5, 0x06, 0x0a, 0x0f, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, - 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, - 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x74, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, - 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, - 0x66, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, - 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x54, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, - 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x30, 0x0a, - 0x14, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x70, 0x75, 0x73, - 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, - 0x2f, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, - 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x10, 0x73, 0x74, 0x61, 0x74, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x63, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x32, - 0x0a, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, - 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, - 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, - 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x1a, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, - 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0xeb, 0x05, - 0x0a, 0x10, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 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, 0x20, 0x0a, - 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, - 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, - 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, - 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, - 0x12, 0x55, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x75, 0x73, 0x68, 0x5f, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, - 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x15, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2a, - 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, - 0x61, 0x74, 0x68, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, - 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, - 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, - 0x30, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, - 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x61, - 0x75, 0x74, 0x6f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, - 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0xb9, 0x05, 0x0a, 0x10, - 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 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, 0x20, 0x0a, 0x0c, 0x70, - 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, - 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x55, - 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x12, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x15, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2a, 0x0a, 0x11, - 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, - 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, - 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x81, 0x06, 0x0a, 0x17, 0x51, 0x41, 0x4e, 0x4d, - 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x15, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, + 0x3a, 0x0a, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x17, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, + 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, + 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, + 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, + 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0xc5, 0x06, 0x0a, 0x0f, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, + 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, + 0x69, 0x66, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, + 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x54, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x30, + 0x0a, 0x14, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x70, 0x75, + 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 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, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x10, 0x73, 0x74, 0x61, 0x74, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x32, 0x0a, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, + 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, + 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x1a, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, + 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0xeb, + 0x05, 0x0a, 0x10, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, @@ -7534,41 +7434,84 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, - 0x63, 0x65, 0x72, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, - 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x38, 0x0a, 0x18, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, - 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, - 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x12, 0x36, 0x0a, 0x17, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, - 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x15, 0x71, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, - 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x5c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x37, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, - 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, + 0x79, 0x12, 0x55, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x75, 0x73, 0x68, + 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x15, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, + 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, + 0x70, 0x61, 0x74, 0x68, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, + 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, + 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x12, 0x30, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, + 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, + 0x61, 0x75, 0x74, 0x6f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, + 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0xb9, 0x05, 0x0a, + 0x10, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 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, 0x20, 0x0a, 0x0c, + 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, + 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, + 0x55, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, - 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x15, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, - 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0xae, 0x06, 0x0a, 0x14, - 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, + 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x15, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2a, 0x0a, + 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, + 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, + 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x81, 0x06, 0x0a, 0x17, 0x51, 0x41, 0x4e, + 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, @@ -7596,14 +7539,11 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 0x68, 0x12, 0x36, 0x0a, 0x17, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x71, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, - 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x61, 0x78, - 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, - 0x7a, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x53, 0x6c, 0x6f, - 0x77, 0x6c, 0x6f, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x59, 0x0a, 0x0d, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0f, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, - 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, + 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x5c, 0x0a, 0x0d, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, @@ -7618,88 +7558,8 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 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, 0xe3, 0x04, 0x0a, - 0x17, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x74, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, - 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, - 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, - 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x12, 0x5c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, - 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x43, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x31, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, - 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, - 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, - 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 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, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x52, 0x17, 0x71, 0x75, 0x65, 0x72, 0x79, - 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x22, 0x8c, 0x05, 0x0a, 0x1e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, - 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x41, 0x67, 0x65, 0x6e, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, - 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, - 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, - 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, - 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x10, 0x0a, - 0x03, 0x74, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, - 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, - 0x66, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, - 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x63, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, - 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, - 0x70, 0x61, 0x74, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, - 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, - 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, - 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 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, 0xc6, 0x05, 0x0a, 0x1f, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xae, 0x06, 0x0a, + 0x14, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, @@ -7713,518 +7573,647 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, - 0x69, 0x66, 0x79, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, - 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x36, 0x0a, 0x17, 0x71, 0x75, 0x65, 0x72, 0x79, - 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x71, 0x75, 0x65, 0x72, 0x79, 0x45, - 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, - 0x64, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, + 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, + 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, + 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x38, + 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x12, 0x36, 0x0a, 0x17, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x15, 0x71, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, + 0x65, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x61, + 0x78, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x53, 0x6c, + 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x59, 0x0a, + 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0f, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, + 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, + 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, + 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0xe3, 0x04, + 0x0a, 0x17, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x74, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, + 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, + 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x12, 0x5c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, + 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, + 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, + 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, + 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 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, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x52, 0x17, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x22, 0x8c, 0x05, 0x0a, 0x1e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, + 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x41, 0x67, 0x65, 0x6e, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, + 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, + 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, + 0x73, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, + 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x10, + 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, + 0x69, 0x66, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, + 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x63, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x3e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, + 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x31, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, + 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, + 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 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, 0xc6, 0x05, 0x0a, 0x1f, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, + 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, + 0x72, 0x41, 0x67, 0x65, 0x6e, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, + 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, + 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, + 0x72, 0x69, 0x66, 0x79, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x28, + 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x36, 0x0a, 0x17, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x12, 0x64, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, + 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, + 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x15, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, + 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0xc3, 0x05, 0x0a, 0x0b, + 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, + 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, + 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x77, 0x73, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x4b, 0x65, 0x79, 0x12, 0x50, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, - 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x15, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, - 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, - 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0xc3, 0x05, 0x0a, 0x0b, 0x52, - 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, - 0x61, 0x77, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x77, 0x73, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, - 0x65, 0x79, 0x12, 0x50, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 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, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x62, 0x61, 0x73, 0x69, - 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x62, 0x61, 0x73, 0x69, 0x63, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x3a, - 0x0a, 0x19, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x17, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x75, - 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, - 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, - 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x30, 0x0a, - 0x14, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x61, 0x75, 0x74, - 0x6f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 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, 0xfd, 0x03, 0x0a, 0x10, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x25, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x73, 0x4f, - 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x55, 0x0a, 0x0d, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x30, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, - 0x74, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x12, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, - 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 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, 0x05, 0x0a, 0x15, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, - 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x43, 0x0a, 0x1e, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x1b, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, - 0x61, 0x73, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x12, 0x3f, 0x0a, 0x1c, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, - 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x5a, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, 0x43, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x31, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, - 0x72, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x12, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x61, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x62, 0x61, 0x73, + 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x62, 0x61, 0x73, 0x69, 0x63, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, + 0x3a, 0x0a, 0x19, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x17, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x70, + 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x70, 0x75, 0x73, 0x68, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2a, 0x0a, + 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, + 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x30, + 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, + 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x61, 0x75, + 0x74, 0x6f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 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, 0xfd, 0x03, 0x0a, 0x10, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x25, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x73, + 0x4f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x55, 0x0a, 0x0d, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x30, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, + 0x72, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x12, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, - 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, - 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0xdd, 0x01, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x3b, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x70, 0x48, 0x01, 0x52, 0x0c, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x11, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x42, 0x16, - 0x0a, 0x14, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xa5, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0c, - 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, - 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x0a, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x09, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0xe7, - 0x09, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x08, 0x76, 0x6d, - 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x4d, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x52, 0x07, 0x76, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x0d, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, - 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x45, 0x0a, - 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, - 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x0f, 0x6d, - 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4b, - 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, - 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x11, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x62, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, - 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, - 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, - 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x59, 0x0a, 0x17, - 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, - 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 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, 0x05, 0x0a, 0x15, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x20, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, + 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x43, 0x0a, + 0x1e, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, + 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1b, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x1c, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x5a, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x2e, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, + 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, + 0x6f, 0x72, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x12, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x45, 0x78, 0x65, 0x63, 0x50, 0x61, 0x74, + 0x68, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, + 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0xdd, 0x01, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x3b, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x70, 0x48, 0x01, 0x52, 0x0c, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, + 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x11, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x88, + 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x42, + 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xa5, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, + 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x0a, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, + 0xe7, 0x09, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x08, 0x76, + 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x4d, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x76, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, + 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x45, + 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, + 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x0f, + 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, + 0x4b, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, + 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, + 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x11, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, + 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x62, 0x0a, 0x1a, 0x71, 0x61, 0x6e, + 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, - 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, - 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, - 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, - 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x77, 0x0a, 0x21, 0x71, - 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7a, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, - 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, - 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, - 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, - 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, - 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x12, 0x4b, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x12, 0x3c, 0x0a, - 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0e, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, 0x0b, - 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x5b, 0x0a, 0x17, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x22, 0x35, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, - 0x8b, 0x0a, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, - 0x00, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x07, 0x76, - 0x6d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x4d, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x07, 0x76, 0x6d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x41, - 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x12, 0x47, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, 0x71, - 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x6d, 0x6f, - 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, - 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, + 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x59, 0x0a, + 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, + 0x6f, 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, + 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, + 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, + 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, + 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, + 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x77, 0x0a, 0x21, + 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, + 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, + 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, + 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7a, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, + 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, + 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, + 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, + 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x12, 0x4b, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 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, 0x12, 0x3c, + 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0e, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x52, + 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x5b, 0x0a, 0x17, + 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, + 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x22, 0x35, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x22, 0x8b, 0x0a, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x48, 0x00, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x07, + 0x76, 0x6d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x4d, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x07, 0x76, 0x6d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x12, + 0x41, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, 0x4c, + 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, 0x73, + 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x6d, + 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, + 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, + 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, - 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, - 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, - 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, + 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, + 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, + 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x71, + 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, + 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, + 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, + 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, + 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, + 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, + 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, + 0x62, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x79, + 0x0a, 0x21, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, + 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, + 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, + 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, 0x6e, + 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, + 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, + 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, + 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, + 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x5d, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, + 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0x4f, + 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, + 0x6a, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x3e, 0x0a, 0x1c, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, + 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x18, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x6f, + 0x67, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xd7, 0x0a, 0x0a, 0x0f, + 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3e, 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, + 0x4a, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6e, + 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x0f, 0x6d, + 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x6d, + 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x53, 0x0a, + 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, + 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, + 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x12, 0x56, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, + 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, + 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x11, 0x70, 0x72, + 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, + 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x12, 0x56, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, + 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0c, 0x72, 0x64, + 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x64, 0x64, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x12, 0x66, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x6d, 0x0a, 0x1a, 0x71, + 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x71, 0x61, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x17, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, - 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, - 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, - 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, - 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, - 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, - 0x21, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, - 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, - 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, - 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, - 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, - 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, + 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, + 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x12, 0x6d, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, + 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, + 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, + 0x64, 0x62, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, + 0x82, 0x01, 0x0a, 0x21, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, + 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, + 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, + 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x12, 0x85, 0x01, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, + 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, + 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x36, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, - 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, - 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x5d, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, - 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, - 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0x4f, 0x0a, - 0x13, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x6a, - 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x3e, 0x0a, 0x1c, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, - 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x18, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x6f, 0x67, - 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xd7, 0x0a, 0x0a, 0x0f, 0x41, - 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, - 0x0a, 0x09, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x64, 0x64, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x4a, - 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, - 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x0f, 0x6d, 0x79, - 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, - 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x10, - 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, - 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x12, 0x56, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, - 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, - 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x11, 0x70, 0x72, 0x6f, - 0x78, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, - 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x12, 0x56, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, - 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0c, 0x72, 0x64, 0x73, - 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x64, 0x64, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x12, 0x66, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, - 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x48, 0x00, 0x52, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, - 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x6d, 0x0a, 0x1a, 0x71, 0x61, - 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, - 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, - 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x17, 0x71, 0x61, 0x6e, - 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, - 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, - 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, - 0x6d, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, - 0x62, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x82, - 0x01, 0x0a, 0x21, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, - 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, - 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, - 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x12, 0x85, 0x01, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, - 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, - 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x36, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, - 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, - 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, - 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x22, 0xf9, 0x09, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x70, 0x6d, 0x6d, - 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x12, 0x41, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, 0x51, - 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x79, - 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x10, - 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, - 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, + 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, + 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, + 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xd8, 0x09, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x70, 0x6d, + 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x4d, 0x4d, + 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x12, 0x41, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x64, 0x5f, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x79, 0x53, + 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x6d, + 0x79, 0x73, 0x71, 0x6c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, + 0x10, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, + 0x62, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x6f, 0x73, + 0x74, 0x67, 0x72, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, + 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x78, 0x79, - 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x73, 0x71, 0x6c, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x5d, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x64, - 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, - 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, - 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, - 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, - 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, 0x73, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x71, 0x61, - 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, - 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, - 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, - 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, - 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x5f, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x6f, - 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, - 0x21, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, - 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, - 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, - 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, 0x6e, 0x5f, - 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, - 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, - 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, - 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, - 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x64, 0x73, 0x5f, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x44, 0x53, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x64, 0x73, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x5d, 0x0a, 0x17, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, + 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, + 0x71, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, + 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x50, 0x65, 0x72, 0x66, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x17, 0x71, + 0x61, 0x6e, 0x5f, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, + 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, + 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x48, 0x00, 0x52, 0x14, 0x71, 0x61, 0x6e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x53, 0x6c, 0x6f, 0x77, + 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x1a, 0x71, 0x61, 0x6e, 0x5f, + 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, 0x62, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, + 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x4d, + 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x71, 0x61, 0x6e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x64, + 0x62, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x79, + 0x0a, 0x21, 0x71, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, + 0x5f, 0x70, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, + 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1e, 0x71, 0x61, 0x6e, 0x50, 0x6f, + 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x7c, 0x0a, 0x22, 0x71, 0x61, 0x6e, + 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x5f, 0x70, 0x67, 0x73, 0x74, + 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, + 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, + 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, + 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xc1, 0x0a, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, @@ -8309,7 +8298,7 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x22, 0xc5, 0x09, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x22, 0xa4, 0x09, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, @@ -8383,294 +8372,347 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1f, 0x71, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x50, 0x67, 0x73, 0x74, 0x61, 0x74, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xdc, 0x01, 0x0a, - 0x11, 0x41, 0x64, 0x64, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, - 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x73, 0x4f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, - 0x49, 0x64, 0x12, 0x56, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x4d, 0x4d, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x3f, 0x0a, 0x11, 0x43, 0x75, + 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xdc, 0x01, 0x0a, 0x11, + 0x41, 0x64, 0x64, 0x50, 0x4d, 0x4d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x12, 0x2e, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x73, 0x4f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x49, + 0x64, 0x12, 0x56, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x4d, 0x4d, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x8f, 0x03, 0x0a, 0x15, 0x41, + 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x5a, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, + 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, + 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x33, 0x0a, + 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, + 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x7d, 0x0a, 0x18, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x9d, 0x06, 0x0a, 0x17, + 0x41, 0x64, 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, + 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, + 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, + 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, + 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, + 0x12, 0x3f, 0x0a, 0x1c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, + 0x74, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x12, 0x5c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, + 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0c, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x33, 0x0a, 0x09, + 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, + 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x8f, 0x03, 0x0a, 0x15, - 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x5a, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, - 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, - 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x33, - 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, - 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x7d, 0x0a, - 0x18, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7f, 0x0a, 0x1a, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x9d, 0x06, 0x0a, - 0x17, 0x41, 0x64, 0x64, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, - 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, - 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, - 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, - 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, - 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, - 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, - 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, - 0x79, 0x12, 0x3f, 0x0a, 0x1c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x12, 0x5c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x79, 0x53, 0x51, - 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xe9, 0x07, 0x0a, + 0x18, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, + 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, + 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x2e, + 0x0a, 0x13, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x6c, 0x73, + 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x48, + 0x0a, 0x21, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x74, 0x6c, 0x73, 0x43, 0x65, + 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6c, 0x65, + 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, + 0x63, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, + 0x5d, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0b, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x12, + 0x37, 0x0a, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x16, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, + 0x2b, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x61, 0x74, + 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x11, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, + 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, + 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x80, 0x01, 0x0a, 0x1b, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x92, 0x06, 0x0a, 0x19, + 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, + 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, + 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, + 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, + 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x5e, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, + 0x64, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x08, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, + 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, + 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x15, 0x0a, + 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, + 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, + 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, + 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x64, 0x69, 0x73, + 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x12, 0x61, 0x75, 0x74, 0x6f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, + 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x81, 0x01, 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x67, + 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x95, 0x05, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x78, + 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, + 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, + 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, + 0x12, 0x5e, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, + 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x08, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, + 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0e, 0x20, + 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, - 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x33, 0x0a, - 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, + 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x7f, 0x0a, 0x1a, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x64, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, - 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xe9, 0x07, - 0x0a, 0x18, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, - 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, - 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, - 0x2e, 0x0a, 0x13, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x6c, - 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, - 0x48, 0x0a, 0x21, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x74, 0x6c, 0x73, 0x43, - 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6c, - 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, - 0x5f, 0x63, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, - 0x12, 0x5d, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, - 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, - 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0b, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, - 0x6d, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, - 0x12, 0x37, 0x0a, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x16, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x61, - 0x74, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, - 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, - 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, - 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x1a, 0x3f, 0x0a, 0x11, 0x43, 0x75, 0x73, 0x74, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x81, 0x01, 0x0a, + 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, + 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x22, 0xe6, 0x05, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, + 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, + 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, + 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, + 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, + 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x28, + 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, + 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x65, + 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, + 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, + 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0d, + 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, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, + 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, + 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, + 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x80, 0x01, 0x0a, 0x1b, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x45, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, - 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x92, 0x06, 0x0a, - 0x19, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, - 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, - 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, - 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, - 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, - 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x5e, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x64, 0x64, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x08, 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, 0x12, 0x21, 0x0a, 0x0c, - 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, - 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x15, - 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, - 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, - 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x64, 0x69, - 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x12, 0x61, 0x75, 0x74, 0x6f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, - 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 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, 0x81, 0x01, 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x73, 0x74, - 0x67, 0x72, 0x65, 0x73, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x95, 0x05, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, - 0x78, 0x79, 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, - 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, - 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x12, 0x5e, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x78, 0x79, - 0x53, 0x51, 0x4c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 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, 0x08, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, - 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x33, - 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x78, - 0x70, 0x6f, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 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, 0x81, 0x01, - 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x51, 0x4c, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, - 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x22, 0xe6, 0x05, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, - 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x88, 0x01, 0x0a, 0x23, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, 0x66, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x93, 0x06, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, + 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, @@ -8695,37 +8737,153 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, - 0x65, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, - 0x4c, 0x50, 0x65, 0x72, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x31, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, 0x66, + 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, + 0x6d, 0x61, 0x78, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x62, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, + 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, - 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x73, 0x6b, 0x69, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x0e, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, - 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, + 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x88, 0x01, 0x0a, 0x23, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x50, 0x65, 0x72, - 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x93, 0x06, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, - 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x85, 0x01, 0x0a, 0x20, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, + 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x22, 0xa7, 0x06, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, + 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, + 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, + 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x2e, 0x0a, 0x13, + 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x6c, 0x73, 0x43, 0x65, + 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x48, 0x0a, 0x21, + 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, + 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x28, 0x0a, + 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x65, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, + 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0c, 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, 0x12, 0x39, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x12, 0x37, 0x0a, + 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, + 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x88, 0x01, 0x0a, + 0x23, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, + 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, + 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xbe, 0x05, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x51, + 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, + 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, + 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, + 0x79, 0x12, 0x6c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, + 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x08, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, + 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, + 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, + 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, + 0x65, 0x79, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, + 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x8f, 0x01, 0x0a, 0x2a, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, + 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xf6, 0x05, 0x0a, 0x28, 0x41, + 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, + 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, @@ -8739,476 +8897,304 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, - 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, - 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, - 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x64, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, - 0x70, 0x6c, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, - 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x5f, - 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x12, 0x6d, 0x61, 0x78, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x12, 0x62, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, - 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, + 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, + 0x34, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, + 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x6d, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, + 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, + 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 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, 0x0a, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, + 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, + 0x6e, 0x67, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, + 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, + 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x33, 0x0a, + 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 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, 0x90, 0x01, 0x0a, 0x2b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, + 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, + 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xc5, 0x04, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x52, 0x44, + 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, + 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x6e, 0x6f, + 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, + 0x61, 0x77, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x77, 0x73, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, + 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x77, 0x73, 0x53, + 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x59, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x34, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x64, 0x64, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 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, 0x06, 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, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x42, + 0x61, 0x73, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, + 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x7c, + 0x0a, 0x17, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, + 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xcf, 0x03, 0x0a, + 0x19, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x0f, 0x72, 0x75, + 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x72, 0x75, + 0x6e, 0x73, 0x4f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2c, 0x0a, 0x0b, + 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x2a, 0x06, 0x10, 0x80, 0x80, 0x04, 0x20, 0x00, 0x52, 0x0a, + 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x5e, 0x0a, 0x0d, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, + 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 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, 0x81, + 0x01, 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x22, 0xcf, 0x05, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x20, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, + 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x7a, 0x75, + 0x72, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x7a, + 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x7a, + 0x75, 0x72, 0x65, 0x5f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x13, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x48, 0x0a, 0x1c, 0x61, 0x7a, 0x75, 0x72, + 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x19, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x63, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, 0x72, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0e, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, - 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, - 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x85, 0x01, 0x0a, 0x20, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x79, 0x53, 0x51, 0x4c, 0x53, 0x6c, - 0x6f, 0x77, 0x6c, 0x6f, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x22, 0xa7, 0x06, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x6f, - 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, - 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, - 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, - 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x2e, 0x0a, - 0x13, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x6c, 0x73, 0x43, - 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x48, 0x0a, - 0x21, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x50, - 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, - 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x28, - 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x65, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x40, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x64, 0x64, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, - 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0c, 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, 0x12, 0x39, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x12, 0x37, - 0x0a, 0x17, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x16, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x88, 0x01, - 0x0a, 0x23, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x4d, 0x6f, 0x6e, 0x67, 0x6f, - 0x44, 0x42, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, - 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xbe, 0x05, 0x0a, 0x27, 0x41, 0x64, 0x64, - 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, - 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6c, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6c, - 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, - 0x66, 0x79, 0x12, 0x6c, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x69, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, - 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 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, 0x08, 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, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x28, - 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, - 0x63, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, - 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, - 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, - 0x4b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, - 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x8f, 0x01, 0x0a, 0x2a, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, - 0x4c, 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, - 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xf6, 0x05, 0x0a, 0x28, - 0x41, 0x64, 0x64, 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, - 0x50, 0x67, 0x53, 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, - 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x08, 0x75, - 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 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, 0x12, 0x10, 0x0a, 0x03, - 0x74, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x12, 0x26, - 0x0a, 0x0f, 0x74, 0x6c, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x73, 0x53, 0x6b, 0x69, 0x70, - 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x71, 0x75, - 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x12, 0x34, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, - 0x79, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, - 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x6d, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, - 0x51, 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, - 0x74, 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0a, - 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, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x61, - 0x72, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x72, 0x73, - 0x69, 0x6e, 0x67, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, - 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, - 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x33, - 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x18, 0x0a, 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, 0x12, 0x21, 0x0a, 0x0c, 0x70, + 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x33, + 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, 0x90, 0x01, 0x0a, 0x2b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x51, - 0x41, 0x4e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x50, 0x67, 0x53, 0x74, - 0x61, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, - 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xc5, 0x04, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x52, - 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, - 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x77, 0x73, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x77, 0x73, - 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x59, 0x0a, 0x0d, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x34, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x64, 0x64, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 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, 0x06, 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, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x42, 0x61, 0x73, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x38, 0x0a, 0x18, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, - 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, - 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 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, - 0x7c, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x44, 0x53, 0x45, 0x78, 0x70, 0x6f, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x86, 0x01, 0x0a, 0x21, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, + 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xcf, 0x03, - 0x0a, 0x19, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x0f, 0x72, - 0x75, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x72, - 0x75, 0x6e, 0x73, 0x4f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 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, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2c, 0x0a, - 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0d, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x2a, 0x06, 0x10, 0x80, 0x80, 0x04, 0x20, 0x00, 0x52, - 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x5e, 0x0a, 0x0d, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, - 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 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, - 0x81, 0x01, 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x22, 0xcf, 0x05, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, 0x72, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x70, 0x6d, 0x6d, 0x5f, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x70, 0x6d, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x20, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x6e, 0x6f, 0x64, - 0x65, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x7a, - 0x75, 0x72, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x61, - 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x75, 0x62, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x13, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x48, 0x0a, 0x1c, 0x61, 0x7a, 0x75, - 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x19, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x44, - 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x63, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x7a, 0x75, - 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 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, 0x0a, 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, 0x12, 0x21, 0x0a, 0x0c, - 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, - 0x33, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 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, 0x86, 0x01, 0x0a, 0x21, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x4e, - 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x07, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x15, - 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0xc7, 0x04, 0x0a, 0x09, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x18, 0x0a, 0x14, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4d, - 0x4d, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x47, 0x45, - 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4d, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, - 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x03, - 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, - 0x59, 0x53, 0x51, 0x4c, 0x44, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x04, - 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, - 0x4f, 0x4e, 0x47, 0x4f, 0x44, 0x42, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, - 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, - 0x52, 0x10, 0x06, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, - 0x54, 0x45, 0x52, 0x10, 0x07, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x50, 0x45, - 0x52, 0x46, 0x53, 0x43, 0x48, 0x45, 0x4d, 0x41, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x08, - 0x12, 0x26, 0x0a, 0x22, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, - 0x41, 0x4e, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x53, 0x4c, 0x4f, 0x57, 0x4c, 0x4f, 0x47, - 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x09, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x47, 0x45, 0x4e, - 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x4f, 0x4e, 0x47, 0x4f, - 0x44, 0x42, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x52, 0x5f, 0x41, 0x47, 0x45, 0x4e, - 0x54, 0x10, 0x0a, 0x12, 0x30, 0x0a, 0x2c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x51, 0x4c, - 0x5f, 0x50, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x47, - 0x45, 0x4e, 0x54, 0x10, 0x0b, 0x12, 0x31, 0x0a, 0x2d, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, - 0x51, 0x4c, 0x5f, 0x50, 0x47, 0x53, 0x54, 0x41, 0x54, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, - 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x0c, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, - 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, - 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0d, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x47, - 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x44, 0x53, 0x5f, 0x45, 0x58, 0x50, - 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0e, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x47, 0x45, 0x4e, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x5a, 0x55, 0x52, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, - 0x42, 0x41, 0x53, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0f, 0x32, - 0xaf, 0x08, 0x0a, 0x0d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x12, 0xa4, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, - 0x12, 0x1f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x20, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x53, 0x92, 0x41, 0x2c, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x1d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, - 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, 0x2f, - 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x73, 0x2f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x9b, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, - 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0x92, 0x41, 0x2a, 0x12, 0x09, 0x47, 0x65, 0x74, 0x20, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x1a, 0x1d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, - 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x79, 0x20, - 0x49, 0x44, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x4e, 0x0a, + 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x15, 0x0a, + 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0xc7, 0x04, 0x0a, 0x09, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, + 0x0a, 0x14, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4d, 0x4d, + 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x47, 0x45, 0x4e, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x4d, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, + 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x03, 0x12, + 0x1e, 0x0a, 0x1a, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x59, + 0x53, 0x51, 0x4c, 0x44, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x04, 0x12, + 0x1f, 0x0a, 0x1b, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x4f, + 0x4e, 0x47, 0x4f, 0x44, 0x42, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x05, + 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, + 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, + 0x10, 0x06, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, + 0x45, 0x52, 0x10, 0x07, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x50, 0x45, 0x52, + 0x46, 0x53, 0x43, 0x48, 0x45, 0x4d, 0x41, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x08, 0x12, + 0x26, 0x0a, 0x22, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, + 0x4e, 0x5f, 0x4d, 0x59, 0x53, 0x51, 0x4c, 0x5f, 0x53, 0x4c, 0x4f, 0x57, 0x4c, 0x4f, 0x47, 0x5f, + 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x09, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x47, 0x45, 0x4e, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x4d, 0x4f, 0x4e, 0x47, 0x4f, 0x44, + 0x42, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x52, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, + 0x10, 0x0a, 0x12, 0x30, 0x0a, 0x2c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x51, 0x4c, 0x5f, + 0x50, 0x47, 0x53, 0x54, 0x41, 0x54, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x47, 0x45, + 0x4e, 0x54, 0x10, 0x0b, 0x12, 0x31, 0x0a, 0x2d, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x51, 0x41, 0x4e, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x47, 0x52, 0x45, 0x53, 0x51, + 0x4c, 0x5f, 0x50, 0x47, 0x53, 0x54, 0x41, 0x54, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x5f, + 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x0c, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x45, 0x4e, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45, + 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0d, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x47, 0x45, + 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x44, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x4f, + 0x52, 0x54, 0x45, 0x52, 0x10, 0x0e, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x5a, 0x55, 0x52, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, + 0x41, 0x53, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0f, 0x32, 0xaf, + 0x08, 0x0a, 0x0d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0xa4, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x12, + 0x1f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x20, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x53, 0x92, 0x41, 0x2c, 0x12, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x1d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, + 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x73, 0x2f, 0x47, 0x65, 0x74, 0x12, 0xac, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, - 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x55, - 0x92, 0x41, 0x2b, 0x12, 0x0e, 0x47, 0x65, 0x74, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x6c, - 0x6f, 0x67, 0x73, 0x1a, 0x19, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x20, 0x6c, 0x6f, 0x67, 0x73, 0x20, 0x62, 0x79, 0x20, 0x49, 0x44, 0x2e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x47, 0x65, - 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0xa9, 0x01, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x5e, 0x92, 0x41, 0x38, 0x12, 0x19, 0x41, 0x64, 0x64, 0x20, 0x61, 0x6e, 0x20, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x1a, 0x1b, 0x41, 0x64, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, - 0x20, 0x74, 0x6f, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x41, 0x64, - 0x64, 0x12, 0xbb, 0x01, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, - 0x74, 0x12, 0x20, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x92, 0x41, 0x3e, 0x12, 0x1c, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, - 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x49, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, - 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, - 0xbf, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, - 0x20, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6b, 0x92, 0x41, 0x42, 0x12, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, - 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x42, 0xa5, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, - 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x70, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x61, 0x2f, 0x70, 0x6d, 0x6d, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x3b, 0x69, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x49, 0x58, 0x58, - 0xaa, 0x02, 0x0c, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x56, 0x31, 0xca, - 0x02, 0x0c, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5c, 0x56, 0x31, 0xe2, 0x02, - 0x18, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, - 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x49, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x74, 0x73, 0x2f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x9b, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x50, 0x92, 0x41, 0x2a, 0x12, 0x09, 0x47, 0x65, 0x74, 0x20, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x1a, 0x1d, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x73, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x79, 0x20, 0x49, + 0x44, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, 0x31, + 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x73, 0x2f, 0x47, 0x65, 0x74, 0x12, 0xac, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4c, 0x6f, + 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x55, 0x92, + 0x41, 0x2b, 0x12, 0x0e, 0x47, 0x65, 0x74, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x6f, + 0x67, 0x73, 0x1a, 0x19, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x20, 0x6c, 0x6f, 0x67, 0x73, 0x20, 0x62, 0x79, 0x20, 0x49, 0x44, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x47, 0x65, 0x74, + 0x4c, 0x6f, 0x67, 0x73, 0x12, 0xa9, 0x01, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x12, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x5e, 0x92, 0x41, 0x38, 0x12, 0x19, 0x41, 0x64, 0x64, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x1a, 0x1b, 0x41, 0x64, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, + 0x74, 0x6f, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x41, 0x64, 0x64, + 0x12, 0xbb, 0x01, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x12, 0x20, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x92, 0x41, 0x3e, 0x12, 0x1c, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x49, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x49, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, + 0x2a, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0xbf, + 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x20, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x6b, 0x92, 0x41, 0x42, 0x12, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x49, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, + 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x42, 0xa5, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x70, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x61, 0x2f, 0x70, 0x6d, 0x6d, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x3b, 0x69, 0x6e, + 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x49, 0x58, 0x58, 0xaa, + 0x02, 0x0c, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x56, 0x31, 0xca, 0x02, + 0x0c, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x18, + 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x49, 0x6e, 0x76, 0x65, 0x6e, + 0x74, 0x6f, 0x72, 0x79, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/inventory/v1/agents.pb.validate.go b/api/inventory/v1/agents.pb.validate.go index 5a50d1b52d..b29d80d82c 100644 --- a/api/inventory/v1/agents.pb.validate.go +++ b/api/inventory/v1/agents.pb.validate.go @@ -419,6 +419,8 @@ func (m *MySQLdExporter) validate(all bool) error { // no validation rules for PushMetricsEnabled + // no validation rules for TableCount + // no validation rules for Status // no validation rules for ListenPort @@ -4548,8 +4550,6 @@ func (m *AddAgentResponse) validate(all bool) error { var errors []error - // no validation rules for TableCount - switch v := m.Agent.(type) { case *AddAgentResponse_PmmAgent: if v == nil { @@ -5869,8 +5869,6 @@ func (m *ChangeAgentResponse) validate(all bool) error { var errors []error - // no validation rules for TableCount - switch v := m.Agent.(type) { case *ChangeAgentResponse_NodeExporter: if v == nil { diff --git a/api/inventory/v1/agents.proto b/api/inventory/v1/agents.proto index 90acd85743..5d826aa8c4 100644 --- a/api/inventory/v1/agents.proto +++ b/api/inventory/v1/agents.proto @@ -133,6 +133,8 @@ message MySQLdExporter { bool push_metrics_enabled = 13; // List of disabled collector names. repeated string disabled_collectors = 14; + // Actual table count at the moment of adding. + int32 table_count = 15; // // Status fields below. @@ -700,13 +702,12 @@ message AddAgentResponse { QANPostgreSQLPgStatementsAgent qan_postgresql_pgstatements_agent = 13; QANPostgreSQLPgStatMonitorAgent qan_postgresql_pgstatmonitor_agent = 14; } - // Actual table count for SQL databases at the moment of adding. - int32 table_count = 20; } message ChangeAgentRequest { oneof agent { // ChangePMMAgentParams pmm_agent = 1; + ChangeNodeExporterParams node_exporter = 2; ChangeMySQLdExporterParams mysqld_exporter = 3; ChangeMongoDBExporterParams mongodb_exporter = 4; @@ -726,6 +727,7 @@ message ChangeAgentRequest { message ChangeAgentResponse { oneof agent { // PMMAgent pmm_agent = 1; + NodeExporter node_exporter = 2; MySQLdExporter mysqld_exporter = 3; MongoDBExporter mongodb_exporter = 4; @@ -740,8 +742,6 @@ message ChangeAgentResponse { QANPostgreSQLPgStatementsAgent qan_postgresql_pgstatements_agent = 13; QANPostgreSQLPgStatMonitorAgent qan_postgresql_pgstatmonitor_agent = 14; } - // Actual table count for SQL databases at the moment of adding. - int32 table_count = 20; } // Add PMMAgent diff --git a/api/inventory/v1/json/client/agents_service/add_agent_responses.go b/api/inventory/v1/json/client/agents_service/add_agent_responses.go index 2e32b12419..5e3338901f 100644 --- a/api/inventory/v1/json/client/agents_service/add_agent_responses.go +++ b/api/inventory/v1/json/client/agents_service/add_agent_responses.go @@ -940,9 +940,6 @@ AddAgentOKBody add agent OK body swagger:model AddAgentOKBody */ type AddAgentOKBody struct { - // Actual table count for SQL databases at the moment of adding. - TableCount int32 `json:"table_count,omitempty"` - // azure database exporter AzureDatabaseExporter *AddAgentOKBodyAzureDatabaseExporter `json:"azure_database_exporter,omitempty"` @@ -2157,6 +2154,9 @@ type AddAgentOKBodyMysqldExporter struct { // List of disabled collector names. DisabledCollectors []string `json:"disabled_collectors"` + // Actual table count at the moment of adding. + TableCount int32 `json:"table_count,omitempty"` + // AgentStatus represents actual Agent status. // // - AGENT_STATUS_STARTING: Agent is starting. diff --git a/api/inventory/v1/json/client/agents_service/change_agent_responses.go b/api/inventory/v1/json/client/agents_service/change_agent_responses.go index 8995dd25cb..a516108b93 100644 --- a/api/inventory/v1/json/client/agents_service/change_agent_responses.go +++ b/api/inventory/v1/json/client/agents_service/change_agent_responses.go @@ -895,9 +895,6 @@ ChangeAgentOKBody change agent OK body swagger:model ChangeAgentOKBody */ type ChangeAgentOKBody struct { - // Actual table count for SQL databases at the moment of adding. - TableCount int32 `json:"table_count,omitempty"` - // azure database exporter AzureDatabaseExporter *ChangeAgentOKBodyAzureDatabaseExporter `json:"azure_database_exporter,omitempty"` @@ -2067,6 +2064,9 @@ type ChangeAgentOKBodyMysqldExporter struct { // List of disabled collector names. DisabledCollectors []string `json:"disabled_collectors"` + // Actual table count at the moment of adding. + TableCount int32 `json:"table_count,omitempty"` + // AgentStatus represents actual Agent status. // // - AGENT_STATUS_STARTING: Agent is starting. diff --git a/api/inventory/v1/json/client/agents_service/get_agent_responses.go b/api/inventory/v1/json/client/agents_service/get_agent_responses.go index da44b5e274..7984ab6c0f 100644 --- a/api/inventory/v1/json/client/agents_service/get_agent_responses.go +++ b/api/inventory/v1/json/client/agents_service/get_agent_responses.go @@ -1562,6 +1562,9 @@ type GetAgentOKBodyMysqldExporter struct { // List of disabled collector names. DisabledCollectors []string `json:"disabled_collectors"` + // Actual table count at the moment of adding. + TableCount int32 `json:"table_count,omitempty"` + // AgentStatus represents actual Agent status. // // - AGENT_STATUS_STARTING: Agent is starting. diff --git a/api/inventory/v1/json/client/agents_service/list_agents_responses.go b/api/inventory/v1/json/client/agents_service/list_agents_responses.go index 8b07d2ad34..ebf737f790 100644 --- a/api/inventory/v1/json/client/agents_service/list_agents_responses.go +++ b/api/inventory/v1/json/client/agents_service/list_agents_responses.go @@ -1803,6 +1803,9 @@ type ListAgentsOKBodyMysqldExporterItems0 struct { // List of disabled collector names. DisabledCollectors []string `json:"disabled_collectors"` + // Actual table count at the moment of adding. + TableCount int32 `json:"table_count,omitempty"` + // AgentStatus represents actual Agent status. // // - AGENT_STATUS_STARTING: Agent is starting. diff --git a/api/inventory/v1/json/v1.json b/api/inventory/v1/json/v1.json index 3b7355e8af..95bb6cf51c 100644 --- a/api/inventory/v1/json/v1.json +++ b/api/inventory/v1/json/v1.json @@ -1538,13 +1538,13 @@ "expose_exporter": { "type": "boolean", "title": "Optionally expose the exporter process on all public interfaces", - "x-order": 19 + "x-order": 20 }, "listen_port": { "description": "Listen port for scraping metrics.", "type": "integer", "format": "int64", - "x-order": 15 + "x-order": 16 }, "log_level": { "description": "- LOG_LEVEL_UNSPECIFIED: Auto", @@ -1559,7 +1559,7 @@ "LOG_LEVEL_INFO", "LOG_LEVEL_DEBUG" ], - "x-order": 18 + "x-order": 19 }, "pmm_agent_id": { "description": "The pmm-agent identifier which runs this instance.", @@ -1569,7 +1569,7 @@ "process_exec_path": { "description": "Path to exec process.", "type": "string", - "x-order": 17 + "x-order": 18 }, "push_metrics_enabled": { "description": "True if exporter uses push metrics mode.", @@ -1594,12 +1594,18 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], + "x-order": 15 + }, + "table_count": { + "description": "Actual table count at the moment of adding.", + "type": "integer", + "format": "int32", "x-order": 14 }, "tablestats_group_disabled": { "description": "True if tablestats group collectors are currently disabled.", "type": "boolean", - "x-order": 16 + "x-order": 17 }, "tablestats_group_table_limit": { "description": "Tablestats group collectors are disabled if there are more than that number of tables.\n0 means tablestats group collectors are always enabled (no limit).\nNegative value means tablestats group collectors are always disabled.", @@ -2615,12 +2621,6 @@ } }, "x-order": 7 - }, - "table_count": { - "description": "Actual table count for SQL databases at the moment of adding.", - "type": "integer", - "format": "int32", - "x-order": 14 } } } @@ -3575,13 +3575,13 @@ "expose_exporter": { "type": "boolean", "title": "Optionally expose the exporter process on all public interfaces", - "x-order": 19 + "x-order": 20 }, "listen_port": { "description": "Listen port for scraping metrics.", "type": "integer", "format": "int64", - "x-order": 15 + "x-order": 16 }, "log_level": { "description": "- LOG_LEVEL_UNSPECIFIED: Auto", @@ -3596,7 +3596,7 @@ "LOG_LEVEL_INFO", "LOG_LEVEL_DEBUG" ], - "x-order": 18 + "x-order": 19 }, "pmm_agent_id": { "description": "The pmm-agent identifier which runs this instance.", @@ -3606,7 +3606,7 @@ "process_exec_path": { "description": "Path to exec process.", "type": "string", - "x-order": 17 + "x-order": 18 }, "push_metrics_enabled": { "description": "True if exporter uses push metrics mode.", @@ -3631,12 +3631,18 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], + "x-order": 15 + }, + "table_count": { + "description": "Actual table count at the moment of adding.", + "type": "integer", + "format": "int32", "x-order": 14 }, "tablestats_group_disabled": { "description": "True if tablestats group collectors are currently disabled.", "type": "boolean", - "x-order": 16 + "x-order": 17 }, "tablestats_group_table_limit": { "description": "Tablestats group collectors are disabled if there are more than that number of tables.\n0 means tablestats group collectors are always enabled (no limit).\nNegative value means tablestats group collectors are always disabled.", @@ -4617,12 +4623,6 @@ } }, "x-order": 6 - }, - "table_count": { - "description": "Actual table count for SQL databases at the moment of adding.", - "type": "integer", - "format": "int32", - "x-order": 13 } } } @@ -5010,13 +5010,13 @@ "expose_exporter": { "type": "boolean", "title": "Optionally expose the exporter process on all public interfaces", - "x-order": 19 + "x-order": 20 }, "listen_port": { "description": "Listen port for scraping metrics.", "type": "integer", "format": "int64", - "x-order": 15 + "x-order": 16 }, "log_level": { "description": "- LOG_LEVEL_UNSPECIFIED: Auto", @@ -5031,7 +5031,7 @@ "LOG_LEVEL_INFO", "LOG_LEVEL_DEBUG" ], - "x-order": 18 + "x-order": 19 }, "pmm_agent_id": { "description": "The pmm-agent identifier which runs this instance.", @@ -5041,7 +5041,7 @@ "process_exec_path": { "description": "Path to exec process.", "type": "string", - "x-order": 17 + "x-order": 18 }, "push_metrics_enabled": { "description": "True if exporter uses push metrics mode.", @@ -5066,12 +5066,18 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], + "x-order": 15 + }, + "table_count": { + "description": "Actual table count at the moment of adding.", + "type": "integer", + "format": "int32", "x-order": 14 }, "tablestats_group_disabled": { "description": "True if tablestats group collectors are currently disabled.", "type": "boolean", - "x-order": 16 + "x-order": 17 }, "tablestats_group_table_limit": { "description": "Tablestats group collectors are disabled if there are more than that number of tables.\n0 means tablestats group collectors are always enabled (no limit).\nNegative value means tablestats group collectors are always disabled.", @@ -6648,13 +6654,13 @@ "expose_exporter": { "type": "boolean", "title": "Optionally expose the exporter process on all public interfaces", - "x-order": 19 + "x-order": 20 }, "listen_port": { "description": "Listen port for scraping metrics.", "type": "integer", "format": "int64", - "x-order": 15 + "x-order": 16 }, "log_level": { "description": "- LOG_LEVEL_UNSPECIFIED: Auto", @@ -6669,7 +6675,7 @@ "LOG_LEVEL_INFO", "LOG_LEVEL_DEBUG" ], - "x-order": 18 + "x-order": 19 }, "pmm_agent_id": { "description": "The pmm-agent identifier which runs this instance.", @@ -6679,7 +6685,7 @@ "process_exec_path": { "description": "Path to exec process.", "type": "string", - "x-order": 17 + "x-order": 18 }, "push_metrics_enabled": { "description": "True if exporter uses push metrics mode.", @@ -6704,12 +6710,18 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], + "x-order": 15 + }, + "table_count": { + "description": "Actual table count at the moment of adding.", + "type": "integer", + "format": "int32", "x-order": 14 }, "tablestats_group_disabled": { "description": "True if tablestats group collectors are currently disabled.", "type": "boolean", - "x-order": 16 + "x-order": 17 }, "tablestats_group_table_limit": { "description": "Tablestats group collectors are disabled if there are more than that number of tables.\n0 means tablestats group collectors are always enabled (no limit).\nNegative value means tablestats group collectors are always disabled.", diff --git a/api/management/v1/json/client/my_sql_service/add_my_sql_responses.go b/api/management/v1/json/client/my_sql_service/add_my_sql_responses.go index ea49bc0108..ddf4ef936b 100644 --- a/api/management/v1/json/client/my_sql_service/add_my_sql_responses.go +++ b/api/management/v1/json/client/my_sql_service/add_my_sql_responses.go @@ -842,6 +842,9 @@ type AddMySQLOKBodyMysqldExporter struct { // List of disabled collector names. DisabledCollectors []string `json:"disabled_collectors"` + // Actual table count at the moment of adding. + TableCount int32 `json:"table_count,omitempty"` + // AgentStatus represents actual Agent status. // // - AGENT_STATUS_STARTING: Agent is starting. diff --git a/api/management/v1/json/client/rds_service/add_rds_responses.go b/api/management/v1/json/client/rds_service/add_rds_responses.go index b7bd56289a..95c10f946f 100644 --- a/api/management/v1/json/client/rds_service/add_rds_responses.go +++ b/api/management/v1/json/client/rds_service/add_rds_responses.go @@ -1024,6 +1024,9 @@ type AddRDSOKBodyMysqldExporter struct { // List of disabled collector names. DisabledCollectors []string `json:"disabled_collectors"` + // Actual table count at the moment of adding. + TableCount int32 `json:"table_count,omitempty"` + // AgentStatus represents actual Agent status. // // - AGENT_STATUS_STARTING: Agent is starting. diff --git a/api/management/v1/json/v1.json b/api/management/v1/json/v1.json index 49c82a8f46..350d22db1d 100644 --- a/api/management/v1/json/v1.json +++ b/api/management/v1/json/v1.json @@ -3186,13 +3186,13 @@ "expose_exporter": { "type": "boolean", "title": "Optionally expose the exporter process on all public interfaces", - "x-order": 19 + "x-order": 20 }, "listen_port": { "description": "Listen port for scraping metrics.", "type": "integer", "format": "int64", - "x-order": 15 + "x-order": 16 }, "log_level": { "description": "- LOG_LEVEL_UNSPECIFIED: Auto", @@ -3207,7 +3207,7 @@ "LOG_LEVEL_INFO", "LOG_LEVEL_DEBUG" ], - "x-order": 18 + "x-order": 19 }, "pmm_agent_id": { "description": "The pmm-agent identifier which runs this instance.", @@ -3217,7 +3217,7 @@ "process_exec_path": { "description": "Path to exec process.", "type": "string", - "x-order": 17 + "x-order": 18 }, "push_metrics_enabled": { "description": "True if exporter uses push metrics mode.", @@ -3242,12 +3242,18 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], + "x-order": 15 + }, + "table_count": { + "description": "Actual table count at the moment of adding.", + "type": "integer", + "format": "int32", "x-order": 14 }, "tablestats_group_disabled": { "description": "True if tablestats group collectors are currently disabled.", "type": "boolean", - "x-order": 16 + "x-order": 17 }, "tablestats_group_table_limit": { "description": "Tablestats group collectors are disabled if there are more than that number of tables.\n0 means tablestats group collectors are always enabled (no limit).\nNegative value means tablestats group collectors are always disabled.", @@ -5393,13 +5399,13 @@ "expose_exporter": { "type": "boolean", "title": "Optionally expose the exporter process on all public interfaces", - "x-order": 19 + "x-order": 20 }, "listen_port": { "description": "Listen port for scraping metrics.", "type": "integer", "format": "int64", - "x-order": 15 + "x-order": 16 }, "log_level": { "description": "- LOG_LEVEL_UNSPECIFIED: Auto", @@ -5414,7 +5420,7 @@ "LOG_LEVEL_INFO", "LOG_LEVEL_DEBUG" ], - "x-order": 18 + "x-order": 19 }, "pmm_agent_id": { "description": "The pmm-agent identifier which runs this instance.", @@ -5424,7 +5430,7 @@ "process_exec_path": { "description": "Path to exec process.", "type": "string", - "x-order": 17 + "x-order": 18 }, "push_metrics_enabled": { "description": "True if exporter uses push metrics mode.", @@ -5449,12 +5455,18 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], + "x-order": 15 + }, + "table_count": { + "description": "Actual table count at the moment of adding.", + "type": "integer", + "format": "int32", "x-order": 14 }, "tablestats_group_disabled": { "description": "True if tablestats group collectors are currently disabled.", "type": "boolean", - "x-order": 16 + "x-order": 17 }, "tablestats_group_table_limit": { "description": "Tablestats group collectors are disabled if there are more than that number of tables.\n0 means tablestats group collectors are always enabled (no limit).\nNegative value means tablestats group collectors are always disabled.", diff --git a/api/swagger/swagger-dev.json b/api/swagger/swagger-dev.json index b68a73e9ad..978925cae3 100644 --- a/api/swagger/swagger-dev.json +++ b/api/swagger/swagger-dev.json @@ -5184,6 +5184,12 @@ }, "x-order": 13 }, + "table_count": { + "description": "Actual table count at the moment of adding.", + "type": "integer", + "format": "int32", + "x-order": 14 + }, "status": { "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent finished.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", "type": "string", @@ -5197,23 +5203,23 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], - "x-order": 14 + "x-order": 15 }, "listen_port": { "description": "Listen port for scraping metrics.", "type": "integer", "format": "int64", - "x-order": 15 + "x-order": 16 }, "tablestats_group_disabled": { "description": "True if tablestats group collectors are currently disabled.", "type": "boolean", - "x-order": 16 + "x-order": 17 }, "process_exec_path": { "description": "Path to exec process.", "type": "string", - "x-order": 17 + "x-order": 18 }, "log_level": { "description": "- LOG_LEVEL_UNSPECIFIED: Auto", @@ -5228,12 +5234,12 @@ "LOG_LEVEL_INFO", "LOG_LEVEL_DEBUG" ], - "x-order": 18 + "x-order": 19 }, "expose_exporter": { "type": "boolean", "title": "Optionally expose the exporter process on all public interfaces", - "x-order": 19 + "x-order": 20 } }, "x-order": 2 @@ -6374,12 +6380,6 @@ } }, "x-order": 13 - }, - "table_count": { - "description": "Actual table count for SQL databases at the moment of adding.", - "type": "integer", - "format": "int32", - "x-order": 14 } } } @@ -7186,6 +7186,12 @@ }, "x-order": 13 }, + "table_count": { + "description": "Actual table count at the moment of adding.", + "type": "integer", + "format": "int32", + "x-order": 14 + }, "status": { "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent finished.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", "type": "string", @@ -7199,23 +7205,23 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], - "x-order": 14 + "x-order": 15 }, "listen_port": { "description": "Listen port for scraping metrics.", "type": "integer", "format": "int64", - "x-order": 15 + "x-order": 16 }, "tablestats_group_disabled": { "description": "True if tablestats group collectors are currently disabled.", "type": "boolean", - "x-order": 16 + "x-order": 17 }, "process_exec_path": { "description": "Path to exec process.", "type": "string", - "x-order": 17 + "x-order": 18 }, "log_level": { "description": "- LOG_LEVEL_UNSPECIFIED: Auto", @@ -7230,12 +7236,12 @@ "LOG_LEVEL_INFO", "LOG_LEVEL_DEBUG" ], - "x-order": 18 + "x-order": 19 }, "expose_exporter": { "type": "boolean", "title": "Optionally expose the exporter process on all public interfaces", - "x-order": 19 + "x-order": 20 } }, "x-order": 1 @@ -8376,12 +8382,6 @@ } }, "x-order": 12 - }, - "table_count": { - "description": "Actual table count for SQL databases at the moment of adding.", - "type": "integer", - "format": "int32", - "x-order": 13 } } } @@ -8699,6 +8699,12 @@ }, "x-order": 13 }, + "table_count": { + "description": "Actual table count at the moment of adding.", + "type": "integer", + "format": "int32", + "x-order": 14 + }, "status": { "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent finished.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", "type": "string", @@ -8712,23 +8718,23 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], - "x-order": 14 + "x-order": 15 }, "listen_port": { "description": "Listen port for scraping metrics.", "type": "integer", "format": "int64", - "x-order": 15 + "x-order": 16 }, "tablestats_group_disabled": { "description": "True if tablestats group collectors are currently disabled.", "type": "boolean", - "x-order": 16 + "x-order": 17 }, "process_exec_path": { "description": "Path to exec process.", "type": "string", - "x-order": 17 + "x-order": 18 }, "log_level": { "description": "- LOG_LEVEL_UNSPECIFIED: Auto", @@ -8743,12 +8749,12 @@ "LOG_LEVEL_INFO", "LOG_LEVEL_DEBUG" ], - "x-order": 18 + "x-order": 19 }, "expose_exporter": { "type": "boolean", "title": "Optionally expose the exporter process on all public interfaces", - "x-order": 19 + "x-order": 20 } }, "x-order": 3 @@ -10337,6 +10343,12 @@ }, "x-order": 13 }, + "table_count": { + "description": "Actual table count at the moment of adding.", + "type": "integer", + "format": "int32", + "x-order": 14 + }, "status": { "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent finished.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", "type": "string", @@ -10350,23 +10362,23 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], - "x-order": 14 + "x-order": 15 }, "listen_port": { "description": "Listen port for scraping metrics.", "type": "integer", "format": "int64", - "x-order": 15 + "x-order": 16 }, "tablestats_group_disabled": { "description": "True if tablestats group collectors are currently disabled.", "type": "boolean", - "x-order": 16 + "x-order": 17 }, "process_exec_path": { "description": "Path to exec process.", "type": "string", - "x-order": 17 + "x-order": 18 }, "log_level": { "description": "- LOG_LEVEL_UNSPECIFIED: Auto", @@ -10381,12 +10393,12 @@ "LOG_LEVEL_INFO", "LOG_LEVEL_DEBUG" ], - "x-order": 18 + "x-order": 19 }, "expose_exporter": { "type": "boolean", "title": "Optionally expose the exporter process on all public interfaces", - "x-order": 19 + "x-order": 20 } } }, @@ -18701,6 +18713,12 @@ }, "x-order": 13 }, + "table_count": { + "description": "Actual table count at the moment of adding.", + "type": "integer", + "format": "int32", + "x-order": 14 + }, "status": { "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent finished.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", "type": "string", @@ -18714,23 +18732,23 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], - "x-order": 14 + "x-order": 15 }, "listen_port": { "description": "Listen port for scraping metrics.", "type": "integer", "format": "int64", - "x-order": 15 + "x-order": 16 }, "tablestats_group_disabled": { "description": "True if tablestats group collectors are currently disabled.", "type": "boolean", - "x-order": 16 + "x-order": 17 }, "process_exec_path": { "description": "Path to exec process.", "type": "string", - "x-order": 17 + "x-order": 18 }, "log_level": { "description": "- LOG_LEVEL_UNSPECIFIED: Auto", @@ -18745,12 +18763,12 @@ "LOG_LEVEL_INFO", "LOG_LEVEL_DEBUG" ], - "x-order": 18 + "x-order": 19 }, "expose_exporter": { "type": "boolean", "title": "Optionally expose the exporter process on all public interfaces", - "x-order": 19 + "x-order": 20 } }, "x-order": 1 @@ -21435,6 +21453,12 @@ }, "x-order": 13 }, + "table_count": { + "description": "Actual table count at the moment of adding.", + "type": "integer", + "format": "int32", + "x-order": 14 + }, "status": { "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent finished.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", "type": "string", @@ -21448,23 +21472,23 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], - "x-order": 14 + "x-order": 15 }, "listen_port": { "description": "Listen port for scraping metrics.", "type": "integer", "format": "int64", - "x-order": 15 + "x-order": 16 }, "tablestats_group_disabled": { "description": "True if tablestats group collectors are currently disabled.", "type": "boolean", - "x-order": 16 + "x-order": 17 }, "process_exec_path": { "description": "Path to exec process.", "type": "string", - "x-order": 17 + "x-order": 18 }, "log_level": { "description": "- LOG_LEVEL_UNSPECIFIED: Auto", @@ -21479,12 +21503,12 @@ "LOG_LEVEL_INFO", "LOG_LEVEL_DEBUG" ], - "x-order": 18 + "x-order": 19 }, "expose_exporter": { "type": "boolean", "title": "Optionally expose the exporter process on all public interfaces", - "x-order": 19 + "x-order": 20 } }, "x-order": 3 diff --git a/api/swagger/swagger.json b/api/swagger/swagger.json index 5c33e712f4..d2e5df609e 100644 --- a/api/swagger/swagger.json +++ b/api/swagger/swagger.json @@ -4287,6 +4287,12 @@ }, "x-order": 13 }, + "table_count": { + "description": "Actual table count at the moment of adding.", + "type": "integer", + "format": "int32", + "x-order": 14 + }, "status": { "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent finished.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", "type": "string", @@ -4300,23 +4306,23 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], - "x-order": 14 + "x-order": 15 }, "listen_port": { "description": "Listen port for scraping metrics.", "type": "integer", "format": "int64", - "x-order": 15 + "x-order": 16 }, "tablestats_group_disabled": { "description": "True if tablestats group collectors are currently disabled.", "type": "boolean", - "x-order": 16 + "x-order": 17 }, "process_exec_path": { "description": "Path to exec process.", "type": "string", - "x-order": 17 + "x-order": 18 }, "log_level": { "description": "- LOG_LEVEL_UNSPECIFIED: Auto", @@ -4331,12 +4337,12 @@ "LOG_LEVEL_INFO", "LOG_LEVEL_DEBUG" ], - "x-order": 18 + "x-order": 19 }, "expose_exporter": { "type": "boolean", "title": "Optionally expose the exporter process on all public interfaces", - "x-order": 19 + "x-order": 20 } }, "x-order": 1 @@ -6575,6 +6581,12 @@ }, "x-order": 13 }, + "table_count": { + "description": "Actual table count at the moment of adding.", + "type": "integer", + "format": "int32", + "x-order": 14 + }, "status": { "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent finished.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", "type": "string", @@ -6588,23 +6600,23 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], - "x-order": 14 + "x-order": 15 }, "listen_port": { "description": "Listen port for scraping metrics.", "type": "integer", "format": "int64", - "x-order": 15 + "x-order": 16 }, "tablestats_group_disabled": { "description": "True if tablestats group collectors are currently disabled.", "type": "boolean", - "x-order": 16 + "x-order": 17 }, "process_exec_path": { "description": "Path to exec process.", "type": "string", - "x-order": 17 + "x-order": 18 }, "log_level": { "description": "- LOG_LEVEL_UNSPECIFIED: Auto", @@ -6619,12 +6631,12 @@ "LOG_LEVEL_INFO", "LOG_LEVEL_DEBUG" ], - "x-order": 18 + "x-order": 19 }, "expose_exporter": { "type": "boolean", "title": "Optionally expose the exporter process on all public interfaces", - "x-order": 19 + "x-order": 20 } }, "x-order": 3 diff --git a/descriptor.bin b/descriptor.bin index 64a67982c5af1499accd3129cfcd146ebecbc513..709d83ede2ed68a67b318291550c8886ed216b14 100644 GIT binary patch delta 29456 zcmZXddz==_P88nKl1&JOor5OH=K>kvdFNN_?B5fGv%-~|!6djSEtihv-ZAR=-(->0h{n)5k-@cGQI ztA0;CRb9VdSM}v(&x(Ezzua%cn8JeK$aXXD@u*~XJ)U%3)NV)cxd|RAE~h zmnwgK$3Ol2&L8~Gd;azAUw3X_Q|KGrR>}^2S&rD+6TwhB>BFFQ(Wv)=3kMfAFPeN& zxZc?NFA7VG9=tfbF)BQ^=R_m3!xhrD8d%sCc?$H;gEBvJ-!rR4!`# z`|zVSg+DC%<&VRWaoej)#)Lt;vKe0py4b%To(#IOZ7GsNQFg3Y@~|K<>8LOicwy(# zwHd#C*-R?f>nDU)4Gn|#v7n%>ui75wq(Zw+3SmwvT-2pBIAd0oO;f>+935WP5C&DW z*;EJ;U$qKmQz2Dm70f1Kem!G$D4S;c>RsVYLpnffE(Ecsb%54fDAp*1)?Db>tJEu_ zmCL53V0VoUYe=;Wvn6k^46~(>cJ<6M%$7p;>QbMK*|BVF!7iT}_JG-uPTE3H@>M&+ zw1rAdwIfU`seUtKb}F061^eh{;n!exqRq*9ww+*3E)*~HfjYsQTBQGqHMTLP*FD1?9O|_>*}Uy@*E`4v_je;3j`$4v_hu~N;i;#2`HRy zZ~jGiW8L(eQjnvC^a4*QK$%|X+@*9=MhVJhhJF4Q;n(YCXu2klKr;%(_MQ?znNcWr zEcMJNpqcjjBf{#TCJ5>0%)G4-;><$oCJ?1kwQ%7@r7JR`DVtdZd-tAjFiZn;R?ajq zXXPC;FlR}}WCEFhx~&D<;dFQz%qT;CCIDf!7K-j90b#Zl+O{iwF=KKDXBX@*Pls1F zm>`BZJMU%;bGDupN@30}bm>~UEMpeSX3j%#)PHc17;_4N4qy@1oWg}Y{ooW~%_;Qm zQ@S!^C1o?$-tnK|P?}3G<+yU_$~NPbD4d>aBS$&+tGpe2Q} zj$RuAEh+TwTl!-mi`2GkmKN-e1L0K0uPxN2g}}KJ5bDxG(#7|?E!3rji!Ukl&X~B{ zavT3!*tdRpKIHA7EH4x<_LO!|mKUmPGnX&{hW4U&2>^|~n0HtV?L~D7N@2dJE@1); z?Pc#000#Nxyu)H>FRM#X3iD-k2@_ywuQ->m!+#UT^{?c~ilx1hPsa`rUlEh|872{x z%=Oqg;;>N zE+>j%tW(3F6yiEHj3~e`Hi%(-#a90|jO#XN{*=JmpsoRgw?SPa67+iJ8dvf+4ZfZ? zD6a9kx(20ERb1mLPHYq~o!%@27j_+B@91K>*t@4E9qou;hh`{6#G%YxN`S<9Gw-o@ z$eZdRk$A`^=OJ`iJY-Xzx_HPY^$<#7ZW0gqmn;L$@7wn0{}J9*_jXPZ^LSg&R+O2? z+iD(BfO%}iJo?)D|74K1s(VlXZL7Kmke0Tpdqe^5@s7C1u)25hmc%#SQQx2rly}rO zq5$96;e3O?8LJ&S6M=Mche{7foE_>LK;rCB--rTy<2~;i0J{91`UVi@d+HlNnD41? zMB*F!y>9?$bANtH#5eYKt`(A(mnD6IIF^cz9fRw^~Uj-Ni_{1S6 zKu%^`vOSb{TYTb>3XoEmhonup2t~3AI&7c#-{F<@ht*m*2<31gaXtZra#(yquI!Qc z#1XIA@BddAUwtG$H)0b<@>w7@aYQux&uBI-$Hxj4|0gJP{a(%RU)}TXzx~#&->^-; z39q!9{wwU!{+Oyb78M_ND&}v7;kXV1kOq$HoCeasaaD0FiaX&{%-;}CN2~{zr z5KpLzV^Q(ROvMfS4e_LQ2?+6|$`}aoq{=uJbV_90tL{|ZmI(Ni3Ya=lNd)`_hA$QY zpRrGl2(PL?lT$>iXYziDR?nzbW65Yl;I8+84EgIl5atLj3Yn(^VU7s=^*#=m3ZsJT zdT-~BM0%rwb3{?>sK776s0ndY;4k;FD0YnfWzVQDBO+J)F@eA010jwH{1qPvaZKQ^ z__1hqoc-dca9I7gye-k}xWHfQsRLzP;IH+uXm)&H@Bevt*$n{3XMErnnLv6wKJXWN zAc4jQ{$dX#(D=Y#>|+t_BzxTi?4Q3$dQ#w52^$LYx$!0$EVSqS+=pVszM0 z*A#gFK44 zlKY9>c{1#5dyNhMu4+n|wIW6!@?4oFGdSI8bEVpyVamk;qeW3{A^uRB)fe@z$ zexY3yG$XJ-7!h950HDbkd6Oc!8G&DEQ<~L9a@R0^MUmW0JL3NEN^+Hpfv}q4k+t@moGAL6llM~e zHz)5U`kQNi@jzGyQS>%9CyL(Y25D91E|fx?8+5#&bW4^hdYfn0KM;P+uDzE`=jB}# zxy=iT)t)DEn-}!Bv~*j>LvHhJ;rHRU>*fc3JzLD=Ha}n~C!22|l=(ro?xmp_1-UJ> zYnsAA45wTg7v^n==oSXWOFU6Tw=k&fneAJOBDzI^oxVNnL+?a&i`2=0Fc+zl0bwo* zSbfU|zbLAEUfkrmy64qLI0)r=^${SH=hYO7a%o&9rci6wPGCTmRjO`EVXjhjC!+4vPTdUv zn5*?f0b#CIc>`gt*6EuFT5Id?=Tf>hZ%lN(R&`AssT6o!C!*{1qU&qx*XI;b^!mJK zqUiNH*AvNTqgON_LtfE9m>X5mK$sg<(TOPf4Xk33no^i=bB$*k?|Il zagxb+i^@2W%jPzb@$kBBd6z`N+f>2Sp_Of-;9Ik)g@U)+o14OK)ooV=Cz*n`tAc@0 zwyS~@xnS-T1z%COGjBz-yHmAG9Vk0RyW-o4Xm__A^xvG{-FYh_+TB6YJ(D|ipzIE6 zdSr4>M6~aExdS+7@2cE^FyB?V17W_aa!*9N2eZY49n>7gjR#fpl)yWvng_x=C_?O# zC5d)F2!fifl{GbY-SeZGU;p$+zjceTB)hjqncI*7iSvPa0FXEzs0Spn75*>?x_0eS z^No9cQe!Lc3%l60WHN-K8c_DcAF3rlA;O1}$#1ZPv>YD|Djp0AU4LrVr>3*Ly^s9$dyk=DBmhFHHd9MM&92NRyI}qlm&@bCl z@tQHAyG;jxIVL>E6t5W*`gJ>{Fvo8p}$V1vV5NuW;engn#@_56#7Ls zCGaMNe$fqtHz{Pg$_hFa+i423yV4B+a&5{7R@|p4^b2W9VK#++A)U%{z1c3C8TP!K zze%+@^a=q&Y!3ZG8VIpjnjBd`BBgR{!-_?A$K-HCl?{{L*<>!sWS&eWEQ9T`wozO^ zSreg%c$4)E1Bo|T&am8JF3GH$61r6|fG$kQnKGBBgnkuFDa(BE>8`!Rd53U z=2ShyK$ufQzYGS#oErLNa7oZKJ8ybeeI@k) zhsm9ze)i^$=0e(*^)QFsj0O^7dfs1|(bJ{BvfwL8o-^#khq+SB$kUanJR|gLJ?cQ2 z5%%brO~{f=<(Y0m@;CgMIw64&XX=CmLYyfRQr6xjnaQ)fdH^tI|o~7!c6y_{d zPf4b7t5eTV0L<2$DO0&s)k7)FR#A`K-@ z`6;IXnv|{QQ>p?W%%@ZZK$uUd3Q97U7dREz>!z`0T#%m&nac}Q1k{AMKt)iJ>*>>( z2!`=DEk3Ox0786PMF52Ow6r)%L{M3dp9w3rah>>ejcqy^bhLvyn>O~tY2iOsJrgE< zGEG#9CYCr&3<7xJ)%sDd+{!M6W?FUQjhqM=FULzQU=l6lZ@4HP|0? zG1t;VkpbAr00{S`yoVx#m(FgMGUJ&f8VZKt;*vd zl+~&{Ae7ajJlShiiVD`+>mLiRs9&46BJ+Q3=yzGvfwDIAyR1r?|LgtL13)j=t8#!a z*Q;`XFxRVcDrNp}^2!0g+@#6@!rY|F0m9s*%Bd6qyzQ?a0LJ9){QQXm-d5>Q3iEB1 zPNl3Xw~BQ7U9nX~!$BxpRWv{-Tcxo(&`g_hyd$g_X9``vRdd^o-;&#wU$Ec#Q&?NI zBjow8Y`5BoVs`0O>a+mDJgCzG z2=idbZNwjCjZydGkk#-tws2S2$$s#7c=HerxCiWQvP;LuIx~QfKbDjA-HeP_jtTju zmRplrJF%6`5ZGzEO|}j?7W(^oK)A<*J3Ql}m(T47t>JBTpXXyKdigvox;;mmOfR2@ z>^bT)3VJzhfBxri(4f;fMf7qy^iSm5WO_Lr@A@8EO2AiAr!r8oy#{BU%}4+;e;Y zgFBk%ot`OL8EyQMiBg!O4dWpX2-=8N#u_{Ke`k5hBgnDFuP7;lIo9~+1VET$4bKT~ zK{9R2@x7+vQG4BA!keq^HU1G@TT#gbldZL`01$72_5nz|3C1s{fyA3&SbWHnueLIu zCz_zUJ^MyD#9liG_XN7`Q<#;e?(Pu~>O_O1iF>vcolLU7oWr_h5)Zbsesd7YB;%J^ zKq!-pUuLxx)MO9OVe8$Lw;}>*GJb(Y9jRovq+FM^fbx(vh)HUZ65lD01ClN@q z^hvHlZABn0cJ345R|mD^6j4Tt@wfS?1Eob0lXpPc$|b~_psStwa(rF(-U^2Z!!aET zxsq7pSDuu@w}zFctZ~}Pm1Ht6YM@C@fZW=jZ2UqW2y?RW3wYC@bQGyg7TVY_lX!&EHCxPJg~czA)WpBLU% zHN$ZKKwP_>%*UB-J`M$t(oBsEB=Sr>cR(V~lyfJG|8_EcW*N8m2f&<_Gi5r?(o;Yw z%vo{@8=)|Oy z2+v4_FJ}>$m`m(`EDXO=za&2qG9Q=dd~BD^$0a%++sS-<-pxlE6Z?KXZ%iiS^Ex3Z zrLpJLira~OFSFM@9rkNjrXI{eD9hA?fl!u7em`Iiw=c&pnTpq#!?)Jh4t3#0cK*}h z4eeht+}XLE{M*YMUSZ9m@VnQn(2yJ?sTHQuJuCpy!U|L6-njzO!V2RbI<%Kbx6;~0 z;jn8~<`D{<#g(Sgy`e)Lsbnthmz@+K5muVZ>Pkbh9GKIqY}>`*&>ybKBghn5mFFPM ztTI*ZZI|}h++HQ8z7xHyD#znbJqlj&q<52o0)356T1zWWt?qbLOH5@gRBW`X~W&L_nbpwR{ zra?E^J2+J$*3Bm9+_gEUceQsv6aGsbhc$-uY_nb%;1FZ8To~kPUnOXZjh_vNHE!W$ zp=|s(2xW_D<4y=rD#;0H!(enM$M2Ym4@@B&1i9X8s*tehs@)4n$FHUfP~s9-r+)lcA22w zhYAS=)KDRzc9}}|)>DUU5OC5p?D(!Sn1w;wmU~TbgKwuuB%nr;OZ#3^sq;iUbZ?{S`9-Zw zsJ-U8>wW()(f3SnjW0|H1=LV-JMcYI>7M3w$aatKnVK(XWg@+2hF$F=VW#^`@MT{p zkMn^(Qe%)3YG0m}nC!khDY@wHGuPeVLt(P}O>nCZRU#BnlagKLep9KZUQBnt>Hl@D zOr-thmf=1UrhC8y-)i)wm4pIoDA{%%FqQqalu!rEfSVN(>VO%3n-9fO`h62L_(FNT z52%r3Y5jga6J%-qet!DeG!p84GiZnp#oGFy3A6`o2?f+p@~rZpsdWC(AzN!7G#5GV z1QO|>;U27;={)v0WP)pbQtgNY)JXCeXljk6ZOzo9gn^1?$)n6=i#Cgi) z_#;zs3>%JWzIvy3;WC7ejDHokECzJ+p=IH9jYri0IYyPEx>N!Z^QbJ9MDReS*HLrf z)uj$4CIoP9(hkQsYAzZ^2LjWv93M9o<0I#H@?!CE*)g=k?>Z(G<@i$*{4NT!U|@@SfK)zV+PYB$lGh36vO=ZsGh^JQ0R$E33>uh~wsBSp zg!-9yx@(p68&4YJ&PPX{MDVBruXj0S4tLUYaL=SEg?rM}_V8TL=f=2ISI0ms4d{Fp zNVA`tj!w70ta7j3p30d$WsI9LjUDB!D#4ngc-Se^=~ADCY&K4rK5mk9l#B6cW1PW( zpaR|N+d!zN%>}(ZRn~K-O~3xWS?Zq2sbW&VM&*i2oyoc4QfG25E_K$Jt9@XxC7_-z zv8A)-;w!Wi>REG@%nCU_Oq&srx!f0u4FUCZC5>=LL|vS}QyK1vs9~t*;zJ`N;~cGH z<~u-bR(xkl{&#Y)CR=gyDp(i_J_ z{RVihY}4}`#XEp*?bp%m)1xZ)J|7V7*ob|)8)Up=Tx6V^cg&ud0^J1`NVDUju7iD2 z^2~HxH1vv6XH;A4RF3b9Dw^z_f$@$QejPXIaL_eb6*1UjF%Kf)*E-ef0H>;qBIv1@O8>-*t=Mh-BmIim4J zv=2mSJKvm$_JOEFnXdAdL^*DbDjxDKa{)D*BW_;EC|n>pKNtmWet^&!&^aiOMjnhR z-7Duns1HWv3rk-Ydjr$TgHg72lTehlM1Cy}hb_8p zMfl6Gux!y&uZBMj2T0bP%kc|Q#T!2B&d^_oSPNcG)}6&0UyOp+qp*kFu_nB%F*C;( zBg|2H)meJAA~FNB(Eu?mfNmZDiM1l?-d{^eWkpn1@2M2N5*c@$>zsKb&>0#qE3I~m zG$7PhqQOHNJr{Fask-f)c_Yv*AAoRIMm0{hK)5Saww(pNsnUXbHy81Md!Gjq}Ot)cq34$;*GE6RPn~waw>IKM}8gQ9U8E;$@8MlJ#oZXE9x^*!S>YAvxTd@J5u8I7L zt+ROJ+Q|H^k1O7|Hfr=26-wc*jrwY2@y4~$SH9|-#T(b<&B~e#=&l-_vnO5aqF&B9 zfl${)Uvdk@&f<;h^JcSK{n5Er8^s*g=go>YuFspr8#hGeJ3eLcMxf3i@x~3&z~Nd7 zbwl*6+kM7(FSx~()!^w>GOg}E`h{kw1j)1@506;0!j7LsOy)qR0Xodx@8X#?&lFpvl}xm=yVkHv)6q;x#}jDs_Y^;=KQ={ zcIWK0`Zn3~Ivk@N(4z4mawrVqXvw#{&T;*)!Z=O>Z>e+}p zo^qqFn`AxGetC2F^~RCBVeN-a++<|zU*Mn)l##LD_+MO($HW!Ci`_!_Vrq_wlbTEe z7t5I%8~Z&Ph~PkXT>(;eZ0s+rK%$O~{e|`7;Gg7Njg9@4m12Lc#>UwS+?b1HNXNyz z?IQyQ;$#8csRm}HU7aBUi9Rmwc_}IiO!sm;A+C7R-t%_YxBY~eyHYZ-x=Xqf?Jo|6 z*M5h;Np_+p3nbjc*v~5<;U>m@UIEE}gpS!n2!Vms&`ie2rXPeOBh z_v|V=DQ`gXofP{U^_0@Uq?idJodeRqq`31JvxzIvH83gea!t0(=q}T*$?Nr#v^1Z~nG1`@PMM_8Z>+9V?^YnSd)zd7cS^P#UK{oFS@9AjWO=*}XLCYtjm zWF|IC6LJH-yUfIv*u78$fZ3w63J9|$_Ae9xVYbBng`(~<5pC?g1E}A|47NE@rlZyA zNKJ@VrlZ`t>Mq-w$@Y$Iyv{#4&r+^wlVksYf;vzp$NtGlceyJuCAQTMgqK_apyeq! zQ!Z&!^8U#sZA#uhMsR8zTwuTXv#@veXrp^}AD3e~K5|)`8vA?Pl)|4HbFc2W-0JHt zPZ*}#|9mGrQ8%3r6a3khwf^)taq6ZHoau2Ncc;3$T+e3MN4JOd^)qPNQ{*x>Blg}z z9VjzmHrw)TU3a;IJ2SR-@C?C@s5Pd6BlL1+KBRIfn;HA>>?nmkGiJRl*4AB~#m%zA zckltotehg3uvxKpH0nT^74xmJI9hjk2-h0hYrmgd{Z%)EPp4eSpk(?dd5tEWD>^(cVsXsd(URmwWj{VbIYC@bHcfB|>!tU~h zn%KY1&1 zZp;S^a_zpP96uFTEcAAG2{oUJ6Ss@LMEqsG+98OjKsQl<)Sa&r4M^1aGSU87#t+O? zo3COO=)^i-?eG%O`U15>5WNLDI|OE>-VT98Um$kapPZ}9@n7SLy|#XL*suLx#l6K2 zt0moMogMNw$v&&e0txr5+98l|&#D~)$@N*aLxC>WXVng?CD-T9w?mH5z;k&6lJ9eB zhm_L5b83e`8hB3aP@rqzIk7`|2wW|8xYXXYC%kgl(mbd%yHtmmIs{!RL+mJ^<(OU9 zzBM=BbN5f~x$y?u;c(b%Xm#dzl(-WGB+BwUia6eKb%bhhycfOW0qE3=I&pw7UsT5f z!hBI3uUZ`MW$$?F-({8ba!wS-ds$~3H6gw%jyE9dD`)zZ*v@KWdXua?S$!o>R*dhJ zICX0^N@2bdSJz~(D_4v0y&Bs>Tl0km0L)i&rWoI=aq9M3l)`*9X0IhKTP>H4*TiLq zLX;<0ujNE>yw}ugDTVl&c61C@x8a>)GcqSGv9kV=4A~r%xdwyt({4WyK32a| zFKZlxvorSJe*@v{jQRds7Om9*Kl!lRdo_TWu{&>EZs+b+ucj2{ZuRQwfS-JL*Lk%a zevlX8-_1|0+?ahg7mobm!@FwLHRX6;T=BlQ>Kbb9i<6$&%C$zkZ@*eKh|U9@0|2SJ zUmXBQ)cxWBGS)S2<+@+3nqu!x`_-yz#D@;3RfFg(&{;JwEA>_lB>Dld>H%1FZ8<(1 zbN}iKhr<5t564MuX4SQl?h&!-8;2j!G&xA1BWlt>0v%D41|s1jYSIFohaORru9Yl5 zKF_4T#}UTiqk;~`iwUYYD*xvOY;g9X04>9tSIZ=%Kq|QfbLOdx(F5Xxx zOV?A_G5h49fDHKs9uVd!HAf)KQ!$%QS>V-*k)Mg}(htKvgU;lwiG`n0N2C&*Gh+U- zs;iYj8&UKdR@xI62fIBV5blVgU)}-Xjwt#KYppC>M-}ts9S0b$QANMJ0}^ah(J$|S z1RGWK%R3;!Mintd*&Ef0vyUm-4i}nB8UQfI@Ht>6CLqi)MZa(d!W>g9yBGXw#ni{y zn?K?Ozi~N5?0j6&?<=VTWn8h-g{4cg#<278MLX|8Q%#@6yT|8D@$T_OzgDLd=J+Dt z4vH<-igo|Kn5{yyl|Bbx|2}7ni~qjpm!g!y{(aFeMQddZdtWhIirU7HnH2ZsgC$;m zU(v5bsR{AEA}di@meh)u-(SpLXJd54$M5GmNui+5yuau_d#{x>>;rb% zXYA$q8{z}`*%kYKpy+q>ltO%<=$EiP%5ihC;-RA3(f6QcbCJD>+@9?rM)P3N@9059 z1-g?3r0#<{@<5_KSi~2zhv;Bt+=E5GqZjC8`e4!T=zECDTZ(>14?+Pz=ZnCs)cYck z=q*L>i#^NnABq(Vi-jTGJI;_Y`A%%vPP|<6Hh_ z0z9VE3JCGBqTkX3AwE|0Tl${ji+{4eIL$Mbs!vhCpK_kq;-7RnQW4&tiryA`iY-1~ z%xsYs#TFkgdRqj-e7xxQy+D|c7ria^6kGhWedN=y@1Q^DjfpG%x#;)0)PeHnqIbof zGGc!@=ZZj*20K>-!u^Z7A`tFh)D?S*D?V|aD{_FbdP0Q`B-j(`ia>%rp{@ud*c0N4 zVmCd-6`wrMZa4t@$^0aVGd`(yLn-Vh)oyxlMZf#tU_gkECL4Jb785gKuTw0D76)T?cesL)^7pY%dDoR_degUEjK<5`g z>MquK1|;fYoxGO@|0HT#th1M5KYJIeUtB7a|F7y7Ai4>3egVu%y`OYh)FJ3gI=DcBzNBL-&;@--#?}R;{)!^o;rg1Je{0WnFUe+s8#e5t5_*k(NMQi=Mo1=Y^9n65Xwq5iC$t7tHdO}RJSUph(D~- z=|>$XtHd8jc7lORWU~@6QWk|!aSlXO7ES9iYZIn{zn`P}G z@2~fg#nP6d-S9wo6HHksZONIkP})-TpWjgmb4!sAwOwCXC~b4j)z~Y0w!clC3kY+Y zIu{V;HgPVw^VXX$UWygFy$$uI=8j_GUN-10y56Za1R@`xJ8MAd?$i?wBv266m_H zUp=aibm9H;JnA1gLIdyT4M;cMSC68U2HsbX0@A?y>QMq+1MiDRiAej1M;+n}bnP#8 zQuRkZ75_h)2|=`iM(??3Oa?__>?9k8_?_)yHa8 zRD}1jT2&vhs$*hRLx=J=L5}5_ieVj7!=e=8F*U3{Vpzw$VF6$s&zWLa$MZglVI9x= z$he(Q!^$=;eX>Oj$8_MuwN9vOQ40TrxR!jM-A5KRCyVxh3(U<809rn&t_6g7Qe6uO z^Q5{~A91Zy;#&RcPvzqyesxOyiaJnEiC_IRYYe|STeL@G^RxQ1c{AcvXN&#^6#8UN zbyhvDk2uxH#CaTm5gwWNTDJ0bC#Vjxi` zBzRo*bOFpPnUMIcnLwwm35nmD^%Zg6m-ww2h@64W8N-CbR z%TqJBeUqdsPZ#=0y3LlGqBjn2)-*XtpytGHzkmd4PW<)@NS4is-+l>nSvDtr`_)gf zY)Q^-zs&6%VH{fW1|-v##BahVrGb{jZ^D2y(31E~m_XM+OM;CJ%d*DCtW7G-HFY)* zD$QCQ+m{StJ z#{$BflK4GVKQX4MiTfP}K!*Hm2Ev@0_)R|$=G4SLMd&BiG|m30jj5}fmZvGEG%fLu z52yoWTH+rc^b=E>{!m+UZT<9|A!al^@sACt0%LmO9~<-&6Q7azpNeXWan8tz;zBbL zf2W6<5N9MT*u;hUi3`oNlP)l~*qU}GuAj*d&tw{<1m4WVubhDJW+tqheqhBPf!B(zf z=`^4mKbur+X6ZD*cIa%XZB=bp*~NW>GXUPRNir~VngP;-=fr8Q{SJSV|8tr@kebh_ z-vDXhIrSSL=|87_BhaP)ochfGNq^~ie)Bz!(7@8X0qMe0^&3iQV5#~IkOr2j-w1RK zEET_zpTHO(%ckXw{&_!v(fL~Q4j2pI-L<1R$N4RTn^*FRMQRVZN;XG(b{+#rcyR z*a;!Ok`u+AUQv6ZCd607ok!ukVz?T$A{p5E&qD zwNBjX+jZ;Is5l5^of;Jo$~rMBxd}c%jB10ey3q8h-;kdLai|UIiPV9zA@O&=2Z%$x zp4eMH3cHe@JkxwVXNo($o}WK)r`HpI6MTS})0_6m3r+9(H*<=((wm9D`%N7vZzkOR z7H=6KuC&Q}3xM(8q}~FAxkHq%Vp(wOH%QU_m<13xg|;5=OmYjGPkO?fan6y z&1)caw`v!FMBOS=Fk7;KIXzo-VheN=d#ifOWul91>MbC020Cv6W~JU+fJEOW-okH_ zn7VSjE2$V^+jcfrwcnK_gEAwjlXUkuBjIn7-J{6@3Aaa$1W33&Y9v5%-J?b#(B-;E zjigR;-Fu#q+|Cgi*qb*X`R-LCp_B&ps*wO`V6Pg9K-a)tF%tQ1yH1Q`pZyks5X#X1h;LB%=_sCCqdbsY58 z0icfuRa8Kj2h}=&Fb}GA)QNR`;H~3qS9JVAP893-K&^wC5I+#>khMddSjUG<-5KG{ zc0@N55Bg9wNfE>kRg*x7A11unDs#S0oa3V;=wYYDre-LR48U%40EGKd;_tiw;eM3x zp`!Rzos8X4?^gg)II0T|Ak3rcS3sCY)vxNrJU%&Z;X%W)>-r>bSd8QobuCJvf1zaP#ZEp`Bcc@IXKF-s zVke(_BLcwuJZFlle4ft+ah1>2i0Z^uPKy!A@XAu>bWRjgIjwd?Da6xiM|HB)IqU5R z!0?_`I|9Nyt9As0c~@lRiwSA=di37`=)?r=1dwJX zq<((|q?rk+-(Lag!-UlDuLQb2Oi0;Z$=Cb?r4JL+;A*>LR@misAko2Yh=5tKzk&dX zJ~8D+f~-Vn7zvrOipHf2>L!f=){L zy_V`MAyAY3E0p@CoFWd?lvBiknuH?C94HRdoVvHs2iD>v&8c5VPz13#^|uRv5SvrK zkQgWi)RJZki7NmZ@@4>p*^>G@1wfcBDJuziJU>tz$fo>`#OfE5ZrK|-9D>g=XC^@S zHs^~GS>ek|{{zK{CfhbW%z#0YbBg%S{7YP5tc&Ak3+$zdZqjIW_gSCkB<{N7ITKUR;By z`Dn_^)olnmNT%g<6&HwnfNtghsXJZ81tjY9bK(Nio9QYpfo|$dS8)xJN%BV(7l@pJ zPF%pO)Qby9^goKYP`Gta0M07>c@ zwE`gFpGmoMDC!z4>ROW8TX%#*8UgfbiE0Z7bBSsT2y;owi_!9sVn{h&npV8v6*7dH zOH==D#SocW%TysCq5@rafz(~5rvgaSW#<$ECZlDl5P@!zEmMUIk=d|Z6#}BSK&KF3 zR_YZ3B>Hku$RKiVD90<(iXAAV$N86^>;L0le|6`Lci1C+P3Ni=DL+jqm!Agd#Y%tq z0nmw++6f@dtkg3Nq?wg^`2o_0m3sLR==!iyFFy^^hgIh;KR}{`-4Fq@Vt@Go5`C3k zet<+@rI#OpF8V6H{4|J|R@-jV8|JA(PA-DJxca;M*W-c+1WkV6GkhR!$Ka zyp{ToKdD1vZ>4++o1rm+N=@-5__{s z3`p$FdbMqki_n(zyqohJVH~!o&VbOj=p_>feM`y>I8kVWEQ7Z>h0?GrgSX{OSq5)Y zg;EN0nw^JK+^}( zzyV2L<_M7N4`}uRUG@hgdvW;7CHsSRN4>fHs|WQQaZrw?Mfa-+K!P4j+gFuJWPJq> z@zRP*vY(o{f_jHjK9Br5zsJhQksqZMPuqVOXuekdC{40k@Nos{$4ArPlwCB?T-A6q zjk6y;kmE@HXxbtBP+lO798K%KB-apu{LgO3QuApV^FtG9cHqfXOL#rbAIxi=NX_Te z>QE|Xwf>unk3YntNe>@tHLET`A<_0(;LOGo|N!w>a7Dy6j(tcO@ zB>0J&_-txMl{AThaY^`tE(xhMx@5*t%Oz1Tl7v6xlHjH4drQH8yCiA`lf=E;5SOz= zt73llmOA!UND}v!27kpTfoa9RFPVwwk_dbf{-8@jYTaKlP3MvbvLyT=)=#t(mgAOE z@CZo^tg#ygb2?f|=SG76>d&;4&W(f^XG`haNbp5u{7}hEK9@x3lkf*!5>o3AB{TJ0 z5@D8vKlF_(3939=3R+3xni_lW5c4;UkCx)>Q+YBpB=Km;y{jsaBpxjdyupuz{BM8L zOXjh2Nf@7mKj@N>S~E-L@pDO-ED3*zpEn~gi;=&Sf`ueeU1M))F#Ue^mpqAxB>s{o zA=`<+OFhEYp=b}TJIjtIUj#m(Xe-A!_X0hXQRVA&GDJVvYq?4S*L|dSBE% zvZLRRzP)hTyU}?A3nvyXIzL`-YAdzn>br0I!B20$^?%%P&(H7fa86yJck!08yY%Hd z?pgTTF7Zvp!it4k>*GKCziZ#sGhRBV`oZ~exl}1uRXta>A8jqwF8uy?>d?*veYT9;dwi&9h&*ybFCvB2{?mIpdw+lm=&C*K`6 zUKK}ei-1CuhMH|5jxJbChk5sjw!hy{YFP@Uoo~|Z$1)#4Q6|q zw7IYCVcJ6JykMw3Ok3#Kx%{JYWK1QQP^emI=id?E-gZJEJ>Lz!iK;4QqP@9=!RK$x zP1GI$F*mW0wR7fxn44HQ=iKr&IAS6SC)pQT;wvE*AWq7O1t}|J=LTW{;-o@{j^(d9 zVpK6xZ2zJ0br2(nQ?vs>h*Juswt*NyoKmQ?FL!rD&@|if%eY75w7jht%Cth(K2Tz* zR5O*8Y3B@k!ooiR}Yab}@or*c0>ELF^`g1x%V z^kPU#n3+|Gbnr?rXBE!t9{N{;IjhjKSNRghOeh%PMA$ZTIWA@fs6ljL#g6JRrTDQ>fM(o?&NBq0%GR$*?o0(7R6voN~o1@L6l3 zGCnWRtOY_`pjiuqxInYkMAa4ZoMdft<8%2vsfO~L<|}oeJSUVdxo)6JLGB zqTJb5IJ+o!wiN~z6)HMTtuU~t(6e`WYQb4(T`|ww|F|c9qVf4cR0=(64d?kn+EF2# z=L=oBm3ul0vb4nB_^)yA#wGdKiXbg1l)3~;8z@T(we?O8OoSjU^>V=9__s9gpa{}Z zl>$@&5rXuRmjnK0Fkj01DFXD8$^oSiUs5?R5dyR#$N_*RSLD8m0L ze?#1mw3%Mt$ec(b?)>%JEm``$-ehL;~`C4@RLh15?Odt?+_63n<@*% z2wB(~WC4JwtttyZm|ImAfH1eJEEFST;VqGc!FK2W;%>Z^wj%q z9ik1*m+#O3!VXmhAQpD0DikABVV|hNRgL>p54Z?rpXvb+%0AVDqUgc9 zZWiZGR@2tI`E3zZcvn?{Qi$&gQ6}GFgetrz+19J^y__OC@Sf%wb)dYbc~*>&frFN5 zx1s4^-a(OpgPLK~fpSneT=U^Lp$Wjw>_e{nMiIPmE63l@u>Ef zix@hpkqgAoQBBK4Qs|hZ<+Y8+a*AZ+G0jNoKslxvnMg(+myEoj@wmFnMJUHL7lBZY zYc3{&PP$yYn7`@g$-FJe#gm$gluA{}#lK;M63NBS3(o_3% z&-3m{Vt%fPnMh)u4s$iYp^#fZn5Q){fiO?&T%AN@)6mGx)q?>rhel_al9fZFu#BP< z=Flii)`?{0@W@TpFeNL8M`5xC!W_qZ%WMpezN_t=KM@c5`kx^JOQjW2aQJA=a7#kUdi5rNqkx`hq6G_og zksbEy_)^@EnR`?e*4sdsqoT0h2ErT_kqWXjN+eT9M|R5HER6uPIXXIfqa;;FM`6KD zDa_HrlvGV5RmVj3o4<+cV9LxrCTB{4UN896Zu3ubCUoEU`#b4fCCQe+1VjjtUHVDKhsSAZ}lMPbDZ zggGe+E9R1*DUlue%eY%J0OpjuP07qDQCK)r>gtl2mos`L$;@f?H}}U^HciVZl8n>x z{z)=Ulm1C`l*F;=kzY6i911A~ggKpcms>UgVNQ?2!nq{LIKw9+Zb~xF$U7*>I79Ch zr7&kmGRpe5B*{4Qu}9*;3`_~$%-mN=#hFp&w-S`Xo0$&`sW>aLJAV>)8X^f*a_KlL zXG=QH%6ls5I4kcd={P$=wlAG*YaS;CJUb-0#_w{16wljnY?Yu#Al*Xx4@Q6d?u>z?sh39$;A0&|Ko8l z`rMj(HeZDg2y?y)9}wpJh}E}j@Jo`4i-Y0-U@lh00m59YiUWkXSaqW$Q|JppHvoA1 zLO#wig}$J=K`G1^R5wbpqJGiq2Hwh&`b8BEAj}t4IDjx;ls4}q|IsctP54w&bCrE~6qE0&oFb{dN>iOWP*!QG zr;_Tc?U_;W4Na@{wr~;3YRz#Vl+_x_si4Xm)7R!5lT2T$@t;bjuMe3Ha42Lt5axQ#bRf+2n(3)z`s*Rn0We?ByD6Fe zx@J11Fkjb9PbJgeAk&95y^(tNZzT1(0DEWNuB7%(O>IhH@08RQ zwNE9rciUe*irVka8h9i?5J8c+wy?x^kprv|Cy^q!yw0PgD^RRbW*J*oykn0r(W zQpxE9UJaT7Fb}920AU_bH2}gqAeq_Gxk*kRvVR^McWyeA-wH|QLn;HQOXfo=1F7tf zKL|1aps^2B27oX>P#FNy*ay9b2-G9bc z{_T;dx|JK5EE5&@A|#0&tQH2b@NpFND7T^qSs4}iII6zTX-X!Va?GzJMvr4ba7;Tz z2_}zeYyxrZmT+Dwg^KWwtGZ;OE+@l60ziPA)Bpj(JgFiB zgn3ePDHHU$7n#8Tn4jluipYGfB15UGi^yCiJr5pXh=aTUAr6hhLIMbJXdD(2naImMWLLCuz?&8uQlQsQFJNfar zH{+7h{KzB3S2y=8C*3y}*-^bYX7Ok0%Hr6RIJ(fTe;~fz)=eZHf&So!La0;Xu*w5Mof2Qr-Nj>B!g$)* zc$_$qQ3d*Vq!8*fjYlBVX%dgJ2ro-0PxqEX#)s^JAxM~|2aCe=(`KxiQy<{>O@LZhsav4x98L%j1z_!WUt3~P( zMOa>>5dy^WBF%tmiPgoD0oOJy&M6Z6i#7JC17)$seznB@3nBIa^#29DO+c70XzT-F zzM!#RE$GD%`v90P=50#szo@ZKsjExuU&jrume^lrzdkj-zHwPjk=S3B_e^4cneYOrxIFhyVt%>CA9bKC*Z8ZJm|rRJ_oV?VbBe_JN{u|~Kv^k~CmB{PvA#+( z>|!9Tf_;hs;jYpY1HxUUDON4vzFJevZHBl6pKCtPfbdsqo&n*nmOPWKRJBC?Yq8r( zx%CzoV852PE(!2j9JW%F!hS6dTd8VEfVF#w2~ly+fN((4e{-qD5>+drVgbL-`3P=C8@JFqz(Y)UcFmDn0qyKfH3z;>eO+s zTM2q6w*8-pJKMQmO_IiU@+Kv7-igCrpPH^}`*X^*j!5S0w|Dg?3CmH2fa_KyMq4E6yH4Is<|8X7>D2Vzbaf9M*c?qSm}?}`Tw1~MvOpV>gTr{Zu{3Zzq~;%;?rdDKc$YW=hTLny zBLYfc-fMV7@J%wLbtSpqR6TAV_;dV?n)^+72-jLN&Uph49{QCmxnjIxVn z$2T>N;vu!`0T-c+GGR>xgfhy6HC1atqm5rv0cdP=-k4;^XcN{{l)AdiD_6P3$c{1g zfv4hYn#SZ5$&N93|0FxcNdIIiYAx9@*4UfcrI$O+=7PI&ws(>tV@){pqZIa7aaG>> zXf0FBIAdRImtJG%%wbzTE^k&QnsFwqIH?J7oMFW&OPtm+(OBb>(zcn)^E7M1BA+6N z)`Ueq5TZ5Yq|Ae@WtJIlub#_1I6iMnvSqvp2}T_#B~`98wtN@A^h4r%{Wa{a};52n%*8D=BCN*kyk?6NT5tN?u2_V07s_hObNW{ zI>MB~oGv3Q?}W6Gz?)&*n!XtTbB1;v2y=$U9}wmYxv3(~Z3NAqheO=(S5szk@sE_U6SQ_F& zk4yfVPb?t(*(UQZO8{wdw&~sABB+go-W(r6j7;KC2q7TMIT}Jhm~$kAMAq9#>@6_1 z+syb@nDV%3feHIWAj}0O>=S`77lH=ZDAa34D@V2ca%S_cPcK3q#`)!vQ4rsoEy|xm( z%k4K7#(#hLay7(7JX&t5{lfqtc9)wP|DF^OyUR^@rqEWxZKd74FdlOC%G^Q$&sLgh z|4t2cq>|~<;GzYHg_WjXV|kGCfoNW3qTZb@v^W1XKF|L0xwzv$a=}j~ZC!k?%Ds^W zSD70B<_e|QS|#`Y9C}$(N!FOEt)?(2sr&j*?z+2NmO~{u@>*kfZ)Kdk+)^WbUT+UR z7u%-wI_zAe(t1reAZFJ~!cFoVN;ld${}oSZ+L&{sTN^cRYFxKAO5V7aXlf)&H{1VM z#7i`rbB?&bSw)^Yw6obD@-max2-;$A{7XEfWeachxZ&a=lr5%}AAg`!lJRdvkK0v} zw@lR`Q*b?%Bf7UtDn-V$la6jT(FM*7h(reZVFhxFwwr4ICKwRvc5{wjl(dUlWB|6C zy82*>(j6x9ul2Qy3YY?_DY@G_*!qQrWLS2X_WtHm8B0414`;nojLJ^5A=H)a5>PEk z=I=Ds=a*aLShk%Lvz?}cmkA)Ic8W}RQ=nZYY6_-eOaawYjHz9w+P|&T&JE%&)5(V* z&~XVtZwcyd6AcKKc>AwKu$tl(17Nj(H?f_2$iCZj?yI#iwc9lH52nbSw@oxC6c(`z zR7~L?-u|YK;?-$-OP6`xROnQ+v%-SBL(gllx3`c_>UV1yoaVrnk>j z`^RzZ+@^4!srwtPjHP{M$YsG2!ugJgz8nhW89gvqYH^2r@8n*IpuUqkC3E^a=BjIg zDFpRh6Wtt4l`#cWr)10cuBp~rF9Q3n>2rft#?rgyn>PhZ2<(0neXAvuR$~gRrbKb~ zo9aGVimCmk?>7`;YQMSZmSBnn@_Qy~4u!3-1XN3{u=HMj`((xZUVi&pwP5N!Ghk3K z#gh4eiL?i;F$GjpvdKJPs=Yq6bDPWq=6o-ZKr9_F9Hjb4=Rw3l6I~gcYJ(-9T9OA7 z2Te6;{xz3=@?_$mslP;PW9p!}?22-Gl&4Zj{%Wd@ptZ%i>u(QITY>Ob6W*4shyZ+K(m>zm9pe#k8pRr^fjG00=733pLP{w(^n+g!-vyJ0sr$7ypkN;s z2EsjV+WCjcK)Av$Nn=`k?6jBH zr39;wvW`1x&biQ!lv~H0G`)PVw3l_2k4_LOo?Jm8g*WL)e@)=Auw2 zas=ddwGdU5!aZ#|dYuQtJ#Cr?2QGSa#u%?`?VbJrwOP@hGkLS3KWEIPUdr0bf^KNh zd@VF9f&PyHvnbB6qWO9#6omn5l*pQHSnVA61kMHt}v~!^Su9$Xqo2qjpMIW+HEsw9d@gZKjbhfxiorj8HHxI=0L&YE&K<@oR z#UL31y<|L8L^9+Q@*GLAhwT+B;)`1z&W%daK3vS&gf=8;A1=15(ACJCTS>+gtNt^n z%(>JYQ{-$yM&Vp>@zG-B;{!yV0lks}Nu5WF)&AXZAk;^T6)!61M%Rh!j~3k;PE1ic zwiwn#AhXUx|MbxBUj5o-Yrdmlk<9;7fM*Pvdi1esss3b>F)A>vcc8jgM7syX*G5>TbKc z?(ToOz3yjs{OtCh-(7ddkLqsw;SYcE^B*_)-e3Tau;34AfOxdD$O)xrH4u-M7SHS8 zhO9#+SzfH#6o#w=HJ2Azkcu#O5Mf?XydZibC^Hu*Ur|Juo26Wa^yQ-I-^u>lnz&z! zQ)aM_LQ1Lpa+wSEZzhWkpf&Wi>R?kmM08XW|!)?5I=1^RU|5bEk;yCG6o6uBd!%xj8$`vsR#=CwuR*O49E{u=04=Rmk?i#`3i5eRi{F{~Rqh%&D$ zn!gPYE~ql0Y3L zfwmN*{ULwA6mOCIk<)>Wl0Vy+J384n*T;1W&)E>aA2|u=C}*w*atZk1|E~mKfQZ9_ zmjECQA5aMZ(uD&e0bS@qr%Li+vFc-6{YKom@?nvUw;Z>267LQdqc6MT*8e8b!6mG6 z%}X5+tA~r>xD|-i!$po;LuEqfaIxz(ZcRvO5ctEzZdbc=qfU~kM~ePsV*rDGq!`YP zfUYncJp!?Pq{z8JFFfvCNj@#|?4|RjxM$l>iyZCA30-IL_=LS_Q+(}BC)7zUV(3IM z9DV{ZbfU;ffj9}o$rHs+Uvf?g^s~^3V&^NJlbyxM&%Be(0G#|xodmkV;3N>+pNW(5 z{sZ;jK&GDrJPVx0aXi)5(Dwez$QwPeaB8$#z9R+lz7&X{o@5WbL*Ey0sGT7@n zkl{b0vlI|hXNnb{SU^W+F(|>+S$68flBlB{IwG#abI~iXnv#X&up}J$Qwn!j!ZEEJ zSaz0$Tyk}h z+j4&rwxA%41APnuse6AC770MC-k*d;LYL?Va)0hm!YYB{aDVPk+{VI~E;63KO?U-K z?k9+D0{!g;y3$TwX@OY(ZPNY1asyG+wUUfVs-Cug+!FV$8I^FxCQ;N?+#Q|Rn>WQ* z{2c&qN2|9$?2S%BFafbQItjr9#M#kF2qu9(m_{cAQ+H<@`k2Jtcr@^uq6Y zrrb>m{D4!9X2$A(18HWg4mglz#_D(r^v#Tw@s?FtSE)bF{>!%b;-+!AQ3=Iyxlswl zabi>+6m*qPw26Or8h|@iqY4PqCgGJQAWWNtSDw0x>*EvmAwx63p%9NinBz4bfiTBQ zJj&5rS6LNIu!VQ{NNDX_91l;(eU&+LLJ}UMP!ZmQBs}ryDn~C9ZDD)dqiJGJk*RWG z-aVNrC+6K_$R;Ir-Kn^r9lD)&@h9a(nJ6bE;i$f=+rdmqIC4BD$CO>=amchJ>eFez zefXbw`{=4==~ed3tI31z5T0T>Ot}|vAjYO8sn2&HUQA1R`9t`wGILH({0qzgx<5S$ zVhV&gJqbDmggHIoj6psH>?-r-jKp4jZrarz?rY4&T%q9^`8|@kb4C(A3#1hKjD+ol z$Xr)>usBnM=IYJyfWbhxV6PfLxHFTWcR;u^6J{RKyRI_N%}VTsY3XHl_vYBx{=4Gj z@>wcVlw)jG64vEFjLk}d;sG%>OGZGxqwFf{=Gpd_yW*>xX6JW67QeHT@Iab6P-Z8c zx;T;SDsOAfN!&wGJeRjM=j3h6+nRG!A}NJAC*gcvKEUWIZ(z?uCHPX=4&5CmE%Wj& z%K`ShJTT=2?0E?vV90u*TP1lmsahC>vKuv@O;Ues&`p$Qz6vFXz5{*U0;xM+V-Sed z`I@)gyim^9#HBbS?tB%>Zj$#4R474o7U+c%=t_f70q9zFLf}wREF16 zKrbcHd7XOOdA-x~Y}a0;_U;LEt(%i6@^=Y{nU``iB7`rgQq+nNuCTw@%M;TT8ZKOf zvO*OQ2xWyTV67tu1Lb9rzP_%1+}T$WySv)-yrkB>hW<+K zpNQWpN#@sRl)`)^sjYKwO4o|`y_!V*J2lw>|I9B2+{z)SUAqtYQo zSa>yITPLzxE7Qjsk=-FpYjTRH;2Kq2>Off|irddo5W#g`xa=eE@M6L`)va2mcTI!WVUmD~#5Le3;yRL3N8#=o?hGYDM-op4BZNT(H+IAU6?DvQ{K-hp6Ob zgZUdbcjQD-ydA2QltSDgTIq=>-mb(J?umz7TN~97%DeLZ%Fjyd%KIw{xGM>tt5X?6 zyX3yPCvCOz+WMZvw%ij>#0UATdyh_XK&X3?@YOmH>YjwJ)@4y!8}Y*u`+{Br2=slq z4|15jPxYEonEO<(Ya@PH;$5%TEdbhlH^0|%9{p~fPV&nV@2X(eRgwcq)%!uP>!^7k zNxQq1ZJj9KK^1HeR)IcIfYd#xQUJv2L6L%gl4Ti~R5_@EEzs-KK^5#eQKUmE*dTff z^nwj^r9rTPSU)6!-50^GuOx?)sdn5=p0B?_|w?OP2QNadc z?}!RE5ND65U<>rl9#O%r7iW(K!3JRaXl`44J*t9DDYlQQU<0vzR0Uh0w|!IuTXv%L zBG||5-1pGoef z;Dr#b`de7<)cknfhN$^*Rr7jL^OJsAYu9}cCxcFEL{WruCsosd5KoGx%XjnjqUoO} z|JQf(g9mffU-kk7#Kh+slt4^;E*dYQSue}m(`X+*s&O&Ep|IKm!aS|2350n%VOJ`v zy?W93p(Wlvt1p>aT9x-o!P=^*`_NKY>QM@JXo>kjmU{IvsKZP4OPk|Cw&kx#_3)f1 z8b7=g)_K%~IJ^}0we_;l9Z|~Hd0*xVqc?)@1D(79abrX&EcAd_8&L`iJs{Rbln_kW zMb(S&k1W|=bTQrNfN1_mK5-0&MDs_M!s?z&UxhvU6Tm@?@G3&s~a;>_uu7AQTN}K!Xm%ksr&Crd=e?LSuf)L zP|1GtiS%Oo{f~Ho`k|aC68}&stWBv&lMj``+O%Glvk#9OXu8u!dC>Q8K3F2~50}E` zol%3Xc!$)_(w|NeLYHHK2i#w^w-Op_ECG&k@)78 zNAnviTK;G$Z2PGL<|RO!P^wy3Dh%pccl8f{*xw(-*WGmI9sm9-j@hsK_g~y`r=9e1+`8rurJ$VMr7w?{ z+?l|40CeSX?Fx{_9xsJ60U(V%UJ7RdKzj0cDVzxi^g{G_DVzy(m!3?v-#i-kxMgx~ zRC+ME6b=KZgVD*7PBM1@F*>;v4g&;wqmxTWretb&k<6(KzWeQg|L#d5J6!X3fEu(g zRqp_h7N+VQ0Mf!#y#WG!3sdC=_!g-DM2XLYYo?_A+*-K1TMKhdTadNz6L|}wo=->% zawyPU)bmL@_Y>B_PinAn5z3RLa2f!F@?1@S z=wx@%$v>66P68YXIthgNr&8Dz17ZHD6m+t?=;WWz>LifH!CohUaR012355G+)yeKM zcuxhLy!BIb@~NCCI{B39BsC#Er8?PNbaL(&b&@NL(_Bq`Aa2Z6odjZSuIeNZYjZ^> zMS8l6PCgx^=Z51*&(rz65t)2irH7gjpH}JVE;9M7NKZ3=GG@=_?Tbo2tI|U$yk|vv zWK-N-mcNJ7l5vB2DjMHu8n-DN>30C>Ahy#-=#nJNVkd&^WQfH=EMl|rC* zc9|+g4{>(6C`Ije_#4y9bJODLa@7k;F}+;%0*LA5suu#i>E)sq@{Mc{(TkP#=Fj3Q zZ(Nxhl?GSp=u!uxD^((Z7+tA@E6^KVDTC{cQh$}*iP5H2xlvJtRk=}7g;lBwJwz2& zm;6y7fIhC)5CXznt>OTLxmv}chls;#CI6cz0Ea@h0%5+U!3Tu-nrMXVS$l{^tS#BX zBm8m+0Os1htr4GOPm|8}3-mp!l<8L*-p_6(KCjxJj!Z(~iT6v?y&mzc{ zsfUQbX8Y7>eiUePK9rLFn@i!F2I@fBT;iJsSzPvz^xsnQM~MK2XG^}?mNj^X(xi!(6Upds)u{*y;G$M2xF&6l^nzMtR!!js`drN>51*P zOR0a=qNk+r9#tF=9RPa80aAC5-cle|_h?S^jD8?VyhoFQ;*b=3RB?JrPVH620WrEj zuQ)(g8WabJ^}V7v{qeb1C3&w@^*ei6!8FypS4w+0#pxyP9t?^Dz}tiBEf9MLRdImW zJE)2S#My(YI0AhJA5_KZCCvP+-~GKMEbbs7ivavuer%!#5sCslhWg?Li5N4_KPC2Nz0s$d@t_svk6zH@lP^e?x-~EbAebLm4=;HZ!ch@(y;TQION!3ONu_6hMgCPAqIK@1G>^6 zU_h)toQ5S+LnRrTRy}J^reQ0x;;K!<7K>6$+ca#kfS9&v*kTFvrfrIV z4RLNGV0`{mHkS_?pBt41$Lr`eH~||kqw6U&F(E~s`uWEQE6T_d7yPYhaPl-ECyP8y z5VCBT8bqEZrfz9uuc{_ACu(p}M5`0iux$cDoS24fQ-i3}q|`q|1vnIf8VGYz8g}gbqzy&@PHLO-sYm z18PH_mWHPX4WjSUNg`Q^0q}Hs&J=N)o`!=RN?}eYk=vPO~xPlG7b%pe*7dOcG`0|;}biUttoOcjj=St`x?f@oaC6&jwE-x^sj z%~I8%6#6Vt4R`e4AaXS)wKYxY1ScC@fIcVhwMf>SG&}{M6#ASrJOyYF$(m1s{aat z(}$W1(y(IcBN@C<1qVbIfc};Psk>048i>_}64h>x2Ii(ORKXGG6K$aiP9I6B=TvY& z_zd)d19YW9aDZ5UP6X#tR!n^>$@6K|Hv7vOb4ktfY1-cjPG50%Ne~*#y6w^ypaDbRzs)8fXn_en{ zBR|v8S5{0f*(L4F*S`HyZd4k4Nk^AD7=20Q9Ej1EbZ`ZFqc6$edZW}|A(Avij=>x3 z2klIULGqpv7yS+F>tty~-h{}~3YDe4B1`>#UqDzvmeMOgECF|t$8{klw)qDlQd^HWHI(YnqZ-^W7ngcFQ(wjL^B!X5r^w3? z`kkN+pnB&F0I*{rURV3G>W_L1bG4A?K|o%5PR>aya2KHj>-#=5PL`EMW9dD zcT`>)#o7HLFFkJApBoh?_p7i_2c!E{Sb!MaufihG8{IF$A|IYNim)7DeC>@><14=d z#AUD_U?A2H=l}z;en1Bpi1h1V12VqeI`t3Pz8%f=O^0%$atd@PH!7NPNHwKV zH06V!DFEF0K=TX;^8?isAj}U`QyRtfzj{r%7~oLIP$0~|s-^&8{#7(ZRuGM%DIcZb zXR_SSW^xHW*Zjr<2>&C^Q6T(}QeJnJz;6^~`8bU(u=7sGb+&D17HB{(4irNDI1T45 zK&T(5e61;R)+j^xiI=m%037*5mmffwpQxMxVSb`=)+n;_=@*tCc8Rq6Y2L2L%BL!5 zREPbk?pYc|R!)3j&%y;dd?IIywwzE&qZIZD*|Uf!HHx-;CZg1%@w5ECimH63azq^{ zpQ#)*imIFvIjV0wl~Y7dPUWE>dU8sIs8RIfj0jQBrZYK3l;n&`5OtuOQ3-04CC;$S zFL3}2=ddj7semwtWnoVRggGn=d#a{NG9s(GKl6L4CTfnz(q^}(YLcYBFAIAr5CaAD zDFUSKeOcI30kL{trb`?!H~79R?5PC$9JwzGd#WZ$v5{HWQ-Saq=rsuFN`nRgu|6_G zgLPEn);S8xlw6yOctJyQU{}BGJZ~`*7*Y(n?+qZ zwX3`O@4r>|t=s>{oqVHo!|lHcAHwu^52UD}E{f=k&8>;(j1_B=h5bcz#$|lhZm+E~ zeFpHS|G1F?XydYQYygBdE(Er zIYlyJo>0E+8Y3f~$)a;QeZ_urMRJk7s)y+^hztH^4Rm?&Ocr+JK*-Nz?8v|G$oMut zi#m0>$^LRqe3^Zvhp8LH1tm*j%vUWM=n`YTXpwwbHjun}-S3?MO@E6J*?>g}vB=z=f4FLCw%yywo_uf5GS^fn#Z zuFCkuOqqC^r5CI1O}&|TR;%}1#Qti%*+A^C)`NPOwUXhI zzs-Wy+o=sKeb(m`$))vKI2WUiR1)2mxvE)am)Gr4S{d|uPLY}A^}H3ypx3399*#l; zypcuSJDqPgEK1I^-|J&q4d8f&(0pr zmj`UubfXC3cAYJO5VvQXuSu#l%L;d=rs`lILkjk(3WU2;Qxynzr=+UPe$BGJ-R);T zJGUP@+1)z%Q3P?fPJTd$yLIv#TuJt3RquuzA56`?S?YfRWw2z&KFx6u?g0G_0aACL z<~R_m`y|I@bO-x)qV{QyQyhkOpXT^riP?8F$3cVu(C0YNm4+M#V*MS-@$<;>iz>;% ztm;E@JgvLs_MhGHuebZJyf1=tF!Mi9^FwoyxPM692jM=@yAP!DA$1=}1BcXoAou=| zdN0ri$06}vH2)&;{sY^g$y{{H2YQRRC|9$R|Fs7oMnA~f)|AV5eKAk(vZ`+Gr*tl+ z-r?#Z;H9bHLU*;_XxnO)PwPw{-5rS4!p zsiI@aCs}mb9&R$1wtSK$?q?q4I^yt2*3SJjfIyo6By0SV%rgS{Z|9C>=0uk86C0Vk zFn9H0UWyAB^I9h}bBbE+$|YCpQ6{KxiRYGFDpZo8<>-NO+^Kh+{bPSKsAXt5ao@O0 zAx;b}w{?jw5GRI~8!in_@Z&zou(BCZRwoL^I}t8=C#2SWW%FBVc_#`+oCue^6TDFU zU^)6v@5FZp;KYNRg-iI+s>tMn<@P-l;>3gHf!75mkhkQavKf8Wi6}S`E_x@V)+1#z z_N)_;b0S<~y+u25C9&mbGEVfbv*m%@4x5hz|C^w(`ACSw+I%GVS~B^4*-SX=L>!z5 z7rhfw>knl!>8um6b0S>&x^sdmQ_ImToVdKsE*ogR(lWK2xE}|=LxU4j%l_R|fjBX> z-2a*|67pXWPAi)y&pKg(6XBwFLTb$@n?Id(!Z;_wC4R^a!z@^yDn|=(qPEW7KZs|8 zPvuS&apI}m3E5XXl{>*tvLtiL=IOIe6oV7tqIW`SJySLd&N@+aPWVedNPcnW9e3Z+ kTt2WYPWon+^Yp{7d*(;$O Date: Mon, 5 Feb 2024 23:30:24 +0000 Subject: [PATCH 27/29] PMM-12811 pass context around, fix tests --- managed/services/inventory/agents.go | 241 +++++++++++------ managed/services/inventory/agents_test.go | 65 +++-- .../services/inventory/grpc/agents_server.go | 247 +----------------- managed/services/inventory/services_test.go | 16 +- 4 files changed, 216 insertions(+), 353 deletions(-) diff --git a/managed/services/inventory/agents.go b/managed/services/inventory/agents.go index 9d3e608622..9fe0b1e559 100644 --- a/managed/services/inventory/agents.go +++ b/managed/services/inventory/agents.go @@ -123,9 +123,9 @@ func (as *AgentsService) List(ctx context.Context, filters models.AgentFilters) } // Get selects a single Agent by ID. -func (as *AgentsService) Get(ctx context.Context, id string) (inventoryv1.Agent, error) { //nolint:ireturn,unparam +func (as *AgentsService) Get(ctx context.Context, id string) (inventoryv1.Agent, error) { //nolint:ireturn var res inventoryv1.Agent - e := as.db.InTransaction(func(tx *reform.TX) error { + e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { row, err := models.FindAgentByID(tx.Querier, id) if err != nil { return err @@ -153,29 +153,34 @@ func (as *AgentsService) Logs(ctx context.Context, id string, limit uint32) ([]s } // AddPMMAgent inserts pmm-agent Agent with given parameters. -// -//nolint:unparam -func (as *AgentsService) AddPMMAgent(ctx context.Context, p *inventoryv1.AddPMMAgentParams) (*inventoryv1.PMMAgent, error) { - var res *inventoryv1.PMMAgent - e := as.db.InTransaction(func(tx *reform.TX) error { +func (as *AgentsService) AddPMMAgent(ctx context.Context, p *inventoryv1.AddPMMAgentParams) (*inventoryv1.AddAgentResponse, error) { + var agent *inventoryv1.PMMAgent + e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { row, err := models.CreatePMMAgent(tx.Querier, p.RunsOnNodeId, p.CustomLabels) if err != nil { return err } - agent, err := toInventoryAgent(tx.Querier, row, as.r) + aa, err := toInventoryAgent(tx.Querier, row, as.r) if err != nil { return err } - res = agent.(*inventoryv1.PMMAgent) //nolint:forcetypeassert + agent = aa.(*inventoryv1.PMMAgent) //nolint:forcetypeassert return nil }) + + res := &inventoryv1.AddAgentResponse{ + Agent: &inventoryv1.AddAgentResponse_PmmAgent{ + PmmAgent: agent, + }, + } + return res, e } // AddNodeExporter inserts node_exporter Agent with given parameters. -func (as *AgentsService) AddNodeExporter(ctx context.Context, p *inventoryv1.AddNodeExporterParams) (*inventoryv1.NodeExporter, error) { - var res *inventoryv1.NodeExporter +func (as *AgentsService) AddNodeExporter(ctx context.Context, p *inventoryv1.AddNodeExporterParams) (*inventoryv1.AddAgentResponse, error) { + var agent *inventoryv1.NodeExporter e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { row, err := models.CreateNodeExporter(tx.Querier, p.PmmAgentId, p.CustomLabels, p.PushMetrics, p.ExposeExporter, p.DisableCollectors, nil, services.SpecifyLogLevel(p.LogLevel, inventoryv1.LogLevel_LOG_LEVEL_ERROR)) @@ -183,11 +188,11 @@ func (as *AgentsService) AddNodeExporter(ctx context.Context, p *inventoryv1.Add return err } - agent, err := services.ToAPIAgent(tx.Querier, row) + aa, err := services.ToAPIAgent(tx.Querier, row) if err != nil { return err } - res = agent.(*inventoryv1.NodeExporter) //nolint:forcetypeassert + agent = aa.(*inventoryv1.NodeExporter) //nolint:forcetypeassert return nil }) if e != nil { @@ -195,6 +200,12 @@ func (as *AgentsService) AddNodeExporter(ctx context.Context, p *inventoryv1.Add } as.state.RequestStateUpdate(ctx, p.PmmAgentId) + res := &inventoryv1.AddAgentResponse{ + Agent: &inventoryv1.AddAgentResponse_NodeExporter{ + NodeExporter: agent, + }, + } + return res, nil } @@ -218,10 +229,10 @@ func (as *AgentsService) ChangeNodeExporter(ctx context.Context, p *inventoryv1. } // AddMySQLdExporter inserts mysqld_exporter Agent with given parameters and returns it and an actual table count. -func (as *AgentsService) AddMySQLdExporter(ctx context.Context, p *inventoryv1.AddMySQLdExporterParams) (*inventoryv1.MySQLdExporter, error) { //nolint:unparam +func (as *AgentsService) AddMySQLdExporter(ctx context.Context, p *inventoryv1.AddMySQLdExporterParams) (*inventoryv1.AddAgentResponse, error) { var row *models.Agent - var res *inventoryv1.MySQLdExporter - e := as.db.InTransaction(func(tx *reform.TX) error { + var agent *inventoryv1.MySQLdExporter + e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { params := &models.CreateAgentParams{ PMMAgentID: p.PmmAgentId, ServiceID: p.ServiceId, @@ -258,11 +269,11 @@ func (as *AgentsService) AddMySQLdExporter(ctx context.Context, p *inventoryv1.A } } - agent, err := services.ToAPIAgent(tx.Querier, row) + aa, err := services.ToAPIAgent(tx.Querier, row) if err != nil { return err } - res = agent.(*inventoryv1.MySQLdExporter) //nolint:forcetypeassert + agent = aa.(*inventoryv1.MySQLdExporter) //nolint:forcetypeassert return nil }) if e != nil { @@ -270,6 +281,12 @@ func (as *AgentsService) AddMySQLdExporter(ctx context.Context, p *inventoryv1.A } as.state.RequestStateUpdate(ctx, p.PmmAgentId) + res := &inventoryv1.AddAgentResponse{ + Agent: &inventoryv1.AddAgentResponse_MysqldExporter{ + MysqldExporter: agent, + }, + } + return res, nil } @@ -293,9 +310,9 @@ func (as *AgentsService) ChangeMySQLdExporter(ctx context.Context, p *inventoryv } // AddMongoDBExporter inserts mongodb_exporter Agent with given parameters. -func (as *AgentsService) AddMongoDBExporter(ctx context.Context, p *inventoryv1.AddMongoDBExporterParams) (*inventoryv1.MongoDBExporter, error) { - var res *inventoryv1.MongoDBExporter - e := as.db.InTransaction(func(tx *reform.TX) error { +func (as *AgentsService) AddMongoDBExporter(ctx context.Context, p *inventoryv1.AddMongoDBExporterParams) (*inventoryv1.AddAgentResponse, error) { + var agent *inventoryv1.MongoDBExporter + e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { params := &models.CreateAgentParams{ PMMAgentID: p.PmmAgentId, ServiceID: p.ServiceId, @@ -330,11 +347,11 @@ func (as *AgentsService) AddMongoDBExporter(ctx context.Context, p *inventoryv1. } } - agent, err := services.ToAPIAgent(tx.Querier, row) + aa, err := services.ToAPIAgent(tx.Querier, row) if err != nil { return err } - res = agent.(*inventoryv1.MongoDBExporter) //nolint:forcetypeassert + agent = aa.(*inventoryv1.MongoDBExporter) //nolint:forcetypeassert return nil }) if e != nil { @@ -342,6 +359,12 @@ func (as *AgentsService) AddMongoDBExporter(ctx context.Context, p *inventoryv1. } as.state.RequestStateUpdate(ctx, p.PmmAgentId) + res := &inventoryv1.AddAgentResponse{ + Agent: &inventoryv1.AddAgentResponse_MongodbExporter{ + MongodbExporter: agent, + }, + } + return res, nil } @@ -367,9 +390,9 @@ func (as *AgentsService) ChangeMongoDBExporter(ctx context.Context, p *inventory // AddQANMySQLPerfSchemaAgent adds MySQL PerfSchema QAN Agent. // //nolint:lll -func (as *AgentsService) AddQANMySQLPerfSchemaAgent(ctx context.Context, p *inventoryv1.AddQANMySQLPerfSchemaAgentParams) (*inventoryv1.QANMySQLPerfSchemaAgent, error) { - var res *inventoryv1.QANMySQLPerfSchemaAgent - e := as.db.InTransaction(func(tx *reform.TX) error { +func (as *AgentsService) AddQANMySQLPerfSchemaAgent(ctx context.Context, p *inventoryv1.AddQANMySQLPerfSchemaAgentParams) (*inventoryv1.AddAgentResponse, error) { + var agent *inventoryv1.QANMySQLPerfSchemaAgent + e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { params := &models.CreateAgentParams{ PMMAgentID: p.PmmAgentId, ServiceID: p.ServiceId, @@ -399,18 +422,24 @@ func (as *AgentsService) AddQANMySQLPerfSchemaAgent(ctx context.Context, p *inve } } - agent, err := services.ToAPIAgent(tx.Querier, row) + aa, err := services.ToAPIAgent(tx.Querier, row) if err != nil { return err } - res = agent.(*inventoryv1.QANMySQLPerfSchemaAgent) //nolint:forcetypeassert + agent = aa.(*inventoryv1.QANMySQLPerfSchemaAgent) //nolint:forcetypeassert return nil }) if e != nil { - return res, e + return nil, e } as.state.RequestStateUpdate(ctx, p.PmmAgentId) + res := &inventoryv1.AddAgentResponse{ + Agent: &inventoryv1.AddAgentResponse_QanMysqlPerfschemaAgent{ + QanMysqlPerfschemaAgent: agent, + }, + } + return res, e } @@ -433,9 +462,9 @@ func (as *AgentsService) ChangeQANMySQLPerfSchemaAgent(ctx context.Context, p *i } // AddQANMySQLSlowlogAgent adds MySQL Slowlog QAN Agent. -func (as *AgentsService) AddQANMySQLSlowlogAgent(ctx context.Context, p *inventoryv1.AddQANMySQLSlowlogAgentParams) (*inventoryv1.QANMySQLSlowlogAgent, error) { - var res *inventoryv1.QANMySQLSlowlogAgent - e := as.db.InTransaction(func(tx *reform.TX) error { +func (as *AgentsService) AddQANMySQLSlowlogAgent(ctx context.Context, p *inventoryv1.AddQANMySQLSlowlogAgentParams) (*inventoryv1.AddAgentResponse, error) { + var agent *inventoryv1.QANMySQLSlowlogAgent + e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { // tweak according to API docs maxSlowlogFileSize := p.MaxSlowlogFileSize if maxSlowlogFileSize < 0 { @@ -472,18 +501,24 @@ func (as *AgentsService) AddQANMySQLSlowlogAgent(ctx context.Context, p *invento } } - agent, err := services.ToAPIAgent(tx.Querier, row) + aa, err := services.ToAPIAgent(tx.Querier, row) if err != nil { return err } - res = agent.(*inventoryv1.QANMySQLSlowlogAgent) //nolint:forcetypeassert + agent = aa.(*inventoryv1.QANMySQLSlowlogAgent) //nolint:forcetypeassert return nil }) if e != nil { - return res, e + return nil, e } as.state.RequestStateUpdate(ctx, p.PmmAgentId) + res := &inventoryv1.AddAgentResponse{ + Agent: &inventoryv1.AddAgentResponse_QanMysqlSlowlogAgent{ + QanMysqlSlowlogAgent: agent, + }, + } + return res, e } @@ -506,9 +541,9 @@ func (as *AgentsService) ChangeQANMySQLSlowlogAgent(ctx context.Context, p *inve } // AddPostgresExporter inserts postgres_exporter Agent with given parameters. -func (as *AgentsService) AddPostgresExporter(ctx context.Context, p *inventoryv1.AddPostgresExporterParams) (*inventoryv1.PostgresExporter, error) { - var res *inventoryv1.PostgresExporter - e := as.db.InTransaction(func(tx *reform.TX) error { +func (as *AgentsService) AddPostgresExporter(ctx context.Context, p *inventoryv1.AddPostgresExporterParams) (*inventoryv1.AddAgentResponse, error) { + var agent *inventoryv1.PostgresExporter + e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { params := &models.CreateAgentParams{ PMMAgentID: p.PmmAgentId, ServiceID: p.ServiceId, @@ -543,11 +578,11 @@ func (as *AgentsService) AddPostgresExporter(ctx context.Context, p *inventoryv1 } } - agent, err := services.ToAPIAgent(tx.Querier, row) + aa, err := services.ToAPIAgent(tx.Querier, row) if err != nil { return err } - res = agent.(*inventoryv1.PostgresExporter) //nolint:forcetypeassert + agent = aa.(*inventoryv1.PostgresExporter) //nolint:forcetypeassert return nil }) if e != nil { @@ -555,6 +590,12 @@ func (as *AgentsService) AddPostgresExporter(ctx context.Context, p *inventoryv1 } as.state.RequestStateUpdate(ctx, p.PmmAgentId) + res := &inventoryv1.AddAgentResponse{ + Agent: &inventoryv1.AddAgentResponse_PostgresExporter{ + PostgresExporter: agent, + }, + } + return res, nil } @@ -579,10 +620,10 @@ func (as *AgentsService) ChangePostgresExporter(ctx context.Context, p *inventor // AddQANMongoDBProfilerAgent adds MongoDB Profiler QAN Agent. // //nolint:lll -func (as *AgentsService) AddQANMongoDBProfilerAgent(ctx context.Context, p *inventoryv1.AddQANMongoDBProfilerAgentParams) (*inventoryv1.QANMongoDBProfilerAgent, error) { - var res *inventoryv1.QANMongoDBProfilerAgent +func (as *AgentsService) AddQANMongoDBProfilerAgent(ctx context.Context, p *inventoryv1.AddQANMongoDBProfilerAgentParams) (*inventoryv1.AddAgentResponse, error) { + var agent *inventoryv1.QANMongoDBProfilerAgent - e := as.db.InTransaction(func(tx *reform.TX) error { + e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { params := &models.CreateAgentParams{ PMMAgentID: p.PmmAgentId, ServiceID: p.ServiceId, @@ -611,18 +652,24 @@ func (as *AgentsService) AddQANMongoDBProfilerAgent(ctx context.Context, p *inve } } - agent, err := services.ToAPIAgent(tx.Querier, row) + aa, err := services.ToAPIAgent(tx.Querier, row) if err != nil { return err } - res = agent.(*inventoryv1.QANMongoDBProfilerAgent) //nolint:forcetypeassert + agent = aa.(*inventoryv1.QANMongoDBProfilerAgent) //nolint:forcetypeassert return nil }) if e != nil { - return res, e + return nil, e } as.state.RequestStateUpdate(ctx, p.PmmAgentId) + res := &inventoryv1.AddAgentResponse{ + Agent: &inventoryv1.AddAgentResponse_QanMongodbProfilerAgent{ + QanMongodbProfilerAgent: agent, + }, + } + return res, e } @@ -647,9 +694,9 @@ func (as *AgentsService) ChangeQANMongoDBProfilerAgent(ctx context.Context, p *i } // AddProxySQLExporter inserts proxysql_exporter Agent with given parameters. -func (as *AgentsService) AddProxySQLExporter(ctx context.Context, p *inventoryv1.AddProxySQLExporterParams) (*inventoryv1.ProxySQLExporter, error) { - var res *inventoryv1.ProxySQLExporter - e := as.db.InTransaction(func(tx *reform.TX) error { +func (as *AgentsService) AddProxySQLExporter(ctx context.Context, p *inventoryv1.AddProxySQLExporterParams) (*inventoryv1.AddAgentResponse, error) { + var agent *inventoryv1.ProxySQLExporter + e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { params := &models.CreateAgentParams{ PMMAgentID: p.PmmAgentId, ServiceID: p.ServiceId, @@ -683,11 +730,11 @@ func (as *AgentsService) AddProxySQLExporter(ctx context.Context, p *inventoryv1 } } - agent, err := services.ToAPIAgent(tx.Querier, row) + aa, err := services.ToAPIAgent(tx.Querier, row) if err != nil { return err } - res = agent.(*inventoryv1.ProxySQLExporter) //nolint:forcetypeassert + agent = aa.(*inventoryv1.ProxySQLExporter) //nolint:forcetypeassert return nil }) if e != nil { @@ -695,6 +742,12 @@ func (as *AgentsService) AddProxySQLExporter(ctx context.Context, p *inventoryv1 } as.state.RequestStateUpdate(ctx, p.PmmAgentId) + res := &inventoryv1.AddAgentResponse{ + Agent: &inventoryv1.AddAgentResponse_ProxysqlExporter{ + ProxysqlExporter: agent, + }, + } + return res, nil } @@ -719,9 +772,9 @@ func (as *AgentsService) ChangeProxySQLExporter(ctx context.Context, p *inventor // AddQANPostgreSQLPgStatementsAgent adds PostgreSQL Pg stat statements QAN Agent. // //nolint:lll -func (as *AgentsService) AddQANPostgreSQLPgStatementsAgent(ctx context.Context, p *inventoryv1.AddQANPostgreSQLPgStatementsAgentParams) (*inventoryv1.QANPostgreSQLPgStatementsAgent, error) { - var res *inventoryv1.QANPostgreSQLPgStatementsAgent - e := as.db.InTransaction(func(tx *reform.TX) error { +func (as *AgentsService) AddQANPostgreSQLPgStatementsAgent(ctx context.Context, p *inventoryv1.AddQANPostgreSQLPgStatementsAgentParams) (*inventoryv1.AddAgentResponse, error) { + var agent *inventoryv1.QANPostgreSQLPgStatementsAgent + e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { params := &models.CreateAgentParams{ PMMAgentID: p.PmmAgentId, ServiceID: p.ServiceId, @@ -750,18 +803,24 @@ func (as *AgentsService) AddQANPostgreSQLPgStatementsAgent(ctx context.Context, } } - agent, err := services.ToAPIAgent(tx.Querier, row) + aa, err := services.ToAPIAgent(tx.Querier, row) if err != nil { return err } - res = agent.(*inventoryv1.QANPostgreSQLPgStatementsAgent) //nolint:forcetypeassert + agent = aa.(*inventoryv1.QANPostgreSQLPgStatementsAgent) //nolint:forcetypeassert return nil }) if e != nil { - return res, e + return nil, e } as.state.RequestStateUpdate(ctx, p.PmmAgentId) + res := &inventoryv1.AddAgentResponse{ + Agent: &inventoryv1.AddAgentResponse_QanPostgresqlPgstatementsAgent{ + QanPostgresqlPgstatementsAgent: agent, + }, + } + return res, e } @@ -786,9 +845,9 @@ func (as *AgentsService) ChangeQANPostgreSQLPgStatementsAgent(ctx context.Contex // AddQANPostgreSQLPgStatMonitorAgent adds PostgreSQL Pg stat monitor QAN Agent. // //nolint:lll -func (as *AgentsService) AddQANPostgreSQLPgStatMonitorAgent(ctx context.Context, p *inventoryv1.AddQANPostgreSQLPgStatMonitorAgentParams) (*inventoryv1.QANPostgreSQLPgStatMonitorAgent, error) { - var res *inventoryv1.QANPostgreSQLPgStatMonitorAgent - e := as.db.InTransaction(func(tx *reform.TX) error { +func (as *AgentsService) AddQANPostgreSQLPgStatMonitorAgent(ctx context.Context, p *inventoryv1.AddQANPostgreSQLPgStatMonitorAgentParams) (*inventoryv1.AddAgentResponse, error) { + var agent *inventoryv1.QANPostgreSQLPgStatMonitorAgent + e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { params := &models.CreateAgentParams{ PMMAgentID: p.PmmAgentId, ServiceID: p.ServiceId, @@ -818,18 +877,24 @@ func (as *AgentsService) AddQANPostgreSQLPgStatMonitorAgent(ctx context.Context, } } - agent, err := services.ToAPIAgent(tx.Querier, row) + aa, err := services.ToAPIAgent(tx.Querier, row) if err != nil { return err } - res = agent.(*inventoryv1.QANPostgreSQLPgStatMonitorAgent) //nolint:forcetypeassert + agent = aa.(*inventoryv1.QANPostgreSQLPgStatMonitorAgent) //nolint:forcetypeassert return nil }) if e != nil { - return res, e + return nil, e } as.state.RequestStateUpdate(ctx, p.PmmAgentId) + res := &inventoryv1.AddAgentResponse{ + Agent: &inventoryv1.AddAgentResponse_QanPostgresqlPgstatmonitorAgent{ + QanPostgresqlPgstatmonitorAgent: agent, + }, + } + return res, e } @@ -852,9 +917,9 @@ func (as *AgentsService) ChangeQANPostgreSQLPgStatMonitorAgent(ctx context.Conte } // AddRDSExporter inserts rds_exporter Agent with given parameters. -func (as *AgentsService) AddRDSExporter(ctx context.Context, p *inventoryv1.AddRDSExporterParams) (*inventoryv1.RDSExporter, error) { - var res *inventoryv1.RDSExporter - e := as.db.InTransaction(func(tx *reform.TX) error { +func (as *AgentsService) AddRDSExporter(ctx context.Context, p *inventoryv1.AddRDSExporterParams) (*inventoryv1.AddAgentResponse, error) { + var agent *inventoryv1.RDSExporter + e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { params := &models.CreateAgentParams{ PMMAgentID: p.PmmAgentId, NodeID: p.NodeId, @@ -876,11 +941,11 @@ func (as *AgentsService) AddRDSExporter(ctx context.Context, p *inventoryv1.AddR // ... // } - agent, err := services.ToAPIAgent(tx.Querier, row) + aa, err := services.ToAPIAgent(tx.Querier, row) if err != nil { return err } - res = agent.(*inventoryv1.RDSExporter) //nolint:forcetypeassert + agent = aa.(*inventoryv1.RDSExporter) //nolint:forcetypeassert return nil }) if e != nil { @@ -888,6 +953,12 @@ func (as *AgentsService) AddRDSExporter(ctx context.Context, p *inventoryv1.AddR } as.state.RequestStateUpdate(ctx, p.PmmAgentId) + res := &inventoryv1.AddAgentResponse{ + Agent: &inventoryv1.AddAgentResponse_RdsExporter{ + RdsExporter: agent, + }, + } + return res, nil } @@ -910,12 +981,12 @@ func (as *AgentsService) ChangeRDSExporter(ctx context.Context, req *inventoryv1 } // AddExternalExporter inserts external-exporter Agent with given parameters. -func (as *AgentsService) AddExternalExporter(ctx context.Context, p *inventoryv1.AddExternalExporterParams) (*inventoryv1.ExternalExporter, error) { +func (as *AgentsService) AddExternalExporter(ctx context.Context, p *inventoryv1.AddExternalExporterParams) (*inventoryv1.AddAgentResponse, error) { var ( - res *inventoryv1.ExternalExporter + agent *inventoryv1.ExternalExporter PMMAgentID *string ) - e := as.db.InTransaction(func(tx *reform.TX) error { + e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { params := &models.CreateExternalExporterParams{ RunsOnNodeID: p.RunsOnNodeId, ServiceID: p.ServiceId, @@ -932,11 +1003,11 @@ func (as *AgentsService) AddExternalExporter(ctx context.Context, p *inventoryv1 return err } - agent, err := services.ToAPIAgent(tx.Querier, row) + aa, err := services.ToAPIAgent(tx.Querier, row) if err != nil { return err } - res = agent.(*inventoryv1.ExternalExporter) //nolint:forcetypeassert + agent = aa.(*inventoryv1.ExternalExporter) //nolint:forcetypeassert PMMAgentID = row.PMMAgentID return nil }) @@ -951,6 +1022,12 @@ func (as *AgentsService) AddExternalExporter(ctx context.Context, p *inventoryv1 as.vmdb.RequestConfigurationUpdate() } + res := &inventoryv1.AddAgentResponse{ + Agent: &inventoryv1.AddAgentResponse_ExternalExporter{ + ExternalExporter: agent, + }, + } + return res, nil } @@ -976,10 +1053,10 @@ func (as *AgentsService) ChangeExternalExporter(ctx context.Context, req *invent } // AddAzureDatabaseExporter inserts azure_exporter Agent with given parameters. -func (as *AgentsService) AddAzureDatabaseExporter(ctx context.Context, p *inventoryv1.AddAzureDatabaseExporterParams) (*inventoryv1.AzureDatabaseExporter, error) { - var res *inventoryv1.AzureDatabaseExporter +func (as *AgentsService) AddAzureDatabaseExporter(ctx context.Context, p *inventoryv1.AddAzureDatabaseExporterParams) (*inventoryv1.AddAgentResponse, error) { + var agent *inventoryv1.AzureDatabaseExporter - e := as.db.InTransaction(func(tx *reform.TX) error { + e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { params := &models.CreateAgentParams{ PMMAgentID: p.PmmAgentId, NodeID: p.NodeId, @@ -993,11 +1070,11 @@ func (as *AgentsService) AddAzureDatabaseExporter(ctx context.Context, p *invent return err } - agent, err := services.ToAPIAgent(tx.Querier, row) + aa, err := services.ToAPIAgent(tx.Querier, row) if err != nil { return err } - res = agent.(*inventoryv1.AzureDatabaseExporter) //nolint:forcetypeassert + agent = aa.(*inventoryv1.AzureDatabaseExporter) //nolint:forcetypeassert return nil }) if e != nil { @@ -1005,6 +1082,12 @@ func (as *AgentsService) AddAzureDatabaseExporter(ctx context.Context, p *invent } as.state.RequestStateUpdate(ctx, p.PmmAgentId) + res := &inventoryv1.AddAgentResponse{ + Agent: &inventoryv1.AddAgentResponse_AzureDatabaseExporter{ + AzureDatabaseExporter: agent, + }, + } + return res, nil } @@ -1032,7 +1115,7 @@ func (as *AgentsService) ChangeAzureDatabaseExporter( // Remove removes Agent, and sends state update to pmm-agent, or kicks it. func (as *AgentsService) Remove(ctx context.Context, id string, force bool) error { var removedAgent *models.Agent - e := as.db.InTransaction(func(tx *reform.TX) error { + e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { var err error mode := models.RemoveRestrict if force { diff --git a/managed/services/inventory/agents_test.go b/managed/services/inventory/agents_test.go index a2fc7a420c..cca2f9192f 100644 --- a/managed/services/inventory/agents_test.go +++ b/managed/services/inventory/agents_test.go @@ -72,14 +72,14 @@ func TestAgents(t *testing.T) { RunsOnNodeId: models.PMMServerNodeID, }) - pmmAgentID = pmmAgent.AgentId + pmmAgentID = pmmAgent.GetPmmAgent().AgentId require.NoError(t, err) expectedPMMAgent := &inventoryv1.PMMAgent{ AgentId: "/agent_id/00000000-0000-4000-8000-000000000005", RunsOnNodeId: models.PMMServerNodeID, Connected: true, } - assert.Equal(t, expectedPMMAgent, pmmAgent) + assert.Equal(t, expectedPMMAgent, pmmAgent.GetPmmAgent()) }) t.Run("AddNodeExporter", func(t *testing.T) { @@ -97,11 +97,11 @@ func TestAgents(t *testing.T) { "environment": "test-env", }, } - assert.Equal(t, expectedNodeExporter, actualNodeExporter) + assert.Equal(t, expectedNodeExporter, actualNodeExporter.GetNodeExporter()) }) t.Run("ChangeNodeExporterAndRemoveCustomLabels", func(t *testing.T) { - resp, err := as.ChangeNodeExporter(ctx, &inventoryv1.ChangeNodeExporterParams{ + actualNodeExporter, err := as.ChangeNodeExporter(ctx, &inventoryv1.ChangeNodeExporterParams{ AgentId: "/agent_id/00000000-0000-4000-8000-000000000006", Common: &inventoryv1.ChangeCommonAgentParams{ Enable: pointer.ToBool(false), @@ -110,18 +110,17 @@ func TestAgents(t *testing.T) { }, }) require.NoError(t, err) - actualNodeExporter := resp.GetNodeExporter() expectedNodeExporter = &inventoryv1.NodeExporter{ AgentId: "/agent_id/00000000-0000-4000-8000-000000000006", PmmAgentId: "/agent_id/00000000-0000-4000-8000-000000000005", Disabled: true, Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, } - assert.Equal(t, expectedNodeExporter, actualNodeExporter) + assert.Equal(t, expectedNodeExporter, actualNodeExporter.GetNodeExporter()) actualAgent, err := as.Get(ctx, "/agent_id/00000000-0000-4000-8000-000000000006") require.NoError(t, err) - assert.Equal(t, expectedNodeExporter, actualAgent) + assert.Equal(t, expectedNodeExporter, actualAgent.(*inventoryv1.NodeExporter)) }) t.Run("AddMySQLExporter", func(t *testing.T) { @@ -148,7 +147,7 @@ func TestAgents(t *testing.T) { Username: "username", Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, } - assert.Equal(t, expectedMySQLdExporter, actualAgent) + assert.Equal(t, expectedMySQLdExporter, actualAgent.GetMysqldExporter()) exporter, err := as.Get(ctx, "/agent_id/00000000-0000-4000-8000-000000000008") require.NoError(t, err) @@ -179,7 +178,7 @@ func TestAgents(t *testing.T) { Username: "username", Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, } - assert.Equal(t, expectedMongoDBExporter, actualAgent) + assert.Equal(t, expectedMongoDBExporter, actualAgent.GetMongodbExporter()) exporter, err := as.Get(ctx, "/agent_id/00000000-0000-4000-8000-00000000000a") require.NoError(t, err) @@ -200,7 +199,7 @@ func TestAgents(t *testing.T) { Username: "username", Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, } - assert.Equal(t, expectedQANMySQLSlowlogAgent, actualAgent) + assert.Equal(t, expectedQANMySQLSlowlogAgent, actualAgent.GetQanMysqlSlowlogAgent()) exporter, err := as.Get(ctx, "/agent_id/00000000-0000-4000-8000-00000000000b") require.NoError(t, err) @@ -230,7 +229,7 @@ func TestAgents(t *testing.T) { Username: "username", Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, } - assert.Equal(t, expectedPostgresExporter, actualAgent) + assert.Equal(t, expectedPostgresExporter, actualAgent.GetPostgresExporter()) exporter, err := as.Get(ctx, "/agent_id/00000000-0000-4000-8000-00000000000d") require.NoError(t, err) @@ -254,7 +253,7 @@ func TestAgents(t *testing.T) { MetricsPath: "/metrics", ListenPort: 9222, } - assert.Equal(t, expectedExternalExporter, actualAgent) + assert.Equal(t, expectedExternalExporter, actualAgent.GetExternalExporter()) }) var actualAgents []inventoryv1.Agent @@ -353,7 +352,7 @@ func TestAgents(t *testing.T) { RunsOnNodeId: models.PMMServerNodeID, Connected: false, } - assert.Equal(t, expectedPMMAgent, actualAgent) + assert.Equal(t, expectedPMMAgent, actualAgent.GetPmmAgent()) as.r.(*mockAgentsRegistry).On("IsConnected", "/agent_id/00000000-0000-4000-8000-000000000006").Return(true) actualAgent, err = as.AddPMMAgent(ctx, &inventoryv1.AddPMMAgentParams{ @@ -365,7 +364,7 @@ func TestAgents(t *testing.T) { RunsOnNodeId: models.PMMServerNodeID, Connected: true, } - assert.Equal(t, expectedPMMAgent, actualAgent) + assert.Equal(t, expectedPMMAgent, actualAgent.GetPmmAgent()) }) t.Run("AddPmmAgentNotFound", func(t *testing.T) { @@ -420,7 +419,7 @@ func TestAgents(t *testing.T) { CustomLabels: map[string]string{"baz": "qux"}, Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, } - assert.Equal(t, expectedAgent, agent) + assert.Equal(t, expectedAgent, agent.GetRdsExporter()) }) t.Run("AddExternalExporter", func(t *testing.T) { @@ -453,7 +452,7 @@ func TestAgents(t *testing.T) { MetricsPath: "/metrics", ListenPort: 12345, } - assert.Equal(t, expectedExternalExporter, agent) + assert.Equal(t, expectedExternalExporter, agent.GetExternalExporter()) actualAgent, err := as.Get(ctx, "/agent_id/00000000-0000-4000-8000-000000000006") require.NoError(t, err) @@ -471,7 +470,7 @@ func TestAgents(t *testing.T) { require.NoError(t, err) _, err = as.AddMySQLdExporter(ctx, &inventoryv1.AddMySQLdExporterParams{ - PmmAgentId: pmmAgent.AgentId, + PmmAgentId: pmmAgent.GetPmmAgent().AgentId, ServiceId: "no-such-id", }) tests.AssertGRPCError(t, status.New(codes.NotFound, `Service with ID "no-such-id" not found.`), err) @@ -514,7 +513,7 @@ func TestAgents(t *testing.T) { RunsOnNodeId: models.PMMServerNodeID, Connected: true, } - assert.Equal(t, expectedPMMAgent, pmmAgent) + assert.Equal(t, expectedPMMAgent, pmmAgent.GetPmmAgent()) ms, err := ss.AddMongoDB(ctx, &models.AddDBMSServiceParams{ ServiceName: "test-mongo", NodeID: models.PMMServerNodeID, @@ -523,7 +522,7 @@ func TestAgents(t *testing.T) { }) require.NoError(t, err) actualAgent, err := as.AddMongoDBExporter(ctx, &inventoryv1.AddMongoDBExporterParams{ - PmmAgentId: pmmAgent.AgentId, + PmmAgentId: pmmAgent.GetPmmAgent().AgentId, ServiceId: ms.ServiceId, Username: "username", PushMetrics: true, @@ -531,13 +530,13 @@ func TestAgents(t *testing.T) { require.NoError(t, err) expectedMongoDBExporter := &inventoryv1.MongoDBExporter{ AgentId: "/agent_id/00000000-0000-4000-8000-000000000007", - PmmAgentId: pmmAgent.AgentId, + PmmAgentId: pmmAgent.GetPmmAgent().AgentId, ServiceId: ms.ServiceId, Username: "username", PushMetricsEnabled: true, Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, } - assert.Equal(t, expectedMongoDBExporter, actualAgent) + assert.Equal(t, expectedMongoDBExporter, actualAgent.GetMongodbExporter()) }) t.Run("PushMetricsNodeExporter", func(t *testing.T) { @@ -561,10 +560,10 @@ func TestAgents(t *testing.T) { RunsOnNodeId: models.PMMServerNodeID, Connected: true, } - assert.Equal(t, expectedPMMAgent, pmmAgent) + assert.Equal(t, expectedPMMAgent, pmmAgent.GetPmmAgent()) actualNodeExporter, err := as.AddNodeExporter(ctx, &inventoryv1.AddNodeExporterParams{ - PmmAgentId: pmmAgent.AgentId, + PmmAgentId: pmmAgent.GetPmmAgent().AgentId, PushMetrics: true, }) require.NoError(t, err) @@ -574,7 +573,7 @@ func TestAgents(t *testing.T) { PushMetricsEnabled: true, Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, } - assert.Equal(t, expectedNodeExporter, actualNodeExporter) + assert.Equal(t, expectedNodeExporter, actualNodeExporter.GetNodeExporter()) }) t.Run("PushMetricsPostgresSQLExporter", func(t *testing.T) { @@ -606,7 +605,7 @@ func TestAgents(t *testing.T) { RunsOnNodeId: models.PMMServerNodeID, Connected: true, } - assert.Equal(t, expectedPMMAgent, pmmAgent) + assert.Equal(t, expectedPMMAgent, pmmAgent.GetPmmAgent()) ps, err := ss.AddPostgreSQL(ctx, &models.AddDBMSServiceParams{ ServiceName: "test-postgres", NodeID: models.PMMServerNodeID, @@ -616,7 +615,7 @@ func TestAgents(t *testing.T) { require.NoError(t, err) actualAgent, err := as.AddPostgresExporter(ctx, &inventoryv1.AddPostgresExporterParams{ - PmmAgentId: pmmAgent.AgentId, + PmmAgentId: pmmAgent.GetPmmAgent().AgentId, ServiceId: ps.ServiceId, Username: "username", PushMetrics: true, @@ -624,13 +623,13 @@ func TestAgents(t *testing.T) { require.NoError(t, err) expectedPostgresExporter := &inventoryv1.PostgresExporter{ AgentId: "/agent_id/00000000-0000-4000-8000-000000000007", - PmmAgentId: pmmAgent.AgentId, + PmmAgentId: pmmAgent.GetPmmAgent().AgentId, ServiceId: ps.ServiceId, Username: "username", PushMetricsEnabled: true, Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, } - assert.Equal(t, expectedPostgresExporter, actualAgent) + assert.Equal(t, expectedPostgresExporter, actualAgent.GetPostgresExporter()) }) t.Run("PushMetricsMySQLExporter", func(t *testing.T) { @@ -662,7 +661,7 @@ func TestAgents(t *testing.T) { RunsOnNodeId: models.PMMServerNodeID, Connected: true, } - assert.Equal(t, expectedPMMAgent, pmmAgent) + assert.Equal(t, expectedPMMAgent, pmmAgent.GetPmmAgent()) ss.vc.(*mockVersionCache).On("RequestSoftwareVersionsUpdate").Once() s, err := ss.AddMySQL(ctx, &models.AddDBMSServiceParams{ @@ -674,7 +673,7 @@ func TestAgents(t *testing.T) { require.NoError(t, err) actualAgent, err := as.AddMySQLdExporter(ctx, &inventoryv1.AddMySQLdExporterParams{ - PmmAgentId: pmmAgent.AgentId, + PmmAgentId: pmmAgent.GetPmmAgent().AgentId, ServiceId: s.ServiceId, Username: "username", PushMetrics: true, @@ -688,7 +687,7 @@ func TestAgents(t *testing.T) { PushMetricsEnabled: true, Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, } - assert.Equal(t, expectedMySQLdExporter, actualAgent) + assert.Equal(t, expectedMySQLdExporter, actualAgent.GetMysqldExporter()) }) t.Run("PushMetricsRdsExporter", func(t *testing.T) { @@ -735,7 +734,7 @@ func TestAgents(t *testing.T) { PushMetricsEnabled: true, Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, } - assert.Equal(t, expectedAgent, agent) + assert.Equal(t, expectedAgent, agent.GetRdsExporter()) }) t.Run("PushMetricsExternalExporter", func(t *testing.T) { @@ -769,7 +768,7 @@ func TestAgents(t *testing.T) { ListenPort: 12345, PushMetricsEnabled: true, } - assert.Equal(t, expectedExternalExporter, agent) + assert.Equal(t, expectedExternalExporter, agent.GetExternalExporter()) actualAgent, err := as.Get(ctx, "/agent_id/00000000-0000-4000-8000-000000000006") require.NoError(t, err) diff --git a/managed/services/inventory/grpc/agents_server.go b/managed/services/inventory/grpc/agents_server.go index 331937eca4..4b63df1846 100644 --- a/managed/services/inventory/grpc/agents_server.go +++ b/managed/services/inventory/grpc/agents_server.go @@ -173,52 +173,37 @@ func (s *agentsServer) GetAgentLogs(ctx context.Context, req *inventoryv1.GetAge }, nil } -// AddPMMAgent adds pmm-agent Agent. -func (s *agentsServer) addPMMAgent(ctx context.Context, params *inventoryv1.AddPMMAgentParams) (*inventoryv1.AddAgentResponse, error) { - agent, err := s.s.AddPMMAgent(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.AddAgentResponse{ - Agent: &inventoryv1.AddAgentResponse_PmmAgent{ - PmmAgent: agent, - }, - } - return res, nil -} - // AddAgent adds an Agent. func (s *agentsServer) AddAgent(ctx context.Context, req *inventoryv1.AddAgentRequest) (*inventoryv1.AddAgentResponse, error) { switch req.Agent.(type) { case *inventoryv1.AddAgentRequest_PmmAgent: - return s.addPMMAgent(ctx, req.GetPmmAgent()) + return s.s.AddPMMAgent(ctx, req.GetPmmAgent()) case *inventoryv1.AddAgentRequest_NodeExporter: - return s.addNodeExporter(ctx, req.GetNodeExporter()) + return s.s.AddNodeExporter(ctx, req.GetNodeExporter()) case *inventoryv1.AddAgentRequest_MysqldExporter: - return s.addMySQLdExporter(ctx, req.GetMysqldExporter()) + return s.s.AddMySQLdExporter(ctx, req.GetMysqldExporter()) case *inventoryv1.AddAgentRequest_MongodbExporter: - return s.addMongoDBExporter(ctx, req.GetMongodbExporter()) + return s.s.AddMongoDBExporter(ctx, req.GetMongodbExporter()) case *inventoryv1.AddAgentRequest_PostgresExporter: - return s.addPostgresExporter(ctx, req.GetPostgresExporter()) + return s.s.AddPostgresExporter(ctx, req.GetPostgresExporter()) case *inventoryv1.AddAgentRequest_ProxysqlExporter: - return s.addProxySQLExporter(ctx, req.GetProxysqlExporter()) + return s.s.AddProxySQLExporter(ctx, req.GetProxysqlExporter()) case *inventoryv1.AddAgentRequest_RdsExporter: - return s.addRDSExporter(ctx, req.GetRdsExporter()) + return s.s.AddRDSExporter(ctx, req.GetRdsExporter()) case *inventoryv1.AddAgentRequest_ExternalExporter: - return s.addExternalExporter(ctx, req.GetExternalExporter()) + return s.s.AddExternalExporter(ctx, req.GetExternalExporter()) case *inventoryv1.AddAgentRequest_AzureDatabaseExporter: - return s.addAzureDatabaseExporter(ctx, req.GetAzureDatabaseExporter()) + return s.s.AddAzureDatabaseExporter(ctx, req.GetAzureDatabaseExporter()) case *inventoryv1.AddAgentRequest_QanMysqlPerfschemaAgent: - return s.addQANMySQLPerfSchemaAgent(ctx, req.GetQanMysqlPerfschemaAgent()) + return s.s.AddQANMySQLPerfSchemaAgent(ctx, req.GetQanMysqlPerfschemaAgent()) case *inventoryv1.AddAgentRequest_QanMysqlSlowlogAgent: - return s.addQANMySQLSlowlogAgent(ctx, req.GetQanMysqlSlowlogAgent()) + return s.s.AddQANMySQLSlowlogAgent(ctx, req.GetQanMysqlSlowlogAgent()) case *inventoryv1.AddAgentRequest_QanMongodbProfilerAgent: - return s.addQANMongoDBProfilerAgent(ctx, req.GetQanMongodbProfilerAgent()) + return s.s.AddQANMongoDBProfilerAgent(ctx, req.GetQanMongodbProfilerAgent()) case *inventoryv1.AddAgentRequest_QanPostgresqlPgstatementsAgent: - return s.addQANPostgreSQLPgStatementsAgent(ctx, req.GetQanPostgresqlPgstatementsAgent()) + return s.s.AddQANPostgreSQLPgStatementsAgent(ctx, req.GetQanPostgresqlPgstatementsAgent()) case *inventoryv1.AddAgentRequest_QanPostgresqlPgstatmonitorAgent: - return s.addQANPostgreSQLPgStatMonitorAgent(ctx, req.GetQanPostgresqlPgstatmonitorAgent()) + return s.s.AddQANPostgreSQLPgStatMonitorAgent(ctx, req.GetQanPostgresqlPgstatmonitorAgent()) default: return nil, fmt.Errorf("invalid request %v", req.Agent) } @@ -258,210 +243,6 @@ func (s *agentsServer) ChangeAgent(ctx context.Context, req *inventoryv1.ChangeA } } -// addNodeExporter adds node_exporter Agent. -func (s *agentsServer) addNodeExporter(ctx context.Context, params *inventoryv1.AddNodeExporterParams) (*inventoryv1.AddAgentResponse, error) { - agent, err := s.s.AddNodeExporter(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.AddAgentResponse{ - Agent: &inventoryv1.AddAgentResponse_NodeExporter{ - NodeExporter: agent, - }, - } - return res, nil -} - -// addMySQLdExporter adds mysqld_exporter Agent. -func (s *agentsServer) addMySQLdExporter(ctx context.Context, params *inventoryv1.AddMySQLdExporterParams) (*inventoryv1.AddAgentResponse, error) { - agent, err := s.s.AddMySQLdExporter(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.AddAgentResponse{ - Agent: &inventoryv1.AddAgentResponse_MysqldExporter{ - MysqldExporter: agent, - }, - } - return res, nil -} - -// addMongoDBExporter adds mongodb_exporter Agent. -func (s *agentsServer) addMongoDBExporter(ctx context.Context, params *inventoryv1.AddMongoDBExporterParams) (*inventoryv1.AddAgentResponse, error) { - agent, err := s.s.AddMongoDBExporter(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.AddAgentResponse{ - Agent: &inventoryv1.AddAgentResponse_MongodbExporter{ - MongodbExporter: agent, - }, - } - return res, nil -} - -// AddQANMySQLPerfSchemaAgent adds MySQL PerfSchema QAN Agent. -// -//nolint:lll -func (s *agentsServer) addQANMySQLPerfSchemaAgent(ctx context.Context, params *inventoryv1.AddQANMySQLPerfSchemaAgentParams) (*inventoryv1.AddAgentResponse, error) { - agent, err := s.s.AddQANMySQLPerfSchemaAgent(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.AddAgentResponse{ - Agent: &inventoryv1.AddAgentResponse_QanMysqlPerfschemaAgent{ - QanMysqlPerfschemaAgent: agent, - }, - } - return res, nil -} - -// AddQANMySQLSlowlogAgent adds MySQL Slowlog QAN Agent. -// -//nolint:lll -func (s *agentsServer) addQANMySQLSlowlogAgent(ctx context.Context, params *inventoryv1.AddQANMySQLSlowlogAgentParams) (*inventoryv1.AddAgentResponse, error) { - agent, err := s.s.AddQANMySQLSlowlogAgent(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.AddAgentResponse{ - Agent: &inventoryv1.AddAgentResponse_QanMysqlSlowlogAgent{ - QanMysqlSlowlogAgent: agent, - }, - } - return res, nil -} - -// addPostgresExporter adds postgres_exporter Agent. -func (s *agentsServer) addPostgresExporter(ctx context.Context, params *inventoryv1.AddPostgresExporterParams) (*inventoryv1.AddAgentResponse, error) { - agent, err := s.s.AddPostgresExporter(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.AddAgentResponse{ - Agent: &inventoryv1.AddAgentResponse_PostgresExporter{ - PostgresExporter: agent, - }, - } - return res, nil -} - -// AddQANMongoDBProfilerAgent adds MongoDB Profiler QAN Agent. -// -//nolint:lll -func (s *agentsServer) addQANMongoDBProfilerAgent(ctx context.Context, params *inventoryv1.AddQANMongoDBProfilerAgentParams) (*inventoryv1.AddAgentResponse, error) { - agent, err := s.s.AddQANMongoDBProfilerAgent(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.AddAgentResponse{ - Agent: &inventoryv1.AddAgentResponse_QanMongodbProfilerAgent{ - QanMongodbProfilerAgent: agent, - }, - } - return res, nil -} - -// addProxySQLExporter adds proxysql_exporter Agent. -func (s *agentsServer) addProxySQLExporter(ctx context.Context, params *inventoryv1.AddProxySQLExporterParams) (*inventoryv1.AddAgentResponse, error) { - agent, err := s.s.AddProxySQLExporter(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.AddAgentResponse{ - Agent: &inventoryv1.AddAgentResponse_ProxysqlExporter{ - ProxysqlExporter: agent, - }, - } - return res, nil -} - -// AddQANPostgreSQLPgStatementsAgent adds PostgreSQL Pg stat statements QAN Agent. -func (s *agentsServer) addQANPostgreSQLPgStatementsAgent(ctx context.Context, params *inventoryv1.AddQANPostgreSQLPgStatementsAgentParams) (*inventoryv1.AddAgentResponse, error) { //nolint:lll - agent, err := s.s.AddQANPostgreSQLPgStatementsAgent(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.AddAgentResponse{ - Agent: &inventoryv1.AddAgentResponse_QanPostgresqlPgstatementsAgent{ - QanPostgresqlPgstatementsAgent: agent, - }, - } - return res, nil -} - -// AddQANPostgreSQLPgStatMonitorAgent adds PostgreSQL Pg stat monitor QAN Agent. -func (s *agentsServer) addQANPostgreSQLPgStatMonitorAgent(ctx context.Context, params *inventoryv1.AddQANPostgreSQLPgStatMonitorAgentParams) (*inventoryv1.AddAgentResponse, error) { //nolint:lll - agent, err := s.s.AddQANPostgreSQLPgStatMonitorAgent(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.AddAgentResponse{ - Agent: &inventoryv1.AddAgentResponse_QanPostgresqlPgstatmonitorAgent{ - QanPostgresqlPgstatmonitorAgent: agent, - }, - } - return res, nil -} - -// addRDSExporter adds rds_exporter Agent. -func (s *agentsServer) addRDSExporter(ctx context.Context, params *inventoryv1.AddRDSExporterParams) (*inventoryv1.AddAgentResponse, error) { - agent, err := s.s.AddRDSExporter(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.AddAgentResponse{ - Agent: &inventoryv1.AddAgentResponse_RdsExporter{ - RdsExporter: agent, - }, - } - return res, nil -} - -// addExternalExporter adds external_exporter Agent. -func (s *agentsServer) addExternalExporter(ctx context.Context, params *inventoryv1.AddExternalExporterParams) (*inventoryv1.AddAgentResponse, error) { - agent, err := s.s.AddExternalExporter(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.AddAgentResponse{ - Agent: &inventoryv1.AddAgentResponse_ExternalExporter{ - ExternalExporter: agent, - }, - } - return res, nil -} - -// addAzureDatabaseExporter adds azure_database_exporter Agent. -func (s *agentsServer) addAzureDatabaseExporter( - ctx context.Context, - params *inventoryv1.AddAzureDatabaseExporterParams, -) (*inventoryv1.AddAgentResponse, error) { - agent, err := s.s.AddAzureDatabaseExporter(ctx, params) - if err != nil { - return nil, err - } - - res := &inventoryv1.AddAgentResponse{ - Agent: &inventoryv1.AddAgentResponse_AzureDatabaseExporter{ - AzureDatabaseExporter: agent, - }, - } - return res, nil -} - // RemoveAgent removes Agent. func (s *agentsServer) RemoveAgent(ctx context.Context, req *inventoryv1.RemoveAgentRequest) (*inventoryv1.RemoveAgentResponse, error) { if err := s.s.Remove(ctx, req.AgentId, req.Force); err != nil { diff --git a/managed/services/inventory/services_test.go b/managed/services/inventory/services_test.go index 67e6c7648e..c7a0cae224 100644 --- a/managed/services/inventory/services_test.go +++ b/managed/services/inventory/services_test.go @@ -182,11 +182,11 @@ func TestServices(t *testing.T) { _, err = ss.Get(ctx, mySQLService.ServiceId) tests.AssertGRPCError(t, status.New(codes.NotFound, fmt.Sprintf(`Service with ID "%s" not found.`, mySQLService.ServiceId)), err) - _, err = as.Get(ctx, rdsAgent.AgentId) - tests.AssertGRPCError(t, status.New(codes.NotFound, fmt.Sprintf(`Agent with ID "%s" not found.`, rdsAgent.AgentId)), err) + _, err = as.Get(ctx, rdsAgent.GetRdsExporter().AgentId) + tests.AssertGRPCError(t, status.New(codes.NotFound, fmt.Sprintf(`Agent with ID "%s" not found.`, rdsAgent.GetRdsExporter().AgentId)), err) - _, err = as.Get(ctx, mySQLAgent.AgentId) - tests.AssertGRPCError(t, status.New(codes.NotFound, fmt.Sprintf(`Agent with ID "%s" not found.`, mySQLAgent.AgentId)), err) + _, err = as.Get(ctx, mySQLAgent.GetMysqldExporter().AgentId) + tests.AssertGRPCError(t, status.New(codes.NotFound, fmt.Sprintf(`Agent with ID "%s" not found.`, mySQLAgent.GetMysqldExporter().AgentId)), err) _, err = ns.Get(ctx, &inventoryv1.GetNodeRequest{NodeId: node.NodeId}) tests.AssertGRPCError(t, status.New(codes.NotFound, fmt.Sprintf(`Node with ID "%s" not found.`, node.NodeId)), err) @@ -243,11 +243,11 @@ func TestServices(t *testing.T) { _, err = ss.Get(ctx, mySQLService.ServiceId) tests.AssertGRPCError(t, status.New(codes.NotFound, fmt.Sprintf(`Service with ID "%s" not found.`, mySQLService.ServiceId)), err) - _, err = as.Get(ctx, rdsAgent.AgentId) - tests.AssertGRPCError(t, status.New(codes.NotFound, fmt.Sprintf(`Agent with ID "%s" not found.`, rdsAgent.AgentId)), err) + _, err = as.Get(ctx, rdsAgent.GetRdsExporter().AgentId) + tests.AssertGRPCError(t, status.New(codes.NotFound, fmt.Sprintf(`Agent with ID "%s" not found.`, rdsAgent.GetRdsExporter().AgentId)), err) - _, err = as.Get(ctx, mySQLAgent.AgentId) - tests.AssertGRPCError(t, status.New(codes.NotFound, fmt.Sprintf(`Agent with ID "%s" not found.`, mySQLAgent.AgentId)), err) + _, err = as.Get(ctx, mySQLAgent.GetMysqldExporter().AgentId) + tests.AssertGRPCError(t, status.New(codes.NotFound, fmt.Sprintf(`Agent with ID "%s" not found.`, mySQLAgent.GetMysqldExporter().AgentId)), err) _, err = ns.Get(ctx, &inventoryv1.GetNodeRequest{NodeId: node.NodeId}) tests.AssertGRPCError(t, status.New(codes.NotFound, fmt.Sprintf(`Node with ID "%s" not found.`, node.NodeId)), err) From 68002bcdc3ff02b05f75ed9a83428939e1871779 Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Tue, 6 Feb 2024 00:17:53 +0000 Subject: [PATCH 28/29] PMM-12811 add an annotation about one param --- api/inventory/v1/agents.pb.go | 32 +++++++++++-------- api/inventory/v1/agents.proto | 4 +-- .../agents_service/agents_service_client.go | 4 +-- api/inventory/v1/json/v1.json | 4 +-- api/swagger/swagger-dev.json | 4 +-- 5 files changed, 27 insertions(+), 21 deletions(-) diff --git a/api/inventory/v1/agents.pb.go b/api/inventory/v1/agents.pb.go index 23e1691e5c..b7cf6c7e61 100644 --- a/api/inventory/v1/agents.pb.go +++ b/api/inventory/v1/agents.pb.go @@ -9116,8 +9116,8 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x44, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0e, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x5a, 0x55, 0x52, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x42, - 0x41, 0x53, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0f, 0x32, 0xaf, - 0x08, 0x0a, 0x0d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x41, 0x53, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0f, 0x32, 0x8f, + 0x09, 0x0a, 0x0d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xa4, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, @@ -9149,27 +9149,33 @@ var file_inventory_v1_agents_proto_rawDesc = []byte{ 0x74, 0x20, 0x6c, 0x6f, 0x67, 0x73, 0x20, 0x62, 0x79, 0x20, 0x49, 0x44, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x47, 0x65, 0x74, - 0x4c, 0x6f, 0x67, 0x73, 0x12, 0xa9, 0x01, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, + 0x4c, 0x6f, 0x67, 0x73, 0x12, 0xd9, 0x01, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x5e, 0x92, 0x41, 0x38, 0x12, 0x19, 0x41, 0x64, 0x64, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, - 0x1a, 0x1b, 0x41, 0x64, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, - 0x74, 0x6f, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, + 0x22, 0x8d, 0x01, 0x92, 0x41, 0x67, 0x12, 0x19, 0x41, 0x64, 0x64, 0x20, 0x61, 0x6e, 0x20, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x1a, 0x4a, 0x41, 0x64, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x20, 0x74, 0x6f, 0x20, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x20, 0x4f, + 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x74, 0x6f, 0x70, 0x2d, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x20, 0x73, 0x68, 0x6f, 0x75, + 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x41, 0x64, 0x64, - 0x12, 0xbb, 0x01, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x12, 0xeb, 0x01, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x92, 0x41, 0x3e, 0x12, 0x1c, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x49, - 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x49, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x96, 0x01, 0x92, 0x41, 0x6d, 0x12, 0x1c, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, + 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x1a, 0x4d, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x49, + 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x20, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x6f, + 0x6e, 0x65, 0x20, 0x74, 0x6f, 0x70, 0x2d, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x20, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, + 0x20, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0xbf, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x20, diff --git a/api/inventory/v1/agents.proto b/api/inventory/v1/agents.proto index 5d826aa8c4..09df439099 100644 --- a/api/inventory/v1/agents.proto +++ b/api/inventory/v1/agents.proto @@ -1306,7 +1306,7 @@ service AgentsService { }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "Add an Agent to Inventory" - description: "Adds an Agent to Inventory." + description: "Adds an Agent to Inventory. Only one top-level parameter should be passed." }; } // ChangeAgent changes any type of Agent record in Inventory. @@ -1317,7 +1317,7 @@ service AgentsService { }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "Update an Agent in Inventory" - description: "Updates an Agent in Inventory." + description: "Updates an Agent in Inventory. Only one top-level parameter should be passed." }; } diff --git a/api/inventory/v1/json/client/agents_service/agents_service_client.go b/api/inventory/v1/json/client/agents_service/agents_service_client.go index 6c39740f3e..68b540a10b 100644 --- a/api/inventory/v1/json/client/agents_service/agents_service_client.go +++ b/api/inventory/v1/json/client/agents_service/agents_service_client.go @@ -46,7 +46,7 @@ type ClientService interface { /* AddAgent adds an agent to inventory -Adds an Agent to Inventory. +Adds an Agent to Inventory. Only one top-level parameter should be passed. */ func (a *Client) AddAgent(params *AddAgentParams, opts ...ClientOption) (*AddAgentOK, error) { // TODO: Validate the params before sending @@ -85,7 +85,7 @@ func (a *Client) AddAgent(params *AddAgentParams, opts ...ClientOption) (*AddAge /* ChangeAgent updates an agent in inventory -Updates an Agent in Inventory. +Updates an Agent in Inventory. Only one top-level parameter should be passed. */ func (a *Client) ChangeAgent(params *ChangeAgentParams, opts ...ClientOption) (*ChangeAgentOK, error) { // TODO: Validate the params before sending diff --git a/api/inventory/v1/json/v1.json b/api/inventory/v1/json/v1.json index 95bb6cf51c..0ceea76cc0 100644 --- a/api/inventory/v1/json/v1.json +++ b/api/inventory/v1/json/v1.json @@ -17,7 +17,7 @@ "paths": { "/v1/inventory/Agents/Add": { "post": { - "description": "Adds an Agent to Inventory.", + "description": "Adds an Agent to Inventory. Only one top-level parameter should be passed.", "tags": [ "AgentsService" ], @@ -2661,7 +2661,7 @@ }, "/v1/inventory/Agents/Change": { "post": { - "description": "Updates an Agent in Inventory.", + "description": "Updates an Agent in Inventory. Only one top-level parameter should be passed.", "tags": [ "AgentsService" ], diff --git a/api/swagger/swagger-dev.json b/api/swagger/swagger-dev.json index 978925cae3..4691cf0a8c 100644 --- a/api/swagger/swagger-dev.json +++ b/api/swagger/swagger-dev.json @@ -3776,7 +3776,7 @@ }, "/v1/inventory/Agents/Add": { "post": { - "description": "Adds an Agent to Inventory.", + "description": "Adds an Agent to Inventory. Only one top-level parameter should be passed.", "tags": [ "AgentsService" ], @@ -6420,7 +6420,7 @@ }, "/v1/inventory/Agents/Change": { "post": { - "description": "Updates an Agent in Inventory.", + "description": "Updates an Agent in Inventory. Only one top-level parameter should be passed.", "tags": [ "AgentsService" ], From d3ad3cc1bfc5e1833a111b7e07e24d71caf12c8b Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Tue, 6 Feb 2024 09:44:09 +0000 Subject: [PATCH 29/29] PMM-12811 fix Azure test --- managed/services/inventory/services_test.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/managed/services/inventory/services_test.go b/managed/services/inventory/services_test.go index c7a0cae224..8959a3cb0f 100644 --- a/managed/services/inventory/services_test.go +++ b/managed/services/inventory/services_test.go @@ -214,7 +214,7 @@ func TestServices(t *testing.T) { node, err := ns.AddRemoteAzureDatabaseNode(ctx, &inventoryv1.AddRemoteAzureNodeParams{NodeName: "test1", Region: "test-region", Address: "test"}) require.NoError(t, err) - rdsAgent, err := as.AddAzureDatabaseExporter(ctx, &inventoryv1.AddAzureDatabaseExporterParams{ + azureAgent, err := as.AddAzureDatabaseExporter(ctx, &inventoryv1.AddAzureDatabaseExporterParams{ PmmAgentId: "pmm-server", NodeId: node.NodeId, PushMetrics: true, @@ -243,8 +243,8 @@ func TestServices(t *testing.T) { _, err = ss.Get(ctx, mySQLService.ServiceId) tests.AssertGRPCError(t, status.New(codes.NotFound, fmt.Sprintf(`Service with ID "%s" not found.`, mySQLService.ServiceId)), err) - _, err = as.Get(ctx, rdsAgent.GetRdsExporter().AgentId) - tests.AssertGRPCError(t, status.New(codes.NotFound, fmt.Sprintf(`Agent with ID "%s" not found.`, rdsAgent.GetRdsExporter().AgentId)), err) + _, err = as.Get(ctx, azureAgent.GetAzureDatabaseExporter().AgentId) + tests.AssertGRPCError(t, status.New(codes.NotFound, fmt.Sprintf(`Agent with ID "%s" not found.`, azureAgent.GetAzureDatabaseExporter().AgentId)), err) _, err = as.Get(ctx, mySQLAgent.GetMysqldExporter().AgentId) tests.AssertGRPCError(t, status.New(codes.NotFound, fmt.Sprintf(`Agent with ID "%s" not found.`, mySQLAgent.GetMysqldExporter().AgentId)), err)