Repository: open-telemetry/opamp-go
Pull request #129 (2022-09-13 13:01:01)

Add Disconnect() method to client connections
Resolves #91 

This enables OpAMP to close the network connection to an agent from the server side

codecov[bot]: # [Codecov](https://codecov.io/gh/open-telemetry/opamp-go/pull/129?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=open-telemetry) Report
Base: **74.61**% // Head: **74.61**% // Increases project coverage by **`+0.00%`** :tada:
> Coverage data is based on head [(`4c773a1`)](https://codecov.io/gh/open-telemetry/opamp-go/pull/129?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=open-telemetry) compared to base [(`89eeb30`)](https://codecov.io/gh/open-telemetry/opamp-go/commit/89eeb30c8d70e54aef663c17b764455e4d053bc8?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=open-telemetry).
> Patch coverage: 50.00% of modified lines in pull request are covered.

<details><summary>Additional details and impacted files</summary>


```diff
@@           Coverage Diff           @@
##             main     #129   +/-   ##
=======================================
  Coverage   74.61%   74.61%           
=======================================
  Files          23       23           
  Lines        1765     1769    +4     
=======================================
+ Hits         1317     1320    +3     
- Misses        334      335    +1     
  Partials      114      114           
```


| [Impacted Files](https://codecov.io/gh/open-telemetry/opamp-go/pull/129?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=open-telemetry) | Coverage Δ | |
|---|---|---|
| [server/httpconnection.go](https://codecov.io/gh/open-telemetry/opamp-go/pull/129/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=open-telemetry#diff-c2VydmVyL2h0dHBjb25uZWN0aW9uLmdv) | `0.00% <0.00%> (ø)` | |
| [server/wsconnection.go](https://codecov.io/gh/open-telemetry/opamp-go/pull/129/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=open-telemetry#diff-c2VydmVyL3dzY29ubmVjdGlvbi5nbw==) | `70.00% <100.00%> (+7.50%)` | :arrow_up: |
| [server/callbacks.go](https://codecov.io/gh/open-telemetry/opamp-go/pull/129/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=open-telemetry#diff-c2VydmVyL2NhbGxiYWNrcy5nbw==) | `72.72% <0.00%> (+4.54%)` | :arrow_up: |

Help us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=open-telemetry). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=open-telemetry)

</details>

[:umbrella: View full report at Codecov](https://codecov.io/gh/open-telemetry/opamp-go/pull/129?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=open-telemetry).   
:loudspeaker: Do you have feedback about the report comment? [Let us know in this issue](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=open-telemetry).

tigrannajaryan: I think Disconnect() is a better name and it is fine to make it an error to call Disconnect() for plain http connections.
andykellr: > I think Disconnect() is a better name and it is fine to make it an error to call Disconnect() for plain http connections.

I was going to suggest that it be a no-op, but an error sound good. I would suggest creating an error like `ErrDisconnectHttpConnection` or something similar that can be easily checked and ignored by the caller in the event that the calling code is unaware of the type of connection be used.
tigrannajaryan: > > I think Disconnect() is a better name and it is fine to make it an error to call Disconnect() for plain http connections.
> 
> I was going to suggest that it be a no-op, but an error sound good. I would suggest creating an error like `ErrDisconnectHttpConnection` or something similar that can be easily checked and ignored by the caller in the event that the calling code is unaware of the type of connection be used.

Yes, sorry, I want's clear. I meant it is good to return an error from Disconnect(), wasn't suggesting that it panics or anything.

Patch:
diff --git a/client/internal/clientcommon.go b/client/internal/clientcommon.go
index c734abf..438926f 100644
--- a/client/internal/clientcommon.go
+++ b/client/internal/clientcommon.go
@@ -76,13 +76,13 @@ func (c *ClientCommon) PrepareStart(
 	c.Capabilities = settings.Capabilities
 
 	// According to OpAMP spec this capability MUST be set, since all Agents MUST report status.
-	c.Capabilities |= protobufs.AgentCapabilities_ReportsStatus
+	c.Capabilities |= protobufs.AgentCapabilities_AgentCapabilities_ReportsStatus
 
 	if c.ClientSyncedState.AgentDescription() == nil {
 		return ErrAgentDescriptionMissing
 	}
 
-	if c.Capabilities&protobufs.AgentCapabilities_ReportsHealth != 0 && c.ClientSyncedState.Health() == nil {
+	if c.Capabilities&protobufs.AgentCapabilities_AgentCapabilities_ReportsHealth != 0 && c.ClientSyncedState.Health() == nil {
 		return ErrAgentHealthMissing
 	}
 
@@ -90,7 +90,7 @@ func (c *ClientCommon) PrepareStart(
 	if settings.RemoteConfigStatus == nil {
 		// RemoteConfigStatus is not provided. Start with empty.
 		settings.RemoteConfigStatus = &protobufs.RemoteConfigStatus{
-			Status: protobufs.RemoteConfigStatus_UNSET,
+			Status: protobufs.RemoteConfigStatuses_RemoteConfigStatuses_UNSET,
 		}
 	}
 
@@ -102,8 +102,8 @@ func (c *ClientCommon) PrepareStart(
 	c.PackagesStateProvider = settings.PackagesStateProvider
 	var packageStatuses *protobufs.PackageStatuses
 	if settings.PackagesStateProvider != nil {
-		if c.Capabilities&protobufs.AgentCapabilities_AcceptsPackages == 0 ||
-			c.Capabilities&protobufs.AgentCapabilities_ReportsPackageStatuses == 0 {
+		if c.Capabilities&protobufs.AgentCapabilities_AgentCapabilities_AcceptsPackages == 0 ||
+			c.Capabilities&protobufs.AgentCapabilities_AgentCapabilities_ReportsPackageStatuses == 0 {
 			return ErrAcceptsPackagesNotSet
 		}
 
@@ -114,8 +114,8 @@ func (c *ClientCommon) PrepareStart(
 			return err
 		}
 	} else {
-		if c.Capabilities&protobufs.AgentCapabilities_AcceptsPackages != 0 ||
-			c.Capabilities&protobufs.AgentCapabilities_ReportsPackageStatuses != 0 {
+		if c.Capabilities&protobufs.AgentCapabilities_AgentCapabilities_AcceptsPackages != 0 ||
+			c.Capabilities&protobufs.AgentCapabilities_AgentCapabilities_ReportsPackageStatuses != 0 {
 			return ErrPackagesStateProviderNotSet
 		}
 	}
@@ -214,7 +214,7 @@ func (c *ClientCommon) PrepareFirstMessage(ctx context.Context) error {
 			msg.EffectiveConfig = cfg
 			msg.RemoteConfigStatus = c.ClientSyncedState.RemoteConfigStatus()
 			msg.PackageStatuses = c.ClientSyncedState.PackageStatuses()
-			msg.Capabilities = c.Capabilities
+			msg.Capabilities = uint64(c.Capabilities)
 		},
 	)
 	return nil
@@ -263,7 +263,7 @@ func (c *ClientCommon) SetHealth(health *protobufs.AgentHealth) error {
 // UpdateEffectiveConfig fetches the current local effective config using
 // GetEffectiveConfig callback and sends it to the Server using provided Sender.
 func (c *ClientCommon) UpdateEffectiveConfig(ctx context.Context) error {
-	if c.Capabilities&protobufs.AgentCapabilities_ReportsEffectiveConfig == 0 {
+	if c.Capabilities&protobufs.AgentCapabilities_AgentCapabilities_ReportsEffectiveConfig == 0 {
 		return ErrReportsEffectiveConfigNotSet
 	}
 
@@ -294,7 +294,7 @@ func (c *ClientCommon) UpdateEffectiveConfig(ctx context.Context) error {
 // It also remembers the new RemoteConfigStatus in the client state so that it can be
 // sent to the Server when the Server asks for it.
 func (c *ClientCommon) SetRemoteConfigStatus(status *protobufs.RemoteConfigStatus) error {
-	if c.Capabilities&protobufs.AgentCapabilities_ReportsRemoteConfig == 0 {
+	if c.Capabilities&protobufs.AgentCapabilities_AgentCapabilities_ReportsRemoteConfig == 0 {
 		return ErrReportsRemoteConfigNotSet
 	}
 
@@ -329,7 +329,7 @@ func (c *ClientCommon) SetRemoteConfigStatus(status *protobufs.RemoteConfigStatu
 // It also remembers the new PackageStatuses in the client state so that it can be
 // sent to the Server when the Server asks for it.
 func (c *ClientCommon) SetPackageStatuses(statuses *protobufs.PackageStatuses) error {
-	if c.Capabilities&protobufs.AgentCapabilities_ReportsPackageStatuses == 0 {
+	if c.Capabilities&protobufs.AgentCapabilities_AgentCapabilities_ReportsPackageStatuses == 0 {
 		return errReportsPackageStatusesNotSet
 	}
 
diff --git a/client/internal/inmempackagestore.go b/client/internal/inmempackagestore.go
index ae995ca..9f85773 100644
--- a/client/internal/inmempackagestore.go
+++ b/client/internal/inmempackagestore.go
@@ -46,7 +46,7 @@ func (l *InMemPackagesStore) PackageState(packageName string) (state types.Packa
 	return types.PackageState{Exists: false}, nil
 }
 
-func (l *InMemPackagesStore) CreatePackage(packageName string, typ protobufs.PackageAvailable_PackageType) error {
+func (l *InMemPackagesStore) CreatePackage(packageName string, typ protobufs.PackageType) error {
 	l.pkgState[packageName] = types.PackageState{
 		Exists: true,
 		Type:   typ,
diff --git a/client/internal/packagessyncer.go b/client/internal/packagessyncer.go
index 8f76a2c..f138baa 100644
--- a/client/internal/packagessyncer.go
+++ b/client/internal/packagessyncer.go
@@ -172,7 +172,7 @@ func (s *packagesSyncer) syncPackage(
 			// Package is of wrong type. Need to re-create it. So, delete it.
 			if err := s.localState.DeletePackage(pkgName); err != nil {
 				err = fmt.Errorf("cannot delete existing version of package %s: %v", pkgName, err)
-				status.Status = protobufs.PackageStatus_InstallFailed
+				status.Status = protobufs.PackageStatusEnum_PackageStatusEnum_InstallFailed
 				status.ErrorMessage = err.Error()
 				return err
 			}
@@ -182,7 +182,7 @@ func (s *packagesSyncer) syncPackage(
 	}
 
 	// Report that we are beginning to install it.
-	status.Status = protobufs.PackageStatus_Installing
+	status.Status = protobufs.PackageStatusEnum_PackageStatusEnum_Installing
 	_ = s.reportStatuses(true)
 
 	if mustCreate {
@@ -190,7 +190,7 @@ func (s *packagesSyncer) syncPackage(
 		err = s.localState.CreatePackage(pkgName, pkgAvail.Type)
 		if err != nil {
 			err = fmt.Errorf("cannot create package %s: %v", pkgName, err)
-			status.Status = protobufs.PackageStatus_InstallFailed
+			status.Status = protobufs.PackageStatusEnum_PackageStatusEnum_InstallFailed
 			status.ErrorMessage = err.Error()
 			return err
 		}
@@ -203,14 +203,14 @@ func (s *packagesSyncer) syncPackage(
 		pkgLocal.Hash = pkgAvail.Hash
 		pkgLocal.Version = pkgAvail.Version
 		if err := s.localState.SetPackageState(pkgName, pkgLocal); err == nil {
-			status.Status = protobufs.PackageStatus_Installed
+			status.Status = protobufs.PackageStatusEnum_PackageStatusEnum_Installed
 			status.AgentHasHash = pkgAvail.Hash
 			status.AgentHasVersion = pkgAvail.Version
 		}
 	}
 
 	if err != nil {
-		status.Status = protobufs.PackageStatus_InstallFailed
+		status.Status = protobufs.PackageStatusEnum_PackageStatusEnum_InstallFailed
 		status.ErrorMessage = err.Error()
 	}
 	_ = s.reportStatuses(true)
diff --git a/client/internal/receivedprocessor.go b/client/internal/receivedprocessor.go
index f8d6184..942505a 100644
--- a/client/internal/receivedprocessor.go
+++ b/client/internal/receivedprocessor.go
@@ -57,7 +57,7 @@ func (r *receivedProcessor) ProcessReceivedMessage(ctx context.Context, msg *pro
 			return
 		}
 
-		scheduled, err := r.rcvFlags(ctx, msg.Flags)
+		scheduled, err := r.rcvFlags(ctx, protobufs.ServerToAgentFlags(msg.Flags))
 		if err != nil {
 			r.logger.Errorf("cannot processed received flags:%v", err)
 		}
@@ -65,7 +65,7 @@ func (r *receivedProcessor) ProcessReceivedMessage(ctx context.Context, msg *pro
 		msgData := &types.MessageData{}
 
 		if msg.RemoteConfig != nil {
-			if r.hasCapability(protobufs.AgentCapabilities_AcceptsRemoteConfig) {
+			if r.hasCapability(protobufs.AgentCapabilities_AgentCapabilities_AcceptsRemoteConfig) {
 				msgData.RemoteConfig = msg.RemoteConfig
 			} else {
 				r.logger.Debugf("Ignoring RemoteConfig, agent does not have AcceptsRemoteConfig capability")
@@ -74,7 +74,7 @@ func (r *receivedProcessor) ProcessReceivedMessage(ctx context.Context, msg *pro
 
 		if msg.ConnectionSettings != nil {
 			if msg.ConnectionSettings.OwnMetrics != nil {
-				if r.hasCapability(protobufs.AgentCapabilities_ReportsOwnMetrics) {
+				if r.hasCapability(protobufs.AgentCapabilities_AgentCapabilities_ReportsOwnMetrics) {
 					msgData.OwnMetricsConnSettings = msg.ConnectionSettings.OwnMetrics
 				} else {
 					r.logger.Debugf("Ignoring OwnMetrics, agent does not have ReportsOwnMetrics capability")
@@ -82,7 +82,7 @@ func (r *receivedProcessor) ProcessReceivedMessage(ctx context.Context, msg *pro
 			}
 
 			if msg.ConnectionSettings.OwnTraces != nil {
-				if r.hasCapability(protobufs.AgentCapabilities_ReportsOwnTraces) {
+				if r.hasCapability(protobufs.AgentCapabilities_AgentCapabilities_ReportsOwnTraces) {
 					msgData.OwnTracesConnSettings = msg.ConnectionSettings.OwnTraces
 				} else {
 					r.logger.Debugf("Ignoring OwnTraces, agent does not have ReportsOwnTraces capability")
@@ -90,7 +90,7 @@ func (r *receivedProcessor) ProcessReceivedMessage(ctx context.Context, msg *pro
 			}
 
 			if msg.ConnectionSettings.OwnLogs != nil {
-				if r.hasCapability(protobufs.AgentCapabilities_ReportsOwnLogs) {
+				if r.hasCapability(protobufs.AgentCapabilities_AgentCapabilities_ReportsOwnLogs) {
 					msgData.OwnLogsConnSettings = msg.ConnectionSettings.OwnLogs
 				} else {
 					r.logger.Debugf("Ignoring OwnLogs, agent does not have ReportsOwnLogs capability")
@@ -98,7 +98,7 @@ func (r *receivedProcessor) ProcessReceivedMessage(ctx context.Context, msg *pro
 			}
 
 			if msg.ConnectionSettings.OtherConnections != nil {
-				if r.hasCapability(protobufs.AgentCapabilities_AcceptsOtherConnectionSettings) {
+				if r.hasCapability(protobufs.AgentCapabilities_AgentCapabilities_AcceptsOtherConnectionSettings) {
 					msgData.OtherConnSettings = msg.ConnectionSettings.OtherConnections
 				} else {
 					r.logger.Debugf("Ignoring OtherConnections, agent does not have AcceptsOtherConnectionSettings capability")
@@ -107,7 +107,7 @@ func (r *receivedProcessor) ProcessReceivedMessage(ctx context.Context, msg *pro
 		}
 
 		if msg.PackagesAvailable != nil {
-			if r.hasCapability(protobufs.AgentCapabilities_AcceptsPackages) {
+			if r.hasCapability(protobufs.AgentCapabilities_AgentCapabilities_AcceptsPackages) {
 				msgData.PackagesAvailable = msg.PackagesAvailable
 				msgData.PackageSyncer = NewPackagesSyncer(
 					r.logger,
@@ -149,12 +149,12 @@ func (r *receivedProcessor) hasCapability(capability protobufs.AgentCapabilities
 
 func (r *receivedProcessor) rcvFlags(
 	ctx context.Context,
-	flags protobufs.ServerToAgent_Flags,
+	flags protobufs.ServerToAgentFlags,
 ) (scheduleSend bool, err error) {
 	// If the Server asks to report data we fetch it from the client state storage and
 	// send to the Server.
 
-	if flags&protobufs.ServerToAgent_ReportFullState != 0 {
+	if flags&protobufs.ServerToAgentFlags_ServerToAgentFlags_ReportFullState != 0 {
 		cfg, err := r.callbacks.GetEffectiveConfig(ctx)
 		if err != nil {
 			r.logger.Errorf("Cannot GetEffectiveConfig: %v", err)
@@ -185,7 +185,7 @@ func (r *receivedProcessor) rcvOpampConnectionSettings(ctx context.Context, sett
 		return
 	}
 
-	if r.hasCapability(protobufs.AgentCapabilities_AcceptsOpAMPConnectionSettings) {
+	if r.hasCapability(protobufs.AgentCapabilities_AgentCapabilities_AcceptsOpAMPConnectionSettings) {
 		err := r.callbacks.OnOpampConnectionSettings(ctx, settings.Opamp)
 		if err == nil {
 			// TODO: verify connection using new settings.
diff --git a/client/types/packagessyncer.go b/client/types/packagessyncer.go
index 4a6e1b8..f2857b4 100644
--- a/client/types/packagessyncer.go
+++ b/client/types/packagessyncer.go
@@ -29,7 +29,7 @@ type PackageState struct {
 	// must be ignored if this field is false.
 	Exists bool
 
-	Type    protobufs.PackageAvailable_PackageType
+	Type    protobufs.PackageType
 	Hash    []byte
 	Version string
 }
@@ -64,7 +64,7 @@ type PackagesStateProvider interface {
 
 	// CreatePackage creates the package locally. If the package existed must return an error.
 	// If the package did not exist its hash should be set to nil.
-	CreatePackage(packageName string, typ protobufs.PackageAvailable_PackageType) error
+	CreatePackage(packageName string, typ protobufs.PackageType) error
 
 	// FileContentHash returns the content hash of the package file that exists locally.
 	// Returns (nil,nil) if package or package file is not found.
diff --git a/internal/examples/agent/agent/agent.go b/internal/examples/agent/agent/agent.go
index 65987a5..383395a 100644
--- a/internal/examples/agent/agent/agent.go
+++ b/internal/examples/agent/agent/agent.go
@@ -103,10 +103,10 @@ func (agent *Agent) start() error {
 			OnMessageFunc: agent.onMessage,
 		},
 		RemoteConfigStatus: agent.remoteConfigStatus,
-		Capabilities: protobufs.AgentCapabilities_AcceptsRemoteConfig |
-			protobufs.AgentCapabilities_ReportsRemoteConfig |
-			protobufs.AgentCapabilities_ReportsEffectiveConfig |
-			protobufs.AgentCapabilities_ReportsOwnMetrics,
+		Capabilities: protobufs.AgentCapabilities_AgentCapabilities_AcceptsRemoteConfig |
+			protobufs.AgentCapabilities_AgentCapabilities_ReportsRemoteConfig |
+			protobufs.AgentCapabilities_AgentCapabilities_ReportsEffectiveConfig |
+			protobufs.AgentCapabilities_AgentCapabilities_ReportsOwnMetrics,
 	}
 	err := agent.opampClient.SetAgentDescription(agent.agentDescription)
 	if err != nil {
@@ -324,13 +324,13 @@ func (agent *Agent) onMessage(ctx context.Context, msg *types.MessageData) {
 		if err != nil {
 			agent.opampClient.SetRemoteConfigStatus(&protobufs.RemoteConfigStatus{
 				LastRemoteConfigHash: msg.RemoteConfig.ConfigHash,
-				Status:               protobufs.RemoteConfigStatus_FAILED,
+				Status:               protobufs.RemoteConfigStatuses_RemoteConfigStatuses_FAILED,
 				ErrorMessage:         err.Error(),
 			})
 		} else {
 			agent.opampClient.SetRemoteConfigStatus(&protobufs.RemoteConfigStatus{
 				LastRemoteConfigHash: msg.RemoteConfig.ConfigHash,
-				Status:               protobufs.RemoteConfigStatus_APPLIED,
+				Status:               protobufs.RemoteConfigStatuses_RemoteConfigStatuses_APPLIED,
 			})
 		}
 	}
diff --git a/internal/examples/server/data/agent.go b/internal/examples/server/data/agent.go
index cf53f37..e16a07d 100644
--- a/internal/examples/server/data/agent.go
+++ b/internal/examples/server/data/agent.go
@@ -195,7 +195,7 @@ func (agent *Agent) updateEffectiveConfig(
 }
 
 func (agent *Agent) hasCapability(capability protobufs.AgentCapabilities) bool {
-	return agent.Status.Capabilities&capability != 0
+	return agent.Status.Capabilities&uint64(capability) != 0
 }
 
 func (agent *Agent) processStatusUpdate(
@@ -209,10 +209,17 @@ func (agent *Agent) processStatusUpdate(
 	agentDescrChanged := agent.updateStatusField(newStatus)
 
 	// Check if any fields were omitted in the status report.
-	effectiveConfigOmitted := agent.hasCapability(protobufs.AgentCapabilities_ReportsEffectiveConfig) && newStatus.EffectiveConfig == nil
-	packageStatusesOmitted := agent.hasCapability(protobufs.AgentCapabilities_ReportsPackageStatuses) && newStatus.PackageStatuses == nil
-	remoteConfigStatusOmitted := agent.hasCapability(protobufs.AgentCapabilities_ReportsRemoteConfig) && newStatus.RemoteConfigStatus == nil
-	healthOmitted := agent.hasCapability(protobufs.AgentCapabilities_ReportsHealth) && newStatus.Health == nil
+	effectiveConfigOmitted := newStatus.EffectiveConfig == nil &&
+		agent.hasCapability(protobufs.AgentCapabilities_AgentCapabilities_ReportsEffectiveConfig)
+
+	packageStatusesOmitted := newStatus.PackageStatuses == nil &&
+		agent.hasCapability(protobufs.AgentCapabilities_AgentCapabilities_ReportsPackageStatuses)
+
+	remoteConfigStatusOmitted := newStatus.RemoteConfigStatus == nil &&
+		agent.hasCapability(protobufs.AgentCapabilities_AgentCapabilities_ReportsRemoteConfig)
+
+	healthOmitted := newStatus.Health == nil &&
+		agent.hasCapability(protobufs.AgentCapabilities_AgentCapabilities_ReportsHealth)
 
 	// True if the status was not fully reported.
 	statusIsCompressed := effectiveConfigOmitted || packageStatusesOmitted || remoteConfigStatusOmitted || healthOmitted
@@ -220,7 +227,7 @@ func (agent *Agent) processStatusUpdate(
 	if statusIsCompressed && lostPreviousUpdate {
 		// The status message is not fully set in the message that we received, but we lost the previous
 		// status update. Request full status update from the agent.
-		response.Flags |= protobufs.ServerToAgent_ReportFullState
+		response.Flags |= uint64(protobufs.ServerToAgentFlags_ServerToAgentFlags_ReportFullState)
 	}
 
 	configChanged := false
diff --git a/internal/examples/supervisor/supervisor/supervisor.go b/internal/examples/supervisor/supervisor/supervisor.go
index 0b8f630..89e9842 100644
--- a/internal/examples/supervisor/supervisor/supervisor.go
+++ b/internal/examples/supervisor/supervisor/supervisor.go
@@ -151,11 +151,11 @@ func (s *Supervisor) startOpAMP() error {
 			},
 			OnMessageFunc: s.onMessage,
 		},
-		Capabilities: protobufs.AgentCapabilities_AcceptsRemoteConfig |
-			protobufs.AgentCapabilities_ReportsRemoteConfig |
-			protobufs.AgentCapabilities_ReportsEffectiveConfig |
-			protobufs.AgentCapabilities_ReportsOwnMetrics |
-			protobufs.AgentCapabilities_ReportsHealth,
+		Capabilities: protobufs.AgentCapabilities_AgentCapabilities_AcceptsRemoteConfig |
+			protobufs.AgentCapabilities_AgentCapabilities_ReportsRemoteConfig |
+			protobufs.AgentCapabilities_AgentCapabilities_ReportsEffectiveConfig |
+			protobufs.AgentCapabilities_AgentCapabilities_ReportsOwnMetrics |
+			protobufs.AgentCapabilities_AgentCapabilities_ReportsHealth,
 	}
 	err := s.opampClient.SetAgentDescription(s.createAgentDescription())
 	if err != nil {
@@ -473,13 +473,13 @@ func (s *Supervisor) onMessage(ctx context.Context, msg *types.MessageData) {
 		if err != nil {
 			s.opampClient.SetRemoteConfigStatus(&protobufs.RemoteConfigStatus{
 				LastRemoteConfigHash: msg.RemoteConfig.ConfigHash,
-				Status:               protobufs.RemoteConfigStatus_FAILED,
+				Status:               protobufs.RemoteConfigStatuses_RemoteConfigStatuses_FAILED,
 				ErrorMessage:         err.Error(),
 			})
 		} else {
 			s.opampClient.SetRemoteConfigStatus(&protobufs.RemoteConfigStatus{
 				LastRemoteConfigHash: msg.RemoteConfig.ConfigHash,
-				Status:               protobufs.RemoteConfigStatus_APPLIED,
+				Status:               protobufs.RemoteConfigStatuses_RemoteConfigStatuses_APPLIED,
 			})
 		}
 	}
diff --git a/internal/proto/opamp.proto b/internal/proto/opamp.proto
index 61ed289..0cfee82 100644
--- a/internal/proto/opamp.proto
+++ b/internal/proto/opamp.proto
@@ -44,7 +44,7 @@ message AgentToServer {
     // in the future such that old Agents automatically report that they don't
     // support the new capability.
     // This field MUST be always set.
-    AgentCapabilities capabilities = 4;
+    uint64 capabilities = 4;
 
     // The current health of the Agent.
     // May be omitted if nothing changed since last AgentToServer message.
@@ -73,16 +73,18 @@ message AgentToServer {
     // Agent to the Server.
     AgentDisconnect agent_disconnect = 9;
 
-    enum AgentToServerFlags {
-        FlagsUnspecified = 0;
-        // AgentToServerFlags is a bit mask. Values below define individual bits.
-
-        // The Agent requests Server go generate a new instance_uid, which will
-        // be sent back in ServerToAgent message
-        RequestInstanceUid     = 0x00000001;
-    }
     // Bit flags as defined by AgentToServerFlags bit masks.
-    AgentToServerFlags flags = 10;
+    uint64 flags = 10;
+}
+
+enum AgentToServerFlags {
+    AgentToServerFlags_Unspecified = 0;
+
+    // AgentToServerFlags is a bit mask. Values below define individual bits.
+
+    // The Agent requests Server go generate a new instance_uid, which will
+    // be sent back in ServerToAgent message
+    AgentToServerFlags_RequestInstanceUid     = 0x00000001;
 }
 
 // AgentDisconnect is the last message sent from the Agent to the Server. The Server
@@ -116,21 +118,8 @@ message ServerToAgent {
     // This field is set when the Server has packages to offer to the Agent.
     PackagesAvailable packages_available = 5;
 
-    enum Flags {
-        FlagsUnspecified = 0;
-
-        // Flags is a bit mask. Values below define individual bits.
-
-        // ReportFullState flag can be used by the Server if the Agent did not include the
-        // particular bit of information in the last status report (which is an allowed
-        // optimization) but the Server detects that it does not have it (e.g. was
-        // restarted and lost state). The detection happens using
-        // AgentToServer.sequence_num values.
-        // The Server asks the Agent to report full status.
-        ReportFullState = 0x00000001;
-    }
-    // Bit flags as defined by Flags bit masks.
-    Flags flags = 6;
+    // Bit flags as defined by ServerToAgentFlags bit masks.
+    uint64 flags = 6;
 
     // Bitmask of flags defined by ServerCapabilities enum.
     // All bits that are not defined in ServerCapabilities enum MUST be set to 0
@@ -140,7 +129,7 @@ message ServerToAgent {
     // This field MUST be set in the first ServerToAgent sent by the Server and MAY
     // be omitted in subsequent ServerToAgent messages by setting it to
     // UnspecifiedServerCapability value.
-    ServerCapabilities capabilities = 7;
+    uint64 capabilities = 7;
 
     // Properties related to identification of the Agent, which can be overridden
     // by the Server if needed.
@@ -152,22 +141,37 @@ message ServerToAgent {
     ServerToAgentCommand command = 9;
 }
 
+enum ServerToAgentFlags {
+    ServerToAgentFlags_Unspecified = 0;
+
+    // Flags is a bit mask. Values below define individual bits.
+
+    // ReportFullState flag can be used by the Server if the Agent did not include the
+    // particular bit of information in the last status report (which is an allowed
+    // optimization) but the Server detects that it does not have it (e.g. was
+    // restarted and lost state). The detection happens using
+    // AgentToServer.sequence_num values.
+    // The Server asks the Agent to report full status.
+    ServerToAgentFlags_ReportFullState = 0x00000001;
+}
+
 enum ServerCapabilities {
     // The capabilities field is unspecified.
-    UnspecifiedServerCapability = 0;
+    ServerCapabilities_Unspecified = 0;
+
     // The Server can accept status reports. This bit MUST be set, since all Server
     // MUST be able to accept status reports.
-    AcceptsStatus                  = 0x00000001;
+    ServerCapabilities_AcceptsStatus            = 0x00000001;
     // The Server can offer remote configuration to the Agent.
-    OffersRemoteConfig             = 0x00000002;
+    ServerCapabilities_OffersRemoteConfig       = 0x00000002;
     // The Server can accept EffectiveConfig in AgentToServer.
-    AcceptsEffectiveConfig         = 0x00000004;
+    ServerCapabilities_AcceptsEffectiveConfig   = 0x00000004;
     // The Server can offer Packages.
-    OffersPackages                 = 0x00000008;
+    ServerCapabilities_OffersPackages           = 0x00000008;
     // The Server can accept Packages status.
-    AcceptsPackagesStatus          = 0x00000010;
+    ServerCapabilities_AcceptsPackagesStatus    = 0x00000010;
     // The Server can offer connection settings.
-    OffersConnectionSettings       = 0x00000020;
+    ServerCapabilities_OffersConnectionSettings = 0x00000020;
 
     // Add new capabilities here, continuing with the least significant unused bit.
 }
@@ -382,11 +386,6 @@ message PackagesAvailable {
 // hash then the Agent does not need to do anything, it already
 // has the right version of the package.
 message PackageAvailable {
-    // The type of the package, either an addon or a top-level package.
-    enum PackageType {
-        TopLevelPackage = 0;
-        AddonPackage    = 1;
-    }
     PackageType type = 1;
 
     // The package version that is available on the Server side. The Agent may for
@@ -404,6 +403,12 @@ message PackageAvailable {
     bytes hash = 4;
 }
 
+// The type of the package, either an addon or a top-level package.
+enum PackageType {
+    PackageType_TopLevel = 0;
+    PackageType_Addon    = 1;
+}
+
 message DownloadableFile {
     // The URL from which the file can be downloaded using HTTP GET request.
     // The Server at the specified URL SHOULD support range requests
@@ -424,22 +429,7 @@ message DownloadableFile {
 }
 
 message ServerErrorResponse {
-    enum Type {
-        // Unknown error. Something went wrong, but it is not known what exactly.
-        // The Agent SHOULD NOT retry the message.
-        // The error_message field may contain a description of the problem.
-        Unknown = 0;
-
-        // The AgentToServer message was malformed. The Agent SHOULD NOT retry
-        // the message.
-        BadRequest = 1;
-
-        // The Server is overloaded and unable to process the request. The Agent
-        // should retry the message later. retry_info field may be optionally
-        // set with additional information about retrying.
-        Unavailable = 2;
-    }
-    Type type = 1;
+    ServerErrorResponseType type = 1;
 
     // Error message in the string form, typically human readable.
     string error_message = 2;
@@ -450,6 +440,22 @@ message ServerErrorResponse {
     }
 }
 
+enum ServerErrorResponseType {
+    // Unknown error. Something went wrong, but it is not known what exactly.
+    // The Agent SHOULD NOT retry the message.
+    // The error_message field may contain a description of the problem.
+    ServerErrorResponseType_Unknown = 0;
+
+    // The AgentToServer message was malformed. The Agent SHOULD NOT retry
+    // the message.
+    ServerErrorResponseType_BadRequest = 1;
+
+    // The Server is overloaded and unable to process the request. The Agent
+    // should retry the message later. retry_info field may be optionally
+    // set with additional information about retrying.
+    ServerErrorResponseType_Unavailable = 2;
+}
+
 message RetryInfo {
     uint64 retry_after_nanoseconds = 1;
 }
@@ -457,14 +463,15 @@ message RetryInfo {
 // ServerToAgentCommand is sent from the Server to the Agent to request that the Agent
 // perform a command.
 message ServerToAgentCommand {
-    enum CommandType {
-        // The Agent should restart. This request will be ignored if the Agent does not
-        // support restart.
-        Restart = 0;
-    }
     CommandType type = 1;
 }
 
+enum CommandType {
+    // The Agent should restart. This request will be ignored if the Agent does not
+    // support restart.
+    CommandType_Restart = 0;
+}
+
 ////////////////////////////////////////////////////////////////////////////////////
 // Status reporting
 
@@ -509,39 +516,39 @@ message AgentDescription {
 
 enum AgentCapabilities {
     // The capabilities field is unspecified.
-    UnspecifiedAgentCapability = 0;
+    AgentCapabilities_Unspecified = 0;
     // The Agent can report status. This bit MUST be set, since all Agents MUST
     // report status.
-    ReportsStatus                  = 0x00000001;
+    AgentCapabilities_ReportsStatus                  = 0x00000001;
     // The Agent can accept remote configuration from the Server.
-    AcceptsRemoteConfig            = 0x00000002;
+    AgentCapabilities_AcceptsRemoteConfig            = 0x00000002;
     // The Agent will report EffectiveConfig in AgentToServer.
-    ReportsEffectiveConfig         = 0x00000004;
+    AgentCapabilities_ReportsEffectiveConfig         = 0x00000004;
     // The Agent can accept package offers.
-    AcceptsPackages                = 0x00000008;
+    AgentCapabilities_AcceptsPackages                = 0x00000008;
     // The Agent can report package status.
-    ReportsPackageStatuses         = 0x00000010;
+    AgentCapabilities_ReportsPackageStatuses         = 0x00000010;
     // The Agent can report own trace to the destination specified by
     // the Server via ConnectionSettingsOffers.own_traces field.
-    ReportsOwnTraces               = 0x00000020;
+    AgentCapabilities_ReportsOwnTraces               = 0x00000020;
     // The Agent can report own metrics to the destination specified by
     // the Server via ConnectionSettingsOffers.own_metrics field.
-    ReportsOwnMetrics              = 0x00000040;
+    AgentCapabilities_ReportsOwnMetrics              = 0x00000040;
     // The Agent can report own logs to the destination specified by
     // the Server via ConnectionSettingsOffers.own_logs field.
-    ReportsOwnLogs                 = 0x00000080;
+    AgentCapabilities_ReportsOwnLogs                 = 0x00000080;
     // The can accept connections settings for OpAMP via
     // ConnectionSettingsOffers.opamp field.
-    AcceptsOpAMPConnectionSettings = 0x00000100;
+    AgentCapabilities_AcceptsOpAMPConnectionSettings = 0x00000100;
     // The can accept connections settings for other destinations via
     // ConnectionSettingsOffers.other_connections field.
-    AcceptsOtherConnectionSettings = 0x00000200;
+    AgentCapabilities_AcceptsOtherConnectionSettings = 0x00000200;
     // The Agent can accept restart requests.
-    AcceptsRestartCommand          = 0x00000400;
+    AgentCapabilities_AcceptsRestartCommand          = 0x00000400;
     // The Agent will report Health via AgentToServer.health field.
-    ReportsHealth                  = 0x00000800;
+    AgentCapabilities_ReportsHealth                  = 0x00000800;
     // The Agent will report RemoteConfig status via AgentToServer.remote_config_status field.
-    ReportsRemoteConfig            = 0x00001000;
+    AgentCapabilities_ReportsRemoteConfig            = 0x00001000;
 
     // Add new capabilities here, continuing with the least significant unused bit.
 }
@@ -574,24 +581,25 @@ message RemoteConfigStatus {
     // the remote_config field in the response in the ServerToAgent message.
     bytes last_remote_config_hash = 1;
 
-    enum Status {
-        // The value of status field is not set.
-        UNSET = 0;
+    RemoteConfigStatuses status = 2;
 
-        // Remote config was successfully applied by the Agent.
-        APPLIED = 1;
+    // Optional error message if status==FAILED.
+    string error_message = 3;
+}
 
-        // Agent is currently applying the remote config that it received earlier.
-        APPLYING = 2;
+enum RemoteConfigStatuses {
+    // The value of status field is not set.
+    RemoteConfigStatuses_UNSET = 0;
 
-        // Agent tried to apply the config received earlier, but it failed.
-        // See error_message for more details.
-        FAILED = 3;
-    }
-    Status status = 2;
+    // Remote config was successfully applied by the Agent.
+    RemoteConfigStatuses_APPLIED = 1;
 
-    // Optional error message if status==FAILED.
-    string error_message = 3;
+    // Agent is currently applying the remote config that it received earlier.
+    RemoteConfigStatuses_APPLYING = 2;
+
+    // Agent tried to apply the config received earlier, but it failed.
+    // See error_message for more details.
+    RemoteConfigStatuses_FAILED = 3;
 }
 
 // The PackageStatuses message describes the status of all packages that the Agent
@@ -662,32 +670,33 @@ message PackageStatus {
     // Server offers a different version, but the Agent fails to install that version.
     bytes server_offered_hash = 5;
 
-    // The status of this package.
-    enum Status {
-        // Package is successfully installed by the Agent.
-        // The error_message field MUST NOT be set.
-        Installed = 0;
-
-        // Installation of this package has not yet started.
-        InstallPending = 1;
-
-        // Agent is currently downloading and installing the package.
-        // server_offered_hash field MUST be set to indicate the version that the
-        // Agent is installing. The error_message field MUST NOT be set.
-        Installing = 2;
-
-        // Agent tried to install the package but installation failed.
-        // server_offered_hash field MUST be set to indicate the version that the Agent
-        // tried to install. The error_message may also contain more details about
-        // the failure.
-        InstallFailed = 3;
-    }
-    Status status = 6;
+    PackageStatusEnum status = 6;
 
     // Error message if the status is erroneous.
     string error_message = 7;
 }
 
+// The status of this package.
+enum PackageStatusEnum {
+    // Package is successfully installed by the Agent.
+    // The error_message field MUST NOT be set.
+    PackageStatusEnum_Installed = 0;
+
+    // Installation of this package has not yet started.
+    PackageStatusEnum_InstallPending = 1;
+
+    // Agent is currently downloading and installing the package.
+    // server_offered_hash field MUST be set to indicate the version that the
+    // Agent is installing. The error_message field MUST NOT be set.
+    PackageStatusEnum_Installing = 2;
+
+    // Agent tried to install the package but installation failed.
+    // server_offered_hash field MUST be set to indicate the version that the Agent
+    // tried to install. The error_message may also contain more details about
+    // the failure.
+    PackageStatusEnum_InstallFailed = 3;
+}
+
 // Properties related to identification of the Agent, which can be overridden
 // by the Server if needed
 message AgentIdentification {
diff --git a/protobufs/opamp.pb.go b/protobufs/opamp.pb.go
index 273e8c0..8605688 100644
--- a/protobufs/opamp.pb.go
+++ b/protobufs/opamp.pb.go
@@ -36,544 +36,544 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-type ServerCapabilities int32
+type AgentToServerFlags int32
 
 const (
-	// The capabilities field is unspecified.
-	ServerCapabilities_UnspecifiedServerCapability ServerCapabilities = 0
-	// The Server can accept status reports. This bit MUST be set, since all Server
-	// MUST be able to accept status reports.
-	ServerCapabilities_AcceptsStatus ServerCapabilities = 1
-	// The Server can offer remote configuration to the Agent.
-	ServerCapabilities_OffersRemoteConfig ServerCapabilities = 2
-	// The Server can accept EffectiveConfig in AgentToServer.
-	ServerCapabilities_AcceptsEffectiveConfig ServerCapabilities = 4
-	// The Server can offer Packages.
-	ServerCapabilities_OffersPackages ServerCapabilities = 8
-	// The Server can accept Packages status.
-	ServerCapabilities_AcceptsPackagesStatus ServerCapabilities = 16
-	// The Server can offer connection settings.
-	ServerCapabilities_OffersConnectionSettings ServerCapabilities = 32
+	AgentToServerFlags_AgentToServerFlags_Unspecified AgentToServerFlags = 0
+	// The Agent requests Server go generate a new instance_uid, which will
+	// be sent back in ServerToAgent message
+	AgentToServerFlags_AgentToServerFlags_RequestInstanceUid AgentToServerFlags = 1
 )
 
-// Enum value maps for ServerCapabilities.
+// Enum value maps for AgentToServerFlags.
 var (
-	ServerCapabilities_name = map[int32]string{
-		0:  "UnspecifiedServerCapability",
-		1:  "AcceptsStatus",
-		2:  "OffersRemoteConfig",
-		4:  "AcceptsEffectiveConfig",
-		8:  "OffersPackages",
-		16: "AcceptsPackagesStatus",
-		32: "OffersConnectionSettings",
+	AgentToServerFlags_name = map[int32]string{
+		0: "AgentToServerFlags_Unspecified",
+		1: "AgentToServerFlags_RequestInstanceUid",
 	}
-	ServerCapabilities_value = map[string]int32{
-		"UnspecifiedServerCapability": 0,
-		"AcceptsStatus":               1,
-		"OffersRemoteConfig":          2,
-		"AcceptsEffectiveConfig":      4,
-		"OffersPackages":              8,
-		"AcceptsPackagesStatus":       16,
-		"OffersConnectionSettings":    32,
+	AgentToServerFlags_value = map[string]int32{
+		"AgentToServerFlags_Unspecified":        0,
+		"AgentToServerFlags_RequestInstanceUid": 1,
 	}
 )
 
-func (x ServerCapabilities) Enum() *ServerCapabilities {
-	p := new(ServerCapabilities)
+func (x AgentToServerFlags) Enum() *AgentToServerFlags {
+	p := new(AgentToServerFlags)
 	*p = x
 	return p
 }
 
-func (x ServerCapabilities) String() string {
+func (x AgentToServerFlags) String() string {
 	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
-func (ServerCapabilities) Descriptor() protoreflect.EnumDescriptor {
+func (AgentToServerFlags) Descriptor() protoreflect.EnumDescriptor {
 	return file_opamp_proto_enumTypes[0].Descriptor()
 }
 
-func (ServerCapabilities) Type() protoreflect.EnumType {
+func (AgentToServerFlags) Type() protoreflect.EnumType {
 	return &file_opamp_proto_enumTypes[0]
 }
 
-func (x ServerCapabilities) Number() protoreflect.EnumNumber {
+func (x AgentToServerFlags) Number() protoreflect.EnumNumber {
 	return protoreflect.EnumNumber(x)
 }
 
-// Deprecated: Use ServerCapabilities.Descriptor instead.
-func (ServerCapabilities) EnumDescriptor() ([]byte, []int) {
+// Deprecated: Use AgentToServerFlags.Descriptor instead.
+func (AgentToServerFlags) EnumDescriptor() ([]byte, []int) {
 	return file_opamp_proto_rawDescGZIP(), []int{0}
 }
 
-type AgentCapabilities int32
+type ServerToAgentFlags int32
 
 const (
-	// The capabilities field is unspecified.
-	AgentCapabilities_UnspecifiedAgentCapability AgentCapabilities = 0
-	// The Agent can report status. This bit MUST be set, since all Agents MUST
-	// report status.
-	AgentCapabilities_ReportsStatus AgentCapabilities = 1
-	// The Agent can accept remote configuration from the Server.
-	AgentCapabilities_AcceptsRemoteConfig AgentCapabilities = 2
-	// The Agent will report EffectiveConfig in AgentToServer.
-	AgentCapabilities_ReportsEffectiveConfig AgentCapabilities = 4
-	// The Agent can accept package offers.
-	AgentCapabilities_AcceptsPackages AgentCapabilities = 8
-	// The Agent can report package status.
-	AgentCapabilities_ReportsPackageStatuses AgentCapabilities = 16
-	// The Agent can report own trace to the destination specified by
-	// the Server via ConnectionSettingsOffers.own_traces field.
-	AgentCapabilities_ReportsOwnTraces AgentCapabilities = 32
-	// The Agent can report own metrics to the destination specified by
-	// the Server via ConnectionSettingsOffers.own_metrics field.
-	AgentCapabilities_ReportsOwnMetrics AgentCapabilities = 64
-	// The Agent can report own logs to the destination specified by
-	// the Server via ConnectionSettingsOffers.own_logs field.
-	AgentCapabilities_ReportsOwnLogs AgentCapabilities = 128
-	// The can accept connections settings for OpAMP via
-	// ConnectionSettingsOffers.opamp field.
-	AgentCapabilities_AcceptsOpAMPConnectionSettings AgentCapabilities = 256
-	// The can accept connections settings for other destinations via
-	// ConnectionSettingsOffers.other_connections field.
-	AgentCapabilities_AcceptsOtherConnectionSettings AgentCapabilities = 512
-	// The Agent can accept restart requests.
-	AgentCapabilities_AcceptsRestartCommand AgentCapabilities = 1024
-	// The Agent will report Health via AgentToServer.health field.
-	AgentCapabilities_ReportsHealth AgentCapabilities = 2048
-	// The Agent will report RemoteConfig status via AgentToServer.remote_config_status field.
-	AgentCapabilities_ReportsRemoteConfig AgentCapabilities = 4096
+	ServerToAgentFlags_ServerToAgentFlags_Unspecified ServerToAgentFlags = 0
+	// ReportFullState flag can be used by the Server if the Agent did not include the
+	// particular bit of information in the last status report (which is an allowed
+	// optimization) but the Server detects that it does not have it (e.g. was
+	// restarted and lost state). The detection happens using
+	// AgentToServer.sequence_num values.
+	// The Server asks the Agent to report full status.
+	ServerToAgentFlags_ServerToAgentFlags_ReportFullState ServerToAgentFlags = 1
 )
 
-// Enum value maps for AgentCapabilities.
+// Enum value maps for ServerToAgentFlags.
 var (
-	AgentCapabilities_name = map[int32]string{
-		0:    "UnspecifiedAgentCapability",
-		1:    "ReportsStatus",
-		2:    "AcceptsRemoteConfig",
-		4:    "ReportsEffectiveConfig",
-		8:    "AcceptsPackages",
-		16:   "ReportsPackageStatuses",
-		32:   "ReportsOwnTraces",
-		64:   "ReportsOwnMetrics",
-		128:  "ReportsOwnLogs",
-		256:  "AcceptsOpAMPConnectionSettings",
-		512:  "AcceptsOtherConnectionSettings",
-		1024: "AcceptsRestartCommand",
-		2048: "ReportsHealth",
-		4096: "ReportsRemoteConfig",
+	ServerToAgentFlags_name = map[int32]string{
+		0: "ServerToAgentFlags_Unspecified",
+		1: "ServerToAgentFlags_ReportFullState",
 	}
-	AgentCapabilities_value = map[string]int32{
-		"UnspecifiedAgentCapability":     0,
-		"ReportsStatus":                  1,
-		"AcceptsRemoteConfig":            2,
-		"ReportsEffectiveConfig":         4,
-		"AcceptsPackages":                8,
-		"ReportsPackageStatuses":         16,
-		"ReportsOwnTraces":               32,
-		"ReportsOwnMetrics":              64,
-		"ReportsOwnLogs":                 128,
-		"AcceptsOpAMPConnectionSettings": 256,
-		"AcceptsOtherConnectionSettings": 512,
-		"AcceptsRestartCommand":          1024,
-		"ReportsHealth":                  2048,
-		"ReportsRemoteConfig":            4096,
+	ServerToAgentFlags_value = map[string]int32{
+		"ServerToAgentFlags_Unspecified":     0,
+		"ServerToAgentFlags_ReportFullState": 1,
 	}
 )
 
-func (x AgentCapabilities) Enum() *AgentCapabilities {
-	p := new(AgentCapabilities)
+func (x ServerToAgentFlags) Enum() *ServerToAgentFlags {
+	p := new(ServerToAgentFlags)
 	*p = x
 	return p
 }
 
-func (x AgentCapabilities) String() string {
+func (x ServerToAgentFlags) String() string {
 	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
-func (AgentCapabilities) Descriptor() protoreflect.EnumDescriptor {
+func (ServerToAgentFlags) Descriptor() protoreflect.EnumDescriptor {
 	return file_opamp_proto_enumTypes[1].Descriptor()
 }
 
-func (AgentCapabilities) Type() protoreflect.EnumType {
+func (ServerToAgentFlags) Type() protoreflect.EnumType {
 	return &file_opamp_proto_enumTypes[1]
 }
 
-func (x AgentCapabilities) Number() protoreflect.EnumNumber {
+func (x ServerToAgentFlags) Number() protoreflect.EnumNumber {
 	return protoreflect.EnumNumber(x)
 }
 
-// Deprecated: Use AgentCapabilities.Descriptor instead.
-func (AgentCapabilities) EnumDescriptor() ([]byte, []int) {
+// Deprecated: Use ServerToAgentFlags.Descriptor instead.
+func (ServerToAgentFlags) EnumDescriptor() ([]byte, []int) {
 	return file_opamp_proto_rawDescGZIP(), []int{1}
 }
 
-type AgentToServer_AgentToServerFlags int32
+type ServerCapabilities int32
 
 const (
-	AgentToServer_FlagsUnspecified AgentToServer_AgentToServerFlags = 0 // AgentToServerFlags is a bit mask. Values below define individual bits.
-	// The Agent requests Server go generate a new instance_uid, which will
-	// be sent back in ServerToAgent message
-	AgentToServer_RequestInstanceUid AgentToServer_AgentToServerFlags = 1
+	// The capabilities field is unspecified.
+	ServerCapabilities_ServerCapabilities_Unspecified ServerCapabilities = 0
+	// The Server can accept status reports. This bit MUST be set, since all Server
+	// MUST be able to accept status reports.
+	ServerCapabilities_ServerCapabilities_AcceptsStatus ServerCapabilities = 1
+	// The Server can offer remote configuration to the Agent.
+	ServerCapabilities_ServerCapabilities_OffersRemoteConfig ServerCapabilities = 2
+	// The Server can accept EffectiveConfig in AgentToServer.
+	ServerCapabilities_ServerCapabilities_AcceptsEffectiveConfig ServerCapabilities = 4
+	// The Server can offer Packages.
+	ServerCapabilities_ServerCapabilities_OffersPackages ServerCapabilities = 8
+	// The Server can accept Packages status.
+	ServerCapabilities_ServerCapabilities_AcceptsPackagesStatus ServerCapabilities = 16
+	// The Server can offer connection settings.
+	ServerCapabilities_ServerCapabilities_OffersConnectionSettings ServerCapabilities = 32
 )
 
-// Enum value maps for AgentToServer_AgentToServerFlags.
+// Enum value maps for ServerCapabilities.
 var (
-	AgentToServer_AgentToServerFlags_name = map[int32]string{
-		0: "FlagsUnspecified",
-		1: "RequestInstanceUid",
+	ServerCapabilities_name = map[int32]string{
+		0:  "ServerCapabilities_Unspecified",
+		1:  "ServerCapabilities_AcceptsStatus",
+		2:  "ServerCapabilities_OffersRemoteConfig",
+		4:  "ServerCapabilities_AcceptsEffectiveConfig",
+		8:  "ServerCapabilities_OffersPackages",
+		16: "ServerCapabilities_AcceptsPackagesStatus",
+		32: "ServerCapabilities_OffersConnectionSettings",
 	}
-	AgentToServer_AgentToServerFlags_value = map[string]int32{
-		"FlagsUnspecified":   0,
-		"RequestInstanceUid": 1,
+	ServerCapabilities_value = map[string]int32{
+		"ServerCapabilities_Unspecified":              0,
+		"ServerCapabilities_AcceptsStatus":            1,
+		"ServerCapabilities_OffersRemoteConfig":       2,
+		"ServerCapabilities_AcceptsEffectiveConfig":   4,
+		"ServerCapabilities_OffersPackages":           8,
+		"ServerCapabilities_AcceptsPackagesStatus":    16,
+		"ServerCapabilities_OffersConnectionSettings": 32,
 	}
 )
 
-func (x AgentToServer_AgentToServerFlags) Enum() *AgentToServer_AgentToServerFlags {
-	p := new(AgentToServer_AgentToServerFlags)
+func (x ServerCapabilities) Enum() *ServerCapabilities {
+	p := new(ServerCapabilities)
 	*p = x
 	return p
 }
 
-func (x AgentToServer_AgentToServerFlags) String() string {
+func (x ServerCapabilities) String() string {
 	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
-func (AgentToServer_AgentToServerFlags) Descriptor() protoreflect.EnumDescriptor {
+func (ServerCapabilities) Descriptor() protoreflect.EnumDescriptor {
 	return file_opamp_proto_enumTypes[2].Descriptor()
 }
 
-func (AgentToServer_AgentToServerFlags) Type() protoreflect.EnumType {
+func (ServerCapabilities) Type() protoreflect.EnumType {
 	return &file_opamp_proto_enumTypes[2]
 }
 
-func (x AgentToServer_AgentToServerFlags) Number() protoreflect.EnumNumber {
+func (x ServerCapabilities) Number() protoreflect.EnumNumber {
 	return protoreflect.EnumNumber(x)
 }
 
-// Deprecated: Use AgentToServer_AgentToServerFlags.Descriptor instead.
-func (AgentToServer_AgentToServerFlags) EnumDescriptor() ([]byte, []int) {
-	return file_opamp_proto_rawDescGZIP(), []int{0, 0}
+// Deprecated: Use ServerCapabilities.Descriptor instead.
+func (ServerCapabilities) EnumDescriptor() ([]byte, []int) {
+	return file_opamp_proto_rawDescGZIP(), []int{2}
 }
 
-type ServerToAgent_Flags int32
+// The type of the package, either an addon or a top-level package.
+type PackageType int32
 
 const (
-	ServerToAgent_FlagsUnspecified ServerToAgent_Flags = 0
-	// ReportFullState flag can be used by the Server if the Agent did not include the
-	// particular bit of information in the last status report (which is an allowed
-	// optimization) but the Server detects that it does not have it (e.g. was
-	// restarted and lost state). The detection happens using
-	// AgentToServer.sequence_num values.
-	// The Server asks the Agent to report full status.
-	ServerToAgent_ReportFullState ServerToAgent_Flags = 1
+	PackageType_PackageType_TopLevel PackageType = 0
+	PackageType_PackageType_Addon    PackageType = 1
 )
 
-// Enum value maps for ServerToAgent_Flags.
+// Enum value maps for PackageType.
 var (
-	ServerToAgent_Flags_name = map[int32]string{
-		0: "FlagsUnspecified",
-		1: "ReportFullState",
+	PackageType_name = map[int32]string{
+		0: "PackageType_TopLevel",
+		1: "PackageType_Addon",
 	}
-	ServerToAgent_Flags_value = map[string]int32{
-		"FlagsUnspecified": 0,
-		"ReportFullState":  1,
+	PackageType_value = map[string]int32{
+		"PackageType_TopLevel": 0,
+		"PackageType_Addon":    1,
 	}
 )
 
-func (x ServerToAgent_Flags) Enum() *ServerToAgent_Flags {
-	p := new(ServerToAgent_Flags)
+func (x PackageType) Enum() *PackageType {
+	p := new(PackageType)
 	*p = x
 	return p
 }
 
-func (x ServerToAgent_Flags) String() string {
+func (x PackageType) String() string {
 	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
-func (ServerToAgent_Flags) Descriptor() protoreflect.EnumDescriptor {
+func (PackageType) Descriptor() protoreflect.EnumDescriptor {
 	return file_opamp_proto_enumTypes[3].Descriptor()
 }
 
-func (ServerToAgent_Flags) Type() protoreflect.EnumType {
+func (PackageType) Type() protoreflect.EnumType {
 	return &file_opamp_proto_enumTypes[3]
 }
 
-func (x ServerToAgent_Flags) Number() protoreflect.EnumNumber {
+func (x PackageType) Number() protoreflect.EnumNumber {
 	return protoreflect.EnumNumber(x)
 }
 
-// Deprecated: Use ServerToAgent_Flags.Descriptor instead.
-func (ServerToAgent_Flags) EnumDescriptor() ([]byte, []int) {
-	return file_opamp_proto_rawDescGZIP(), []int{2, 0}
+// Deprecated: Use PackageType.Descriptor instead.
+func (PackageType) EnumDescriptor() ([]byte, []int) {
+	return file_opamp_proto_rawDescGZIP(), []int{3}
 }
 
-// The type of the package, either an addon or a top-level package.
-type PackageAvailable_PackageType int32
+type ServerErrorResponseType int32
 
 const (
-	PackageAvailable_TopLevelPackage PackageAvailable_PackageType = 0
-	PackageAvailable_AddonPackage    PackageAvailable_PackageType = 1
+	// Unknown error. Something went wrong, but it is not known what exactly.
+	// The Agent SHOULD NOT retry the message.
+	// The error_message field may contain a description of the problem.
+	ServerErrorResponseType_ServerErrorResponseType_Unknown ServerErrorResponseType = 0
+	// The AgentToServer message was malformed. The Agent SHOULD NOT retry
+	// the message.
+	ServerErrorResponseType_ServerErrorResponseType_BadRequest ServerErrorResponseType = 1
+	// The Server is overloaded and unable to process the request. The Agent
+	// should retry the message later. retry_info field may be optionally
+	// set with additional information about retrying.
+	ServerErrorResponseType_ServerErrorResponseType_Unavailable ServerErrorResponseType = 2
 )
 
-// Enum value maps for PackageAvailable_PackageType.
+// Enum value maps for ServerErrorResponseType.
 var (
-	PackageAvailable_PackageType_name = map[int32]string{
-		0: "TopLevelPackage",
-		1: "AddonPackage",
+	ServerErrorResponseType_name = map[int32]string{
+		0: "ServerErrorResponseType_Unknown",
+		1: "ServerErrorResponseType_BadRequest",
+		2: "ServerErrorResponseType_Unavailable",
 	}
-	PackageAvailable_PackageType_value = map[string]int32{
-		"TopLevelPackage": 0,
-		"AddonPackage":    1,
+	ServerErrorResponseType_value = map[string]int32{
+		"ServerErrorResponseType_Unknown":     0,
+		"ServerErrorResponseType_BadRequest":  1,
+		"ServerErrorResponseType_Unavailable": 2,
 	}
 )
 
-func (x PackageAvailable_PackageType) Enum() *PackageAvailable_PackageType {
-	p := new(PackageAvailable_PackageType)
+func (x ServerErrorResponseType) Enum() *ServerErrorResponseType {
+	p := new(ServerErrorResponseType)
 	*p = x
 	return p
 }
 
-func (x PackageAvailable_PackageType) String() string {
+func (x ServerErrorResponseType) String() string {
 	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
-func (PackageAvailable_PackageType) Descriptor() protoreflect.EnumDescriptor {
+func (ServerErrorResponseType) Descriptor() protoreflect.EnumDescriptor {
 	return file_opamp_proto_enumTypes[4].Descriptor()
 }
 
-func (PackageAvailable_PackageType) Type() protoreflect.EnumType {
+func (ServerErrorResponseType) Type() protoreflect.EnumType {
 	return &file_opamp_proto_enumTypes[4]
 }
 
-func (x PackageAvailable_PackageType) Number() protoreflect.EnumNumber {
+func (x ServerErrorResponseType) Number() protoreflect.EnumNumber {
 	return protoreflect.EnumNumber(x)
 }
 
-// Deprecated: Use PackageAvailable_PackageType.Descriptor instead.
-func (PackageAvailable_PackageType) EnumDescriptor() ([]byte, []int) {
-	return file_opamp_proto_rawDescGZIP(), []int{11, 0}
+// Deprecated: Use ServerErrorResponseType.Descriptor instead.
+func (ServerErrorResponseType) EnumDescriptor() ([]byte, []int) {
+	return file_opamp_proto_rawDescGZIP(), []int{4}
 }
 
-type ServerErrorResponse_Type int32
+type CommandType int32
 
 const (
-	// Unknown error. Something went wrong, but it is not known what exactly.
-	// The Agent SHOULD NOT retry the message.
-	// The error_message field may contain a description of the problem.
-	ServerErrorResponse_Unknown ServerErrorResponse_Type = 0
-	// The AgentToServer message was malformed. The Agent SHOULD NOT retry
-	// the message.
-	ServerErrorResponse_BadRequest ServerErrorResponse_Type = 1
-	// The Server is overloaded and unable to process the request. The Agent
-	// should retry the message later. retry_info field may be optionally
-	// set with additional information about retrying.
-	ServerErrorResponse_Unavailable ServerErrorResponse_Type = 2
+	// The Agent should restart. This request will be ignored if the Agent does not
+	// support restart.
+	CommandType_CommandType_Restart CommandType = 0
 )
 
-// Enum value maps for ServerErrorResponse_Type.
+// Enum value maps for CommandType.
 var (
-	ServerErrorResponse_Type_name = map[int32]string{
-		0: "Unknown",
-		1: "BadRequest",
-		2: "Unavailable",
+	CommandType_name = map[int32]string{
+		0: "CommandType_Restart",
 	}
-	ServerErrorResponse_Type_value = map[string]int32{
-		"Unknown":     0,
-		"BadRequest":  1,
-		"Unavailable": 2,
+	CommandType_value = map[string]int32{
+		"CommandType_Restart": 0,
 	}
 )
 
-func (x ServerErrorResponse_Type) Enum() *ServerErrorResponse_Type {
-	p := new(ServerErrorResponse_Type)
+func (x CommandType) Enum() *CommandType {
+	p := new(CommandType)
 	*p = x
 	return p
 }
 
-func (x ServerErrorResponse_Type) String() string {
+func (x CommandType) String() string {
 	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
-func (ServerErrorResponse_Type) Descriptor() protoreflect.EnumDescriptor {
+func (CommandType) Descriptor() protoreflect.EnumDescriptor {
 	return file_opamp_proto_enumTypes[5].Descriptor()
 }
 
-func (ServerErrorResponse_Type) Type() protoreflect.EnumType {
+func (CommandType) Type() protoreflect.EnumType {
 	return &file_opamp_proto_enumTypes[5]
 }
 
-func (x ServerErrorResponse_Type) Number() protoreflect.EnumNumber {
+func (x CommandType) Number() protoreflect.EnumNumber {
 	return protoreflect.EnumNumber(x)
 }
 
-// Deprecated: Use ServerErrorResponse_Type.Descriptor instead.
-func (ServerErrorResponse_Type) EnumDescriptor() ([]byte, []int) {
-	return file_opamp_proto_rawDescGZIP(), []int{13, 0}
+// Deprecated: Use CommandType.Descriptor instead.
+func (CommandType) EnumDescriptor() ([]byte, []int) {
+	return file_opamp_proto_rawDescGZIP(), []int{5}
 }
 
-type ServerToAgentCommand_CommandType int32
+type AgentCapabilities int32
 
 const (
-	// The Agent should restart. This request will be ignored if the Agent does not
-	// support restart.
-	ServerToAgentCommand_Restart ServerToAgentCommand_CommandType = 0
+	// The capabilities field is unspecified.
+	AgentCapabilities_AgentCapabilities_Unspecified AgentCapabilities = 0
+	// The Agent can report status. This bit MUST be set, since all Agents MUST
+	// report status.
+	AgentCapabilities_AgentCapabilities_ReportsStatus AgentCapabilities = 1
+	// The Agent can accept remote configuration from the Server.
+	AgentCapabilities_AgentCapabilities_AcceptsRemoteConfig AgentCapabilities = 2
+	// The Agent will report EffectiveConfig in AgentToServer.
+	AgentCapabilities_AgentCapabilities_ReportsEffectiveConfig AgentCapabilities = 4
+	// The Agent can accept package offers.
+	AgentCapabilities_AgentCapabilities_AcceptsPackages AgentCapabilities = 8
+	// The Agent can report package status.
+	AgentCapabilities_AgentCapabilities_ReportsPackageStatuses AgentCapabilities = 16
+	// The Agent can report own trace to the destination specified by
+	// the Server via ConnectionSettingsOffers.own_traces field.
+	AgentCapabilities_AgentCapabilities_ReportsOwnTraces AgentCapabilities = 32
+	// The Agent can report own metrics to the destination specified by
+	// the Server via ConnectionSettingsOffers.own_metrics field.
+	AgentCapabilities_AgentCapabilities_ReportsOwnMetrics AgentCapabilities = 64
+	// The Agent can report own logs to the destination specified by
+	// the Server via ConnectionSettingsOffers.own_logs field.
+	AgentCapabilities_AgentCapabilities_ReportsOwnLogs AgentCapabilities = 128
+	// The can accept connections settings for OpAMP via
+	// ConnectionSettingsOffers.opamp field.
+	AgentCapabilities_AgentCapabilities_AcceptsOpAMPConnectionSettings AgentCapabilities = 256
+	// The can accept connections settings for other destinations via
+	// ConnectionSettingsOffers.other_connections field.
+	AgentCapabilities_AgentCapabilities_AcceptsOtherConnectionSettings AgentCapabilities = 512
+	// The Agent can accept restart requests.
+	AgentCapabilities_AgentCapabilities_AcceptsRestartCommand AgentCapabilities = 1024
+	// The Agent will report Health via AgentToServer.health field.
+	AgentCapabilities_AgentCapabilities_ReportsHealth AgentCapabilities = 2048
+	// The Agent will report RemoteConfig status via AgentToServer.remote_config_status field.
+	AgentCapabilities_AgentCapabilities_ReportsRemoteConfig AgentCapabilities = 4096
 )
 
-// Enum value maps for ServerToAgentCommand_CommandType.
+// Enum value maps for AgentCapabilities.
 var (
-	ServerToAgentCommand_CommandType_name = map[int32]string{
-		0: "Restart",
+	AgentCapabilities_name = map[int32]string{
+		0:    "AgentCapabilities_Unspecified",
+		1:    "AgentCapabilities_ReportsStatus",
+		2:    "AgentCapabilities_AcceptsRemoteConfig",
+		4:    "AgentCapabilities_ReportsEffectiveConfig",
+		8:    "AgentCapabilities_AcceptsPackages",
+		16:   "AgentCapabilities_ReportsPackageStatuses",
+		32:   "AgentCapabilities_ReportsOwnTraces",
+		64:   "AgentCapabilities_ReportsOwnMetrics",
+		128:  "AgentCapabilities_ReportsOwnLogs",
+		256:  "AgentCapabilities_AcceptsOpAMPConnectionSettings",
+		512:  "AgentCapabilities_AcceptsOtherConnectionSettings",
+		1024: "AgentCapabilities_AcceptsRestartCommand",
+		2048: "AgentCapabilities_ReportsHealth",
+		4096: "AgentCapabilities_ReportsRemoteConfig",
 	}
-	ServerToAgentCommand_CommandType_value = map[string]int32{
-		"Restart": 0,
+	AgentCapabilities_value = map[string]int32{
+		"AgentCapabilities_Unspecified":                    0,
+		"AgentCapabilities_ReportsStatus":                  1,
+		"AgentCapabilities_AcceptsRemoteConfig":            2,
+		"AgentCapabilities_ReportsEffectiveConfig":         4,
+		"AgentCapabilities_AcceptsPackages":                8,
+		"AgentCapabilities_ReportsPackageStatuses":         16,
+		"AgentCapabilities_ReportsOwnTraces":               32,
+		"AgentCapabilities_ReportsOwnMetrics":              64,
+		"AgentCapabilities_ReportsOwnLogs":                 128,
+		"AgentCapabilities_AcceptsOpAMPConnectionSettings": 256,
+		"AgentCapabilities_AcceptsOtherConnectionSettings": 512,
+		"AgentCapabilities_AcceptsRestartCommand":          1024,
+		"AgentCapabilities_ReportsHealth":                  2048,
+		"AgentCapabilities_ReportsRemoteConfig":            4096,
 	}
 )
 
-func (x ServerToAgentCommand_CommandType) Enum() *ServerToAgentCommand_CommandType {
-	p := new(ServerToAgentCommand_CommandType)
+func (x AgentCapabilities) Enum() *AgentCapabilities {
+	p := new(AgentCapabilities)
 	*p = x
 	return p
 }
 
-func (x ServerToAgentCommand_CommandType) String() string {
+func (x AgentCapabilities) String() string {
 	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
-func (ServerToAgentCommand_CommandType) Descriptor() protoreflect.EnumDescriptor {
+func (AgentCapabilities) Descriptor() protoreflect.EnumDescriptor {
 	return file_opamp_proto_enumTypes[6].Descriptor()
 }
 
-func (ServerToAgentCommand_CommandType) Type() protoreflect.EnumType {
+func (AgentCapabilities) Type() protoreflect.EnumType {
 	return &file_opamp_proto_enumTypes[6]
 }
 
-func (x ServerToAgentCommand_CommandType) Number() protoreflect.EnumNumber {
+func (x AgentCapabilities) Number() protoreflect.EnumNumber {
 	return protoreflect.EnumNumber(x)
 }
 
-// Deprecated: Use ServerToAgentCommand_CommandType.Descriptor instead.
-func (ServerToAgentCommand_CommandType) EnumDescriptor() ([]byte, []int) {
-	return file_opamp_proto_rawDescGZIP(), []int{15, 0}
+// Deprecated: Use AgentCapabilities.Descriptor instead.
+func (AgentCapabilities) EnumDescriptor() ([]byte, []int) {
+	return file_opamp_proto_rawDescGZIP(), []int{6}
 }
 
-type RemoteConfigStatus_Status int32
+type RemoteConfigStatuses int32
 
 const (
 	// The value of status field is not set.
-	RemoteConfigStatus_UNSET RemoteConfigStatus_Status = 0
+	RemoteConfigStatuses_RemoteConfigStatuses_UNSET RemoteConfigStatuses = 0
 	// Remote config was successfully applied by the Agent.
-	RemoteConfigStatus_APPLIED RemoteConfigStatus_Status = 1
+	RemoteConfigStatuses_RemoteConfigStatuses_APPLIED RemoteConfigStatuses = 1
 	// Agent is currently applying the remote config that it received earlier.
-	RemoteConfigStatus_APPLYING RemoteConfigStatus_Status = 2
+	RemoteConfigStatuses_RemoteConfigStatuses_APPLYING RemoteConfigStatuses = 2
 	// Agent tried to apply the config received earlier, but it failed.
 	// See error_message for more details.
-	RemoteConfigStatus_FAILED RemoteConfigStatus_Status = 3
+	RemoteConfigStatuses_RemoteConfigStatuses_FAILED RemoteConfigStatuses = 3
 )
 
-// Enum value maps for RemoteConfigStatus_Status.
+// Enum value maps for RemoteConfigStatuses.
 var (
-	RemoteConfigStatus_Status_name = map[int32]string{
-		0: "UNSET",
-		1: "APPLIED",
-		2: "APPLYING",
-		3: "FAILED",
-	}
-	RemoteConfigStatus_Status_value = map[string]int32{
-		"UNSET":    0,
-		"APPLIED":  1,
-		"APPLYING": 2,
-		"FAILED":   3,
+	RemoteConfigStatuses_name = map[int32]string{
+		0: "RemoteConfigStatuses_UNSET",
+		1: "RemoteConfigStatuses_APPLIED",
+		2: "RemoteConfigStatuses_APPLYING",
+		3: "RemoteConfigStatuses_FAILED",
+	}
+	RemoteConfigStatuses_value = map[string]int32{
+		"RemoteConfigStatuses_UNSET":    0,
+		"RemoteConfigStatuses_APPLIED":  1,
+		"RemoteConfigStatuses_APPLYING": 2,
+		"RemoteConfigStatuses_FAILED":   3,
 	}
 )
 
-func (x RemoteConfigStatus_Status) Enum() *RemoteConfigStatus_Status {
-	p := new(RemoteConfigStatus_Status)
+func (x RemoteConfigStatuses) Enum() *RemoteConfigStatuses {
+	p := new(RemoteConfigStatuses)
 	*p = x
 	return p
 }
 
-func (x RemoteConfigStatus_Status) String() string {
+func (x RemoteConfigStatuses) String() string {
 	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
-func (RemoteConfigStatus_Status) Descriptor() protoreflect.EnumDescriptor {
+func (RemoteConfigStatuses) Descriptor() protoreflect.EnumDescriptor {
 	return file_opamp_proto_enumTypes[7].Descriptor()
 }
 
-func (RemoteConfigStatus_Status) Type() protoreflect.EnumType {
+func (RemoteConfigStatuses) Type() protoreflect.EnumType {
 	return &file_opamp_proto_enumTypes[7]
 }
 
-func (x RemoteConfigStatus_Status) Number() protoreflect.EnumNumber {
+func (x RemoteConfigStatuses) Number() protoreflect.EnumNumber {
 	return protoreflect.EnumNumber(x)
 }
 
-// Deprecated: Use RemoteConfigStatus_Status.Descriptor instead.
-func (RemoteConfigStatus_Status) EnumDescriptor() ([]byte, []int) {
-	return file_opamp_proto_rawDescGZIP(), []int{19, 0}
+// Deprecated: Use RemoteConfigStatuses.Descriptor instead.
+func (RemoteConfigStatuses) EnumDescriptor() ([]byte, []int) {
+	return file_opamp_proto_rawDescGZIP(), []int{7}
 }
 
 // The status of this package.
-type PackageStatus_Status int32
+type PackageStatusEnum int32
 
 const (
 	// Package is successfully installed by the Agent.
 	// The error_message field MUST NOT be set.
-	PackageStatus_Installed PackageStatus_Status = 0
+	PackageStatusEnum_PackageStatusEnum_Installed PackageStatusEnum = 0
 	// Installation of this package has not yet started.
-	PackageStatus_InstallPending PackageStatus_Status = 1
+	PackageStatusEnum_PackageStatusEnum_InstallPending PackageStatusEnum = 1
 	// Agent is currently downloading and installing the package.
 	// server_offered_hash field MUST be set to indicate the version that the
 	// Agent is installing. The error_message field MUST NOT be set.
-	PackageStatus_Installing PackageStatus_Status = 2
+	PackageStatusEnum_PackageStatusEnum_Installing PackageStatusEnum = 2
 	// Agent tried to install the package but installation failed.
 	// server_offered_hash field MUST be set to indicate the version that the Agent
 	// tried to install. The error_message may also contain more details about
 	// the failure.
-	PackageStatus_InstallFailed PackageStatus_Status = 3
+	PackageStatusEnum_PackageStatusEnum_InstallFailed PackageStatusEnum = 3
 )
 
-// Enum value maps for PackageStatus_Status.
+// Enum value maps for PackageStatusEnum.
 var (
-	PackageStatus_Status_name = map[int32]string{
-		0: "Installed",
-		1: "InstallPending",
-		2: "Installing",
-		3: "InstallFailed",
-	}
-	PackageStatus_Status_value = map[string]int32{
-		"Installed":      0,
-		"InstallPending": 1,
-		"Installing":     2,
-		"InstallFailed":  3,
+	PackageStatusEnum_name = map[int32]string{
+		0: "PackageStatusEnum_Installed",
+		1: "PackageStatusEnum_InstallPending",
+		2: "PackageStatusEnum_Installing",
+		3: "PackageStatusEnum_InstallFailed",
+	}
+	PackageStatusEnum_value = map[string]int32{
+		"PackageStatusEnum_Installed":      0,
+		"PackageStatusEnum_InstallPending": 1,
+		"PackageStatusEnum_Installing":     2,
+		"PackageStatusEnum_InstallFailed":  3,
 	}
 )
 
-func (x PackageStatus_Status) Enum() *PackageStatus_Status {
-	p := new(PackageStatus_Status)
+func (x PackageStatusEnum) Enum() *PackageStatusEnum {
+	p := new(PackageStatusEnum)
 	*p = x
 	return p
 }
 
-func (x PackageStatus_Status) String() string {
+func (x PackageStatusEnum) String() string {
 	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
-func (PackageStatus_Status) Descriptor() protoreflect.EnumDescriptor {
+func (PackageStatusEnum) Descriptor() protoreflect.EnumDescriptor {
 	return file_opamp_proto_enumTypes[8].Descriptor()
 }
 
-func (PackageStatus_Status) Type() protoreflect.EnumType {
+func (PackageStatusEnum) Type() protoreflect.EnumType {
 	return &file_opamp_proto_enumTypes[8]
 }
 
-func (x PackageStatus_Status) Number() protoreflect.EnumNumber {
+func (x PackageStatusEnum) Number() protoreflect.EnumNumber {
 	return protoreflect.EnumNumber(x)
 }
 
-// Deprecated: Use PackageStatus_Status.Descriptor instead.
-func (PackageStatus_Status) EnumDescriptor() ([]byte, []int) {
-	return file_opamp_proto_rawDescGZIP(), []int{21, 0}
+// Deprecated: Use PackageStatusEnum.Descriptor instead.
+func (PackageStatusEnum) EnumDescriptor() ([]byte, []int) {
+	return file_opamp_proto_rawDescGZIP(), []int{8}
 }
 
 type AgentToServer struct {
@@ -599,7 +599,7 @@ type AgentToServer struct {
 	// in the future such that old Agents automatically report that they don't
 	// support the new capability.
 	// This field MUST be always set.
-	Capabilities AgentCapabilities `protobuf:"varint,4,opt,name=capabilities,proto3,enum=opamp.proto.AgentCapabilities" json:"capabilities,omitempty"`
+	Capabilities uint64 `protobuf:"varint,4,opt,name=capabilities,proto3" json:"capabilities,omitempty"`
 	// The current health of the Agent.
 	// May be omitted if nothing changed since last AgentToServer message.
 	Health *AgentHealth `protobuf:"bytes,5,opt,name=health,proto3" json:"health,omitempty"`
@@ -623,7 +623,7 @@ type AgentToServer struct {
 	// Agent to the Server.
 	AgentDisconnect *AgentDisconnect `protobuf:"bytes,9,opt,name=agent_disconnect,json=agentDisconnect,proto3" json:"agent_disconnect,omitempty"`
 	// Bit flags as defined by AgentToServerFlags bit masks.
-	Flags AgentToServer_AgentToServerFlags `protobuf:"varint,10,opt,name=flags,proto3,enum=opamp.proto.AgentToServer_AgentToServerFlags" json:"flags,omitempty"`
+	Flags uint64 `protobuf:"varint,10,opt,name=flags,proto3" json:"flags,omitempty"`
 }
 
 func (x *AgentToServer) Reset() {
@@ -679,11 +679,11 @@ func (x *AgentToServer) GetAgentDescription() *AgentDescription {
 	return nil
 }
 
-func (x *AgentToServer) GetCapabilities() AgentCapabilities {
+func (x *AgentToServer) GetCapabilities() uint64 {
 	if x != nil {
 		return x.Capabilities
 	}
-	return AgentCapabilities_UnspecifiedAgentCapability
+	return 0
 }
 
 func (x *AgentToServer) GetHealth() *AgentHealth {
@@ -721,11 +721,11 @@ func (x *AgentToServer) GetAgentDisconnect() *AgentDisconnect {
 	return nil
 }
 
-func (x *AgentToServer) GetFlags() AgentToServer_AgentToServerFlags {
+func (x *AgentToServer) GetFlags() uint64 {
 	if x != nil {
 		return x.Flags
 	}
-	return AgentToServer_FlagsUnspecified
+	return 0
 }
 
 // AgentDisconnect is the last message sent from the Agent to the Server. The Server
@@ -793,8 +793,8 @@ type ServerToAgent struct {
 	ConnectionSettings *ConnectionSettingsOffers `protobuf:"bytes,4,opt,name=connection_settings,json=connectionSettings,proto3" json:"connection_settings,omitempty"`
 	// This field is set when the Server has packages to offer to the Agent.
 	PackagesAvailable *PackagesAvailable `protobuf:"bytes,5,opt,name=packages_available,json=packagesAvailable,proto3" json:"packages_available,omitempty"`
-	// Bit flags as defined by Flags bit masks.
-	Flags ServerToAgent_Flags `protobuf:"varint,6,opt,name=flags,proto3,enum=opamp.proto.ServerToAgent_Flags" json:"flags,omitempty"`
+	// Bit flags as defined by ServerToAgentFlags bit masks.
+	Flags uint64 `protobuf:"varint,6,opt,name=flags,proto3" json:"flags,omitempty"`
 	// Bitmask of flags defined by ServerCapabilities enum.
 	// All bits that are not defined in ServerCapabilities enum MUST be set to 0
 	// by the Server. This allows extending the protocol and the ServerCapabilities
@@ -803,7 +803,7 @@ type ServerToAgent struct {
 	// This field MUST be set in the first ServerToAgent sent by the Server and MAY
 	// be omitted in subsequent ServerToAgent messages by setting it to
 	// UnspecifiedServerCapability value.
-	Capabilities ServerCapabilities `protobuf:"varint,7,opt,name=capabilities,proto3,enum=opamp.proto.ServerCapabilities" json:"capabilities,omitempty"`
+	Capabilities uint64 `protobuf:"varint,7,opt,name=capabilities,proto3" json:"capabilities,omitempty"`
 	// Properties related to identification of the Agent, which can be overridden
 	// by the Server if needed.
 	AgentIdentification *AgentIdentification `protobuf:"bytes,8,opt,name=agent_identification,json=agentIdentification,proto3" json:"agent_identification,omitempty"`
@@ -880,18 +880,18 @@ func (x *ServerToAgent) GetPackagesAvailable() *PackagesAvailable {
 	return nil
 }
 
-func (x *ServerToAgent) GetFlags() ServerToAgent_Flags {
+func (x *ServerToAgent) GetFlags() uint64 {
 	if x != nil {
 		return x.Flags
 	}
-	return ServerToAgent_FlagsUnspecified
+	return 0
 }
 
-func (x *ServerToAgent) GetCapabilities() ServerCapabilities {
+func (x *ServerToAgent) GetCapabilities() uint64 {
 	if x != nil {
 		return x.Capabilities
 	}
-	return ServerCapabilities_UnspecifiedServerCapability
+	return 0
 }
 
 func (x *ServerToAgent) GetAgentIdentification() *AgentIdentification {
@@ -1550,7 +1550,7 @@ type PackageAvailable struct {
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Type PackageAvailable_PackageType `protobuf:"varint,1,opt,name=type,proto3,enum=opamp.proto.PackageAvailable_PackageType" json:"type,omitempty"`
+	Type PackageType `protobuf:"varint,1,opt,name=type,proto3,enum=opamp.proto.PackageType" json:"type,omitempty"`
 	// The package version that is available on the Server side. The Agent may for
 	// example use this information to avoid downloading a package that was previously
 	// already downloaded and failed to install.
@@ -1596,11 +1596,11 @@ func (*PackageAvailable) Descriptor() ([]byte, []int) {
 	return file_opamp_proto_rawDescGZIP(), []int{11}
 }
 
-func (x *PackageAvailable) GetType() PackageAvailable_PackageType {
+func (x *PackageAvailable) GetType() PackageType {
 	if x != nil {
 		return x.Type
 	}
-	return PackageAvailable_TopLevelPackage
+	return PackageType_PackageType_TopLevel
 }
 
 func (x *PackageAvailable) GetVersion() string {
@@ -1703,7 +1703,7 @@ type ServerErrorResponse struct {
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Type ServerErrorResponse_Type `protobuf:"varint,1,opt,name=type,proto3,enum=opamp.proto.ServerErrorResponse_Type" json:"type,omitempty"`
+	Type ServerErrorResponseType `protobuf:"varint,1,opt,name=type,proto3,enum=opamp.proto.ServerErrorResponseType" json:"type,omitempty"`
 	// Error message in the string form, typically human readable.
 	ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
 	// Types that are assignable to Details:
@@ -1743,11 +1743,11 @@ func (*ServerErrorResponse) Descriptor() ([]byte, []int) {
 	return file_opamp_proto_rawDescGZIP(), []int{13}
 }
 
-func (x *ServerErrorResponse) GetType() ServerErrorResponse_Type {
+func (x *ServerErrorResponse) GetType() ServerErrorResponseType {
 	if x != nil {
 		return x.Type
 	}
-	return ServerErrorResponse_Unknown
+	return ServerErrorResponseType_ServerErrorResponseType_Unknown
 }
 
 func (x *ServerErrorResponse) GetErrorMessage() string {
@@ -1836,7 +1836,7 @@ type ServerToAgentCommand struct {
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Type ServerToAgentCommand_CommandType `protobuf:"varint,1,opt,name=type,proto3,enum=opamp.proto.ServerToAgentCommand_CommandType" json:"type,omitempty"`
+	Type CommandType `protobuf:"varint,1,opt,name=type,proto3,enum=opamp.proto.CommandType" json:"type,omitempty"`
 }
 
 func (x *ServerToAgentCommand) Reset() {
@@ -1871,11 +1871,11 @@ func (*ServerToAgentCommand) Descriptor() ([]byte, []int) {
 	return file_opamp_proto_rawDescGZIP(), []int{15}
 }
 
-func (x *ServerToAgentCommand) GetType() ServerToAgentCommand_CommandType {
+func (x *ServerToAgentCommand) GetType() CommandType {
 	if x != nil {
 		return x.Type
 	}
-	return ServerToAgentCommand_Restart
+	return CommandType_CommandType_Restart
 }
 
 type AgentDescription struct {
@@ -2091,8 +2091,8 @@ type RemoteConfigStatus struct {
 	// The Server SHOULD compare this hash with the config hash
 	// it has for the Agent and if the hashes are different the Server MUST include
 	// the remote_config field in the response in the ServerToAgent message.
-	LastRemoteConfigHash []byte                    `protobuf:"bytes,1,opt,name=last_remote_config_hash,json=lastRemoteConfigHash,proto3" json:"last_remote_config_hash,omitempty"`
-	Status               RemoteConfigStatus_Status `protobuf:"varint,2,opt,name=status,proto3,enum=opamp.proto.RemoteConfigStatus_Status" json:"status,omitempty"`
+	LastRemoteConfigHash []byte               `protobuf:"bytes,1,opt,name=last_remote_config_hash,json=lastRemoteConfigHash,proto3" json:"last_remote_config_hash,omitempty"`
+	Status               RemoteConfigStatuses `protobuf:"varint,2,opt,name=status,proto3,enum=opamp.proto.RemoteConfigStatuses" json:"status,omitempty"`
 	// Optional error message if status==FAILED.
 	ErrorMessage string `protobuf:"bytes,3,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
 }
@@ -2136,11 +2136,11 @@ func (x *RemoteConfigStatus) GetLastRemoteConfigHash() []byte {
 	return nil
 }
 
-func (x *RemoteConfigStatus) GetStatus() RemoteConfigStatus_Status {
+func (x *RemoteConfigStatus) GetStatus() RemoteConfigStatuses {
 	if x != nil {
 		return x.Status
 	}
-	return RemoteConfigStatus_UNSET
+	return RemoteConfigStatuses_RemoteConfigStatuses_UNSET
 }
 
 func (x *RemoteConfigStatus) GetErrorMessage() string {
@@ -2271,8 +2271,8 @@ type PackageStatus struct {
 	// fields to be set and to have different values. This is for example possible if
 	// the Agent already has a version of the package successfully installed, the
 	// Server offers a different version, but the Agent fails to install that version.
-	ServerOfferedHash []byte               `protobuf:"bytes,5,opt,name=server_offered_hash,json=serverOfferedHash,proto3" json:"server_offered_hash,omitempty"`
-	Status            PackageStatus_Status `protobuf:"varint,6,opt,name=status,proto3,enum=opamp.proto.PackageStatus_Status" json:"status,omitempty"`
+	ServerOfferedHash []byte            `protobuf:"bytes,5,opt,name=server_offered_hash,json=serverOfferedHash,proto3" json:"server_offered_hash,omitempty"`
+	Status            PackageStatusEnum `protobuf:"varint,6,opt,name=status,proto3,enum=opamp.proto.PackageStatusEnum" json:"status,omitempty"`
 	// Error message if the status is erroneous.
 	ErrorMessage string `protobuf:"bytes,7,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
 }
@@ -2344,11 +2344,11 @@ func (x *PackageStatus) GetServerOfferedHash() []byte {
 	return nil
 }
 
-func (x *PackageStatus) GetStatus() PackageStatus_Status {
+func (x *PackageStatus) GetStatus() PackageStatusEnum {
 	if x != nil {
 		return x.Status
 	}
-	return PackageStatus_Installed
+	return PackageStatusEnum_PackageStatusEnum_Installed
 }
 
 func (x *PackageStatus) GetErrorMessage() string {
@@ -2593,7 +2593,7 @@ var File_opamp_proto protoreflect.FileDescriptor
 var file_opamp_proto_rawDesc = []byte{
 	0x0a, 0x0b, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x6f,
 	0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0e, 0x61, 0x6e, 0x79, 0x76,
-	0x61, 0x6c, 0x75, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xce, 0x05, 0x0a, 0x0d, 0x41,
+	0x61, 0x6c, 0x75, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbb, 0x04, 0x0a, 0x0d, 0x41,
 	0x67, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c,
 	0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
 	0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x69, 0x64, 0x12,
@@ -2603,11 +2603,9 @@ var file_opamp_proto_rawDesc = []byte{
 	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e,
 	0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x67, 0x65, 0x6e,
 	0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x61, 0x67,
-	0x65, 0x6e, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42,
+	0x65, 0x6e, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22,
 	0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04,
-	0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69,
-	0x74, 0x69, 0x65, 0x73, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69,
+	0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69,
 	0x65, 0x73, 0x12, 0x30, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01,
 	0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
 	0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x06, 0x68, 0x65,
@@ -2630,366 +2628,401 @@ var file_opamp_proto_rawDesc = []byte{
 	0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74,
 	0x6f, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63,
 	0x74, 0x52, 0x0f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65,
-	0x63, 0x74, 0x12, 0x43, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28,
-	0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
-	0x41, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x41, 0x67,
-	0x65, 0x6e, 0x74, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73,
-	0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x42, 0x0a, 0x12, 0x41, 0x67, 0x65, 0x6e, 0x74,
-	0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x14, 0x0a,
-	0x10, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65,
-	0x64, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e,
-	0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x69, 0x64, 0x10, 0x01, 0x22, 0x11, 0x0a, 0x0f, 0x41,
-	0x67, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x22, 0xaa,
-	0x05, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x41, 0x67, 0x65, 0x6e, 0x74,
-	0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x75, 0x69, 0x64,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
-	0x55, 0x69, 0x64, 0x12, 0x47, 0x0a, 0x0e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x73,
-	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 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, 0x52, 0x0d, 0x65,
-	0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0d,
-	0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e,
-	0x66, 0x69, 0x67, 0x52, 0x0c, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
-	0x67, 0x12, 0x56, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
-	0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 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, 0x4f,
-	0x66, 0x66, 0x65, 0x72, 0x73, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f,
-	0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x61, 0x63,
-	0x6b, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18,
-	0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 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, 0x52, 0x11, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x41,
-	0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67,
-	0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 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, 0x2e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73,
-	0x12, 0x43, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73,
-	0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70,
-	0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62,
-	0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c,
-	0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x14, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69,
-	0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63,
-	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e,
-	0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x07, 0x63, 0x6f,
-	0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 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, 0x52, 0x07,
-	0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x22, 0x32, 0x0a, 0x05, 0x46, 0x6c, 0x61, 0x67, 0x73,
-	0x12, 0x14, 0x0a, 0x10, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69,
-	0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74,
-	0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0x01, 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, 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, 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,
+	0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28,
+	0x04, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x11, 0x0a, 0x0f, 0x41, 0x67, 0x65, 0x6e,
+	0x74, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x22, 0xb3, 0x04, 0x0a, 0x0d,
+	0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a,
+	0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x69, 0x64,
+	0x12, 0x47, 0x0a, 0x0e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+	0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 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, 0x52, 0x0d, 0x65, 0x72, 0x72, 0x6f,
+	0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0d, 0x72, 0x65, 0x6d,
+	0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
+	0x32, 0x1e, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41,
+	0x67, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+	0x52, 0x0c, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x56,
+	0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74,
+	0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 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, 0x4f, 0x66, 0x66, 0x65,
+	0x72, 0x73, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65,
+	0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67,
+	0x65, 0x73, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01,
+	0x28, 0x0b, 0x32, 0x1e, 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, 0x52, 0x11, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x41, 0x76, 0x61, 0x69,
+	0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x06,
+	0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63,
+	0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28,
+	0x04, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12,
+	0x53, 0x0a, 0x14, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66,
+	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e,
+	0x6f, 0x70, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x67, 0x65, 0x6e,
+	0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
+	0x13, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18,
+	0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 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, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
+	0x64, 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,
+	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, 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, 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,
+	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, 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,
+	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, 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, 0xa1, 0x01, 0x0a, 0x10, 0x50, 0x61, 0x63, 0x6b, 0x61,
+	0x67, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x74,
+	0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x61, 0x6d,
+	0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 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, 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, 0xb8, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x45, 0x72, 0x72,
+	0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79,
+	0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 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, 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, 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, 0x44, 0x0a, 0x14, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x41, 0x67,
+	0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x2c, 0x0a, 0x04, 0x74, 0x79,
+	0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x61, 0x6d, 0x70,
+	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x79,
+	0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb5, 0x01, 0x0a, 0x10, 0x41, 0x67, 0x65,
+	0x6e, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 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, 0x01, 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, 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, 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, 0x6d, 0x0a, 0x0b, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12,
+	0x0e, 0x0a, 0x02, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x75, 0x70, 0x12,
+	0x2f, 0x0a, 0x14, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x6e,
+	0x69, 0x78, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x11, 0x73,
+	0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, 0x78, 0x4e, 0x61, 0x6e, 0x6f,
+	0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22,
+	0x4d, 0x0a, 0x0f, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66,
+	0x69, 0x67, 0x12, 0x3a, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6d, 0x61, 0x70,
+	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, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x22, 0xab,
+	0x01, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53,
+	0x74, 0x61, 0x74, 0x75, 0x73, 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, 0x01, 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, 0x39, 0x0a, 0x06,
+	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 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, 0x65, 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, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
+	0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xa1, 0x02, 0x0a,
+	0x0f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73,
+	0x12, 0x46, 0x0a, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 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, 0x2a, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x5f,
+	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, 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, 0xb5, 0x01, 0x0a, 0x10, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72,
-	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 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, 0x01, 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, 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,
-	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, 0x6d, 0x0a, 0x0b, 0x41, 0x67, 0x65,
-	0x6e, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x75, 0x70, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x75, 0x70, 0x12, 0x2f, 0x0a, 0x14, 0x73, 0x74, 0x61, 0x72,
-	0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x6e, 0x61, 0x6e, 0x6f,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d,
-	0x65, 0x55, 0x6e, 0x69, 0x78, 0x4e, 0x61, 0x6e, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x73,
-	0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c,
-	0x61, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x4d, 0x0a, 0x0f, 0x45, 0x66, 0x66, 0x65,
-	0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3a, 0x0a, 0x0a, 0x63,
-	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6d, 0x61, 0x70, 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, 0x09, 0x63, 0x6f,
-	0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x22, 0xec, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f,
-	0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 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, 0x01, 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,
-	0x02, 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, 0x03, 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, 0xa1, 0x02, 0x0a, 0x0f, 0x50, 0x61, 0x63, 0x6b, 0x61,
-	0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x08, 0x70, 0x61,
-	0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 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, 0x02, 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, 0x03, 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,
+	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, 0x03, 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, 0xb8, 0x02, 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, 0x36,
+	0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e,
+	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, 0x45, 0x6e, 0x75, 0x6d, 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, 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, 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, 0x82, 0x03, 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,
+	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, 0x63, 0x0a, 0x12, 0x41,
+	0x67, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67,
+	0x73, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76,
+	0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x5f, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66,
+	0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x6f,
+	0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x5f, 0x52, 0x65, 0x71, 0x75,
+	0x65, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x69, 0x64, 0x10, 0x01,
+	0x2a, 0x60, 0x0a, 0x12, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x41, 0x67, 0x65, 0x6e,
+	0x74, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
+	0x54, 0x6f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x5f, 0x55, 0x6e, 0x73,
+	0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x65,
+	0x72, 0x76, 0x65, 0x72, 0x54, 0x6f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x73,
+	0x5f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65,
+	0x10, 0x01, 0x2a, 0xbe, 0x02, 0x0a, 0x12, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x70,
+	0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x65, 0x72,
+	0x76, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x5f,
+	0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x24, 0x0a,
+	0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74,
+	0x69, 0x65, 0x73, 0x5f, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75,
+	0x73, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x70,
+	0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x5f, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x73,
+	0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x10, 0x02, 0x12, 0x2d,
+	0x0a, 0x29, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69,
+	0x74, 0x69, 0x65, 0x73, 0x5f, 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, 0x25, 0x0a,
+	0x21, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74,
+	0x69, 0x65, 0x73, 0x5f, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67,
+	0x65, 0x73, 0x10, 0x08, 0x12, 0x2c, 0x0a, 0x28, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61,
+	0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x5f, 0x41, 0x63, 0x63, 0x65, 0x70,
+	0x74, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
+	0x10, 0x10, 0x12, 0x2f, 0x0a, 0x2b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61,
+	0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x5f, 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, 0x3e, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x54, 0x79,
+	0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70,
+	0x65, 0x5f, 0x54, 0x6f, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11,
+	0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x41, 0x64, 0x64, 0x6f,
+	0x6e, 0x10, 0x01, 0x2a, 0x8f, 0x01, 0x0a, 0x17, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x45, 0x72,
+	0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12,
+	0x23, 0x0a, 0x1f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65,
+	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x55, 0x6e, 0x6b, 0x6e, 0x6f,
+	0x77, 0x6e, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x45, 0x72,
+	0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f,
+	0x42, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23,
+	0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f,
+	0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x55, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61,
+	0x62, 0x6c, 0x65, 0x10, 0x02, 0x2a, 0x26, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
+	0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54,
+	0x79, 0x70, 0x65, 0x5f, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x00, 0x2a, 0xef, 0x04,
+	0x0a, 0x11, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74,
+	0x69, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x70, 0x61,
+	0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x5f, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69,
+	0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43,
+	0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x5f, 0x52, 0x65, 0x70, 0x6f,
+	0x72, 0x74, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x41,
+	0x67, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73,
+	0x5f, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x73, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f,
+	0x6e, 0x66, 0x69, 0x67, 0x10, 0x02, 0x12, 0x2c, 0x0a, 0x28, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43,
+	0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x5f, 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, 0x25, 0x0a, 0x21, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x70,
+	0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x5f, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74,
+	0x73, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x10, 0x08, 0x12, 0x2c, 0x0a, 0x28, 0x41,
+	0x67, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73,
+	0x5f, 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, 0x26, 0x0a, 0x22, 0x41, 0x67, 0x65,
+	0x6e, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x5f, 0x52,
+	0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x4f, 0x77, 0x6e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x73, 0x10,
+	0x20, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69,
+	0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x5f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x4f, 0x77,
+	0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x40, 0x12, 0x25, 0x0a, 0x20, 0x41, 0x67,
+	0x65, 0x6e, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x5f,
+	0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x4f, 0x77, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x10, 0x80,
+	0x01, 0x12, 0x35, 0x0a, 0x30, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69,
+	0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x5f, 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, 0x35, 0x0a, 0x30, 0x41, 0x67, 0x65, 0x6e,
+	0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x5f, 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, 0x12, 0x12, 0x0a, 0x0d, 0x52,
-	0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x10, 0x80, 0x10, 0x12,
-	0x18, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65,
-	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x10, 0x80, 0x20, 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,
+	0x2c, 0x0a, 0x27, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69,
+	0x74, 0x69, 0x65, 0x73, 0x5f, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x73, 0x52, 0x65, 0x73, 0x74,
+	0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x10, 0x80, 0x08, 0x12, 0x24, 0x0a,
+	0x1f, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69,
+	0x65, 0x73, 0x5f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68,
+	0x10, 0x80, 0x10, 0x12, 0x2a, 0x0a, 0x25, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x70, 0x61,
+	0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x5f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73,
+	0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x10, 0x80, 0x20, 0x2a,
+	0x9c, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f,
+	0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73,
+	0x5f, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f,
+	0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73,
+	0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x45, 0x44, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x52, 0x65,
+	0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
+	0x65, 0x73, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x59, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x1f, 0x0a,
+	0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x74, 0x61,
+	0x74, 0x75, 0x73, 0x65, 0x73, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x2a, 0xa1,
+	0x01, 0x0a, 0x11, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
+	0x45, 0x6e, 0x75, 0x6d, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53,
+	0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x6e, 0x75, 0x6d, 0x5f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c,
+	0x6c, 0x65, 0x64, 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
+	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x6e, 0x75, 0x6d, 0x5f, 0x49, 0x6e, 0x73, 0x74, 0x61,
+	0x6c, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x50,
+	0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x6e, 0x75, 0x6d,
+	0x5f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x23, 0x0a,
+	0x1f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x6e,
+	0x75, 0x6d, 0x5f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64,
+	0x10, 0x03, 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 (
@@ -3007,101 +3040,97 @@ func file_opamp_proto_rawDescGZIP() []byte {
 var file_opamp_proto_enumTypes = make([]protoimpl.EnumInfo, 9)
 var file_opamp_proto_msgTypes = make([]protoimpl.MessageInfo, 31)
 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
-	(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
-	(*AgentHealth)(nil),                   // 26: opamp.proto.AgentHealth
-	(*EffectiveConfig)(nil),               // 27: opamp.proto.EffectiveConfig
-	(*RemoteConfigStatus)(nil),            // 28: opamp.proto.RemoteConfigStatus
-	(*PackageStatuses)(nil),               // 29: opamp.proto.PackageStatuses
-	(*PackageStatus)(nil),                 // 30: opamp.proto.PackageStatus
-	(*AgentIdentification)(nil),           // 31: opamp.proto.AgentIdentification
-	(*AgentRemoteConfig)(nil),             // 32: opamp.proto.AgentRemoteConfig
-	(*AgentConfigMap)(nil),                // 33: opamp.proto.AgentConfigMap
-	(*AgentConfigFile)(nil),               // 34: opamp.proto.AgentConfigFile
-	nil,                                   // 35: opamp.proto.OtherConnectionSettings.OtherSettingsEntry
-	nil,                                   // 36: opamp.proto.ConnectionSettingsOffers.OtherConnectionsEntry
-	nil,                                   // 37: opamp.proto.PackagesAvailable.PackagesEntry
-	nil,                                   // 38: opamp.proto.PackageStatuses.PackagesEntry
-	nil,                                   // 39: opamp.proto.AgentConfigMap.ConfigMapEntry
-	(*KeyValue)(nil),                      // 40: opamp.proto.KeyValue
+	(AgentToServerFlags)(0),             // 0: opamp.proto.AgentToServerFlags
+	(ServerToAgentFlags)(0),             // 1: opamp.proto.ServerToAgentFlags
+	(ServerCapabilities)(0),             // 2: opamp.proto.ServerCapabilities
+	(PackageType)(0),                    // 3: opamp.proto.PackageType
+	(ServerErrorResponseType)(0),        // 4: opamp.proto.ServerErrorResponseType
+	(CommandType)(0),                    // 5: opamp.proto.CommandType
+	(AgentCapabilities)(0),              // 6: opamp.proto.AgentCapabilities
+	(RemoteConfigStatuses)(0),           // 7: opamp.proto.RemoteConfigStatuses
+	(PackageStatusEnum)(0),              // 8: opamp.proto.PackageStatusEnum
+	(*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
+	(*AgentHealth)(nil),                 // 26: opamp.proto.AgentHealth
+	(*EffectiveConfig)(nil),             // 27: opamp.proto.EffectiveConfig
+	(*RemoteConfigStatus)(nil),          // 28: opamp.proto.RemoteConfigStatus
+	(*PackageStatuses)(nil),             // 29: opamp.proto.PackageStatuses
+	(*PackageStatus)(nil),               // 30: opamp.proto.PackageStatus
+	(*AgentIdentification)(nil),         // 31: opamp.proto.AgentIdentification
+	(*AgentRemoteConfig)(nil),           // 32: opamp.proto.AgentRemoteConfig
+	(*AgentConfigMap)(nil),              // 33: opamp.proto.AgentConfigMap
+	(*AgentConfigFile)(nil),             // 34: opamp.proto.AgentConfigFile
+	nil,                                 // 35: opamp.proto.OtherConnectionSettings.OtherSettingsEntry
+	nil,                                 // 36: opamp.proto.ConnectionSettingsOffers.OtherConnectionsEntry
+	nil,                                 // 37: opamp.proto.PackagesAvailable.PackagesEntry
+	nil,                                 // 38: opamp.proto.PackageStatuses.PackagesEntry
+	nil,                                 // 39: opamp.proto.AgentConfigMap.ConfigMapEntry
+	(*KeyValue)(nil),                    // 40: opamp.proto.KeyValue
 }
 var file_opamp_proto_depIdxs = []int32{
 	25, // 0: opamp.proto.AgentToServer.agent_description:type_name -> opamp.proto.AgentDescription
-	1,  // 1: opamp.proto.AgentToServer.capabilities:type_name -> opamp.proto.AgentCapabilities
-	26, // 2: opamp.proto.AgentToServer.health:type_name -> opamp.proto.AgentHealth
-	27, // 3: opamp.proto.AgentToServer.effective_config:type_name -> opamp.proto.EffectiveConfig
-	28, // 4: opamp.proto.AgentToServer.remote_config_status:type_name -> opamp.proto.RemoteConfigStatus
-	29, // 5: opamp.proto.AgentToServer.package_statuses:type_name -> opamp.proto.PackageStatuses
-	10, // 6: opamp.proto.AgentToServer.agent_disconnect:type_name -> opamp.proto.AgentDisconnect
-	2,  // 7: opamp.proto.AgentToServer.flags:type_name -> opamp.proto.AgentToServer.AgentToServerFlags
-	22, // 8: opamp.proto.ServerToAgent.error_response:type_name -> opamp.proto.ServerErrorResponse
-	32, // 9: opamp.proto.ServerToAgent.remote_config:type_name -> opamp.proto.AgentRemoteConfig
-	18, // 10: opamp.proto.ServerToAgent.connection_settings:type_name -> opamp.proto.ConnectionSettingsOffers
-	19, // 11: opamp.proto.ServerToAgent.packages_available:type_name -> opamp.proto.PackagesAvailable
-	3,  // 12: opamp.proto.ServerToAgent.flags:type_name -> opamp.proto.ServerToAgent.Flags
-	0,  // 13: opamp.proto.ServerToAgent.capabilities:type_name -> opamp.proto.ServerCapabilities
-	31, // 14: opamp.proto.ServerToAgent.agent_identification:type_name -> opamp.proto.AgentIdentification
-	24, // 15: opamp.proto.ServerToAgent.command:type_name -> opamp.proto.ServerToAgentCommand
-	15, // 16: opamp.proto.OpAMPConnectionSettings.headers:type_name -> opamp.proto.Headers
-	17, // 17: opamp.proto.OpAMPConnectionSettings.certificate:type_name -> opamp.proto.TLSCertificate
-	15, // 18: opamp.proto.TelemetryConnectionSettings.headers:type_name -> opamp.proto.Headers
-	17, // 19: opamp.proto.TelemetryConnectionSettings.certificate:type_name -> opamp.proto.TLSCertificate
-	15, // 20: opamp.proto.OtherConnectionSettings.headers:type_name -> opamp.proto.Headers
-	17, // 21: opamp.proto.OtherConnectionSettings.certificate:type_name -> opamp.proto.TLSCertificate
-	35, // 22: opamp.proto.OtherConnectionSettings.other_settings:type_name -> opamp.proto.OtherConnectionSettings.OtherSettingsEntry
-	16, // 23: opamp.proto.Headers.headers:type_name -> opamp.proto.Header
-	12, // 24: opamp.proto.ConnectionSettingsOffers.opamp:type_name -> opamp.proto.OpAMPConnectionSettings
-	13, // 25: opamp.proto.ConnectionSettingsOffers.own_metrics:type_name -> opamp.proto.TelemetryConnectionSettings
-	13, // 26: opamp.proto.ConnectionSettingsOffers.own_traces:type_name -> opamp.proto.TelemetryConnectionSettings
-	13, // 27: opamp.proto.ConnectionSettingsOffers.own_logs:type_name -> opamp.proto.TelemetryConnectionSettings
-	36, // 28: opamp.proto.ConnectionSettingsOffers.other_connections:type_name -> opamp.proto.ConnectionSettingsOffers.OtherConnectionsEntry
-	37, // 29: opamp.proto.PackagesAvailable.packages:type_name -> opamp.proto.PackagesAvailable.PackagesEntry
-	4,  // 30: opamp.proto.PackageAvailable.type:type_name -> opamp.proto.PackageAvailable.PackageType
-	21, // 31: opamp.proto.PackageAvailable.file:type_name -> opamp.proto.DownloadableFile
-	5,  // 32: opamp.proto.ServerErrorResponse.type:type_name -> opamp.proto.ServerErrorResponse.Type
-	23, // 33: opamp.proto.ServerErrorResponse.retry_info:type_name -> opamp.proto.RetryInfo
-	6,  // 34: opamp.proto.ServerToAgentCommand.type:type_name -> opamp.proto.ServerToAgentCommand.CommandType
-	40, // 35: opamp.proto.AgentDescription.identifying_attributes:type_name -> opamp.proto.KeyValue
-	40, // 36: opamp.proto.AgentDescription.non_identifying_attributes:type_name -> opamp.proto.KeyValue
-	33, // 37: opamp.proto.EffectiveConfig.config_map:type_name -> opamp.proto.AgentConfigMap
-	7,  // 38: opamp.proto.RemoteConfigStatus.status:type_name -> opamp.proto.RemoteConfigStatus.Status
-	38, // 39: opamp.proto.PackageStatuses.packages:type_name -> opamp.proto.PackageStatuses.PackagesEntry
-	8,  // 40: opamp.proto.PackageStatus.status:type_name -> opamp.proto.PackageStatus.Status
-	33, // 41: opamp.proto.AgentRemoteConfig.config:type_name -> opamp.proto.AgentConfigMap
-	39, // 42: opamp.proto.AgentConfigMap.config_map:type_name -> opamp.proto.AgentConfigMap.ConfigMapEntry
-	14, // 43: opamp.proto.ConnectionSettingsOffers.OtherConnectionsEntry.value:type_name -> opamp.proto.OtherConnectionSettings
-	20, // 44: opamp.proto.PackagesAvailable.PackagesEntry.value:type_name -> opamp.proto.PackageAvailable
-	30, // 45: opamp.proto.PackageStatuses.PackagesEntry.value:type_name -> opamp.proto.PackageStatus
-	34, // 46: opamp.proto.AgentConfigMap.ConfigMapEntry.value:type_name -> opamp.proto.AgentConfigFile
-	47, // [47:47] is the sub-list for method output_type
-	47, // [47:47] is the sub-list for method input_type
-	47, // [47:47] is the sub-list for extension type_name
-	47, // [47:47] is the sub-list for extension extendee
-	0,  // [0:47] is the sub-list for field type_name
+	26, // 1: opamp.proto.AgentToServer.health:type_name -> opamp.proto.AgentHealth
+	27, // 2: opamp.proto.AgentToServer.effective_config:type_name -> opamp.proto.EffectiveConfig
+	28, // 3: opamp.proto.AgentToServer.remote_config_status:type_name -> opamp.proto.RemoteConfigStatus
+	29, // 4: opamp.proto.AgentToServer.package_statuses:type_name -> opamp.proto.PackageStatuses
+	10, // 5: opamp.proto.AgentToServer.agent_disconnect:type_name -> opamp.proto.AgentDisconnect
+	22, // 6: opamp.proto.ServerToAgent.error_response:type_name -> opamp.proto.ServerErrorResponse
+	32, // 7: opamp.proto.ServerToAgent.remote_config:type_name -> opamp.proto.AgentRemoteConfig
+	18, // 8: opamp.proto.ServerToAgent.connection_settings:type_name -> opamp.proto.ConnectionSettingsOffers
+	19, // 9: opamp.proto.ServerToAgent.packages_available:type_name -> opamp.proto.PackagesAvailable
+	31, // 10: opamp.proto.ServerToAgent.agent_identification:type_name -> opamp.proto.AgentIdentification
+	24, // 11: opamp.proto.ServerToAgent.command:type_name -> opamp.proto.ServerToAgentCommand
+	15, // 12: opamp.proto.OpAMPConnectionSettings.headers:type_name -> opamp.proto.Headers
+	17, // 13: opamp.proto.OpAMPConnectionSettings.certificate:type_name -> opamp.proto.TLSCertificate
+	15, // 14: opamp.proto.TelemetryConnectionSettings.headers:type_name -> opamp.proto.Headers
+	17, // 15: opamp.proto.TelemetryConnectionSettings.certificate:type_name -> opamp.proto.TLSCertificate
+	15, // 16: opamp.proto.OtherConnectionSettings.headers:type_name -> opamp.proto.Headers
+	17, // 17: opamp.proto.OtherConnectionSettings.certificate:type_name -> opamp.proto.TLSCertificate
+	35, // 18: opamp.proto.OtherConnectionSettings.other_settings:type_name -> opamp.proto.OtherConnectionSettings.OtherSettingsEntry
+	16, // 19: opamp.proto.Headers.headers:type_name -> opamp.proto.Header
+	12, // 20: opamp.proto.ConnectionSettingsOffers.opamp:type_name -> opamp.proto.OpAMPConnectionSettings
+	13, // 21: opamp.proto.ConnectionSettingsOffers.own_metrics:type_name -> opamp.proto.TelemetryConnectionSettings
+	13, // 22: opamp.proto.ConnectionSettingsOffers.own_traces:type_name -> opamp.proto.TelemetryConnectionSettings
+	13, // 23: opamp.proto.ConnectionSettingsOffers.own_logs:type_name -> opamp.proto.TelemetryConnectionSettings
+	36, // 24: opamp.proto.ConnectionSettingsOffers.other_connections:type_name -> opamp.proto.ConnectionSettingsOffers.OtherConnectionsEntry
+	37, // 25: opamp.proto.PackagesAvailable.packages:type_name -> opamp.proto.PackagesAvailable.PackagesEntry
+	3,  // 26: opamp.proto.PackageAvailable.type:type_name -> opamp.proto.PackageType
+	21, // 27: opamp.proto.PackageAvailable.file:type_name -> opamp.proto.DownloadableFile
+	4,  // 28: opamp.proto.ServerErrorResponse.type:type_name -> opamp.proto.ServerErrorResponseType
+	23, // 29: opamp.proto.ServerErrorResponse.retry_info:type_name -> opamp.proto.RetryInfo
+	5,  // 30: opamp.proto.ServerToAgentCommand.type:type_name -> opamp.proto.CommandType
+	40, // 31: opamp.proto.AgentDescription.identifying_attributes:type_name -> opamp.proto.KeyValue
+	40, // 32: opamp.proto.AgentDescription.non_identifying_attributes:type_name -> opamp.proto.KeyValue
+	33, // 33: opamp.proto.EffectiveConfig.config_map:type_name -> opamp.proto.AgentConfigMap
+	7,  // 34: opamp.proto.RemoteConfigStatus.status:type_name -> opamp.proto.RemoteConfigStatuses
+	38, // 35: opamp.proto.PackageStatuses.packages:type_name -> opamp.proto.PackageStatuses.PackagesEntry
+	8,  // 36: opamp.proto.PackageStatus.status:type_name -> opamp.proto.PackageStatusEnum
+	33, // 37: opamp.proto.AgentRemoteConfig.config:type_name -> opamp.proto.AgentConfigMap
+	39, // 38: opamp.proto.AgentConfigMap.config_map:type_name -> opamp.proto.AgentConfigMap.ConfigMapEntry
+	14, // 39: opamp.proto.ConnectionSettingsOffers.OtherConnectionsEntry.value:type_name -> opamp.proto.OtherConnectionSettings
+	20, // 40: opamp.proto.PackagesAvailable.PackagesEntry.value:type_name -> opamp.proto.PackageAvailable
+	30, // 41: opamp.proto.PackageStatuses.PackagesEntry.value:type_name -> opamp.proto.PackageStatus
+	34, // 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
 }
 
 func init() { file_opamp_proto_init() }
diff --git a/server/httpconnection.go b/server/httpconnection.go
index d8e4085..e70ea82 100644
--- a/server/httpconnection.go
+++ b/server/httpconnection.go
@@ -9,7 +9,11 @@ import (
 	"github.com/open-telemetry/opamp-go/server/types"
 )
 
-var errInvalidHTTPConnection = errors.New("cannot Send() over HTTP connection")
+// ErrInvalidHTTPConnection represents an event of misuse function for plain HTTP
+// connection, such as httpConnection.Send() or httpConnection.Disconnect().
+// Usage will not result with change but return this error to indicate current state
+// might not be as expected.
+var ErrInvalidHTTPConnection = errors.New("cannot operate over HTTP connection")
 
 // httpConnection represents an OpAMP connection over a plain HTTP connection.
 // Only one response is possible to send when using plain HTTP connection
@@ -28,5 +32,10 @@ var _ types.Connection = (*httpConnection)(nil)
 func (c httpConnection) Send(_ context.Context, _ *protobufs.ServerToAgent) error {
 	// Send() should not be called for plain HTTP connection. Instead, the response will
 	// be sent after the onMessage callback returns.
-	return errInvalidHTTPConnection
+	return ErrInvalidHTTPConnection
+}
+
+func (c httpConnection) Disconnect() error {
+	// Disconnect() should not be called for plain HTTP connection.
+	return ErrInvalidHTTPConnection
 }
diff --git a/server/types/connection.go b/server/types/connection.go
index 22e5ac8..1f8371f 100644
--- a/server/types/connection.go
+++ b/server/types/connection.go
@@ -19,4 +19,8 @@ type Connection interface {
 	// Blocks until the message is sent.
 	// Should return as soon as possible if the ctx is cancelled.
 	Send(ctx context.Context, message *protobufs.ServerToAgent) error
+
+	// Disconnect closes the network connection.
+	// Any blocked Read or Write operations will be unblocked and return errors.
+	Disconnect() error
 }
diff --git a/server/wsconnection.go b/server/wsconnection.go
index 6d90f75..1d58358 100644
--- a/server/wsconnection.go
+++ b/server/wsconnection.go
@@ -29,3 +29,7 @@ func (c wsConnection) Send(_ context.Context, message *protobufs.ServerToAgent)
 	}
 	return c.wsConn.WriteMessage(websocket.BinaryMessage, bytes)
 }
+
+func (c wsConnection) Disconnect() error {
+	return c.wsConn.Close()
+}


Test patch:
diff --git a/client/clientimpl_test.go b/client/clientimpl_test.go
index 5cdc1d9..cedfef1 100644
--- a/client/clientimpl_test.go
+++ b/client/clientimpl_test.go
@@ -343,7 +343,7 @@ func TestFirstStatusReport(t *testing.T) {
 					atomic.AddInt64(&remoteConfigReceived, 1)
 				},
 			},
-			Capabilities: protobufs.AgentCapabilities_AcceptsRemoteConfig,
+			Capabilities: protobufs.AgentCapabilities_AgentCapabilities_AcceptsRemoteConfig,
 		}
 		settings.OpAMPServerURL = "ws://" + srv.Endpoint
 		startClient(t, settings, client)
@@ -442,7 +442,7 @@ func TestSetEffectiveConfig(t *testing.T) {
 					return sendConfig, nil
 				},
 			},
-			Capabilities: protobufs.AgentCapabilities_ReportsEffectiveConfig,
+			Capabilities: protobufs.AgentCapabilities_AgentCapabilities_ReportsEffectiveConfig,
 		}
 		settings.OpAMPServerURL = "ws://" + srv.Endpoint
 		prepareClient(t, &settings, client)
@@ -668,11 +668,11 @@ func TestConnectionSettings(t *testing.T) {
 					return nil
 				},
 			},
-			Capabilities: protobufs.AgentCapabilities_ReportsOwnTraces |
-				protobufs.AgentCapabilities_ReportsOwnMetrics |
-				protobufs.AgentCapabilities_ReportsOwnLogs |
-				protobufs.AgentCapabilities_AcceptsOtherConnectionSettings |
-				protobufs.AgentCapabilities_AcceptsOpAMPConnectionSettings,
+			Capabilities: protobufs.AgentCapabilities_AgentCapabilities_ReportsOwnTraces |
+				protobufs.AgentCapabilities_AgentCapabilities_ReportsOwnMetrics |
+				protobufs.AgentCapabilities_AgentCapabilities_ReportsOwnLogs |
+				protobufs.AgentCapabilities_AgentCapabilities_AcceptsOtherConnectionSettings |
+				protobufs.AgentCapabilities_AgentCapabilities_AcceptsOpAMPConnectionSettings,
 		}
 		settings.OpAMPServerURL = "ws://" + srv.Endpoint
 		prepareClient(t, &settings, client)
@@ -703,7 +703,7 @@ func TestReportAgentDescription(t *testing.T) {
 		// Start a client.
 		settings := types.StartSettings{
 			OpAMPServerURL: "ws://" + srv.Endpoint,
-			Capabilities:   protobufs.AgentCapabilities_ReportsEffectiveConfig,
+			Capabilities:   protobufs.AgentCapabilities_AgentCapabilities_ReportsEffectiveConfig,
 		}
 		prepareClient(t, &settings, client)
 
@@ -732,7 +732,7 @@ func TestReportAgentDescription(t *testing.T) {
 			// Ask client for full AgentDescription.
 			return &protobufs.ServerToAgent{
 				InstanceUid: msg.InstanceUid,
-				Flags:       protobufs.ServerToAgent_ReportFullState,
+				Flags:       uint64(protobufs.ServerToAgentFlags_ServerToAgentFlags_ReportFullState),
 			}
 		})
 
@@ -766,7 +766,8 @@ func TestReportAgentHealth(t *testing.T) {
 		// Start a client.
 		settings := types.StartSettings{
 			OpAMPServerURL: "ws://" + srv.Endpoint,
-			Capabilities:   protobufs.AgentCapabilities_ReportsEffectiveConfig | protobufs.AgentCapabilities_ReportsHealth,
+			Capabilities: protobufs.AgentCapabilities_AgentCapabilities_ReportsEffectiveConfig |
+				protobufs.AgentCapabilities_AgentCapabilities_ReportsHealth,
 		}
 		prepareClient(t, &settings, client)
 
@@ -804,7 +805,7 @@ func TestReportAgentHealth(t *testing.T) {
 			// Ask client for full AgentDescription.
 			return &protobufs.ServerToAgent{
 				InstanceUid: msg.InstanceUid,
-				Flags:       protobufs.ServerToAgent_ReportFullState,
+				Flags:       uint64(protobufs.ServerToAgentFlags_ServerToAgentFlags_ReportFullState),
 			}
 		})
 
@@ -873,7 +874,7 @@ func TestReportEffectiveConfig(t *testing.T) {
 			// Ask client for full AgentDescription.
 			return &protobufs.ServerToAgent{
 				InstanceUid: msg.InstanceUid,
-				Flags:       protobufs.ServerToAgent_ReportFullState,
+				Flags:       uint64(protobufs.ServerToAgentFlags_ServerToAgentFlags_ReportFullState),
 			}
 		})
 
@@ -913,20 +914,21 @@ func verifyRemoteConfigUpdate(t *testing.T, successCase bool, expectStatus *prot
 							client.SetRemoteConfigStatus(
 								&protobufs.RemoteConfigStatus{
 									LastRemoteConfigHash: msg.RemoteConfig.ConfigHash,
-									Status:               protobufs.RemoteConfigStatus_APPLIED,
+									Status:               protobufs.RemoteConfigStatuses_RemoteConfigStatuses_APPLIED,
 								})
 						} else {
 							client.SetRemoteConfigStatus(
 								&protobufs.RemoteConfigStatus{
 									LastRemoteConfigHash: msg.RemoteConfig.ConfigHash,
-									Status:               protobufs.RemoteConfigStatus_FAILED,
+									Status:               protobufs.RemoteConfigStatuses_RemoteConfigStatuses_FAILED,
 									ErrorMessage:         "cannot update remote config",
 								})
 						}
 					}
 				},
 			},
-			Capabilities: protobufs.AgentCapabilities_AcceptsRemoteConfig | protobufs.AgentCapabilities_ReportsRemoteConfig,
+			Capabilities: protobufs.AgentCapabilities_AgentCapabilities_AcceptsRemoteConfig |
+				protobufs.AgentCapabilities_AgentCapabilities_ReportsRemoteConfig,
 		}
 		prepareClient(t, &settings, client)
 
@@ -977,7 +979,7 @@ func verifyRemoteConfigUpdate(t *testing.T, successCase bool, expectStatus *prot
 			return &protobufs.ServerToAgent{
 				InstanceUid: msg.InstanceUid,
 				// Ask client to report full status.
-				Flags: protobufs.ServerToAgent_ReportFullState,
+				Flags: uint64(protobufs.ServerToAgentFlags_ServerToAgentFlags_ReportFullState),
 			}
 		})
 
@@ -1011,7 +1013,7 @@ func TestRemoteConfigUpdate(t *testing.T) {
 			name:    "success",
 			success: true,
 			expectedStatus: &protobufs.RemoteConfigStatus{
-				Status:       protobufs.RemoteConfigStatus_APPLIED,
+				Status:       protobufs.RemoteConfigStatuses_RemoteConfigStatuses_APPLIED,
 				ErrorMessage: "",
 			},
 		},
@@ -1019,7 +1021,7 @@ func TestRemoteConfigUpdate(t *testing.T) {
 			name:    "fail",
 			success: false,
 			expectedStatus: &protobufs.RemoteConfigStatus{
-				Status:       protobufs.RemoteConfigStatus_FAILED,
+				Status:       protobufs.RemoteConfigStatuses_RemoteConfigStatuses_FAILED,
 				ErrorMessage: "cannot update remote config",
 			},
 		},
@@ -1077,7 +1079,8 @@ func verifyUpdatePackages(t *testing.T, testCase packageTestCase) {
 				OnMessageFunc: onMessageFunc,
 			},
 			PackagesStateProvider: localPackageState,
-			Capabilities:          protobufs.AgentCapabilities_AcceptsPackages | protobufs.AgentCapabilities_ReportsPackageStatuses,
+			Capabilities: protobufs.AgentCapabilities_AgentCapabilities_AcceptsPackages |
+				protobufs.AgentCapabilities_AgentCapabilities_ReportsPackageStatuses,
 		}
 		prepareClient(t, &settings, client)
 
@@ -1120,10 +1123,10 @@ func verifyUpdatePackages(t *testing.T, testCase packageTestCase) {
 						continue
 					}
 					switch pkgStatus.Status {
-					case protobufs.PackageStatus_InstallFailed:
+					case protobufs.PackageStatusEnum_PackageStatusEnum_InstallFailed:
 						assert.Contains(t, pkgStatus.ErrorMessage, pkgExpected.ErrorMessage)
 
-					case protobufs.PackageStatus_Installed:
+					case protobufs.PackageStatusEnum_PackageStatusEnum_Installed:
 						assert.EqualValues(t, pkgExpected.AgentHasHash, pkgStatus.AgentHasHash)
 						assert.EqualValues(t, pkgExpected.AgentHasVersion, pkgStatus.AgentHasVersion)
 						assert.Empty(t, pkgStatus.ErrorMessage)
@@ -1166,7 +1169,7 @@ func verifyUpdatePackages(t *testing.T, testCase packageTestCase) {
 
 				if compressedReceived {
 					// Ask for full report again.
-					response.Flags = protobufs.ServerToAgent_ReportFullState
+					response.Flags = uint64(protobufs.ServerToAgentFlags_ServerToAgentFlags_ReportFullState)
 				} else {
 					// Keep triggering status report by setting AgentDescription
 					// until the compressed PackageStatuses arrives.
@@ -1218,7 +1221,7 @@ func createPackageTestCase(name string, downloadSrv *httptest.Server) packageTes
 		available: &protobufs.PackagesAvailable{
 			Packages: map[string]*protobufs.PackageAvailable{
 				"package1": {
-					Type:    protobufs.PackageAvailable_TopLevelPackage,
+					Type:    protobufs.PackageType_PackageType_TopLevel,
 					Version: "1.0.0",
 					File: &protobufs.DownloadableFile{
 						DownloadUrl: downloadSrv.URL + packageFileURL,
@@ -1238,7 +1241,7 @@ func createPackageTestCase(name string, downloadSrv *httptest.Server) packageTes
 					AgentHasHash:         []byte{1, 2, 3},
 					ServerOfferedVersion: "1.0.0",
 					ServerOfferedHash:    []byte{1, 2, 3},
-					Status:               protobufs.PackageStatus_Installed,
+					Status:               protobufs.PackageStatusEnum_PackageStatusEnum_Installed,
 					ErrorMessage:         "",
 				},
 			},
@@ -1263,7 +1266,7 @@ func TestUpdatePackages(t *testing.T) {
 	// A case when downloading the file fails because the URL is incorrect.
 	notFound := createPackageTestCase("downloadable file not found", downloadSrv)
 	notFound.available.Packages["package1"].File.DownloadUrl = downloadSrv.URL + "/notfound"
-	notFound.expectedStatus.Packages["package1"].Status = protobufs.PackageStatus_InstallFailed
+	notFound.expectedStatus.Packages["package1"].Status = protobufs.PackageStatusEnum_PackageStatusEnum_InstallFailed
 	notFound.expectedStatus.Packages["package1"].ErrorMessage = "cannot download"
 	tests = append(tests, notFound)
 
@@ -1359,8 +1362,9 @@ func TestMissingPackagesStateProvider(t *testing.T) {
 	testClients(t, func(t *testing.T, client OpAMPClient) {
 		// Start a client.
 		settings := types.StartSettings{
-			Callbacks:    types.CallbacksStruct{},
-			Capabilities: protobufs.AgentCapabilities_AcceptsPackages | protobufs.AgentCapabilities_ReportsPackageStatuses,
+			Callbacks: types.CallbacksStruct{},
+			Capabilities: protobufs.AgentCapabilities_AgentCapabilities_AcceptsPackages |
+				protobufs.AgentCapabilities_AgentCapabilities_ReportsPackageStatuses,
 		}
 		prepareClient(t, &settings, client)
 
@@ -1371,7 +1375,7 @@ func TestMissingPackagesStateProvider(t *testing.T) {
 		settings = types.StartSettings{
 			Callbacks:             types.CallbacksStruct{},
 			PackagesStateProvider: localPackageState,
-			Capabilities:          protobufs.AgentCapabilities_AcceptsPackages,
+			Capabilities:          protobufs.AgentCapabilities_AgentCapabilities_AcceptsPackages,
 		}
 		prepareClient(t, &settings, client)
 
@@ -1381,7 +1385,7 @@ func TestMissingPackagesStateProvider(t *testing.T) {
 		settings = types.StartSettings{
 			Callbacks:             types.CallbacksStruct{},
 			PackagesStateProvider: localPackageState,
-			Capabilities:          protobufs.AgentCapabilities_ReportsPackageStatuses,
+			Capabilities:          protobufs.AgentCapabilities_AgentCapabilities_ReportsPackageStatuses,
 		}
 		prepareClient(t, &settings, client)
 
diff --git a/client/internal/wsreceiver_test.go b/client/internal/wsreceiver_test.go
index 4319aad..f1595a0 100644
--- a/client/internal/wsreceiver_test.go
+++ b/client/internal/wsreceiver_test.go
@@ -41,7 +41,7 @@ func TestServerToAgentCommand(t *testing.T) {
 		},
 		{
 			command: &protobufs.ServerToAgentCommand{
-				Type: protobufs.ServerToAgentCommand_Restart,
+				Type: protobufs.CommandType_CommandType_Restart,
 			},
 			action:  restart,
 			message: "A Restart command should result in a restart",
@@ -62,7 +62,7 @@ func TestServerToAgentCommand(t *testing.T) {
 			callbacks := types.CallbacksStruct{
 				OnCommandFunc: func(command *protobufs.ServerToAgentCommand) error {
 					switch command.Type {
-					case protobufs.ServerToAgentCommand_Restart:
+					case protobufs.CommandType_CommandType_Restart:
 						action = restart
 					default:
 						action = unknown
@@ -100,7 +100,7 @@ func TestServerToAgentCommandExclusive(t *testing.T) {
 	receiver := NewWSReceiver(TestLogger{t}, callbacks, nil, nil, &clientSyncedState, nil, 0)
 	receiver.processor.ProcessReceivedMessage(context.Background(), &protobufs.ServerToAgent{
 		Command: &protobufs.ServerToAgentCommand{
-			Type: protobufs.ServerToAgentCommand_Restart,
+			Type: protobufs.CommandType_CommandType_Restart,
 		},
 		RemoteConfig: &protobufs.AgentRemoteConfig{},
 	})
diff --git a/client/wsclient_test.go b/client/wsclient_test.go
index 2f08df7..2de35b4 100644
--- a/client/wsclient_test.go
+++ b/client/wsclient_test.go
@@ -103,8 +103,8 @@ func TestVerifyWSCompress(t *testing.T) {
 						}, nil
 					},
 				},
-				Capabilities: protobufs.AgentCapabilities_AcceptsRemoteConfig |
-					protobufs.AgentCapabilities_ReportsEffectiveConfig,
+				Capabilities: protobufs.AgentCapabilities_AgentCapabilities_AcceptsRemoteConfig |
+					protobufs.AgentCapabilities_AgentCapabilities_ReportsEffectiveConfig,
 			}
 			settings.OpAMPServerURL = "ws://" + proxy.IncomingEndpoint()
 
diff --git a/server/serverimpl_test.go b/server/serverimpl_test.go
index 00af23e..11c7f89 100644
--- a/server/serverimpl_test.go
+++ b/server/serverimpl_test.go
@@ -126,6 +126,47 @@ func TestServerStartAcceptConnection(t *testing.T) {
 	eventually(t, func() bool { return atomic.LoadInt32(&connectionCloseCalled) == 1 })
 }
 
+func TestDisconnectHttpConnection(t *testing.T) {
+	// Verify Disconnect() results with Invalid HTTP Connection error
+	err := httpConnection{}.Disconnect()
+	assert.Error(t, err)
+	assert.Equal(t, ErrInvalidHTTPConnection, err)
+}
+
+func TestDisconnectWSConnection(t *testing.T) {
+	connectionCloseCalled := int32(0)
+	callback := CallbacksStruct{
+		OnConnectionCloseFunc: func(conn types.Connection) {
+			atomic.StoreInt32(&connectionCloseCalled, 1)
+		},
+	}
+
+	// Start a Server.
+	settings := &StartSettings{Settings: Settings{Callbacks: callback}}
+	srv := startServer(t, settings)
+	defer srv.Stop(context.Background())
+
+	// Connect to the Server.
+	conn, _, err := dialClient(settings)
+
+	// Verify that the connection is successful.
+	assert.NoError(t, err)
+	assert.True(t, atomic.LoadInt32(&connectionCloseCalled) == 0)
+
+	// Close connection from server side
+	srvConn := wsConnection{wsConn: conn}
+	err = srvConn.Disconnect()
+	assert.NoError(t, err)
+
+	// Verify connection disconnected from server side
+	eventually(t, func() bool { return atomic.LoadInt32(&connectionCloseCalled) == 1 })
+	// Waiting for wsConnection to fail ReadMessage() over a Disconnected communication
+	eventually(t, func() bool {
+		_, _, err := conn.ReadMessage()
+		return err != nil
+	})
+}
+
 func TestServerReceiveSendMessage(t *testing.T) {
 	var rcvMsg atomic.Value
 	callbacks := CallbacksStruct{
@@ -139,7 +180,7 @@ func TestServerReceiveSendMessage(t *testing.T) {
 			// Send a response.
 			response := protobufs.ServerToAgent{
 				InstanceUid:  message.InstanceUid,
-				Capabilities: protobufs.ServerCapabilities_AcceptsStatus,
+				Capabilities: uint64(protobufs.ServerCapabilities_ServerCapabilities_AcceptsStatus),
 			}
 			return &response
 		},
@@ -180,7 +221,7 @@ func TestServerReceiveSendMessage(t *testing.T) {
 
 	// Verify the response.
 	assert.EqualValues(t, sendMsg.InstanceUid, response.InstanceUid)
-	assert.EqualValues(t, protobufs.ServerCapabilities_AcceptsStatus, response.Capabilities)
+	assert.EqualValues(t, protobufs.ServerCapabilities_ServerCapabilities_AcceptsStatus, response.Capabilities)
 }
 
 func TestServerReceiveSendMessagePlainHTTP(t *testing.T) {
@@ -200,7 +241,7 @@ func TestServerReceiveSendMessagePlainHTTP(t *testing.T) {
 			// Send a response.
 			response := protobufs.ServerToAgent{
 				InstanceUid:  message.InstanceUid,
-				Capabilities: protobufs.ServerCapabilities_AcceptsStatus,
+				Capabilities: uint64(protobufs.ServerCapabilities_ServerCapabilities_AcceptsStatus),
 			}
 			return &response
 		},
@@ -244,7 +285,7 @@ func TestServerReceiveSendMessagePlainHTTP(t *testing.T) {
 
 	// Verify the response.
 	assert.EqualValues(t, sendMsg.InstanceUid, response.InstanceUid)
-	assert.EqualValues(t, protobufs.ServerCapabilities_AcceptsStatus, response.Capabilities)
+	assert.EqualValues(t, protobufs.ServerCapabilities_ServerCapabilities_AcceptsStatus, response.Capabilities)
 
 	eventually(t, func() bool { return atomic.LoadInt32(&onCloseCalled) == 1 })
 }
@@ -315,7 +356,7 @@ func TestServerHonoursClientRequestContentEncoding(t *testing.T) {
 			// Send a response.
 			response := protobufs.ServerToAgent{
 				InstanceUid:  message.InstanceUid,
-				Capabilities: protobufs.ServerCapabilities_AcceptsStatus,
+				Capabilities: uint64(protobufs.ServerCapabilities_ServerCapabilities_AcceptsStatus),
 			}
 			return &response
 		},
@@ -367,7 +408,7 @@ func TestServerHonoursClientRequestContentEncoding(t *testing.T) {
 
 	// Verify the response.
 	assert.EqualValues(t, sendMsg.InstanceUid, response.InstanceUid)
-	assert.EqualValues(t, protobufs.ServerCapabilities_AcceptsStatus, response.Capabilities)
+	assert.EqualValues(t, protobufs.ServerCapabilities_ServerCapabilities_AcceptsStatus, response.Capabilities)
 
 	eventually(t, func() bool { return atomic.LoadInt32(&onCloseCalled) == 1 })
 }
@@ -391,7 +432,7 @@ func TestServerHonoursAcceptEncoding(t *testing.T) {
 			// Send a response.
 			response := protobufs.ServerToAgent{
 				InstanceUid:  message.InstanceUid,
-				Capabilities: protobufs.ServerCapabilities_AcceptsStatus,
+				Capabilities: uint64(protobufs.ServerCapabilities_ServerCapabilities_AcceptsStatus),
 			}
 			return &response
 		},
@@ -441,7 +482,7 @@ func TestServerHonoursAcceptEncoding(t *testing.T) {
 
 	// Verify the response.
 	assert.EqualValues(t, sendMsg.InstanceUid, response.InstanceUid)
-	assert.EqualValues(t, protobufs.ServerCapabilities_AcceptsStatus, response.Capabilities)
+	assert.EqualValues(t, protobufs.ServerCapabilities_ServerCapabilities_AcceptsStatus, response.Capabilities)
 
 	eventually(t, func() bool { return atomic.LoadInt32(&onCloseCalled) == 1 })
 }