diff --git a/client/clientimpl_test.go b/client/clientimpl_test.go index 243e0448..b3637aea 100644 --- a/client/clientimpl_test.go +++ b/client/clientimpl_test.go @@ -618,11 +618,11 @@ func TestAgentIdentification(t *testing.T) { func TestConnectionSettings(t *testing.T) { testClients(t, func(t *testing.T, client OpAMPClient) { hash := []byte{1, 2, 3} - opampSettings := &protobufs.ConnectionSettings{DestinationEndpoint: "http://opamp.com"} - metricsSettings := &protobufs.ConnectionSettings{DestinationEndpoint: "http://metrics.com"} - tracesSettings := &protobufs.ConnectionSettings{DestinationEndpoint: "http://traces.com"} - logsSettings := &protobufs.ConnectionSettings{DestinationEndpoint: "http://logs.com"} - otherSettings := &protobufs.ConnectionSettings{DestinationEndpoint: "http://other.com"} + opampSettings := &protobufs.OpAMPConnectionSettings{DestinationEndpoint: "http://opamp.com"} + metricsSettings := &protobufs.TelemetryConnectionSettings{DestinationEndpoint: "http://metrics.com"} + tracesSettings := &protobufs.TelemetryConnectionSettings{DestinationEndpoint: "http://traces.com"} + logsSettings := &protobufs.TelemetryConnectionSettings{DestinationEndpoint: "http://logs.com"} + otherSettings := &protobufs.OtherConnectionSettings{DestinationEndpoint: "http://other.com"} var rcvStatus int64 // Start a Server. @@ -638,7 +638,7 @@ func TestConnectionSettings(t *testing.T) { OwnMetrics: metricsSettings, OwnTraces: tracesSettings, OwnLogs: logsSettings, - OtherConnections: map[string]*protobufs.ConnectionSettings{ + OtherConnections: map[string]*protobufs.OtherConnectionSettings{ "other": otherSettings, }, }, @@ -655,7 +655,7 @@ func TestConnectionSettings(t *testing.T) { settings := types.StartSettings{ Callbacks: types.CallbacksStruct{ OnOpampConnectionSettingsFunc: func( - ctx context.Context, settings *protobufs.ConnectionSettings, + ctx context.Context, settings *protobufs.OpAMPConnectionSettings, ) error { assert.True(t, proto.Equal(opampSettings, settings)) atomic.AddInt64(&gotOpampSettings, 1) @@ -664,7 +664,7 @@ func TestConnectionSettings(t *testing.T) { OnOwnTelemetryConnectionSettingsFunc: func( ctx context.Context, telemetryType types.OwnTelemetryType, - settings *protobufs.ConnectionSettings, + settings *protobufs.TelemetryConnectionSettings, ) error { switch telemetryType { case types.OwnMetrics: @@ -680,7 +680,7 @@ func TestConnectionSettings(t *testing.T) { OnOtherConnectionSettingsFunc: func( ctx context.Context, name string, - settings *protobufs.ConnectionSettings, + settings *protobufs.OtherConnectionSettings, ) error { assert.EqualValues(t, "other", name) assert.True(t, proto.Equal(otherSettings, settings)) diff --git a/client/internal/receivedprocessor.go b/client/internal/receivedprocessor.go index 5373cc63..fedaaf2c 100644 --- a/client/internal/receivedprocessor.go +++ b/client/internal/receivedprocessor.go @@ -222,9 +222,9 @@ func (r *receivedProcessor) rcvConnectionSettings(ctx context.Context, settings func (r *receivedProcessor) rcvOwnTelemetryConnectionSettings( ctx context.Context, - settings *protobufs.ConnectionSettings, + settings *protobufs.TelemetryConnectionSettings, telemetryType types.OwnTelemetryType, - callback func(ctx context.Context, telemetryType types.OwnTelemetryType, settings *protobufs.ConnectionSettings) error, + callback func(ctx context.Context, telemetryType types.OwnTelemetryType, settings *protobufs.TelemetryConnectionSettings) error, ) { if settings != nil { callback(ctx, telemetryType, settings) @@ -233,9 +233,9 @@ func (r *receivedProcessor) rcvOwnTelemetryConnectionSettings( func (r *receivedProcessor) rcvOtherConnectionSettings( ctx context.Context, - settings *protobufs.ConnectionSettings, + settings *protobufs.OtherConnectionSettings, name string, - callback func(ctx context.Context, name string, settings *protobufs.ConnectionSettings) error, + callback func(ctx context.Context, name string, settings *protobufs.OtherConnectionSettings) error, ) { if settings != nil { callback(ctx, name, settings) diff --git a/client/types/callbacks.go b/client/types/callbacks.go index 2f876f7b..3e1303ef 100644 --- a/client/types/callbacks.go +++ b/client/types/callbacks.go @@ -91,7 +91,7 @@ type Callbacks interface { // See OnRemoteConfig for the behavior. OnOpampConnectionSettings( ctx context.Context, - settings *protobufs.ConnectionSettings, + settings *protobufs.OpAMPConnectionSettings, ) error // OnOpampConnectionSettingsAccepted will be called after the settings are @@ -99,7 +99,7 @@ type Callbacks interface { // new settings succeeds). The Agent should store the settings and use them // in the future. Old connection settings should be forgotten. OnOpampConnectionSettingsAccepted( - settings *protobufs.ConnectionSettings, + settings *protobufs.OpAMPConnectionSettings, ) // OnOwnTelemetryConnectionSettings is called when the Agent receives a @@ -116,7 +116,7 @@ type Callbacks interface { OnOwnTelemetryConnectionSettings( ctx context.Context, telemetryType OwnTelemetryType, - settings *protobufs.ConnectionSettings, + settings *protobufs.TelemetryConnectionSettings, ) error // OnOtherConnectionSettings is called when the Agent receives a @@ -131,7 +131,7 @@ type Callbacks interface { OnOtherConnectionSettings( ctx context.Context, name string, - certificate *protobufs.ConnectionSettings, + certificate *protobufs.OtherConnectionSettings, ) error // OnPackagesAvailable is called when the Server has packages available which are @@ -169,22 +169,22 @@ type CallbacksStruct struct { OnOpampConnectionSettingsFunc func( ctx context.Context, - settings *protobufs.ConnectionSettings, + settings *protobufs.OpAMPConnectionSettings, ) error OnOpampConnectionSettingsAcceptedFunc func( - settings *protobufs.ConnectionSettings, + settings *protobufs.OpAMPConnectionSettings, ) OnOwnTelemetryConnectionSettingsFunc func( ctx context.Context, telemetryType OwnTelemetryType, - settings *protobufs.ConnectionSettings, + settings *protobufs.TelemetryConnectionSettings, ) error OnOtherConnectionSettingsFunc func( ctx context.Context, name string, - settings *protobufs.ConnectionSettings, + settings *protobufs.OtherConnectionSettings, ) error OnPackagesAvailableFunc func(ctx context.Context, packages *protobufs.PackagesAvailable, syncer PackagesSyncer) error @@ -237,7 +237,7 @@ func (c CallbacksStruct) GetEffectiveConfig(ctx context.Context) (*protobufs.Eff } func (c CallbacksStruct) OnOpampConnectionSettings( - ctx context.Context, settings *protobufs.ConnectionSettings, + ctx context.Context, settings *protobufs.OpAMPConnectionSettings, ) error { if c.OnOpampConnectionSettingsFunc != nil { return c.OnOpampConnectionSettingsFunc(ctx, settings) @@ -245,7 +245,7 @@ func (c CallbacksStruct) OnOpampConnectionSettings( return nil } -func (c CallbacksStruct) OnOpampConnectionSettingsAccepted(settings *protobufs.ConnectionSettings) { +func (c CallbacksStruct) OnOpampConnectionSettingsAccepted(settings *protobufs.OpAMPConnectionSettings) { if c.OnOpampConnectionSettingsAcceptedFunc != nil { c.OnOpampConnectionSettingsAcceptedFunc(settings) } @@ -253,7 +253,7 @@ func (c CallbacksStruct) OnOpampConnectionSettingsAccepted(settings *protobufs.C func (c CallbacksStruct) OnOwnTelemetryConnectionSettings( ctx context.Context, telemetryType OwnTelemetryType, - settings *protobufs.ConnectionSettings, + settings *protobufs.TelemetryConnectionSettings, ) error { if c.OnOwnTelemetryConnectionSettingsFunc != nil { return c.OnOwnTelemetryConnectionSettingsFunc(ctx, telemetryType, settings) @@ -262,7 +262,7 @@ func (c CallbacksStruct) OnOwnTelemetryConnectionSettings( } func (c CallbacksStruct) OnOtherConnectionSettings( - ctx context.Context, name string, settings *protobufs.ConnectionSettings, + ctx context.Context, name string, settings *protobufs.OtherConnectionSettings, ) error { if c.OnOtherConnectionSettingsFunc != nil { return c.OnOtherConnectionSettingsFunc(ctx, name, settings) diff --git a/internal/examples/agent/agent/agent.go b/internal/examples/agent/agent/agent.go index 70625ba1..fb0e9b56 100644 --- a/internal/examples/agent/agent/agent.go +++ b/internal/examples/agent/agent/agent.go @@ -221,7 +221,7 @@ func (agent *Agent) onRemoteConfig( func (agent *Agent) onOwnTelemetryConnectionSettings( _ context.Context, telemetryType types.OwnTelemetryType, - settings *protobufs.ConnectionSettings, + settings *protobufs.TelemetryConnectionSettings, ) error { switch telemetryType { case types.OwnMetrics: @@ -243,7 +243,7 @@ func (agent *Agent) onAgentIdentificationFunc( return nil } -func (agent *Agent) initMeter(settings *protobufs.ConnectionSettings) { +func (agent *Agent) initMeter(settings *protobufs.TelemetryConnectionSettings) { reporter, err := NewMetricReporter(agent.logger, settings, agent.agentType, agent.agentVersion, agent.instanceId) if err != nil { agent.logger.Errorf("Cannot collect metrics: %v", err) diff --git a/internal/examples/agent/agent/metricreporter.go b/internal/examples/agent/agent/metricreporter.go index 7af41d0d..524e8dc5 100644 --- a/internal/examples/agent/agent/metricreporter.go +++ b/internal/examples/agent/agent/metricreporter.go @@ -46,7 +46,7 @@ type MetricReporter struct { func NewMetricReporter( logger types.Logger, - dest *protobufs.ConnectionSettings, + dest *protobufs.TelemetryConnectionSettings, agentType string, agentVersion string, instanceId ulid.ULID, diff --git a/internal/examples/server/data/agent.go b/internal/examples/server/data/agent.go index 35ae4e25..d7356c71 100644 --- a/internal/examples/server/data/agent.go +++ b/internal/examples/server/data/agent.go @@ -333,7 +333,7 @@ func (agent *Agent) calcConnectionSettings(response *protobufs.ServerToAgent) { response.ConnectionSettings = &protobufs.ConnectionSettingsOffers{ Hash: nil, // TODO: calc has from settings. Opamp: nil, - OwnMetrics: &protobufs.ConnectionSettings{ + OwnMetrics: &protobufs.TelemetryConnectionSettings{ // We just hard-code this to a port on a localhost on which we can // run an Otel Collector for demo purposes. With real production // servers this should likely point to an OTLP backend. diff --git a/internal/examples/supervisor/supervisor/supervisor.go b/internal/examples/supervisor/supervisor/supervisor.go index 45af87cd..cba25402 100644 --- a/internal/examples/supervisor/supervisor/supervisor.go +++ b/internal/examples/supervisor/supervisor/supervisor.go @@ -268,7 +268,7 @@ func (s *Supervisor) onRemoteConfig( func (s *Supervisor) onOwnTelemetryConnectionSettings( ctx context.Context, telemetryType types.OwnTelemetryType, - settings *protobufs.ConnectionSettings, + settings *protobufs.TelemetryConnectionSettings, ) error { switch telemetryType { case types.OwnMetrics: @@ -298,7 +298,7 @@ func (s *Supervisor) onAgentIdentificationFunc( return nil } -func (s *Supervisor) setupOwnMetrics(ctx context.Context, settings *protobufs.ConnectionSettings) { +func (s *Supervisor) setupOwnMetrics(ctx context.Context, settings *protobufs.TelemetryConnectionSettings) { var cfg string if settings.DestinationEndpoint == "" { // No destination. Disable metric collection. diff --git a/internal/proto/opamp.proto b/internal/proto/opamp.proto index 311d6268..8aa6e4cb 100644 --- a/internal/proto/opamp.proto +++ b/internal/proto/opamp.proto @@ -174,7 +174,56 @@ enum ServerCapabilities { // Add new capabilities here, continuing with the least significant unused bit. } -// The ConnectionSettings message is a collection of fields which comprise an +// The OpAMPConnectionSettings message is a collection of fields which comprise an +// offer from the Server to the Agent to use the specified settings for OpAMP +// connection. +message OpAMPConnectionSettings { + // OpAMP Server URL This MUST be a WebSocket or HTTP URL and MUST be non-empty, for + // example: "wss://example.com:4318/v1/opamp" + string destination_endpoint = 1; + + // Optional headers to use when connecting. Typically used to set access tokens or + // other authorization headers. For HTTP-based protocols the Agent should + // set these in the request headers. + // For example: + // key="Authorization", Value="Basic YWxhZGRpbjpvcGVuc2VzYW1l". + Headers headers = 2; + + // The Agent should use the offered certificate to connect to the destination + // from now on. If the Agent is able to validate and connect using the offered + // certificate the Agent SHOULD forget any previous client certificates + // for this connection. + // This field is optional: if omitted the client SHOULD NOT use a client-side certificate. + // This field can be used to perform a client certificate revocation/rotation. + TLSCertificate certificate = 3; +} + +// The TelemetryConnectionSettings message is a collection of fields which comprise an +// offer from the Server to the Agent to use the specified settings for a network +// connection to report own telemetry. +message TelemetryConnectionSettings { + // The value MUST be a full URL an OTLP/HTTP/Protobuf receiver with path. Schema + // SHOULD begin with "https://", for example "https://example.com:4318/v1/metrics" + // The Agent MAY refuse to send the telemetry if the URL begins with "http://". + string destination_endpoint = 1; + + // Optional headers to use when connecting. Typically used to set access tokens or + // other authorization headers. For HTTP-based protocols the Agent should + // set these in the request headers. + // For example: + // key="Authorization", Value="Basic YWxhZGRpbjpvcGVuc2VzYW1l". + Headers headers = 2; + + // The Agent should use the offered certificate to connect to the destination + // from now on. If the Agent is able to validate and connect using the offered + // certificate the Agent SHOULD forget any previous client certificates + // for this connection. + // This field is optional: if omitted the client SHOULD NOT use a client-side certificate. + // This field can be used to perform a client certificate revocation/rotation. + TLSCertificate certificate = 3; +} + +// The OtherConnectionSettings message is a collection of fields which comprise an // offer from the Server to the Agent to use the specified settings for a network // connection. It is not required that all fields in this message are specified. // The Server may specify only some of the fields, in which case it means that @@ -194,66 +243,28 @@ enum ServerCapabilities { // field is not set (this is done to overcome the limitation of old protoc // compilers don't generate methods that allow to check for the presence of // the field. -message ConnectionSettings { +message OtherConnectionSettings { // A URL, host:port or some other destination specifier. - // - // For OpAMP destination this MUST be a WebSocket URL and MUST be non-empty, for - // example: "wss://example.com:4318/v1/opamp" - // - // For own telemetry destination this MUST be the full HTTP URL to an - // OTLP/HTTP/Protobuf receiver. The value MUST be a full URL with path and schema - // and SHOULD begin with "https://", for example "https://example.com:4318/v1/metrics" - // The Agent MAY refuse to send the telemetry if the URL begins with "http://". - // The field is considered unset if (flags & DestinationEndpointSet)==0. string destination_endpoint = 1; - // Headers to use when connecting. Typically used to set access tokens or + // Optional headers to use when connecting. Typically used to set access tokens or // other authorization headers. For HTTP-based protocols the Agent should // set these in the request headers. // For example: // key="Authorization", Value="Basic YWxhZGRpbjpvcGVuc2VzYW1l". - // if the field is unset then the Agent SHOULD continue using the headers - // that it currently has (if any). Headers headers = 2; - // A URL, host:port or some other specifier of an intermediary proxy. - // Empty if no proxy is used. - // - // Example use case: if OpAMP proxy is also an OTLP intermediary Collector then - // the OpAMP proxy can direct the Agents that connect to it to also send Agents's - // OTLP metrics through its OTLP metrics pipeline. - // Can be used for example by Otel Helm chart with 2 stage-collection when Agents - // on K8s nodes are proxied through a standalone Collector. - // - // For example: "https://proxy.example.com:5678" - // The field is considered unset if (flags & ProxyEndpointSet)==0. - string proxy_endpoint = 3; - - // Headers to use when connecting to a proxy. For HTTP-based protocols - // the Agent should set these in the request headers. - // If no proxy is used the Headers field must be present and must contain no headers. - // For example: - // key="Proxy-Authorization", value="Basic YWxhZGRpbjpvcGVuc2VzYW1l". - // if the field is unset then the Agent SHOULD continue using the proxy headers - // that it currently has (if any). - Headers proxy_headers = 4; - // The Agent should use the offered certificate to connect to the destination // from now on. If the Agent is able to validate and connect using the offered // certificate the Agent SHOULD forget any previous client certificates // for this connection. - // This field is used to perform a client certificate revocation/rotation. - // if the field is unset then the Agent SHOULD continue using the certificate - // that it currently has (if any). - TLSCertificate certificate = 5; - -enum Flags { - _ = 0; - DestinationEndpointSet = 0x01; - ProxyEndpointSet = 0x02; -} - // Bitfield of Flags. - Flags flags = 6; + // This field is optional: if omitted the client SHOULD NOT use a client-side certificate. + // This field can be used to perform a client certificate revocation/rotation. + TLSCertificate certificate = 3; + + // Other connection settings. These are Agent-specific and are up to the Agent + // interpret. + map other_settings = 4; } message Headers { @@ -307,7 +318,7 @@ message ConnectionSettingsOffers { // The Agent MUST verify the offered connection settings by actually connecting // before accepting the setting to ensure it does not loose access to the OpAMP // Server due to invalid settings. - ConnectionSettings opamp = 2; + OpAMPConnectionSettings opamp = 2; // Settings to connect to an OTLP metrics backend to send Agent's own metrics to. // If this field is not set then the Agent should assume that the settings @@ -326,20 +337,20 @@ message ConnectionSettingsOffers { // // Process metrics MUST follow the conventions for processes: // https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/semantic_conventions/process-metrics.md - ConnectionSettings own_metrics = 3; + TelemetryConnectionSettings own_metrics = 3; // Similar to own_metrics, but for traces. - ConnectionSettings own_traces = 4; + TelemetryConnectionSettings own_traces = 4; // Similar to own_metrics, but for logs. - ConnectionSettings own_logs = 5; + TelemetryConnectionSettings own_logs = 5; // Another set of connection settings, with a string name associated with each. // How the Agent uses these is Agent-specific. Typically the name represents // the name of the destination to connect to (as it is known to the Agent). // If this field is not set then the Agent should assume that the other_connections // settings are unchanged. - map other_connections = 6; + map other_connections = 6; } // List of packages that the Server offers to the Agent. diff --git a/protobufs/opamp.pb.go b/protobufs/opamp.pb.go index ecc2b5a0..e5625e60 100644 --- a/protobufs/opamp.pb.go +++ b/protobufs/opamp.pb.go @@ -312,55 +312,6 @@ func (ServerToAgent_Flags) EnumDescriptor() ([]byte, []int) { return file_opamp_proto_rawDescGZIP(), []int{2, 0} } -type ConnectionSettings_Flags int32 - -const ( - ConnectionSettings__ ConnectionSettings_Flags = 0 - ConnectionSettings_DestinationEndpointSet ConnectionSettings_Flags = 1 - ConnectionSettings_ProxyEndpointSet ConnectionSettings_Flags = 2 -) - -// Enum value maps for ConnectionSettings_Flags. -var ( - ConnectionSettings_Flags_name = map[int32]string{ - 0: "_", - 1: "DestinationEndpointSet", - 2: "ProxyEndpointSet", - } - ConnectionSettings_Flags_value = map[string]int32{ - "_": 0, - "DestinationEndpointSet": 1, - "ProxyEndpointSet": 2, - } -) - -func (x ConnectionSettings_Flags) Enum() *ConnectionSettings_Flags { - p := new(ConnectionSettings_Flags) - *p = x - return p -} - -func (x ConnectionSettings_Flags) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (ConnectionSettings_Flags) Descriptor() protoreflect.EnumDescriptor { - return file_opamp_proto_enumTypes[4].Descriptor() -} - -func (ConnectionSettings_Flags) Type() protoreflect.EnumType { - return &file_opamp_proto_enumTypes[4] -} - -func (x ConnectionSettings_Flags) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use ConnectionSettings_Flags.Descriptor instead. -func (ConnectionSettings_Flags) EnumDescriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{3, 0} -} - // The type of the package, either an addon or a top-level package. type PackageAvailable_PackageType int32 @@ -392,11 +343,11 @@ func (x PackageAvailable_PackageType) String() string { } func (PackageAvailable_PackageType) Descriptor() protoreflect.EnumDescriptor { - return file_opamp_proto_enumTypes[5].Descriptor() + return file_opamp_proto_enumTypes[4].Descriptor() } func (PackageAvailable_PackageType) Type() protoreflect.EnumType { - return &file_opamp_proto_enumTypes[5] + return &file_opamp_proto_enumTypes[4] } func (x PackageAvailable_PackageType) Number() protoreflect.EnumNumber { @@ -405,7 +356,7 @@ func (x PackageAvailable_PackageType) Number() protoreflect.EnumNumber { // Deprecated: Use PackageAvailable_PackageType.Descriptor instead. func (PackageAvailable_PackageType) EnumDescriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{9, 0} + return file_opamp_proto_rawDescGZIP(), []int{11, 0} } type ServerErrorResponse_Type int32 @@ -449,11 +400,11 @@ func (x ServerErrorResponse_Type) String() string { } func (ServerErrorResponse_Type) Descriptor() protoreflect.EnumDescriptor { - return file_opamp_proto_enumTypes[6].Descriptor() + return file_opamp_proto_enumTypes[5].Descriptor() } func (ServerErrorResponse_Type) Type() protoreflect.EnumType { - return &file_opamp_proto_enumTypes[6] + return &file_opamp_proto_enumTypes[5] } func (x ServerErrorResponse_Type) Number() protoreflect.EnumNumber { @@ -462,7 +413,7 @@ func (x ServerErrorResponse_Type) Number() protoreflect.EnumNumber { // Deprecated: Use ServerErrorResponse_Type.Descriptor instead. func (ServerErrorResponse_Type) EnumDescriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{11, 0} + return file_opamp_proto_rawDescGZIP(), []int{13, 0} } type ServerToAgentCommand_CommandType int32 @@ -494,11 +445,11 @@ func (x ServerToAgentCommand_CommandType) String() string { } func (ServerToAgentCommand_CommandType) Descriptor() protoreflect.EnumDescriptor { - return file_opamp_proto_enumTypes[7].Descriptor() + return file_opamp_proto_enumTypes[6].Descriptor() } func (ServerToAgentCommand_CommandType) Type() protoreflect.EnumType { - return &file_opamp_proto_enumTypes[7] + return &file_opamp_proto_enumTypes[6] } func (x ServerToAgentCommand_CommandType) Number() protoreflect.EnumNumber { @@ -507,7 +458,7 @@ func (x ServerToAgentCommand_CommandType) Number() protoreflect.EnumNumber { // Deprecated: Use ServerToAgentCommand_CommandType.Descriptor instead. func (ServerToAgentCommand_CommandType) EnumDescriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{13, 0} + return file_opamp_proto_rawDescGZIP(), []int{15, 0} } type RemoteConfigStatus_Status int32 @@ -551,11 +502,11 @@ func (x RemoteConfigStatus_Status) String() string { } func (RemoteConfigStatus_Status) Descriptor() protoreflect.EnumDescriptor { - return file_opamp_proto_enumTypes[8].Descriptor() + return file_opamp_proto_enumTypes[7].Descriptor() } func (RemoteConfigStatus_Status) Type() protoreflect.EnumType { - return &file_opamp_proto_enumTypes[8] + return &file_opamp_proto_enumTypes[7] } func (x RemoteConfigStatus_Status) Number() protoreflect.EnumNumber { @@ -564,7 +515,7 @@ func (x RemoteConfigStatus_Status) Number() protoreflect.EnumNumber { // Deprecated: Use RemoteConfigStatus_Status.Descriptor instead. func (RemoteConfigStatus_Status) EnumDescriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{16, 0} + return file_opamp_proto_rawDescGZIP(), []int{18, 0} } // The status of this package. @@ -614,11 +565,11 @@ func (x PackageStatus_Status) String() string { } func (PackageStatus_Status) Descriptor() protoreflect.EnumDescriptor { - return file_opamp_proto_enumTypes[9].Descriptor() + return file_opamp_proto_enumTypes[8].Descriptor() } func (PackageStatus_Status) Type() protoreflect.EnumType { - return &file_opamp_proto_enumTypes[9] + return &file_opamp_proto_enumTypes[8] } func (x PackageStatus_Status) Number() protoreflect.EnumNumber { @@ -627,7 +578,7 @@ func (x PackageStatus_Status) Number() protoreflect.EnumNumber { // Deprecated: Use PackageStatus_Status.Descriptor instead. func (PackageStatus_Status) EnumDescriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{18, 0} + return file_opamp_proto_rawDescGZIP(), []int{20, 0} } type AgentToServer struct { @@ -940,7 +891,166 @@ func (x *ServerToAgent) GetCommand() *ServerToAgentCommand { return nil } -// The ConnectionSettings message is a collection of fields which comprise an +// The OpAMPConnectionSettings message is a collection of fields which comprise an +// offer from the Server to the Agent to use the specified settings for OpAMP +// connection. +type OpAMPConnectionSettings struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // OpAMP Server URL This MUST be a WebSocket or HTTP URL and MUST be non-empty, for + // example: "wss://example.com:4318/v1/opamp" + DestinationEndpoint string `protobuf:"bytes,1,opt,name=destination_endpoint,json=destinationEndpoint,proto3" json:"destination_endpoint,omitempty"` + // Optional headers to use when connecting. Typically used to set access tokens or + // other authorization headers. For HTTP-based protocols the Agent should + // set these in the request headers. + // For example: + // key="Authorization", Value="Basic YWxhZGRpbjpvcGVuc2VzYW1l". + Headers *Headers `protobuf:"bytes,2,opt,name=headers,proto3" json:"headers,omitempty"` + // The Agent should use the offered certificate to connect to the destination + // from now on. If the Agent is able to validate and connect using the offered + // certificate the Agent SHOULD forget any previous client certificates + // for this connection. + // This field is optional: if omitted the client SHOULD NOT use a client-side certificate. + // This field can be used to perform a client certificate revocation/rotation. + Certificate *TLSCertificate `protobuf:"bytes,3,opt,name=certificate,proto3" json:"certificate,omitempty"` +} + +func (x *OpAMPConnectionSettings) Reset() { + *x = OpAMPConnectionSettings{} + if protoimpl.UnsafeEnabled { + mi := &file_opamp_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OpAMPConnectionSettings) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OpAMPConnectionSettings) ProtoMessage() {} + +func (x *OpAMPConnectionSettings) ProtoReflect() protoreflect.Message { + mi := &file_opamp_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OpAMPConnectionSettings.ProtoReflect.Descriptor instead. +func (*OpAMPConnectionSettings) Descriptor() ([]byte, []int) { + return file_opamp_proto_rawDescGZIP(), []int{3} +} + +func (x *OpAMPConnectionSettings) GetDestinationEndpoint() string { + if x != nil { + return x.DestinationEndpoint + } + return "" +} + +func (x *OpAMPConnectionSettings) GetHeaders() *Headers { + if x != nil { + return x.Headers + } + return nil +} + +func (x *OpAMPConnectionSettings) GetCertificate() *TLSCertificate { + if x != nil { + return x.Certificate + } + return nil +} + +// The TelemetryConnectionSettings message is a collection of fields which comprise an +// offer from the Server to the Agent to use the specified settings for a network +// connection to report own telemetry. +type TelemetryConnectionSettings struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The value MUST be a full URL an OTLP/HTTP/Protobuf receiver with path. Schema + // SHOULD begin with "https://", for example "https://example.com:4318/v1/metrics" + // The Agent MAY refuse to send the telemetry if the URL begins with "http://". + DestinationEndpoint string `protobuf:"bytes,1,opt,name=destination_endpoint,json=destinationEndpoint,proto3" json:"destination_endpoint,omitempty"` + // Optional headers to use when connecting. Typically used to set access tokens or + // other authorization headers. For HTTP-based protocols the Agent should + // set these in the request headers. + // For example: + // key="Authorization", Value="Basic YWxhZGRpbjpvcGVuc2VzYW1l". + Headers *Headers `protobuf:"bytes,2,opt,name=headers,proto3" json:"headers,omitempty"` + // The Agent should use the offered certificate to connect to the destination + // from now on. If the Agent is able to validate and connect using the offered + // certificate the Agent SHOULD forget any previous client certificates + // for this connection. + // This field is optional: if omitted the client SHOULD NOT use a client-side certificate. + // This field can be used to perform a client certificate revocation/rotation. + Certificate *TLSCertificate `protobuf:"bytes,3,opt,name=certificate,proto3" json:"certificate,omitempty"` +} + +func (x *TelemetryConnectionSettings) Reset() { + *x = TelemetryConnectionSettings{} + if protoimpl.UnsafeEnabled { + mi := &file_opamp_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TelemetryConnectionSettings) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TelemetryConnectionSettings) ProtoMessage() {} + +func (x *TelemetryConnectionSettings) ProtoReflect() protoreflect.Message { + mi := &file_opamp_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TelemetryConnectionSettings.ProtoReflect.Descriptor instead. +func (*TelemetryConnectionSettings) Descriptor() ([]byte, []int) { + return file_opamp_proto_rawDescGZIP(), []int{4} +} + +func (x *TelemetryConnectionSettings) GetDestinationEndpoint() string { + if x != nil { + return x.DestinationEndpoint + } + return "" +} + +func (x *TelemetryConnectionSettings) GetHeaders() *Headers { + if x != nil { + return x.Headers + } + return nil +} + +func (x *TelemetryConnectionSettings) GetCertificate() *TLSCertificate { + if x != nil { + return x.Certificate + } + return nil +} + +// The OtherConnectionSettings message is a collection of fields which comprise an // offer from the Server to the Agent to use the specified settings for a network // connection. It is not required that all fields in this message are specified. // The Server may specify only some of the fields, in which case it means that @@ -960,79 +1070,48 @@ func (x *ServerToAgent) GetCommand() *ServerToAgentCommand { // field is not set (this is done to overcome the limitation of old protoc // compilers don't generate methods that allow to check for the presence of // the field. -type ConnectionSettings struct { +type OtherConnectionSettings struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A URL, host:port or some other destination specifier. - // - // For OpAMP destination this MUST be a WebSocket URL and MUST be non-empty, for - // example: "wss://example.com:4318/v1/opamp" - // - // For own telemetry destination this MUST be the full HTTP URL to an - // OTLP/HTTP/Protobuf receiver. The value MUST be a full URL with path and schema - // and SHOULD begin with "https://", for example "https://example.com:4318/v1/metrics" - // The Agent MAY refuse to send the telemetry if the URL begins with "http://". - // The field is considered unset if (flags & DestinationEndpointSet)==0. DestinationEndpoint string `protobuf:"bytes,1,opt,name=destination_endpoint,json=destinationEndpoint,proto3" json:"destination_endpoint,omitempty"` - // Headers to use when connecting. Typically used to set access tokens or + // Optional headers to use when connecting. Typically used to set access tokens or // other authorization headers. For HTTP-based protocols the Agent should // set these in the request headers. // For example: // key="Authorization", Value="Basic YWxhZGRpbjpvcGVuc2VzYW1l". - // if the field is unset then the Agent SHOULD continue using the headers - // that it currently has (if any). Headers *Headers `protobuf:"bytes,2,opt,name=headers,proto3" json:"headers,omitempty"` - // A URL, host:port or some other specifier of an intermediary proxy. - // Empty if no proxy is used. - // - // Example use case: if OpAMP proxy is also an OTLP intermediary Collector then - // the OpAMP proxy can direct the Agents that connect to it to also send Agents's - // OTLP metrics through its OTLP metrics pipeline. - // Can be used for example by Otel Helm chart with 2 stage-collection when Agents - // on K8s nodes are proxied through a standalone Collector. - // - // For example: "https://proxy.example.com:5678" - // The field is considered unset if (flags & ProxyEndpointSet)==0. - ProxyEndpoint string `protobuf:"bytes,3,opt,name=proxy_endpoint,json=proxyEndpoint,proto3" json:"proxy_endpoint,omitempty"` - // Headers to use when connecting to a proxy. For HTTP-based protocols - // the Agent should set these in the request headers. - // If no proxy is used the Headers field must be present and must contain no headers. - // For example: - // key="Proxy-Authorization", value="Basic YWxhZGRpbjpvcGVuc2VzYW1l". - // if the field is unset then the Agent SHOULD continue using the proxy headers - // that it currently has (if any). - ProxyHeaders *Headers `protobuf:"bytes,4,opt,name=proxy_headers,json=proxyHeaders,proto3" json:"proxy_headers,omitempty"` // The Agent should use the offered certificate to connect to the destination // from now on. If the Agent is able to validate and connect using the offered // certificate the Agent SHOULD forget any previous client certificates // for this connection. - // This field is used to perform a client certificate revocation/rotation. - // if the field is unset then the Agent SHOULD continue using the certificate - // that it currently has (if any). - Certificate *TLSCertificate `protobuf:"bytes,5,opt,name=certificate,proto3" json:"certificate,omitempty"` - // Bitfield of Flags. - Flags ConnectionSettings_Flags `protobuf:"varint,6,opt,name=flags,proto3,enum=opamp.proto.ConnectionSettings_Flags" json:"flags,omitempty"` + // This field is optional: if omitted the client SHOULD NOT use a client-side certificate. + // This field can be used to perform a client certificate revocation/rotation. + Certificate *TLSCertificate `protobuf:"bytes,3,opt,name=certificate,proto3" json:"certificate,omitempty"` + // Other connection settings. These are Agent-specific and are up to the Agent + // interpret. + OtherSettings map[string]string `protobuf:"bytes,4,rep,name=other_settings,json=otherSettings,proto3" json:"other_settings,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } -func (x *ConnectionSettings) Reset() { - *x = ConnectionSettings{} +func (x *OtherConnectionSettings) Reset() { + *x = OtherConnectionSettings{} if protoimpl.UnsafeEnabled { - mi := &file_opamp_proto_msgTypes[3] + mi := &file_opamp_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ConnectionSettings) String() string { +func (x *OtherConnectionSettings) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ConnectionSettings) ProtoMessage() {} +func (*OtherConnectionSettings) ProtoMessage() {} -func (x *ConnectionSettings) ProtoReflect() protoreflect.Message { - mi := &file_opamp_proto_msgTypes[3] +func (x *OtherConnectionSettings) ProtoReflect() protoreflect.Message { + mi := &file_opamp_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1043,51 +1122,37 @@ func (x *ConnectionSettings) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ConnectionSettings.ProtoReflect.Descriptor instead. -func (*ConnectionSettings) Descriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{3} +// Deprecated: Use OtherConnectionSettings.ProtoReflect.Descriptor instead. +func (*OtherConnectionSettings) Descriptor() ([]byte, []int) { + return file_opamp_proto_rawDescGZIP(), []int{5} } -func (x *ConnectionSettings) GetDestinationEndpoint() string { +func (x *OtherConnectionSettings) GetDestinationEndpoint() string { if x != nil { return x.DestinationEndpoint } return "" } -func (x *ConnectionSettings) GetHeaders() *Headers { +func (x *OtherConnectionSettings) GetHeaders() *Headers { if x != nil { return x.Headers } return nil } -func (x *ConnectionSettings) GetProxyEndpoint() string { - if x != nil { - return x.ProxyEndpoint - } - return "" -} - -func (x *ConnectionSettings) GetProxyHeaders() *Headers { - if x != nil { - return x.ProxyHeaders - } - return nil -} - -func (x *ConnectionSettings) GetCertificate() *TLSCertificate { +func (x *OtherConnectionSettings) GetCertificate() *TLSCertificate { if x != nil { return x.Certificate } return nil } -func (x *ConnectionSettings) GetFlags() ConnectionSettings_Flags { +func (x *OtherConnectionSettings) GetOtherSettings() map[string]string { if x != nil { - return x.Flags + return x.OtherSettings } - return ConnectionSettings__ + return nil } type Headers struct { @@ -1101,7 +1166,7 @@ type Headers struct { func (x *Headers) Reset() { *x = Headers{} if protoimpl.UnsafeEnabled { - mi := &file_opamp_proto_msgTypes[4] + mi := &file_opamp_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1114,7 +1179,7 @@ func (x *Headers) String() string { func (*Headers) ProtoMessage() {} func (x *Headers) ProtoReflect() protoreflect.Message { - mi := &file_opamp_proto_msgTypes[4] + mi := &file_opamp_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1127,7 +1192,7 @@ func (x *Headers) ProtoReflect() protoreflect.Message { // Deprecated: Use Headers.ProtoReflect.Descriptor instead. func (*Headers) Descriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{4} + return file_opamp_proto_rawDescGZIP(), []int{6} } func (x *Headers) GetHeaders() []*Header { @@ -1149,7 +1214,7 @@ type Header struct { func (x *Header) Reset() { *x = Header{} if protoimpl.UnsafeEnabled { - mi := &file_opamp_proto_msgTypes[5] + mi := &file_opamp_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1162,7 +1227,7 @@ func (x *Header) String() string { func (*Header) ProtoMessage() {} func (x *Header) ProtoReflect() protoreflect.Message { - mi := &file_opamp_proto_msgTypes[5] + mi := &file_opamp_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1175,7 +1240,7 @@ func (x *Header) ProtoReflect() protoreflect.Message { // Deprecated: Use Header.ProtoReflect.Descriptor instead. func (*Header) Descriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{5} + return file_opamp_proto_rawDescGZIP(), []int{7} } func (x *Header) GetKey() string { @@ -1213,7 +1278,7 @@ type TLSCertificate struct { func (x *TLSCertificate) Reset() { *x = TLSCertificate{} if protoimpl.UnsafeEnabled { - mi := &file_opamp_proto_msgTypes[6] + mi := &file_opamp_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1226,7 +1291,7 @@ func (x *TLSCertificate) String() string { func (*TLSCertificate) ProtoMessage() {} func (x *TLSCertificate) ProtoReflect() protoreflect.Message { - mi := &file_opamp_proto_msgTypes[6] + mi := &file_opamp_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1239,7 +1304,7 @@ func (x *TLSCertificate) ProtoReflect() protoreflect.Message { // Deprecated: Use TLSCertificate.ProtoReflect.Descriptor instead. func (*TLSCertificate) Descriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{6} + return file_opamp_proto_rawDescGZIP(), []int{8} } func (x *TLSCertificate) GetPublicKey() []byte { @@ -1279,7 +1344,7 @@ type ConnectionSettingsOffers struct { // The Agent MUST verify the offered connection settings by actually connecting // before accepting the setting to ensure it does not loose access to the OpAMP // Server due to invalid settings. - Opamp *ConnectionSettings `protobuf:"bytes,2,opt,name=opamp,proto3" json:"opamp,omitempty"` + Opamp *OpAMPConnectionSettings `protobuf:"bytes,2,opt,name=opamp,proto3" json:"opamp,omitempty"` // Settings to connect to an OTLP metrics backend to send Agent's own metrics to. // If this field is not set then the Agent should assume that the settings // are unchanged. @@ -1297,23 +1362,23 @@ type ConnectionSettingsOffers struct { // // Process metrics MUST follow the conventions for processes: // https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/semantic_conventions/process-metrics.md - OwnMetrics *ConnectionSettings `protobuf:"bytes,3,opt,name=own_metrics,json=ownMetrics,proto3" json:"own_metrics,omitempty"` + OwnMetrics *TelemetryConnectionSettings `protobuf:"bytes,3,opt,name=own_metrics,json=ownMetrics,proto3" json:"own_metrics,omitempty"` // Similar to own_metrics, but for traces. - OwnTraces *ConnectionSettings `protobuf:"bytes,4,opt,name=own_traces,json=ownTraces,proto3" json:"own_traces,omitempty"` + OwnTraces *TelemetryConnectionSettings `protobuf:"bytes,4,opt,name=own_traces,json=ownTraces,proto3" json:"own_traces,omitempty"` // Similar to own_metrics, but for logs. - OwnLogs *ConnectionSettings `protobuf:"bytes,5,opt,name=own_logs,json=ownLogs,proto3" json:"own_logs,omitempty"` + OwnLogs *TelemetryConnectionSettings `protobuf:"bytes,5,opt,name=own_logs,json=ownLogs,proto3" json:"own_logs,omitempty"` // Another set of connection settings, with a string name associated with each. // How the Agent uses these is Agent-specific. Typically the name represents // the name of the destination to connect to (as it is known to the Agent). // If this field is not set then the Agent should assume that the other_connections // settings are unchanged. - OtherConnections map[string]*ConnectionSettings `protobuf:"bytes,6,rep,name=other_connections,json=otherConnections,proto3" json:"other_connections,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + OtherConnections map[string]*OtherConnectionSettings `protobuf:"bytes,6,rep,name=other_connections,json=otherConnections,proto3" json:"other_connections,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *ConnectionSettingsOffers) Reset() { *x = ConnectionSettingsOffers{} if protoimpl.UnsafeEnabled { - mi := &file_opamp_proto_msgTypes[7] + mi := &file_opamp_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1326,7 +1391,7 @@ func (x *ConnectionSettingsOffers) String() string { func (*ConnectionSettingsOffers) ProtoMessage() {} func (x *ConnectionSettingsOffers) ProtoReflect() protoreflect.Message { - mi := &file_opamp_proto_msgTypes[7] + mi := &file_opamp_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1339,7 +1404,7 @@ func (x *ConnectionSettingsOffers) ProtoReflect() protoreflect.Message { // Deprecated: Use ConnectionSettingsOffers.ProtoReflect.Descriptor instead. func (*ConnectionSettingsOffers) Descriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{7} + return file_opamp_proto_rawDescGZIP(), []int{9} } func (x *ConnectionSettingsOffers) GetHash() []byte { @@ -1349,35 +1414,35 @@ func (x *ConnectionSettingsOffers) GetHash() []byte { return nil } -func (x *ConnectionSettingsOffers) GetOpamp() *ConnectionSettings { +func (x *ConnectionSettingsOffers) GetOpamp() *OpAMPConnectionSettings { if x != nil { return x.Opamp } return nil } -func (x *ConnectionSettingsOffers) GetOwnMetrics() *ConnectionSettings { +func (x *ConnectionSettingsOffers) GetOwnMetrics() *TelemetryConnectionSettings { if x != nil { return x.OwnMetrics } return nil } -func (x *ConnectionSettingsOffers) GetOwnTraces() *ConnectionSettings { +func (x *ConnectionSettingsOffers) GetOwnTraces() *TelemetryConnectionSettings { if x != nil { return x.OwnTraces } return nil } -func (x *ConnectionSettingsOffers) GetOwnLogs() *ConnectionSettings { +func (x *ConnectionSettingsOffers) GetOwnLogs() *TelemetryConnectionSettings { if x != nil { return x.OwnLogs } return nil } -func (x *ConnectionSettingsOffers) GetOtherConnections() map[string]*ConnectionSettings { +func (x *ConnectionSettingsOffers) GetOtherConnections() map[string]*OtherConnectionSettings { if x != nil { return x.OtherConnections } @@ -1407,7 +1472,7 @@ type PackagesAvailable struct { func (x *PackagesAvailable) Reset() { *x = PackagesAvailable{} if protoimpl.UnsafeEnabled { - mi := &file_opamp_proto_msgTypes[8] + mi := &file_opamp_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1420,7 +1485,7 @@ func (x *PackagesAvailable) String() string { func (*PackagesAvailable) ProtoMessage() {} func (x *PackagesAvailable) ProtoReflect() protoreflect.Message { - mi := &file_opamp_proto_msgTypes[8] + mi := &file_opamp_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1433,7 +1498,7 @@ func (x *PackagesAvailable) ProtoReflect() protoreflect.Message { // Deprecated: Use PackagesAvailable.ProtoReflect.Descriptor instead. func (*PackagesAvailable) Descriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{8} + return file_opamp_proto_rawDescGZIP(), []int{10} } func (x *PackagesAvailable) GetPackages() map[string]*PackageAvailable { @@ -1487,7 +1552,7 @@ type PackageAvailable struct { func (x *PackageAvailable) Reset() { *x = PackageAvailable{} if protoimpl.UnsafeEnabled { - mi := &file_opamp_proto_msgTypes[9] + mi := &file_opamp_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1500,7 +1565,7 @@ func (x *PackageAvailable) String() string { func (*PackageAvailable) ProtoMessage() {} func (x *PackageAvailable) ProtoReflect() protoreflect.Message { - mi := &file_opamp_proto_msgTypes[9] + mi := &file_opamp_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1513,7 +1578,7 @@ func (x *PackageAvailable) ProtoReflect() protoreflect.Message { // Deprecated: Use PackageAvailable.ProtoReflect.Descriptor instead. func (*PackageAvailable) Descriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{9} + return file_opamp_proto_rawDescGZIP(), []int{11} } func (x *PackageAvailable) GetType() PackageAvailable_PackageType { @@ -1568,7 +1633,7 @@ type DownloadableFile struct { func (x *DownloadableFile) Reset() { *x = DownloadableFile{} if protoimpl.UnsafeEnabled { - mi := &file_opamp_proto_msgTypes[10] + mi := &file_opamp_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1581,7 +1646,7 @@ func (x *DownloadableFile) String() string { func (*DownloadableFile) ProtoMessage() {} func (x *DownloadableFile) ProtoReflect() protoreflect.Message { - mi := &file_opamp_proto_msgTypes[10] + mi := &file_opamp_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1594,7 +1659,7 @@ func (x *DownloadableFile) ProtoReflect() protoreflect.Message { // Deprecated: Use DownloadableFile.ProtoReflect.Descriptor instead. func (*DownloadableFile) Descriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{10} + return file_opamp_proto_rawDescGZIP(), []int{12} } func (x *DownloadableFile) GetDownloadUrl() string { @@ -1634,7 +1699,7 @@ type ServerErrorResponse struct { func (x *ServerErrorResponse) Reset() { *x = ServerErrorResponse{} if protoimpl.UnsafeEnabled { - mi := &file_opamp_proto_msgTypes[11] + mi := &file_opamp_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1647,7 +1712,7 @@ func (x *ServerErrorResponse) String() string { func (*ServerErrorResponse) ProtoMessage() {} func (x *ServerErrorResponse) ProtoReflect() protoreflect.Message { - mi := &file_opamp_proto_msgTypes[11] + mi := &file_opamp_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1660,7 +1725,7 @@ func (x *ServerErrorResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ServerErrorResponse.ProtoReflect.Descriptor instead. func (*ServerErrorResponse) Descriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{11} + return file_opamp_proto_rawDescGZIP(), []int{13} } func (x *ServerErrorResponse) GetType() ServerErrorResponse_Type { @@ -1713,7 +1778,7 @@ type RetryInfo struct { func (x *RetryInfo) Reset() { *x = RetryInfo{} if protoimpl.UnsafeEnabled { - mi := &file_opamp_proto_msgTypes[12] + mi := &file_opamp_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1726,7 +1791,7 @@ func (x *RetryInfo) String() string { func (*RetryInfo) ProtoMessage() {} func (x *RetryInfo) ProtoReflect() protoreflect.Message { - mi := &file_opamp_proto_msgTypes[12] + mi := &file_opamp_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1739,7 +1804,7 @@ func (x *RetryInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use RetryInfo.ProtoReflect.Descriptor instead. func (*RetryInfo) Descriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{12} + return file_opamp_proto_rawDescGZIP(), []int{14} } func (x *RetryInfo) GetRetryAfterNanoseconds() uint64 { @@ -1762,7 +1827,7 @@ type ServerToAgentCommand struct { func (x *ServerToAgentCommand) Reset() { *x = ServerToAgentCommand{} if protoimpl.UnsafeEnabled { - mi := &file_opamp_proto_msgTypes[13] + mi := &file_opamp_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1775,7 +1840,7 @@ func (x *ServerToAgentCommand) String() string { func (*ServerToAgentCommand) ProtoMessage() {} func (x *ServerToAgentCommand) ProtoReflect() protoreflect.Message { - mi := &file_opamp_proto_msgTypes[13] + mi := &file_opamp_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1788,7 +1853,7 @@ func (x *ServerToAgentCommand) ProtoReflect() protoreflect.Message { // Deprecated: Use ServerToAgentCommand.ProtoReflect.Descriptor instead. func (*ServerToAgentCommand) Descriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{13} + return file_opamp_proto_rawDescGZIP(), []int{15} } func (x *ServerToAgentCommand) GetType() ServerToAgentCommand_CommandType { @@ -1843,7 +1908,7 @@ type AgentDescription struct { func (x *AgentDescription) Reset() { *x = AgentDescription{} if protoimpl.UnsafeEnabled { - mi := &file_opamp_proto_msgTypes[14] + mi := &file_opamp_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1856,7 +1921,7 @@ func (x *AgentDescription) String() string { func (*AgentDescription) ProtoMessage() {} func (x *AgentDescription) ProtoReflect() protoreflect.Message { - mi := &file_opamp_proto_msgTypes[14] + mi := &file_opamp_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1869,7 +1934,7 @@ func (x *AgentDescription) ProtoReflect() protoreflect.Message { // Deprecated: Use AgentDescription.ProtoReflect.Descriptor instead. func (*AgentDescription) Descriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{14} + return file_opamp_proto_rawDescGZIP(), []int{16} } func (x *AgentDescription) GetHash() []byte { @@ -1917,7 +1982,7 @@ type EffectiveConfig struct { func (x *EffectiveConfig) Reset() { *x = EffectiveConfig{} if protoimpl.UnsafeEnabled { - mi := &file_opamp_proto_msgTypes[15] + mi := &file_opamp_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1930,7 +1995,7 @@ func (x *EffectiveConfig) String() string { func (*EffectiveConfig) ProtoMessage() {} func (x *EffectiveConfig) ProtoReflect() protoreflect.Message { - mi := &file_opamp_proto_msgTypes[15] + mi := &file_opamp_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1943,7 +2008,7 @@ func (x *EffectiveConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use EffectiveConfig.ProtoReflect.Descriptor instead. func (*EffectiveConfig) Descriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{15} + return file_opamp_proto_rawDescGZIP(), []int{17} } func (x *EffectiveConfig) GetHash() []byte { @@ -1982,7 +2047,7 @@ type RemoteConfigStatus struct { func (x *RemoteConfigStatus) Reset() { *x = RemoteConfigStatus{} if protoimpl.UnsafeEnabled { - mi := &file_opamp_proto_msgTypes[16] + mi := &file_opamp_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1995,7 +2060,7 @@ func (x *RemoteConfigStatus) String() string { func (*RemoteConfigStatus) ProtoMessage() {} func (x *RemoteConfigStatus) ProtoReflect() protoreflect.Message { - mi := &file_opamp_proto_msgTypes[16] + mi := &file_opamp_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2008,7 +2073,7 @@ func (x *RemoteConfigStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoteConfigStatus.ProtoReflect.Descriptor instead. func (*RemoteConfigStatus) Descriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{16} + return file_opamp_proto_rawDescGZIP(), []int{18} } func (x *RemoteConfigStatus) GetHash() []byte { @@ -2069,7 +2134,7 @@ type PackageStatuses struct { func (x *PackageStatuses) Reset() { *x = PackageStatuses{} if protoimpl.UnsafeEnabled { - mi := &file_opamp_proto_msgTypes[17] + mi := &file_opamp_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2082,7 +2147,7 @@ func (x *PackageStatuses) String() string { func (*PackageStatuses) ProtoMessage() {} func (x *PackageStatuses) ProtoReflect() protoreflect.Message { - mi := &file_opamp_proto_msgTypes[17] + mi := &file_opamp_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2095,7 +2160,7 @@ func (x *PackageStatuses) ProtoReflect() protoreflect.Message { // Deprecated: Use PackageStatuses.ProtoReflect.Descriptor instead. func (*PackageStatuses) Descriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{17} + return file_opamp_proto_rawDescGZIP(), []int{19} } func (x *PackageStatuses) GetHash() []byte { @@ -2179,7 +2244,7 @@ type PackageStatus struct { func (x *PackageStatus) Reset() { *x = PackageStatus{} if protoimpl.UnsafeEnabled { - mi := &file_opamp_proto_msgTypes[18] + mi := &file_opamp_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2192,7 +2257,7 @@ func (x *PackageStatus) String() string { func (*PackageStatus) ProtoMessage() {} func (x *PackageStatus) ProtoReflect() protoreflect.Message { - mi := &file_opamp_proto_msgTypes[18] + mi := &file_opamp_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2205,7 +2270,7 @@ func (x *PackageStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use PackageStatus.ProtoReflect.Descriptor instead. func (*PackageStatus) Descriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{18} + return file_opamp_proto_rawDescGZIP(), []int{20} } func (x *PackageStatus) GetName() string { @@ -2272,7 +2337,7 @@ type AgentIdentification struct { func (x *AgentIdentification) Reset() { *x = AgentIdentification{} if protoimpl.UnsafeEnabled { - mi := &file_opamp_proto_msgTypes[19] + mi := &file_opamp_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2285,7 +2350,7 @@ func (x *AgentIdentification) String() string { func (*AgentIdentification) ProtoMessage() {} func (x *AgentIdentification) ProtoReflect() protoreflect.Message { - mi := &file_opamp_proto_msgTypes[19] + mi := &file_opamp_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2298,7 +2363,7 @@ func (x *AgentIdentification) ProtoReflect() protoreflect.Message { // Deprecated: Use AgentIdentification.ProtoReflect.Descriptor instead. func (*AgentIdentification) Descriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{19} + return file_opamp_proto_rawDescGZIP(), []int{21} } func (x *AgentIdentification) GetNewInstanceUid() string { @@ -2333,7 +2398,7 @@ type AgentRemoteConfig struct { func (x *AgentRemoteConfig) Reset() { *x = AgentRemoteConfig{} if protoimpl.UnsafeEnabled { - mi := &file_opamp_proto_msgTypes[20] + mi := &file_opamp_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2346,7 +2411,7 @@ func (x *AgentRemoteConfig) String() string { func (*AgentRemoteConfig) ProtoMessage() {} func (x *AgentRemoteConfig) ProtoReflect() protoreflect.Message { - mi := &file_opamp_proto_msgTypes[20] + mi := &file_opamp_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2359,7 +2424,7 @@ func (x *AgentRemoteConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use AgentRemoteConfig.ProtoReflect.Descriptor instead. func (*AgentRemoteConfig) Descriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{20} + return file_opamp_proto_rawDescGZIP(), []int{22} } func (x *AgentRemoteConfig) GetConfig() *AgentConfigMap { @@ -2392,7 +2457,7 @@ type AgentConfigMap struct { func (x *AgentConfigMap) Reset() { *x = AgentConfigMap{} if protoimpl.UnsafeEnabled { - mi := &file_opamp_proto_msgTypes[21] + mi := &file_opamp_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2405,7 +2470,7 @@ func (x *AgentConfigMap) String() string { func (*AgentConfigMap) ProtoMessage() {} func (x *AgentConfigMap) ProtoReflect() protoreflect.Message { - mi := &file_opamp_proto_msgTypes[21] + mi := &file_opamp_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2418,7 +2483,7 @@ func (x *AgentConfigMap) ProtoReflect() protoreflect.Message { // Deprecated: Use AgentConfigMap.ProtoReflect.Descriptor instead. func (*AgentConfigMap) Descriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{21} + return file_opamp_proto_rawDescGZIP(), []int{23} } func (x *AgentConfigMap) GetConfigMap() map[string]*AgentConfigFile { @@ -2444,7 +2509,7 @@ type AgentConfigFile struct { func (x *AgentConfigFile) Reset() { *x = AgentConfigFile{} if protoimpl.UnsafeEnabled { - mi := &file_opamp_proto_msgTypes[22] + mi := &file_opamp_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2457,7 +2522,7 @@ func (x *AgentConfigFile) String() string { func (*AgentConfigFile) ProtoMessage() {} func (x *AgentConfigFile) ProtoReflect() protoreflect.Message { - mi := &file_opamp_proto_msgTypes[22] + mi := &file_opamp_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2470,7 +2535,7 @@ func (x *AgentConfigFile) ProtoReflect() protoreflect.Message { // Deprecated: Use AgentConfigFile.ProtoReflect.Descriptor instead. func (*AgentConfigFile) Descriptor() ([]byte, []int) { - return file_opamp_proto_rawDescGZIP(), []int{22} + return file_opamp_proto_rawDescGZIP(), []int{24} } func (x *AgentConfigFile) GetBody() []byte { @@ -2582,285 +2647,308 @@ var file_opamp_proto_rawDesc = []byte{ 0x6f, 0x72, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, - 0x10, 0x08, 0x22, 0x97, 0x03, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x64, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x07, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x73, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, - 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x61, - 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, - 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x3d, - 0x0a, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x54, 0x4c, 0x53, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x52, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, - 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, - 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x46, 0x6c, - 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x40, 0x0a, 0x05, 0x46, 0x6c, - 0x61, 0x67, 0x73, 0x12, 0x05, 0x0a, 0x01, 0x5f, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x65, + 0x10, 0x08, 0x22, 0xbb, 0x01, 0x0a, 0x17, 0x4f, 0x70, 0x41, 0x4d, 0x50, 0x43, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x31, + 0x0a, 0x14, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x53, 0x65, 0x74, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x65, 0x74, 0x10, 0x02, 0x22, 0x38, 0x0a, 0x07, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2d, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x07, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x22, 0x30, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 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, 0x22, 0x74, 0x0a, 0x0e, 0x54, 0x4c, 0x53, 0x43, - 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, - 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, - 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x22, 0x0a, 0x0d, 0x63, 0x61, - 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0b, 0x63, 0x61, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x22, 0xf3, - 0x03, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, - 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, - 0x35, 0x0a, 0x05, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, - 0x05, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x12, 0x40, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, - 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x0a, 0x6f, 0x77, - 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x3e, 0x0a, 0x0a, 0x6f, 0x77, 0x6e, 0x5f, - 0x74, 0x72, 0x61, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, - 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x09, 0x6f, - 0x77, 0x6e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x08, 0x6f, 0x77, 0x6e, 0x5f, - 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x61, - 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x07, 0x6f, 0x77, 0x6e, - 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x68, 0x0a, 0x11, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x3b, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, + 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x73, 0x12, 0x3d, 0x0a, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x4c, 0x53, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x52, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x22, 0xbf, 0x01, 0x0a, 0x1b, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, - 0x4f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x2e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x64, - 0x0a, 0x15, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0xe5, 0x01, 0x0a, 0x11, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, - 0x73, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x48, 0x0a, 0x08, 0x70, 0x61, - 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, - 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, - 0x67, 0x65, 0x73, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x50, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x70, 0x61, 0x63, 0x6b, - 0x61, 0x67, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x63, 0x6b, - 0x61, 0x67, 0x65, 0x73, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0f, 0x61, 0x6c, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x48, 0x61, 0x73, 0x68, - 0x1a, 0x5a, 0x0a, 0x0d, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 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, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xe8, 0x01, 0x0a, - 0x10, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x29, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x61, - 0x63, 0x6b, 0x61, 0x67, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x50, - 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x04, 0x66, 0x69, - 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x61, - 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, - 0x68, 0x22, 0x34, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x6f, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x50, 0x61, 0x63, 0x6b, - 0x61, 0x67, 0x65, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x6f, 0x6e, 0x50, 0x61, - 0x63, 0x6b, 0x61, 0x67, 0x65, 0x10, 0x01, 0x22, 0x76, 0x0a, 0x10, 0x44, 0x6f, 0x77, 0x6e, 0x6c, - 0x6f, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, - 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x21, - 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, - 0xef, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x72, 0x65, 0x74, 0x72, 0x79, - 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, - 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x49, - 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x09, 0x72, 0x65, 0x74, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, - 0x22, 0x34, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, - 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x42, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x22, 0x43, 0x0a, 0x09, 0x52, 0x65, 0x74, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, - 0x0a, 0x17, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, - 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x15, 0x72, 0x65, 0x74, 0x72, 0x79, 0x41, 0x66, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6e, 0x6f, 0x73, - 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x75, 0x0a, 0x14, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x54, 0x6f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x41, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, - 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x54, 0x6f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x22, 0x1a, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x00, 0x22, 0xc9, 0x01, - 0x0a, 0x10, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x4c, 0x0a, 0x16, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x79, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x69, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x1a, 0x6e, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x18, 0x6e, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, 0x61, 0x0a, 0x0f, 0x45, 0x66, 0x66, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, - 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, - 0x12, 0x3a, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, - 0x70, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x22, 0x80, 0x02, 0x0a, - 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x35, 0x0a, 0x17, 0x6c, 0x61, 0x73, 0x74, 0x5f, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3e, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, - 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, - 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x22, 0x3a, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x09, 0x0a, - 0x05, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x50, 0x50, 0x4c, - 0x49, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x50, 0x4c, 0x59, 0x49, 0x4e, - 0x47, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x22, - 0xb5, 0x02, 0x0a, 0x0f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x46, 0x0a, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x61, - 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x61, 0x6d, - 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, + 0x12, 0x31, 0x0a, 0x14, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, + 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x73, 0x12, 0x3d, 0x0a, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x4c, 0x53, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x22, 0xdd, 0x02, 0x0a, 0x17, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x31, + 0x0a, 0x14, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x64, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x73, 0x12, 0x3d, 0x0a, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x4c, 0x53, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x52, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x12, 0x5e, 0x0a, 0x0e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x4f, + 0x74, 0x68, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0d, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, + 0x1a, 0x40, 0x0a, 0x12, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 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, 0x38, 0x0a, 0x07, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2d, 0x0a, + 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x22, 0x30, 0x0a, 0x06, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 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, 0x22, 0x74, + 0x0a, 0x0e, 0x54, 0x4c, 0x53, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, + 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, + 0x12, 0x22, 0x0a, 0x0d, 0x63, 0x61, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x61, 0x50, 0x75, 0x62, 0x6c, 0x69, + 0x63, 0x4b, 0x65, 0x79, 0x22, 0x98, 0x04, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x4f, 0x66, 0x66, 0x65, 0x72, + 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x05, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x4f, 0x70, 0x41, 0x4d, 0x50, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x05, 0x6f, 0x70, 0x61, 0x6d, + 0x70, 0x12, 0x49, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, + 0x52, 0x0a, 0x6f, 0x77, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x47, 0x0a, 0x0a, + 0x6f, 0x77, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, + 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x54, + 0x72, 0x61, 0x63, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x08, 0x6f, 0x77, 0x6e, 0x5f, 0x6c, 0x6f, 0x67, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x52, 0x07, 0x6f, 0x77, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x68, 0x0a, 0x11, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x2e, 0x4f, 0x74, 0x68, + 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x10, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x69, 0x0a, 0x15, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x3a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4f, 0x74, 0x68, + 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0xe5, 0x01, 0x0a, 0x11, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x41, 0x76, 0x61, 0x69, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x48, 0x0a, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x41, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x12, - 0x48, 0x0a, 0x21, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x64, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x1d, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x41, 0x6c, 0x6c, 0x50, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x73, 0x48, 0x61, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, + 0x2a, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x50, + 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x5a, 0x0a, 0x0d, 0x50, + 0x61, 0x63, 0x6b, 0x61, 0x67, 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, 0x33, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x61, 0x63, 0x6b, + 0x61, 0x67, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xe8, 0x01, 0x0a, 0x10, 0x50, 0x61, 0x63, 0x6b, + 0x61, 0x67, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3d, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x61, + 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, + 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, + 0x6c, 0x65, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0x34, 0x0a, 0x0b, + 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x54, + 0x6f, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x10, 0x00, + 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, + 0x10, 0x01, 0x22, 0x76, 0x0a, 0x10, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x61, 0x62, + 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, + 0x61, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xef, 0x01, 0x0a, 0x13, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, + 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x69, 0x6e, 0x66, 0x6f, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, + 0x52, 0x09, 0x72, 0x65, 0x74, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x34, 0x0a, 0x04, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, + 0x12, 0x0e, 0x0a, 0x0a, 0x42, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0x01, + 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x10, + 0x02, 0x42, 0x09, 0x0a, 0x07, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x43, 0x0a, 0x09, + 0x52, 0x65, 0x74, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x17, 0x72, 0x65, 0x74, + 0x72, 0x79, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x72, 0x65, 0x74, 0x72, + 0x79, 0x41, 0x66, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x22, 0x75, 0x0a, 0x14, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x41, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x1a, 0x0a, 0x0b, + 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x52, + 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x00, 0x22, 0xc9, 0x01, 0x0a, 0x10, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, + 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, + 0x68, 0x12, 0x4c, 0x0a, 0x16, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, + 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x79, 0x69, 0x6e, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, + 0x53, 0x0a, 0x1a, 0x6e, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x69, + 0x6e, 0x67, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x18, 0x6e, 0x6f, 0x6e, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x22, 0x61, 0x0a, 0x0f, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x0a, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x09, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x22, 0x80, 0x02, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, + 0x73, 0x68, 0x12, 0x35, 0x0a, 0x17, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x61, 0x6d, + 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x57, - 0x0a, 0x0d, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 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, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, - 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8b, 0x03, 0x0a, 0x0d, 0x50, 0x61, 0x63, 0x6b, - 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, - 0x11, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x48, - 0x61, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0c, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x48, 0x61, 0x73, 0x68, 0x12, - 0x34, 0x0a, 0x16, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x14, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x6f, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x11, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x65, - 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x4e, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x0d, 0x0a, 0x09, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, - 0x0a, 0x0e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, - 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x46, 0x61, 0x69, - 0x6c, 0x65, 0x64, 0x10, 0x03, 0x22, 0x3f, 0x0a, 0x13, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x10, - 0x6e, 0x65, 0x77, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x75, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x65, 0x77, 0x49, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x55, 0x69, 0x64, 0x22, 0x69, 0x0a, 0x11, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x33, 0x0a, 0x06, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, - 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x61, 0x73, - 0x68, 0x22, 0xb7, 0x01, 0x0a, 0x0e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x4d, 0x61, 0x70, 0x12, 0x49, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6d, - 0x61, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x4d, 0x61, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x1a, - 0x5a, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, 0x69, 0x6c, 0x65, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x48, 0x0a, 0x0f, 0x41, - 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x62, 0x6f, - 0x64, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x2a, 0xc9, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x1b, - 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x10, 0x00, 0x12, 0x11, 0x0a, - 0x0d, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x01, - 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x63, 0x63, 0x65, - 0x70, 0x74, 0x73, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x50, 0x61, - 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x10, 0x08, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x63, 0x63, 0x65, - 0x70, 0x74, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x10, 0x10, 0x12, 0x1c, 0x0a, 0x18, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x10, - 0x20, 0x2a, 0xd4, 0x02, 0x0a, 0x11, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x1a, 0x55, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x63, - 0x63, 0x65, 0x70, 0x74, 0x73, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x45, 0x66, + 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, + 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x4e, 0x53, 0x45, + 0x54, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x45, 0x44, 0x10, 0x01, + 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x50, 0x4c, 0x59, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x22, 0xb5, 0x02, 0x0a, 0x0f, 0x50, + 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, + 0x73, 0x68, 0x12, 0x46, 0x0a, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x65, 0x73, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x21, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x5f, 0x61, 0x6c, + 0x6c, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x1d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x64, 0x41, 0x6c, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, + 0x48, 0x61, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x57, 0x0a, 0x0d, 0x50, 0x61, 0x63, + 0x6b, 0x61, 0x67, 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, 0x30, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, + 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x8b, 0x03, 0x0a, 0x0d, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, + 0x73, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x48, 0x61, 0x73, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, + 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, + 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x22, 0x4e, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6c, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x0e, 0x0a, + 0x0a, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x11, 0x0a, + 0x0d, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x03, + 0x22, 0x3f, 0x0a, 0x13, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x65, 0x77, 0x5f, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x6e, 0x65, 0x77, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x69, + 0x64, 0x22, 0x69, 0x0a, 0x11, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x33, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x4d, 0x61, 0x70, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x61, 0x73, 0x68, 0x22, 0xb7, 0x01, 0x0a, + 0x0e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x12, + 0x49, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, + 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x1a, 0x5a, 0x0a, 0x0e, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x48, 0x0a, 0x0f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x21, 0x0a, + 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x2a, 0xc9, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x1b, 0x55, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x63, 0x63, 0x65, + 0x70, 0x74, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4f, + 0x66, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x73, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x10, 0x04, 0x12, - 0x13, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, - 0x65, 0x73, 0x10, 0x08, 0x12, 0x1a, 0x0a, 0x16, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x50, - 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x10, 0x10, - 0x12, 0x14, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x4f, 0x77, 0x6e, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x73, 0x10, 0x20, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x73, 0x4f, 0x77, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x40, 0x12, 0x13, 0x0a, - 0x0e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x4f, 0x77, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x10, - 0x80, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x73, 0x4f, 0x70, 0x41, - 0x4d, 0x50, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x73, 0x10, 0x80, 0x02, 0x12, 0x23, 0x0a, 0x1e, 0x41, 0x63, 0x63, 0x65, 0x70, - 0x74, 0x73, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x10, 0x80, 0x04, 0x12, 0x1a, 0x0a, 0x15, - 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x10, 0x80, 0x08, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x2d, 0x74, 0x65, 0x6c, 0x65, - 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2f, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2d, 0x67, 0x6f, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x12, 0x0a, 0x0e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, + 0x73, 0x10, 0x08, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x73, 0x50, 0x61, + 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x10, 0x12, 0x1c, + 0x0a, 0x18, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x10, 0x20, 0x2a, 0xd4, 0x02, 0x0a, + 0x11, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x1a, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x73, + 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x10, 0x02, 0x12, 0x1a, + 0x0a, 0x16, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x63, + 0x63, 0x65, 0x70, 0x74, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x10, 0x08, 0x12, + 0x1a, 0x0a, 0x16, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x10, 0x10, 0x12, 0x14, 0x0a, 0x10, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x4f, 0x77, 0x6e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x73, 0x10, + 0x20, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x4f, 0x77, 0x6e, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x40, 0x12, 0x13, 0x0a, 0x0e, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x4f, 0x77, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x10, 0x80, 0x01, 0x12, 0x23, 0x0a, + 0x1e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x73, 0x4f, 0x70, 0x41, 0x4d, 0x50, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x10, + 0x80, 0x02, 0x12, 0x23, 0x0a, 0x1e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x73, 0x4f, 0x74, 0x68, + 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x73, 0x10, 0x80, 0x04, 0x12, 0x1a, 0x0a, 0x15, 0x41, 0x63, 0x63, 0x65, 0x70, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x10, 0x80, 0x08, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x2d, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, + 0x2f, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2d, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2875,97 +2963,102 @@ func file_opamp_proto_rawDescGZIP() []byte { return file_opamp_proto_rawDescData } -var file_opamp_proto_enumTypes = make([]protoimpl.EnumInfo, 10) -var file_opamp_proto_msgTypes = make([]protoimpl.MessageInfo, 27) +var file_opamp_proto_enumTypes = make([]protoimpl.EnumInfo, 9) +var file_opamp_proto_msgTypes = make([]protoimpl.MessageInfo, 30) var file_opamp_proto_goTypes = []interface{}{ (ServerCapabilities)(0), // 0: opamp.proto.ServerCapabilities (AgentCapabilities)(0), // 1: opamp.proto.AgentCapabilities (AgentToServer_AgentToServerFlags)(0), // 2: opamp.proto.AgentToServer.AgentToServerFlags (ServerToAgent_Flags)(0), // 3: opamp.proto.ServerToAgent.Flags - (ConnectionSettings_Flags)(0), // 4: opamp.proto.ConnectionSettings.Flags - (PackageAvailable_PackageType)(0), // 5: opamp.proto.PackageAvailable.PackageType - (ServerErrorResponse_Type)(0), // 6: opamp.proto.ServerErrorResponse.Type - (ServerToAgentCommand_CommandType)(0), // 7: opamp.proto.ServerToAgentCommand.CommandType - (RemoteConfigStatus_Status)(0), // 8: opamp.proto.RemoteConfigStatus.Status - (PackageStatus_Status)(0), // 9: opamp.proto.PackageStatus.Status - (*AgentToServer)(nil), // 10: opamp.proto.AgentToServer - (*AgentDisconnect)(nil), // 11: opamp.proto.AgentDisconnect - (*ServerToAgent)(nil), // 12: opamp.proto.ServerToAgent - (*ConnectionSettings)(nil), // 13: opamp.proto.ConnectionSettings - (*Headers)(nil), // 14: opamp.proto.Headers - (*Header)(nil), // 15: opamp.proto.Header - (*TLSCertificate)(nil), // 16: opamp.proto.TLSCertificate - (*ConnectionSettingsOffers)(nil), // 17: opamp.proto.ConnectionSettingsOffers - (*PackagesAvailable)(nil), // 18: opamp.proto.PackagesAvailable - (*PackageAvailable)(nil), // 19: opamp.proto.PackageAvailable - (*DownloadableFile)(nil), // 20: opamp.proto.DownloadableFile - (*ServerErrorResponse)(nil), // 21: opamp.proto.ServerErrorResponse - (*RetryInfo)(nil), // 22: opamp.proto.RetryInfo - (*ServerToAgentCommand)(nil), // 23: opamp.proto.ServerToAgentCommand - (*AgentDescription)(nil), // 24: opamp.proto.AgentDescription - (*EffectiveConfig)(nil), // 25: opamp.proto.EffectiveConfig - (*RemoteConfigStatus)(nil), // 26: opamp.proto.RemoteConfigStatus - (*PackageStatuses)(nil), // 27: opamp.proto.PackageStatuses - (*PackageStatus)(nil), // 28: opamp.proto.PackageStatus - (*AgentIdentification)(nil), // 29: opamp.proto.AgentIdentification - (*AgentRemoteConfig)(nil), // 30: opamp.proto.AgentRemoteConfig - (*AgentConfigMap)(nil), // 31: opamp.proto.AgentConfigMap - (*AgentConfigFile)(nil), // 32: opamp.proto.AgentConfigFile - nil, // 33: opamp.proto.ConnectionSettingsOffers.OtherConnectionsEntry - nil, // 34: opamp.proto.PackagesAvailable.PackagesEntry - nil, // 35: opamp.proto.PackageStatuses.PackagesEntry - nil, // 36: opamp.proto.AgentConfigMap.ConfigMapEntry - (*KeyValue)(nil), // 37: opamp.proto.KeyValue + (PackageAvailable_PackageType)(0), // 4: opamp.proto.PackageAvailable.PackageType + (ServerErrorResponse_Type)(0), // 5: opamp.proto.ServerErrorResponse.Type + (ServerToAgentCommand_CommandType)(0), // 6: opamp.proto.ServerToAgentCommand.CommandType + (RemoteConfigStatus_Status)(0), // 7: opamp.proto.RemoteConfigStatus.Status + (PackageStatus_Status)(0), // 8: opamp.proto.PackageStatus.Status + (*AgentToServer)(nil), // 9: opamp.proto.AgentToServer + (*AgentDisconnect)(nil), // 10: opamp.proto.AgentDisconnect + (*ServerToAgent)(nil), // 11: opamp.proto.ServerToAgent + (*OpAMPConnectionSettings)(nil), // 12: opamp.proto.OpAMPConnectionSettings + (*TelemetryConnectionSettings)(nil), // 13: opamp.proto.TelemetryConnectionSettings + (*OtherConnectionSettings)(nil), // 14: opamp.proto.OtherConnectionSettings + (*Headers)(nil), // 15: opamp.proto.Headers + (*Header)(nil), // 16: opamp.proto.Header + (*TLSCertificate)(nil), // 17: opamp.proto.TLSCertificate + (*ConnectionSettingsOffers)(nil), // 18: opamp.proto.ConnectionSettingsOffers + (*PackagesAvailable)(nil), // 19: opamp.proto.PackagesAvailable + (*PackageAvailable)(nil), // 20: opamp.proto.PackageAvailable + (*DownloadableFile)(nil), // 21: opamp.proto.DownloadableFile + (*ServerErrorResponse)(nil), // 22: opamp.proto.ServerErrorResponse + (*RetryInfo)(nil), // 23: opamp.proto.RetryInfo + (*ServerToAgentCommand)(nil), // 24: opamp.proto.ServerToAgentCommand + (*AgentDescription)(nil), // 25: opamp.proto.AgentDescription + (*EffectiveConfig)(nil), // 26: opamp.proto.EffectiveConfig + (*RemoteConfigStatus)(nil), // 27: opamp.proto.RemoteConfigStatus + (*PackageStatuses)(nil), // 28: opamp.proto.PackageStatuses + (*PackageStatus)(nil), // 29: opamp.proto.PackageStatus + (*AgentIdentification)(nil), // 30: opamp.proto.AgentIdentification + (*AgentRemoteConfig)(nil), // 31: opamp.proto.AgentRemoteConfig + (*AgentConfigMap)(nil), // 32: opamp.proto.AgentConfigMap + (*AgentConfigFile)(nil), // 33: opamp.proto.AgentConfigFile + nil, // 34: opamp.proto.OtherConnectionSettings.OtherSettingsEntry + nil, // 35: opamp.proto.ConnectionSettingsOffers.OtherConnectionsEntry + nil, // 36: opamp.proto.PackagesAvailable.PackagesEntry + nil, // 37: opamp.proto.PackageStatuses.PackagesEntry + nil, // 38: opamp.proto.AgentConfigMap.ConfigMapEntry + (*KeyValue)(nil), // 39: opamp.proto.KeyValue } var file_opamp_proto_depIdxs = []int32{ - 24, // 0: opamp.proto.AgentToServer.agent_description:type_name -> opamp.proto.AgentDescription + 25, // 0: opamp.proto.AgentToServer.agent_description:type_name -> opamp.proto.AgentDescription 1, // 1: opamp.proto.AgentToServer.capabilities:type_name -> opamp.proto.AgentCapabilities - 25, // 2: opamp.proto.AgentToServer.effective_config:type_name -> opamp.proto.EffectiveConfig - 26, // 3: opamp.proto.AgentToServer.remote_config_status:type_name -> opamp.proto.RemoteConfigStatus - 27, // 4: opamp.proto.AgentToServer.package_statuses:type_name -> opamp.proto.PackageStatuses - 11, // 5: opamp.proto.AgentToServer.agent_disconnect:type_name -> opamp.proto.AgentDisconnect + 26, // 2: opamp.proto.AgentToServer.effective_config:type_name -> opamp.proto.EffectiveConfig + 27, // 3: opamp.proto.AgentToServer.remote_config_status:type_name -> opamp.proto.RemoteConfigStatus + 28, // 4: opamp.proto.AgentToServer.package_statuses:type_name -> opamp.proto.PackageStatuses + 10, // 5: opamp.proto.AgentToServer.agent_disconnect:type_name -> opamp.proto.AgentDisconnect 2, // 6: opamp.proto.AgentToServer.flags:type_name -> opamp.proto.AgentToServer.AgentToServerFlags - 21, // 7: opamp.proto.ServerToAgent.error_response:type_name -> opamp.proto.ServerErrorResponse - 30, // 8: opamp.proto.ServerToAgent.remote_config:type_name -> opamp.proto.AgentRemoteConfig - 17, // 9: opamp.proto.ServerToAgent.connection_settings:type_name -> opamp.proto.ConnectionSettingsOffers - 18, // 10: opamp.proto.ServerToAgent.packages_available:type_name -> opamp.proto.PackagesAvailable + 22, // 7: opamp.proto.ServerToAgent.error_response:type_name -> opamp.proto.ServerErrorResponse + 31, // 8: opamp.proto.ServerToAgent.remote_config:type_name -> opamp.proto.AgentRemoteConfig + 18, // 9: opamp.proto.ServerToAgent.connection_settings:type_name -> opamp.proto.ConnectionSettingsOffers + 19, // 10: opamp.proto.ServerToAgent.packages_available:type_name -> opamp.proto.PackagesAvailable 3, // 11: opamp.proto.ServerToAgent.flags:type_name -> opamp.proto.ServerToAgent.Flags 0, // 12: opamp.proto.ServerToAgent.capabilities:type_name -> opamp.proto.ServerCapabilities - 29, // 13: opamp.proto.ServerToAgent.agent_identification:type_name -> opamp.proto.AgentIdentification - 23, // 14: opamp.proto.ServerToAgent.command:type_name -> opamp.proto.ServerToAgentCommand - 14, // 15: opamp.proto.ConnectionSettings.headers:type_name -> opamp.proto.Headers - 14, // 16: opamp.proto.ConnectionSettings.proxy_headers:type_name -> opamp.proto.Headers - 16, // 17: opamp.proto.ConnectionSettings.certificate:type_name -> opamp.proto.TLSCertificate - 4, // 18: opamp.proto.ConnectionSettings.flags:type_name -> opamp.proto.ConnectionSettings.Flags - 15, // 19: opamp.proto.Headers.headers:type_name -> opamp.proto.Header - 13, // 20: opamp.proto.ConnectionSettingsOffers.opamp:type_name -> opamp.proto.ConnectionSettings - 13, // 21: opamp.proto.ConnectionSettingsOffers.own_metrics:type_name -> opamp.proto.ConnectionSettings - 13, // 22: opamp.proto.ConnectionSettingsOffers.own_traces:type_name -> opamp.proto.ConnectionSettings - 13, // 23: opamp.proto.ConnectionSettingsOffers.own_logs:type_name -> opamp.proto.ConnectionSettings - 33, // 24: opamp.proto.ConnectionSettingsOffers.other_connections:type_name -> opamp.proto.ConnectionSettingsOffers.OtherConnectionsEntry - 34, // 25: opamp.proto.PackagesAvailable.packages:type_name -> opamp.proto.PackagesAvailable.PackagesEntry - 5, // 26: opamp.proto.PackageAvailable.type:type_name -> opamp.proto.PackageAvailable.PackageType - 20, // 27: opamp.proto.PackageAvailable.file:type_name -> opamp.proto.DownloadableFile - 6, // 28: opamp.proto.ServerErrorResponse.type:type_name -> opamp.proto.ServerErrorResponse.Type - 22, // 29: opamp.proto.ServerErrorResponse.retry_info:type_name -> opamp.proto.RetryInfo - 7, // 30: opamp.proto.ServerToAgentCommand.type:type_name -> opamp.proto.ServerToAgentCommand.CommandType - 37, // 31: opamp.proto.AgentDescription.identifying_attributes:type_name -> opamp.proto.KeyValue - 37, // 32: opamp.proto.AgentDescription.non_identifying_attributes:type_name -> opamp.proto.KeyValue - 31, // 33: opamp.proto.EffectiveConfig.config_map:type_name -> opamp.proto.AgentConfigMap - 8, // 34: opamp.proto.RemoteConfigStatus.status:type_name -> opamp.proto.RemoteConfigStatus.Status - 35, // 35: opamp.proto.PackageStatuses.packages:type_name -> opamp.proto.PackageStatuses.PackagesEntry - 9, // 36: opamp.proto.PackageStatus.status:type_name -> opamp.proto.PackageStatus.Status - 31, // 37: opamp.proto.AgentRemoteConfig.config:type_name -> opamp.proto.AgentConfigMap - 36, // 38: opamp.proto.AgentConfigMap.config_map:type_name -> opamp.proto.AgentConfigMap.ConfigMapEntry - 13, // 39: opamp.proto.ConnectionSettingsOffers.OtherConnectionsEntry.value:type_name -> opamp.proto.ConnectionSettings - 19, // 40: opamp.proto.PackagesAvailable.PackagesEntry.value:type_name -> opamp.proto.PackageAvailable - 28, // 41: opamp.proto.PackageStatuses.PackagesEntry.value:type_name -> opamp.proto.PackageStatus - 32, // 42: opamp.proto.AgentConfigMap.ConfigMapEntry.value:type_name -> opamp.proto.AgentConfigFile - 43, // [43:43] is the sub-list for method output_type - 43, // [43:43] is the sub-list for method input_type - 43, // [43:43] is the sub-list for extension type_name - 43, // [43:43] is the sub-list for extension extendee - 0, // [0:43] is the sub-list for field type_name + 30, // 13: opamp.proto.ServerToAgent.agent_identification:type_name -> opamp.proto.AgentIdentification + 24, // 14: opamp.proto.ServerToAgent.command:type_name -> opamp.proto.ServerToAgentCommand + 15, // 15: opamp.proto.OpAMPConnectionSettings.headers:type_name -> opamp.proto.Headers + 17, // 16: opamp.proto.OpAMPConnectionSettings.certificate:type_name -> opamp.proto.TLSCertificate + 15, // 17: opamp.proto.TelemetryConnectionSettings.headers:type_name -> opamp.proto.Headers + 17, // 18: opamp.proto.TelemetryConnectionSettings.certificate:type_name -> opamp.proto.TLSCertificate + 15, // 19: opamp.proto.OtherConnectionSettings.headers:type_name -> opamp.proto.Headers + 17, // 20: opamp.proto.OtherConnectionSettings.certificate:type_name -> opamp.proto.TLSCertificate + 34, // 21: opamp.proto.OtherConnectionSettings.other_settings:type_name -> opamp.proto.OtherConnectionSettings.OtherSettingsEntry + 16, // 22: opamp.proto.Headers.headers:type_name -> opamp.proto.Header + 12, // 23: opamp.proto.ConnectionSettingsOffers.opamp:type_name -> opamp.proto.OpAMPConnectionSettings + 13, // 24: opamp.proto.ConnectionSettingsOffers.own_metrics:type_name -> opamp.proto.TelemetryConnectionSettings + 13, // 25: opamp.proto.ConnectionSettingsOffers.own_traces:type_name -> opamp.proto.TelemetryConnectionSettings + 13, // 26: opamp.proto.ConnectionSettingsOffers.own_logs:type_name -> opamp.proto.TelemetryConnectionSettings + 35, // 27: opamp.proto.ConnectionSettingsOffers.other_connections:type_name -> opamp.proto.ConnectionSettingsOffers.OtherConnectionsEntry + 36, // 28: opamp.proto.PackagesAvailable.packages:type_name -> opamp.proto.PackagesAvailable.PackagesEntry + 4, // 29: opamp.proto.PackageAvailable.type:type_name -> opamp.proto.PackageAvailable.PackageType + 21, // 30: opamp.proto.PackageAvailable.file:type_name -> opamp.proto.DownloadableFile + 5, // 31: opamp.proto.ServerErrorResponse.type:type_name -> opamp.proto.ServerErrorResponse.Type + 23, // 32: opamp.proto.ServerErrorResponse.retry_info:type_name -> opamp.proto.RetryInfo + 6, // 33: opamp.proto.ServerToAgentCommand.type:type_name -> opamp.proto.ServerToAgentCommand.CommandType + 39, // 34: opamp.proto.AgentDescription.identifying_attributes:type_name -> opamp.proto.KeyValue + 39, // 35: opamp.proto.AgentDescription.non_identifying_attributes:type_name -> opamp.proto.KeyValue + 32, // 36: opamp.proto.EffectiveConfig.config_map:type_name -> opamp.proto.AgentConfigMap + 7, // 37: opamp.proto.RemoteConfigStatus.status:type_name -> opamp.proto.RemoteConfigStatus.Status + 37, // 38: opamp.proto.PackageStatuses.packages:type_name -> opamp.proto.PackageStatuses.PackagesEntry + 8, // 39: opamp.proto.PackageStatus.status:type_name -> opamp.proto.PackageStatus.Status + 32, // 40: opamp.proto.AgentRemoteConfig.config:type_name -> opamp.proto.AgentConfigMap + 38, // 41: opamp.proto.AgentConfigMap.config_map:type_name -> opamp.proto.AgentConfigMap.ConfigMapEntry + 14, // 42: opamp.proto.ConnectionSettingsOffers.OtherConnectionsEntry.value:type_name -> opamp.proto.OtherConnectionSettings + 20, // 43: opamp.proto.PackagesAvailable.PackagesEntry.value:type_name -> opamp.proto.PackageAvailable + 29, // 44: opamp.proto.PackageStatuses.PackagesEntry.value:type_name -> opamp.proto.PackageStatus + 33, // 45: opamp.proto.AgentConfigMap.ConfigMapEntry.value:type_name -> opamp.proto.AgentConfigFile + 46, // [46:46] is the sub-list for method output_type + 46, // [46:46] is the sub-list for method input_type + 46, // [46:46] is the sub-list for extension type_name + 46, // [46:46] is the sub-list for extension extendee + 0, // [0:46] is the sub-list for field type_name } func init() { file_opamp_proto_init() } @@ -3012,7 +3105,7 @@ func file_opamp_proto_init() { } } file_opamp_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConnectionSettings); i { + switch v := v.(*OpAMPConnectionSettings); i { case 0: return &v.state case 1: @@ -3024,7 +3117,7 @@ func file_opamp_proto_init() { } } file_opamp_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Headers); i { + switch v := v.(*TelemetryConnectionSettings); i { case 0: return &v.state case 1: @@ -3036,7 +3129,7 @@ func file_opamp_proto_init() { } } file_opamp_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Header); i { + switch v := v.(*OtherConnectionSettings); i { case 0: return &v.state case 1: @@ -3048,7 +3141,7 @@ func file_opamp_proto_init() { } } file_opamp_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TLSCertificate); i { + switch v := v.(*Headers); i { case 0: return &v.state case 1: @@ -3060,7 +3153,7 @@ func file_opamp_proto_init() { } } file_opamp_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConnectionSettingsOffers); i { + switch v := v.(*Header); i { case 0: return &v.state case 1: @@ -3072,7 +3165,7 @@ func file_opamp_proto_init() { } } file_opamp_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PackagesAvailable); i { + switch v := v.(*TLSCertificate); i { case 0: return &v.state case 1: @@ -3084,7 +3177,7 @@ func file_opamp_proto_init() { } } file_opamp_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PackageAvailable); i { + switch v := v.(*ConnectionSettingsOffers); i { case 0: return &v.state case 1: @@ -3096,7 +3189,7 @@ func file_opamp_proto_init() { } } file_opamp_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DownloadableFile); i { + switch v := v.(*PackagesAvailable); i { case 0: return &v.state case 1: @@ -3108,7 +3201,7 @@ func file_opamp_proto_init() { } } file_opamp_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServerErrorResponse); i { + switch v := v.(*PackageAvailable); i { case 0: return &v.state case 1: @@ -3120,7 +3213,7 @@ func file_opamp_proto_init() { } } file_opamp_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RetryInfo); i { + switch v := v.(*DownloadableFile); i { case 0: return &v.state case 1: @@ -3132,7 +3225,7 @@ func file_opamp_proto_init() { } } file_opamp_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServerToAgentCommand); i { + switch v := v.(*ServerErrorResponse); i { case 0: return &v.state case 1: @@ -3144,7 +3237,7 @@ func file_opamp_proto_init() { } } file_opamp_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AgentDescription); i { + switch v := v.(*RetryInfo); i { case 0: return &v.state case 1: @@ -3156,7 +3249,7 @@ func file_opamp_proto_init() { } } file_opamp_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EffectiveConfig); i { + switch v := v.(*ServerToAgentCommand); i { case 0: return &v.state case 1: @@ -3168,7 +3261,7 @@ func file_opamp_proto_init() { } } file_opamp_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoteConfigStatus); i { + switch v := v.(*AgentDescription); i { case 0: return &v.state case 1: @@ -3180,7 +3273,7 @@ func file_opamp_proto_init() { } } file_opamp_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PackageStatuses); i { + switch v := v.(*EffectiveConfig); i { case 0: return &v.state case 1: @@ -3192,7 +3285,7 @@ func file_opamp_proto_init() { } } file_opamp_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PackageStatus); i { + switch v := v.(*RemoteConfigStatus); i { case 0: return &v.state case 1: @@ -3204,7 +3297,7 @@ func file_opamp_proto_init() { } } file_opamp_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AgentIdentification); i { + switch v := v.(*PackageStatuses); i { case 0: return &v.state case 1: @@ -3216,7 +3309,7 @@ func file_opamp_proto_init() { } } file_opamp_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AgentRemoteConfig); i { + switch v := v.(*PackageStatus); i { case 0: return &v.state case 1: @@ -3228,7 +3321,7 @@ func file_opamp_proto_init() { } } file_opamp_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AgentConfigMap); i { + switch v := v.(*AgentIdentification); i { case 0: return &v.state case 1: @@ -3240,6 +3333,30 @@ func file_opamp_proto_init() { } } file_opamp_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AgentRemoteConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_opamp_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AgentConfigMap); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_opamp_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AgentConfigFile); i { case 0: return &v.state @@ -3252,7 +3369,7 @@ func file_opamp_proto_init() { } } } - file_opamp_proto_msgTypes[11].OneofWrappers = []interface{}{ + file_opamp_proto_msgTypes[13].OneofWrappers = []interface{}{ (*ServerErrorResponse_RetryInfo)(nil), } type x struct{} @@ -3260,8 +3377,8 @@ func file_opamp_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_opamp_proto_rawDesc, - NumEnums: 10, - NumMessages: 27, + NumEnums: 9, + NumMessages: 30, NumExtensions: 0, NumServices: 0, },