From 6b2abf818c68ac7158e17540b0b14d458b39f454 Mon Sep 17 00:00:00 2001 From: Engineering Date: Tue, 17 Dec 2024 09:02:54 +0000 Subject: [PATCH] Updated to SDP v0.18.4-402-g75c6a20 --- account.pb.go | 418 ++- apikeys.pb.go | 137 +- auth0support.pb.go | 18 +- bookmarks.pb.go | 111 +- changes.pb.go | 5391 ++++++++++++++++++++------------- cli.pb.go | 29 +- config.pb.go | 89 +- gateway.pb.go | 496 +-- invites.pb.go | 55 +- items.pb.go | 202 +- responses.pb.go | 9 +- revlink.pb.go | 56 +- sdpconnect/changes.connect.go | 283 ++ snapshots.pb.go | 138 +- util.pb.go | 20 +- 15 files changed, 4482 insertions(+), 2970 deletions(-) diff --git a/account.pb.go b/account.pb.go index c998293..a939427 100644 --- a/account.pb.go +++ b/account.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.2 +// protoc-gen-go v1.36.0 // protoc (unknown) // source: account.proto @@ -248,9 +248,9 @@ func (AdapterCategory) EnumDescriptor() ([]byte, []int) { } type ListAccountsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListAccountsRequest) Reset() { @@ -284,11 +284,10 @@ func (*ListAccountsRequest) Descriptor() ([]byte, []int) { } type ListAccountsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Accounts []*Account `protobuf:"bytes,1,rep,name=accounts,proto3" json:"accounts,omitempty"` unknownFields protoimpl.UnknownFields - - Accounts []*Account `protobuf:"bytes,1,rep,name=accounts,proto3" json:"accounts,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListAccountsResponse) Reset() { @@ -329,11 +328,10 @@ func (x *ListAccountsResponse) GetAccounts() []*Account { } type CreateAccountRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Properties *AccountProperties `protobuf:"bytes,1,opt,name=properties,proto3" json:"properties,omitempty"` unknownFields protoimpl.UnknownFields - - Properties *AccountProperties `protobuf:"bytes,1,opt,name=properties,proto3" json:"properties,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CreateAccountRequest) Reset() { @@ -374,11 +372,10 @@ func (x *CreateAccountRequest) GetProperties() *AccountProperties { } type CreateAccountResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Account *Account `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` unknownFields protoimpl.UnknownFields - - Account *Account `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CreateAccountResponse) Reset() { @@ -419,11 +416,10 @@ func (x *CreateAccountResponse) GetAccount() *Account { } type UpdateAccountRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Properties *AccountProperties `protobuf:"bytes,1,opt,name=properties,proto3" json:"properties,omitempty"` unknownFields protoimpl.UnknownFields - - Properties *AccountProperties `protobuf:"bytes,1,opt,name=properties,proto3" json:"properties,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UpdateAccountRequest) Reset() { @@ -464,11 +460,10 @@ func (x *UpdateAccountRequest) GetProperties() *AccountProperties { } type UpdateAccountResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Account *Account `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` unknownFields protoimpl.UnknownFields - - Account *Account `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UpdateAccountResponse) Reset() { @@ -509,13 +504,12 @@ func (x *UpdateAccountResponse) GetAccount() *Account { } type AdminUpdateAccountRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The name of the account to update - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Request *UpdateAccountRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Request *UpdateAccountRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AdminUpdateAccountRequest) Reset() { @@ -563,12 +557,11 @@ func (x *AdminUpdateAccountRequest) GetRequest() *UpdateAccountRequest { } type AdminGetAccountRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The name of the account to get - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AdminGetAccountRequest) Reset() { @@ -609,12 +602,11 @@ func (x *AdminGetAccountRequest) GetName() string { } type AdminDeleteAccountRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The name of the account to delete - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AdminDeleteAccountRequest) Reset() { @@ -655,9 +647,9 @@ func (x *AdminDeleteAccountRequest) GetName() string { } type AdminDeleteAccountResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AdminDeleteAccountResponse) Reset() { @@ -691,12 +683,11 @@ func (*AdminDeleteAccountResponse) Descriptor() ([]byte, []int) { } type AdminListSourcesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + Request *ListSourcesRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` unknownFields protoimpl.UnknownFields - - Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` - Request *ListSourcesRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` + sizeCache protoimpl.SizeCache } func (x *AdminListSourcesRequest) Reset() { @@ -744,12 +735,11 @@ func (x *AdminListSourcesRequest) GetRequest() *ListSourcesRequest { } type AdminCreateSourceRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + Request *CreateSourceRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` unknownFields protoimpl.UnknownFields - - Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` - Request *CreateSourceRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` + sizeCache protoimpl.SizeCache } func (x *AdminCreateSourceRequest) Reset() { @@ -797,12 +787,11 @@ func (x *AdminCreateSourceRequest) GetRequest() *CreateSourceRequest { } type AdminGetSourceRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + Request *GetSourceRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` unknownFields protoimpl.UnknownFields - - Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` - Request *GetSourceRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` + sizeCache protoimpl.SizeCache } func (x *AdminGetSourceRequest) Reset() { @@ -850,12 +839,11 @@ func (x *AdminGetSourceRequest) GetRequest() *GetSourceRequest { } type AdminUpdateSourceRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + Request *UpdateSourceRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` unknownFields protoimpl.UnknownFields - - Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` - Request *UpdateSourceRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` + sizeCache protoimpl.SizeCache } func (x *AdminUpdateSourceRequest) Reset() { @@ -903,12 +891,11 @@ func (x *AdminUpdateSourceRequest) GetRequest() *UpdateSourceRequest { } type AdminDeleteSourceRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + Request *DeleteSourceRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` unknownFields protoimpl.UnknownFields - - Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` - Request *DeleteSourceRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` + sizeCache protoimpl.SizeCache } func (x *AdminDeleteSourceRequest) Reset() { @@ -956,12 +943,11 @@ func (x *AdminDeleteSourceRequest) GetRequest() *DeleteSourceRequest { } type AdminKeepaliveSourcesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + Request *KeepaliveSourcesRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` unknownFields protoimpl.UnknownFields - - Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` - Request *KeepaliveSourcesRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` + sizeCache protoimpl.SizeCache } func (x *AdminKeepaliveSourcesRequest) Reset() { @@ -1009,12 +995,11 @@ func (x *AdminKeepaliveSourcesRequest) GetRequest() *KeepaliveSourcesRequest { } type AdminCreateTokenRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + Request *CreateTokenRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` unknownFields protoimpl.UnknownFields - - Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` - Request *CreateTokenRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` + sizeCache protoimpl.SizeCache } func (x *AdminCreateTokenRequest) Reset() { @@ -1062,12 +1047,11 @@ func (x *AdminCreateTokenRequest) GetRequest() *CreateTokenRequest { } type Source struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Metadata *SourceMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Properties *SourceProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` unknownFields protoimpl.UnknownFields - - Metadata *SourceMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` - Properties *SourceProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Source) Reset() { @@ -1115,11 +1099,8 @@ func (x *Source) GetProperties() *SourceProperties { } type SourceMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` // TODO: Change to ID along with everything else + state protoimpl.MessageState `protogen:"open.v1"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` // TODO: Change to ID along with everything else // The name of the NATS JWT that has been generated for this source TokenName string `protobuf:"bytes,2,opt,name=TokenName,proto3" json:"TokenName,omitempty"` // When the NATS JWT expires (unix time) @@ -1129,7 +1110,9 @@ type SourceMetadata struct { // Status of the source Status SourceStatus `protobuf:"varint,9,opt,name=Status,proto3,enum=account.SourceStatus" json:"Status,omitempty"` // The error message if the source is unhealthy - Error string `protobuf:"bytes,10,opt,name=Error,proto3" json:"Error,omitempty"` + Error string `protobuf:"bytes,10,opt,name=Error,proto3" json:"Error,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SourceMetadata) Reset() { @@ -1206,10 +1189,7 @@ func (x *SourceMetadata) GetError() string { // A source that is capable of discovering items type SourceProperties struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The descriptive name of the source DescriptiveName string `protobuf:"bytes,1,opt,name=DescriptiveName,proto3" json:"DescriptiveName,omitempty"` // What source to configure. Currently either "stdlib" or "aws" @@ -1223,6 +1203,8 @@ type SourceProperties struct { // content. These files will be made available to the source at runtime. // Check the source's documentation for what to configure here if required AdditionalConfig *structpb.Struct `protobuf:"bytes,4,opt,name=AdditionalConfig,proto3" json:"AdditionalConfig,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SourceProperties) Reset() { @@ -1284,12 +1266,11 @@ func (x *SourceProperties) GetAdditionalConfig() *structpb.Struct { } type Account struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Metadata *AccountMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Properties *AccountProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` unknownFields protoimpl.UnknownFields - - Metadata *AccountMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` - Properties *AccountProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Account) Reset() { @@ -1337,12 +1318,11 @@ func (x *Account) GetProperties() *AccountProperties { } type AccountMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The public Nkey which signs all NATS "user" tokens - PublicNkey string `protobuf:"bytes,2,opt,name=PublicNkey,proto3" json:"PublicNkey,omitempty"` + PublicNkey string `protobuf:"bytes,2,opt,name=PublicNkey,proto3" json:"PublicNkey,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AccountMetadata) Reset() { @@ -1383,14 +1363,13 @@ func (x *AccountMetadata) GetPublicNkey() string { } type AccountProperties struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The name of the account Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` // The Customer ID within Stripe StripeCustomerID string `protobuf:"bytes,2,opt,name=StripeCustomerID,proto3" json:"StripeCustomerID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AccountProperties) Reset() { @@ -1438,9 +1417,9 @@ func (x *AccountProperties) GetStripeCustomerID() string { } type GetAccountRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetAccountRequest) Reset() { @@ -1474,11 +1453,10 @@ func (*GetAccountRequest) Descriptor() ([]byte, []int) { } type GetAccountResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Account *Account `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` unknownFields protoimpl.UnknownFields - - Account *Account `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetAccountResponse) Reset() { @@ -1519,13 +1497,12 @@ func (x *GetAccountResponse) GetAccount() *Account { } type DeleteAccountRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Set to true to confirm that the user is sure they want to delete their // account. This is to prevent accidental deletions - IAmSure bool `protobuf:"varint,1,opt,name=iAmSure,proto3" json:"iAmSure,omitempty"` + IAmSure bool `protobuf:"varint,1,opt,name=iAmSure,proto3" json:"iAmSure,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DeleteAccountRequest) Reset() { @@ -1566,9 +1543,9 @@ func (x *DeleteAccountRequest) GetIAmSure() bool { } type DeleteAccountResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DeleteAccountResponse) Reset() { @@ -1602,9 +1579,9 @@ func (*DeleteAccountResponse) Descriptor() ([]byte, []int) { } type ListSourcesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListSourcesRequest) Reset() { @@ -1638,11 +1615,10 @@ func (*ListSourcesRequest) Descriptor() ([]byte, []int) { } type ListSourcesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Sources []*Source `protobuf:"bytes,1,rep,name=Sources,proto3" json:"Sources,omitempty"` unknownFields protoimpl.UnknownFields - - Sources []*Source `protobuf:"bytes,1,rep,name=Sources,proto3" json:"Sources,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListSourcesResponse) Reset() { @@ -1683,11 +1659,10 @@ func (x *ListSourcesResponse) GetSources() []*Source { } type CreateSourceRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Properties *SourceProperties `protobuf:"bytes,1,opt,name=properties,proto3" json:"properties,omitempty"` unknownFields protoimpl.UnknownFields - - Properties *SourceProperties `protobuf:"bytes,1,opt,name=properties,proto3" json:"properties,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CreateSourceRequest) Reset() { @@ -1728,11 +1703,10 @@ func (x *CreateSourceRequest) GetProperties() *SourceProperties { } type CreateSourceResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Source *Source `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` unknownFields protoimpl.UnknownFields - - Source *Source `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CreateSourceResponse) Reset() { @@ -1773,11 +1747,10 @@ func (x *CreateSourceResponse) GetSource() *Source { } type GetSourceRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` unknownFields protoimpl.UnknownFields - - UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetSourceRequest) Reset() { @@ -1818,11 +1791,10 @@ func (x *GetSourceRequest) GetUUID() []byte { } type GetSourceResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Source *Source `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` unknownFields protoimpl.UnknownFields - - Source *Source `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetSourceResponse) Reset() { @@ -1863,14 +1835,13 @@ func (x *GetSourceResponse) GetSource() *Source { } type UpdateSourceRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // ID of the source to update UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` // Properties to update - Properties *SourceProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` + Properties *SourceProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UpdateSourceRequest) Reset() { @@ -1918,11 +1889,10 @@ func (x *UpdateSourceRequest) GetProperties() *SourceProperties { } type UpdateSourceResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Source *Source `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` unknownFields protoimpl.UnknownFields - - Source *Source `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UpdateSourceResponse) Reset() { @@ -1963,12 +1933,11 @@ func (x *UpdateSourceResponse) GetSource() *Source { } type DeleteSourceRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // ID if the source to delete - UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DeleteSourceRequest) Reset() { @@ -2009,9 +1978,9 @@ func (x *DeleteSourceRequest) GetUUID() []byte { } type DeleteSourceResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DeleteSourceResponse) Reset() { @@ -2045,16 +2014,15 @@ func (*DeleteSourceResponse) Descriptor() ([]byte, []int) { } type SourceKeepaliveResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The UUID of the source that was kept alive UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` // The status of the source Status SourceStatus `protobuf:"varint,2,opt,name=Status,proto3,enum=account.SourceStatus" json:"Status,omitempty"` // The error message if the source is unhealthy - Error string `protobuf:"bytes,3,opt,name=Error,proto3" json:"Error,omitempty"` + Error string `protobuf:"bytes,3,opt,name=Error,proto3" json:"Error,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SourceKeepaliveResult) Reset() { @@ -2109,9 +2077,9 @@ func (x *SourceKeepaliveResult) GetError() string { } type ListAllSourcesStatusRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListAllSourcesStatusRequest) Reset() { @@ -2145,10 +2113,7 @@ func (*ListAllSourcesStatusRequest) Descriptor() ([]byte, []int) { } type SourceHealth struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The UUID of the source UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` // The version of the source @@ -2175,6 +2140,8 @@ type SourceHealth struct { AvailableScopes []string `protobuf:"bytes,12,rep,name=availableScopes,proto3" json:"availableScopes,omitempty"` // AdapterMetadata is a map of metadata that the source can send to the API AdapterMetadata []*AdapterMetadata `protobuf:"bytes,13,rep,name=adapterMetadata,proto3" json:"adapterMetadata,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SourceHealth) Reset() { @@ -2299,11 +2266,10 @@ func (x *SourceHealth) GetAdapterMetadata() []*AdapterMetadata { } type ListAllSourcesStatusResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Sources []*SourceHealth `protobuf:"bytes,1,rep,name=sources,proto3" json:"sources,omitempty"` unknownFields protoimpl.UnknownFields - - Sources []*SourceHealth `protobuf:"bytes,1,rep,name=sources,proto3" json:"sources,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListAllSourcesStatusResponse) Reset() { @@ -2345,10 +2311,7 @@ func (x *ListAllSourcesStatusResponse) GetSources() []*SourceHealth { // The source sends a heartbeat to the API to let it know that it is still alive, note it does not give a status. type SubmitSourceHeartbeatRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The UUID of the source that is sending the heartbeat UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` // The version of the source @@ -2367,6 +2330,8 @@ type SubmitSourceHeartbeatRequest struct { AvailableScopes []string `protobuf:"bytes,9,rep,name=availableScopes,proto3" json:"availableScopes,omitempty"` // AdapterMetadata is a map of metadata that the source can send to the API AdapterMetadata []*AdapterMetadata `protobuf:"bytes,10,rep,name=adapterMetadata,proto3" json:"adapterMetadata,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SubmitSourceHeartbeatRequest) Reset() { @@ -2463,10 +2428,7 @@ func (x *SubmitSourceHeartbeatRequest) GetAdapterMetadata() []*AdapterMetadata { } type AdapterMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The type of item that this adapter returns e.g. eks-cluster Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` // The category that these items fall under @@ -2481,6 +2443,8 @@ type AdapterMetadata struct { SupportedQueryMethods *AdapterSupportedQueryMethods `protobuf:"bytes,5,opt,name=supportedQueryMethods,proto3" json:"supportedQueryMethods,omitempty"` // The terraform mappings for this adapter, this is optional TerraformMappings []*TerraformMapping `protobuf:"bytes,6,rep,name=terraformMappings,proto3" json:"terraformMappings,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AdapterMetadata) Reset() { @@ -2558,10 +2522,7 @@ func (x *AdapterMetadata) GetTerraformMappings() []*TerraformMapping { // The methods that this adapter supports, and the description of how to use // them type AdapterSupportedQueryMethods struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Whether or not the GET method is supported Get bool `protobuf:"varint,1,opt,name=get,proto3" json:"get,omitempty"` // Description of the query that should be passed to the GET method @@ -2574,6 +2535,8 @@ type AdapterSupportedQueryMethods struct { Search bool `protobuf:"varint,5,opt,name=search,proto3" json:"search,omitempty"` // Description of the query that should be passed to the SEARCH method SearchDescription string `protobuf:"bytes,6,opt,name=searchDescription,proto3" json:"searchDescription,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AdapterSupportedQueryMethods) Reset() { @@ -2658,10 +2621,7 @@ func (x *AdapterSupportedQueryMethods) GetSearchDescription() string { // attributes of these items to determine the most likely candidate for a mch // and select that. type TerraformMapping struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The method that the query should use TerraformMethod QueryMethod `protobuf:"varint,1,opt,name=terraformMethod,proto3,enum=QueryMethod" json:"terraformMethod,omitempty"` // How to map data from the terraform resource to the "query" field in the @@ -2672,6 +2632,8 @@ type TerraformMapping struct { // such as `aws_instance.id` or `aws_iam_role.arn`. You can also index into // arrays e.g. `kubernetes_replication_controller.metadata[0].name` TerraformQueryMap string `protobuf:"bytes,2,opt,name=terraformQueryMap,proto3" json:"terraformQueryMap,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *TerraformMapping) Reset() { @@ -2719,9 +2681,9 @@ func (x *TerraformMapping) GetTerraformQueryMap() string { } type SubmitSourceHeartbeatResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SubmitSourceHeartbeatResponse) Reset() { @@ -2755,12 +2717,11 @@ func (*SubmitSourceHeartbeatResponse) Descriptor() ([]byte, []int) { } type KeepaliveSourcesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Set to true to have the API call wait until the source is up and healthy WaitForHealthy bool `protobuf:"varint,1,opt,name=waitForHealthy,proto3" json:"waitForHealthy,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *KeepaliveSourcesRequest) Reset() { @@ -2801,14 +2762,13 @@ func (x *KeepaliveSourcesRequest) GetWaitForHealthy() bool { } type KeepaliveSourcesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // If the user requested to wait for the sources to be healthy, this will // contain information about the sources that came up. If the user did not // request to wait, this will be empty - Sources []*SourceKeepaliveResult `protobuf:"bytes,1,rep,name=sources,proto3" json:"sources,omitempty"` + Sources []*SourceKeepaliveResult `protobuf:"bytes,1,rep,name=sources,proto3" json:"sources,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *KeepaliveSourcesResponse) Reset() { @@ -2849,14 +2809,13 @@ func (x *KeepaliveSourcesResponse) GetSources() []*SourceKeepaliveResult { } type CreateTokenRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The Public NKey of the user that is requesting a token UserPublicNkey string `protobuf:"bytes,1,opt,name=userPublicNkey,proto3" json:"userPublicNkey,omitempty"` // Friendly user name - UserName string `protobuf:"bytes,2,opt,name=userName,proto3" json:"userName,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=userName,proto3" json:"userName,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CreateTokenRequest) Reset() { @@ -2904,12 +2863,11 @@ func (x *CreateTokenRequest) GetUserName() string { } type CreateTokenResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The JWT as a raw string - Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CreateTokenResponse) Reset() { @@ -2950,9 +2908,9 @@ func (x *CreateTokenResponse) GetToken() string { } type RevlinkWarmupRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RevlinkWarmupRequest) Reset() { @@ -2986,13 +2944,12 @@ func (*RevlinkWarmupRequest) Descriptor() ([]byte, []int) { } type RevlinkWarmupResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Items int32 `protobuf:"varint,2,opt,name=items,proto3" json:"items,omitempty"` + Edges int32 `protobuf:"varint,3,opt,name=edges,proto3" json:"edges,omitempty"` unknownFields protoimpl.UnknownFields - - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Items int32 `protobuf:"varint,2,opt,name=items,proto3" json:"items,omitempty"` - Edges int32 `protobuf:"varint,3,opt,name=edges,proto3" json:"edges,omitempty"` + sizeCache protoimpl.SizeCache } func (x *RevlinkWarmupResponse) Reset() { @@ -3047,9 +3004,9 @@ func (x *RevlinkWarmupResponse) GetEdges() int32 { } type GetTrialEndRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetTrialEndRequest) Reset() { @@ -3083,11 +3040,10 @@ func (*GetTrialEndRequest) Descriptor() ([]byte, []int) { } type GetTrialEndResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + EndsAt *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=endsAt,proto3" json:"endsAt,omitempty"` unknownFields protoimpl.UnknownFields - - EndsAt *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=endsAt,proto3" json:"endsAt,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetTrialEndResponse) Reset() { @@ -3128,10 +3084,7 @@ func (x *GetTrialEndResponse) GetEndsAt() *timestamppb.Timestamp { } type AvailableItemType struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The type of item that this adapter returns e.g. eks-cluster Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` // The category that these items fall under @@ -3139,6 +3092,8 @@ type AvailableItemType struct { // A descriptive name of the types of items that are returned by this // adapter e.g. "EKS Cluster" DescriptiveName string `protobuf:"bytes,3,opt,name=descriptiveName,proto3" json:"descriptiveName,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AvailableItemType) Reset() { @@ -3193,9 +3148,9 @@ func (x *AvailableItemType) GetDescriptiveName() string { } type ListAvailableItemTypesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListAvailableItemTypesRequest) Reset() { @@ -3229,11 +3184,10 @@ func (*ListAvailableItemTypesRequest) Descriptor() ([]byte, []int) { } type ListAvailableItemTypesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Types []*AvailableItemType `protobuf:"bytes,1,rep,name=types,proto3" json:"types,omitempty"` unknownFields protoimpl.UnknownFields - - Types []*AvailableItemType `protobuf:"bytes,1,rep,name=types,proto3" json:"types,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListAvailableItemTypesResponse) Reset() { diff --git a/apikeys.pb.go b/apikeys.pb.go index b03eaee..ccb8eb7 100644 --- a/apikeys.pb.go +++ b/apikeys.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.2 +// protoc-gen-go v1.36.0 // protoc (unknown) // source: apikeys.proto @@ -82,12 +82,11 @@ func (KeyStatus) EnumDescriptor() ([]byte, []int) { } type APIKey struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Metadata *APIKeyMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Properties *APIKeyProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` unknownFields protoimpl.UnknownFields - - Metadata *APIKeyMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` - Properties *APIKeyProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` + sizeCache protoimpl.SizeCache } func (x *APIKey) Reset() { @@ -135,10 +134,7 @@ func (x *APIKey) GetProperties() *APIKeyProperties { } type APIKeyMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The ID of this API key Uuid []byte `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` // When the API Key was created @@ -153,7 +149,9 @@ type APIKeyMetadata struct { Status KeyStatus `protobuf:"varint,6,opt,name=status,proto3,enum=apikeys.KeyStatus" json:"status,omitempty"` // The error encountered when authorizing the key. This will only be set if // the status is ERROR - Error string `protobuf:"bytes,7,opt,name=error,proto3" json:"error,omitempty"` + Error string `protobuf:"bytes,7,opt,name=error,proto3" json:"error,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *APIKeyMetadata) Reset() { @@ -236,12 +234,11 @@ func (x *APIKeyMetadata) GetError() string { } type APIKeyProperties struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The name of the API key - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *APIKeyProperties) Reset() { @@ -282,10 +279,7 @@ func (x *APIKeyProperties) GetName() string { } type CreateAPIKeyRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The name of the key to create Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // The scopes that the key should have @@ -294,6 +288,8 @@ type CreateAPIKeyRequest struct { // over. This should be a page in the frontend, probably the one they // started from, but could also be a detail page for this particular API key FinalFrontendRedirect string `protobuf:"bytes,3,opt,name=finalFrontendRedirect,proto3" json:"finalFrontendRedirect,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CreateAPIKeyRequest) Reset() { @@ -348,10 +344,7 @@ func (x *CreateAPIKeyRequest) GetFinalFrontendRedirect() string { } type CreateAPIKeyResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Details of the newly created API Key Key *APIKey `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` // The URL that the user should visit in order to authorize the newly @@ -363,7 +356,9 @@ type CreateAPIKeyResponse struct { // The authorizeURL will contain a `state` paremeter which is a UUID that // can be used to look up the API key in the database once the callback is // received - AuthorizeURL string `protobuf:"bytes,2,opt,name=authorizeURL,proto3" json:"authorizeURL,omitempty"` + AuthorizeURL string `protobuf:"bytes,2,opt,name=authorizeURL,proto3" json:"authorizeURL,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CreateAPIKeyResponse) Reset() { @@ -411,16 +406,15 @@ func (x *CreateAPIKeyResponse) GetAuthorizeURL() string { } type RefreshAPIKeyRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The UUID of the API key to refresh Uuid []byte `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` // The URL that the user should be redirected to after the whole process is // over. This should be a page in the frontend, probably the one they // started from, but could also be a detail page for this particular API key FinalFrontendRedirect string `protobuf:"bytes,2,opt,name=finalFrontendRedirect,proto3" json:"finalFrontendRedirect,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RefreshAPIKeyRequest) Reset() { @@ -468,14 +462,13 @@ func (x *RefreshAPIKeyRequest) GetFinalFrontendRedirect() string { } type RefreshAPIKeyResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Refreshing the API key will return the same response as CreateAPIKey, as // it is basically the a new Key, just under the same UUID and reusing the // old info. - Response *CreateAPIKeyResponse `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"` + Response *CreateAPIKeyResponse `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RefreshAPIKeyResponse) Reset() { @@ -516,12 +509,11 @@ func (x *RefreshAPIKeyResponse) GetResponse() *CreateAPIKeyResponse { } type GetAPIKeyRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The UUID of the API Key to get - Uuid []byte `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Uuid []byte `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetAPIKeyRequest) Reset() { @@ -562,11 +554,10 @@ func (x *GetAPIKeyRequest) GetUuid() []byte { } type GetAPIKeyResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Key *APIKey `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` unknownFields protoimpl.UnknownFields - - Key *APIKey `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetAPIKeyResponse) Reset() { @@ -607,14 +598,13 @@ func (x *GetAPIKeyResponse) GetKey() *APIKey { } type UpdateAPIKeyRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The UUID of the API key to update Uuid []byte `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` // New properties to update - Properties *APIKeyProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` + Properties *APIKeyProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UpdateAPIKeyRequest) Reset() { @@ -662,12 +652,11 @@ func (x *UpdateAPIKeyRequest) GetProperties() *APIKeyProperties { } type UpdateAPIKeyResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The updated API key - Key *APIKey `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Key *APIKey `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UpdateAPIKeyResponse) Reset() { @@ -708,9 +697,9 @@ func (x *UpdateAPIKeyResponse) GetKey() *APIKey { } type ListAPIKeysRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListAPIKeysRequest) Reset() { @@ -744,11 +733,10 @@ func (*ListAPIKeysRequest) Descriptor() ([]byte, []int) { } type ListAPIKeysResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Keys []*APIKey `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` unknownFields protoimpl.UnknownFields - - Keys []*APIKey `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListAPIKeysResponse) Reset() { @@ -789,12 +777,11 @@ func (x *ListAPIKeysResponse) GetKeys() []*APIKey { } type DeleteAPIKeyRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The UUID of the API key to delete - Uuid []byte `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + Uuid []byte `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DeleteAPIKeyRequest) Reset() { @@ -835,9 +822,9 @@ func (x *DeleteAPIKeyRequest) GetUuid() []byte { } type DeleteAPIKeyResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DeleteAPIKeyResponse) Reset() { @@ -871,12 +858,11 @@ func (*DeleteAPIKeyResponse) Descriptor() ([]byte, []int) { } type ExchangeKeyForTokenRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The API Key that you want to exchange for an Oauth access token - ApiKey string `protobuf:"bytes,1,opt,name=apiKey,proto3" json:"apiKey,omitempty"` + ApiKey string `protobuf:"bytes,1,opt,name=apiKey,proto3" json:"apiKey,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ExchangeKeyForTokenRequest) Reset() { @@ -917,13 +903,12 @@ func (x *ExchangeKeyForTokenRequest) GetApiKey() string { } type ExchangeKeyForTokenResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The access token that can now be use to authenticate to Overmind and its // APIs - AccessToken string `protobuf:"bytes,1,opt,name=accessToken,proto3" json:"accessToken,omitempty"` + AccessToken string `protobuf:"bytes,1,opt,name=accessToken,proto3" json:"accessToken,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ExchangeKeyForTokenResponse) Reset() { diff --git a/auth0support.pb.go b/auth0support.pb.go index e920c8f..4461d68 100644 --- a/auth0support.pb.go +++ b/auth0support.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.2 +// protoc-gen-go v1.36.0 // protoc (unknown) // source: auth0support.proto @@ -23,10 +23,7 @@ const ( ) type Auth0CreateUserRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The Auth0 User ID UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` // The user's email address @@ -41,7 +38,9 @@ type Auth0CreateUserRequest struct { // The user's first name FirstName string `protobuf:"bytes,5,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` // The user's last name - LastName string `protobuf:"bytes,6,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` + LastName string `protobuf:"bytes,6,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Auth0CreateUserRequest) Reset() { @@ -117,11 +116,10 @@ func (x *Auth0CreateUserRequest) GetLastName() string { } type Auth0CreateUserResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + OrgId string `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` unknownFields protoimpl.UnknownFields - - OrgId string `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Auth0CreateUserResponse) Reset() { diff --git a/bookmarks.pb.go b/bookmarks.pb.go index 094b0a2..4745bfb 100644 --- a/bookmarks.pb.go +++ b/bookmarks.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.2 +// protoc-gen-go v1.36.0 // protoc (unknown) // source: bookmarks.proto @@ -23,12 +23,11 @@ const ( // a complete Bookmark with user-supplied and machine-supplied values type Bookmark struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Metadata *BookmarkMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Properties *BookmarkProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` unknownFields protoimpl.UnknownFields - - Metadata *BookmarkMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` - Properties *BookmarkProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Bookmark) Reset() { @@ -77,10 +76,7 @@ func (x *Bookmark) GetProperties() *BookmarkProperties { // The user-editable parts of a Bookmark type BookmarkProperties struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // user supplied name of this bookmark Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // user supplied description of this bookmark @@ -92,7 +88,9 @@ type BookmarkProperties struct { // Whether this bookmark is a system bookmark. System bookmarks are hidden // from list results and can therefore only be accessed by their UUID. // Bookmarks created by users are not system bookmarks. - IsSystem bool `protobuf:"varint,5,opt,name=isSystem,proto3" json:"isSystem,omitempty"` + IsSystem bool `protobuf:"varint,5,opt,name=isSystem,proto3" json:"isSystem,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *BookmarkProperties) Reset() { @@ -162,14 +160,13 @@ func (x *BookmarkProperties) GetIsSystem() bool { // Descriptor for a bookmark type BookmarkMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // unique id to identify this bookmark UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` // timestamp when this bookmark was created - Created *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=created,proto3" json:"created,omitempty"` + Created *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=created,proto3" json:"created,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *BookmarkMetadata) Reset() { @@ -218,9 +215,9 @@ func (x *BookmarkMetadata) GetCreated() *timestamppb.Timestamp { // list all bookmarks type ListBookmarksRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListBookmarksRequest) Reset() { @@ -254,11 +251,10 @@ func (*ListBookmarksRequest) Descriptor() ([]byte, []int) { } type ListBookmarkResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Bookmarks []*Bookmark `protobuf:"bytes,3,rep,name=bookmarks,proto3" json:"bookmarks,omitempty"` unknownFields protoimpl.UnknownFields - - Bookmarks []*Bookmark `protobuf:"bytes,3,rep,name=bookmarks,proto3" json:"bookmarks,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListBookmarkResponse) Reset() { @@ -300,11 +296,10 @@ func (x *ListBookmarkResponse) GetBookmarks() []*Bookmark { // creates a new bookmark type CreateBookmarkRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Properties *BookmarkProperties `protobuf:"bytes,1,opt,name=properties,proto3" json:"properties,omitempty"` unknownFields protoimpl.UnknownFields - - Properties *BookmarkProperties `protobuf:"bytes,1,opt,name=properties,proto3" json:"properties,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CreateBookmarkRequest) Reset() { @@ -345,11 +340,10 @@ func (x *CreateBookmarkRequest) GetProperties() *BookmarkProperties { } type CreateBookmarkResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Bookmark *Bookmark `protobuf:"bytes,1,opt,name=bookmark,proto3" json:"bookmark,omitempty"` unknownFields protoimpl.UnknownFields - - Bookmark *Bookmark `protobuf:"bytes,1,opt,name=bookmark,proto3" json:"bookmark,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CreateBookmarkResponse) Reset() { @@ -391,11 +385,10 @@ func (x *CreateBookmarkResponse) GetBookmark() *Bookmark { // gets a specific bookmark type GetBookmarkRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` unknownFields protoimpl.UnknownFields - - UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetBookmarkRequest) Reset() { @@ -436,11 +429,10 @@ func (x *GetBookmarkRequest) GetUUID() []byte { } type GetBookmarkResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Bookmark *Bookmark `protobuf:"bytes,1,opt,name=bookmark,proto3" json:"bookmark,omitempty"` unknownFields protoimpl.UnknownFields - - Bookmark *Bookmark `protobuf:"bytes,1,opt,name=bookmark,proto3" json:"bookmark,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetBookmarkResponse) Reset() { @@ -482,14 +474,13 @@ func (x *GetBookmarkResponse) GetBookmark() *Bookmark { // updates an existing bookmark type UpdateBookmarkRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // unique id to identify this bookmark UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` // new attributes for this bookmark - Properties *BookmarkProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` + Properties *BookmarkProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UpdateBookmarkRequest) Reset() { @@ -537,11 +528,10 @@ func (x *UpdateBookmarkRequest) GetProperties() *BookmarkProperties { } type UpdateBookmarkResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Bookmark *Bookmark `protobuf:"bytes,3,opt,name=bookmark,proto3" json:"bookmark,omitempty"` unknownFields protoimpl.UnknownFields - - Bookmark *Bookmark `protobuf:"bytes,3,opt,name=bookmark,proto3" json:"bookmark,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UpdateBookmarkResponse) Reset() { @@ -583,12 +573,11 @@ func (x *UpdateBookmarkResponse) GetBookmark() *Bookmark { // Delete the bookmark with the specified ID. type DeleteBookmarkRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // unique id of the bookmark to delete - UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DeleteBookmarkRequest) Reset() { @@ -629,9 +618,9 @@ func (x *DeleteBookmarkRequest) GetUUID() []byte { } type DeleteBookmarkResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DeleteBookmarkResponse) Reset() { @@ -665,14 +654,13 @@ func (*DeleteBookmarkResponse) Descriptor() ([]byte, []int) { } type GetAffectedBookmarksRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // the snapshot to consider SnapshotUUID []byte `protobuf:"bytes,1,opt,name=snapshotUUID,proto3" json:"snapshotUUID,omitempty"` // the bookmarks to filter BookmarkUUIDs [][]byte `protobuf:"bytes,2,rep,name=bookmarkUUIDs,proto3" json:"bookmarkUUIDs,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetAffectedBookmarksRequest) Reset() { @@ -720,12 +708,11 @@ func (x *GetAffectedBookmarksRequest) GetBookmarkUUIDs() [][]byte { } type GetAffectedBookmarksResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // the bookmarks that intersected with the snapshot BookmarkUUIDs [][]byte `protobuf:"bytes,1,rep,name=bookmarkUUIDs,proto3" json:"bookmarkUUIDs,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetAffectedBookmarksResponse) Reset() { diff --git a/changes.pb.go b/changes.pb.go index 68ee35c..4f1fe35 100644 --- a/changes.pb.go +++ b/changes.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.2 +// protoc-gen-go v1.36.0 // protoc (unknown) // source: changes.proto @@ -201,6 +201,57 @@ func (OnboardingStatus) EnumDescriptor() ([]byte, []int) { return file_changes_proto_rawDescGZIP(), []int{2} } +// origin of auto-tagging rules +// this is an enum of file or ui provided rules +type ChangeProperties_AutoTaggingRuleSource int32 + +const ( + ChangeProperties_AUTO_TAGGING_RULE_SOURCE_UNSPECIFIED ChangeProperties_AutoTaggingRuleSource = 0 + ChangeProperties_AUTO_TAGGING_RULE_SOURCE_FILE ChangeProperties_AutoTaggingRuleSource = 1 + ChangeProperties_AUTO_TAGGING_RULE_SOURCE_UI ChangeProperties_AutoTaggingRuleSource = 2 +) + +// Enum value maps for ChangeProperties_AutoTaggingRuleSource. +var ( + ChangeProperties_AutoTaggingRuleSource_name = map[int32]string{ + 0: "AUTO_TAGGING_RULE_SOURCE_UNSPECIFIED", + 1: "AUTO_TAGGING_RULE_SOURCE_FILE", + 2: "AUTO_TAGGING_RULE_SOURCE_UI", + } + ChangeProperties_AutoTaggingRuleSource_value = map[string]int32{ + "AUTO_TAGGING_RULE_SOURCE_UNSPECIFIED": 0, + "AUTO_TAGGING_RULE_SOURCE_FILE": 1, + "AUTO_TAGGING_RULE_SOURCE_UI": 2, + } +) + +func (x ChangeProperties_AutoTaggingRuleSource) Enum() *ChangeProperties_AutoTaggingRuleSource { + p := new(ChangeProperties_AutoTaggingRuleSource) + *p = x + return p +} + +func (x ChangeProperties_AutoTaggingRuleSource) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ChangeProperties_AutoTaggingRuleSource) Descriptor() protoreflect.EnumDescriptor { + return file_changes_proto_enumTypes[3].Descriptor() +} + +func (ChangeProperties_AutoTaggingRuleSource) Type() protoreflect.EnumType { + return &file_changes_proto_enumTypes[3] +} + +func (x ChangeProperties_AutoTaggingRuleSource) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ChangeProperties_AutoTaggingRuleSource.Descriptor instead. +func (ChangeProperties_AutoTaggingRuleSource) EnumDescriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{68, 0} +} + type CalculateBlastRadiusResponse_State int32 const ( @@ -245,11 +296,11 @@ func (x CalculateBlastRadiusResponse_State) String() string { } func (CalculateBlastRadiusResponse_State) Descriptor() protoreflect.EnumDescriptor { - return file_changes_proto_enumTypes[3].Descriptor() + return file_changes_proto_enumTypes[4].Descriptor() } func (CalculateBlastRadiusResponse_State) Type() protoreflect.EnumType { - return &file_changes_proto_enumTypes[3] + return &file_changes_proto_enumTypes[4] } func (x CalculateBlastRadiusResponse_State) Number() protoreflect.EnumNumber { @@ -258,7 +309,7 @@ func (x CalculateBlastRadiusResponse_State) Number() protoreflect.EnumNumber { // Deprecated: Use CalculateBlastRadiusResponse_State.Descriptor instead. func (CalculateBlastRadiusResponse_State) EnumDescriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{69, 0} + return file_changes_proto_rawDescGZIP(), []int{89, 0} } type StartChangeResponse_State int32 @@ -301,11 +352,11 @@ func (x StartChangeResponse_State) String() string { } func (StartChangeResponse_State) Descriptor() protoreflect.EnumDescriptor { - return file_changes_proto_enumTypes[4].Descriptor() + return file_changes_proto_enumTypes[5].Descriptor() } func (StartChangeResponse_State) Type() protoreflect.EnumType { - return &file_changes_proto_enumTypes[4] + return &file_changes_proto_enumTypes[5] } func (x StartChangeResponse_State) Number() protoreflect.EnumNumber { @@ -314,7 +365,7 @@ func (x StartChangeResponse_State) Number() protoreflect.EnumNumber { // Deprecated: Use StartChangeResponse_State.Descriptor instead. func (StartChangeResponse_State) EnumDescriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{71, 0} + return file_changes_proto_rawDescGZIP(), []int{91, 0} } type EndChangeResponse_State int32 @@ -357,11 +408,11 @@ func (x EndChangeResponse_State) String() string { } func (EndChangeResponse_State) Descriptor() protoreflect.EnumDescriptor { - return file_changes_proto_enumTypes[5].Descriptor() + return file_changes_proto_enumTypes[6].Descriptor() } func (EndChangeResponse_State) Type() protoreflect.EnumType { - return &file_changes_proto_enumTypes[5] + return &file_changes_proto_enumTypes[6] } func (x EndChangeResponse_State) Number() protoreflect.EnumNumber { @@ -370,7 +421,7 @@ func (x EndChangeResponse_State) Number() protoreflect.EnumNumber { // Deprecated: Use EndChangeResponse_State.Descriptor instead. func (EndChangeResponse_State) EnumDescriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{73, 0} + return file_changes_proto_rawDescGZIP(), []int{93, 0} } type Risk_Severity int32 @@ -409,11 +460,11 @@ func (x Risk_Severity) String() string { } func (Risk_Severity) Descriptor() protoreflect.EnumDescriptor { - return file_changes_proto_enumTypes[6].Descriptor() + return file_changes_proto_enumTypes[7].Descriptor() } func (Risk_Severity) Type() protoreflect.EnumType { - return &file_changes_proto_enumTypes[6] + return &file_changes_proto_enumTypes[7] } func (x Risk_Severity) Number() protoreflect.EnumNumber { @@ -422,29 +473,29 @@ func (x Risk_Severity) Number() protoreflect.EnumNumber { // Deprecated: Use Risk_Severity.Descriptor instead. func (Risk_Severity) EnumDescriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{83, 0} + return file_changes_proto_rawDescGZIP(), []int{103, 0} } -type RiskCalculationStatus_Status int32 +type ChangeAnalysisStatus_Status int32 const ( - RiskCalculationStatus_STATUS_UNSPECIFIED RiskCalculationStatus_Status = 0 - RiskCalculationStatus_STATUS_INPROGRESS RiskCalculationStatus_Status = 1 - RiskCalculationStatus_STATUS_SKIPPED RiskCalculationStatus_Status = 2 - RiskCalculationStatus_STATUS_DONE RiskCalculationStatus_Status = 3 - RiskCalculationStatus_STATUS_ERROR RiskCalculationStatus_Status = 4 + ChangeAnalysisStatus_STATUS_UNSPECIFIED ChangeAnalysisStatus_Status = 0 + ChangeAnalysisStatus_STATUS_INPROGRESS ChangeAnalysisStatus_Status = 1 + ChangeAnalysisStatus_STATUS_SKIPPED ChangeAnalysisStatus_Status = 2 + ChangeAnalysisStatus_STATUS_DONE ChangeAnalysisStatus_Status = 3 + ChangeAnalysisStatus_STATUS_ERROR ChangeAnalysisStatus_Status = 4 ) -// Enum value maps for RiskCalculationStatus_Status. +// Enum value maps for ChangeAnalysisStatus_Status. var ( - RiskCalculationStatus_Status_name = map[int32]string{ + ChangeAnalysisStatus_Status_name = map[int32]string{ 0: "STATUS_UNSPECIFIED", 1: "STATUS_INPROGRESS", 2: "STATUS_SKIPPED", 3: "STATUS_DONE", 4: "STATUS_ERROR", } - RiskCalculationStatus_Status_value = map[string]int32{ + ChangeAnalysisStatus_Status_value = map[string]int32{ "STATUS_UNSPECIFIED": 0, "STATUS_INPROGRESS": 1, "STATUS_SKIPPED": 2, @@ -453,60 +504,60 @@ var ( } ) -func (x RiskCalculationStatus_Status) Enum() *RiskCalculationStatus_Status { - p := new(RiskCalculationStatus_Status) +func (x ChangeAnalysisStatus_Status) Enum() *ChangeAnalysisStatus_Status { + p := new(ChangeAnalysisStatus_Status) *p = x return p } -func (x RiskCalculationStatus_Status) String() string { +func (x ChangeAnalysisStatus_Status) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (RiskCalculationStatus_Status) Descriptor() protoreflect.EnumDescriptor { - return file_changes_proto_enumTypes[7].Descriptor() +func (ChangeAnalysisStatus_Status) Descriptor() protoreflect.EnumDescriptor { + return file_changes_proto_enumTypes[8].Descriptor() } -func (RiskCalculationStatus_Status) Type() protoreflect.EnumType { - return &file_changes_proto_enumTypes[7] +func (ChangeAnalysisStatus_Status) Type() protoreflect.EnumType { + return &file_changes_proto_enumTypes[8] } -func (x RiskCalculationStatus_Status) Number() protoreflect.EnumNumber { +func (x ChangeAnalysisStatus_Status) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } -// Deprecated: Use RiskCalculationStatus_Status.Descriptor instead. -func (RiskCalculationStatus_Status) EnumDescriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{84, 0} +// Deprecated: Use ChangeAnalysisStatus_Status.Descriptor instead. +func (ChangeAnalysisStatus_Status) EnumDescriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{104, 0} } -type RiskCalculationStatus_ProgressMilestone_Status int32 +type ChangeAnalysisStatus_ProgressMilestone_Status int32 const ( // The milestone hasn't been reached yet - RiskCalculationStatus_ProgressMilestone_STATUS_PENDING RiskCalculationStatus_ProgressMilestone_Status = 0 + ChangeAnalysisStatus_ProgressMilestone_STATUS_PENDING ChangeAnalysisStatus_ProgressMilestone_Status = 0 // The milestone is currently being worked on - RiskCalculationStatus_ProgressMilestone_STATUS_INPROGRESS RiskCalculationStatus_ProgressMilestone_Status = 1 + ChangeAnalysisStatus_ProgressMilestone_STATUS_INPROGRESS ChangeAnalysisStatus_ProgressMilestone_Status = 1 // The milestone has been completed - RiskCalculationStatus_ProgressMilestone_STATUS_DONE RiskCalculationStatus_ProgressMilestone_Status = 2 + ChangeAnalysisStatus_ProgressMilestone_STATUS_DONE ChangeAnalysisStatus_ProgressMilestone_Status = 2 // The milestone failed - RiskCalculationStatus_ProgressMilestone_STATUS_ERROR RiskCalculationStatus_ProgressMilestone_Status = 3 + ChangeAnalysisStatus_ProgressMilestone_STATUS_ERROR ChangeAnalysisStatus_ProgressMilestone_Status = 3 // The milestone was skipped. This will happen to future milestones if // there is an error. For example an error at step 1 will mean the others // were skipped - RiskCalculationStatus_ProgressMilestone_STATUS_SKIPPED RiskCalculationStatus_ProgressMilestone_Status = 4 + ChangeAnalysisStatus_ProgressMilestone_STATUS_SKIPPED ChangeAnalysisStatus_ProgressMilestone_Status = 4 ) -// Enum value maps for RiskCalculationStatus_ProgressMilestone_Status. +// Enum value maps for ChangeAnalysisStatus_ProgressMilestone_Status. var ( - RiskCalculationStatus_ProgressMilestone_Status_name = map[int32]string{ + ChangeAnalysisStatus_ProgressMilestone_Status_name = map[int32]string{ 0: "STATUS_PENDING", 1: "STATUS_INPROGRESS", 2: "STATUS_DONE", 3: "STATUS_ERROR", 4: "STATUS_SKIPPED", } - RiskCalculationStatus_ProgressMilestone_Status_value = map[string]int32{ + ChangeAnalysisStatus_ProgressMilestone_Status_value = map[string]int32{ "STATUS_PENDING": 0, "STATUS_INPROGRESS": 1, "STATUS_DONE": 2, @@ -515,55 +566,61 @@ var ( } ) -func (x RiskCalculationStatus_ProgressMilestone_Status) Enum() *RiskCalculationStatus_ProgressMilestone_Status { - p := new(RiskCalculationStatus_ProgressMilestone_Status) +func (x ChangeAnalysisStatus_ProgressMilestone_Status) Enum() *ChangeAnalysisStatus_ProgressMilestone_Status { + p := new(ChangeAnalysisStatus_ProgressMilestone_Status) *p = x return p } -func (x RiskCalculationStatus_ProgressMilestone_Status) String() string { +func (x ChangeAnalysisStatus_ProgressMilestone_Status) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (RiskCalculationStatus_ProgressMilestone_Status) Descriptor() protoreflect.EnumDescriptor { - return file_changes_proto_enumTypes[8].Descriptor() +func (ChangeAnalysisStatus_ProgressMilestone_Status) Descriptor() protoreflect.EnumDescriptor { + return file_changes_proto_enumTypes[9].Descriptor() } -func (RiskCalculationStatus_ProgressMilestone_Status) Type() protoreflect.EnumType { - return &file_changes_proto_enumTypes[8] +func (ChangeAnalysisStatus_ProgressMilestone_Status) Type() protoreflect.EnumType { + return &file_changes_proto_enumTypes[9] } -func (x RiskCalculationStatus_ProgressMilestone_Status) Number() protoreflect.EnumNumber { +func (x ChangeAnalysisStatus_ProgressMilestone_Status) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } -// Deprecated: Use RiskCalculationStatus_ProgressMilestone_Status.Descriptor instead. -func (RiskCalculationStatus_ProgressMilestone_Status) EnumDescriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{84, 0, 0} +// Deprecated: Use ChangeAnalysisStatus_ProgressMilestone_Status.Descriptor instead. +func (ChangeAnalysisStatus_ProgressMilestone_Status) EnumDescriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{104, 0, 0} } -type GetChangeTimelineRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache +type RuleMetadata struct { + state protoimpl.MessageState `protogen:"open.v1"` + // The unique identifier for this rule + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + // The time that this rule was created + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + // The time that this rule was last run + LastRunAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=lastRunAt,proto3" json:"lastRunAt,omitempty"` + // The time that this rule added a tag to a change + LastActivated *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=lastActivated,proto3" json:"lastActivated,omitempty"` unknownFields protoimpl.UnknownFields - - ChangeUUID []byte `protobuf:"bytes,1,opt,name=changeUUID,proto3" json:"changeUUID,omitempty"` + sizeCache protoimpl.SizeCache } -func (x *GetChangeTimelineRequest) Reset() { - *x = GetChangeTimelineRequest{} +func (x *RuleMetadata) Reset() { + *x = RuleMetadata{} mi := &file_changes_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *GetChangeTimelineRequest) String() string { +func (x *RuleMetadata) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetChangeTimelineRequest) ProtoMessage() {} +func (*RuleMetadata) ProtoMessage() {} -func (x *GetChangeTimelineRequest) ProtoReflect() protoreflect.Message { +func (x *RuleMetadata) ProtoReflect() protoreflect.Message { mi := &file_changes_proto_msgTypes[0] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -575,40 +632,72 @@ func (x *GetChangeTimelineRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetChangeTimelineRequest.ProtoReflect.Descriptor instead. -func (*GetChangeTimelineRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use RuleMetadata.ProtoReflect.Descriptor instead. +func (*RuleMetadata) Descriptor() ([]byte, []int) { return file_changes_proto_rawDescGZIP(), []int{0} } -func (x *GetChangeTimelineRequest) GetChangeUUID() []byte { +func (x *RuleMetadata) GetUUID() []byte { if x != nil { - return x.ChangeUUID + return x.UUID } return nil } -type GetChangeTimelineResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *RuleMetadata) GetCreatedAt() *timestamppb.Timestamp { + if x != nil { + return x.CreatedAt + } + return nil +} - Entries []*ChangeTimelineEntry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"` +func (x *RuleMetadata) GetLastRunAt() *timestamppb.Timestamp { + if x != nil { + return x.LastRunAt + } + return nil } -func (x *GetChangeTimelineResponse) Reset() { - *x = GetChangeTimelineResponse{} +func (x *RuleMetadata) GetLastActivated() *timestamppb.Timestamp { + if x != nil { + return x.LastActivated + } + return nil +} + +type RuleProperties struct { + state protoimpl.MessageState `protogen:"open.v1"` + // The name of the rule, friendly for users + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The key that will be set in a change's tags if this rule is applied + TagKey string `protobuf:"bytes,2,opt,name=tagKey,proto3" json:"tagKey,omitempty"` + // Whether the rule is enabled or not + Enabled bool `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"` + // The instructions that will be run by the llm to determine if the tag should + // be applied and what its value should be + Instructions string `protobuf:"bytes,4,opt,name=instructions,proto3" json:"instructions,omitempty"` + // A list of valid tag values. If the instructions produce a value that is not + // in this list, the rule will be retried, however if we cannot converge on a + // valid value after some number of tries, the rule will not be applied + ValidValues []string `protobuf:"bytes,5,rep,name=validValues,proto3" json:"validValues,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RuleProperties) Reset() { + *x = RuleProperties{} mi := &file_changes_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *GetChangeTimelineResponse) String() string { +func (x *RuleProperties) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetChangeTimelineResponse) ProtoMessage() {} +func (*RuleProperties) ProtoMessage() {} -func (x *GetChangeTimelineResponse) ProtoReflect() protoreflect.Message { +func (x *RuleProperties) ProtoReflect() protoreflect.Message { mi := &file_changes_proto_msgTypes[1] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -620,48 +709,70 @@ func (x *GetChangeTimelineResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetChangeTimelineResponse.ProtoReflect.Descriptor instead. -func (*GetChangeTimelineResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use RuleProperties.ProtoReflect.Descriptor instead. +func (*RuleProperties) Descriptor() ([]byte, []int) { return file_changes_proto_rawDescGZIP(), []int{1} } -func (x *GetChangeTimelineResponse) GetEntries() []*ChangeTimelineEntry { +func (x *RuleProperties) GetName() string { if x != nil { - return x.Entries + return x.Name + } + return "" +} + +func (x *RuleProperties) GetTagKey() string { + if x != nil { + return x.TagKey + } + return "" +} + +func (x *RuleProperties) GetEnabled() bool { + if x != nil { + return x.Enabled + } + return false +} + +func (x *RuleProperties) GetInstructions() string { + if x != nil { + return x.Instructions + } + return "" +} + +func (x *RuleProperties) GetValidValues() []string { + if x != nil { + return x.ValidValues } return nil } -type ChangeTimelineEntry struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache +type Rule struct { + state protoimpl.MessageState `protogen:"open.v1"` + // The auto-generated metadata for this rule + Metadata *RuleMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + // The user provided properties for this rule + Properties *RuleProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` unknownFields protoimpl.UnknownFields - - // The status that this event should be associated with. Usually this would be - // the status that the changed ended up in as a result of this action - Status ChangeStatus `protobuf:"varint,1,opt,name=status,proto3,enum=changes.ChangeStatus" json:"status,omitempty"` - // The message that describes this event - StatusMessage string `protobuf:"bytes,2,opt,name=statusMessage,proto3" json:"statusMessage,omitempty"` - // The time that this event happened - HappenedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=happenedAt,proto3" json:"happenedAt,omitempty"` - // The name of the user that performed this action - ActorName string `protobuf:"bytes,4,opt,name=actorName,proto3" json:"actorName,omitempty"` + sizeCache protoimpl.SizeCache } -func (x *ChangeTimelineEntry) Reset() { - *x = ChangeTimelineEntry{} +func (x *Rule) Reset() { + *x = Rule{} mi := &file_changes_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ChangeTimelineEntry) String() string { +func (x *Rule) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ChangeTimelineEntry) ProtoMessage() {} +func (*Rule) ProtoMessage() {} -func (x *ChangeTimelineEntry) ProtoReflect() protoreflect.Message { +func (x *Rule) ProtoReflect() protoreflect.Message { mi := &file_changes_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -673,62 +784,127 @@ func (x *ChangeTimelineEntry) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ChangeTimelineEntry.ProtoReflect.Descriptor instead. -func (*ChangeTimelineEntry) Descriptor() ([]byte, []int) { +// Deprecated: Use Rule.ProtoReflect.Descriptor instead. +func (*Rule) Descriptor() ([]byte, []int) { return file_changes_proto_rawDescGZIP(), []int{2} } -func (x *ChangeTimelineEntry) GetStatus() ChangeStatus { +func (x *Rule) GetMetadata() *RuleMetadata { if x != nil { - return x.Status + return x.Metadata } - return ChangeStatus_CHANGE_STATUS_UNSPECIFIED + return nil } -func (x *ChangeTimelineEntry) GetStatusMessage() string { +func (x *Rule) GetProperties() *RuleProperties { if x != nil { - return x.StatusMessage + return x.Properties } - return "" + return nil } -func (x *ChangeTimelineEntry) GetHappenedAt() *timestamppb.Timestamp { +type ListRulesRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListRulesRequest) Reset() { + *x = ListRulesRequest{} + mi := &file_changes_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListRulesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRulesRequest) ProtoMessage() {} + +func (x *ListRulesRequest) ProtoReflect() protoreflect.Message { + mi := &file_changes_proto_msgTypes[3] if x != nil { - return x.HappenedAt + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *ChangeTimelineEntry) GetActorName() string { +// Deprecated: Use ListRulesRequest.ProtoReflect.Descriptor instead. +func (*ListRulesRequest) Descriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{3} +} + +type ListRulesResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Rules []*Rule `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListRulesResponse) Reset() { + *x = ListRulesResponse{} + mi := &file_changes_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListRulesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRulesResponse) ProtoMessage() {} + +func (x *ListRulesResponse) ProtoReflect() protoreflect.Message { + mi := &file_changes_proto_msgTypes[4] if x != nil { - return x.ActorName + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -type GetDiffRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +// Deprecated: Use ListRulesResponse.ProtoReflect.Descriptor instead. +func (*ListRulesResponse) Descriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{4} +} - ChangeUUID []byte `protobuf:"bytes,1,opt,name=changeUUID,proto3" json:"changeUUID,omitempty"` +func (x *ListRulesResponse) GetRules() []*Rule { + if x != nil { + return x.Rules + } + return nil } -func (x *GetDiffRequest) Reset() { - *x = GetDiffRequest{} - mi := &file_changes_proto_msgTypes[3] +type CreateRuleRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Properties *RuleProperties `protobuf:"bytes,1,opt,name=properties,proto3" json:"properties,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CreateRuleRequest) Reset() { + *x = CreateRuleRequest{} + mi := &file_changes_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *GetDiffRequest) String() string { +func (x *CreateRuleRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetDiffRequest) ProtoMessage() {} +func (*CreateRuleRequest) ProtoMessage() {} -func (x *GetDiffRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[3] +func (x *CreateRuleRequest) ProtoReflect() protoreflect.Message { + mi := &file_changes_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -739,35 +915,754 @@ func (x *GetDiffRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetDiffRequest.ProtoReflect.Descriptor instead. -func (*GetDiffRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{3} +// Deprecated: Use CreateRuleRequest.ProtoReflect.Descriptor instead. +func (*CreateRuleRequest) Descriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{5} } -func (x *GetDiffRequest) GetChangeUUID() []byte { +func (x *CreateRuleRequest) GetProperties() *RuleProperties { if x != nil { - return x.ChangeUUID + return x.Properties } return nil } -type GetDiffResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache +type CreateRuleResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Rule *Rule `protobuf:"bytes,1,opt,name=rule,proto3" json:"rule,omitempty"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} - // Items that were planned to be changed, and were changed - ExpectedItems []*ItemDiff `protobuf:"bytes,1,rep,name=expectedItems,proto3" json:"expectedItems,omitempty"` - // Items that were changed, but were not planned to be changed - UnexpectedItems []*ItemDiff `protobuf:"bytes,3,rep,name=unexpectedItems,proto3" json:"unexpectedItems,omitempty"` - Edges []*Edge `protobuf:"bytes,2,rep,name=edges,proto3" json:"edges,omitempty"` - // Items that were planned to be changed, but were not changed - MissingItems []*ItemDiff `protobuf:"bytes,4,rep,name=missingItems,proto3" json:"missingItems,omitempty"` +func (x *CreateRuleResponse) Reset() { + *x = CreateRuleResponse{} + mi := &file_changes_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateRuleResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateRuleResponse) ProtoMessage() {} + +func (x *CreateRuleResponse) ProtoReflect() protoreflect.Message { + mi := &file_changes_proto_msgTypes[6] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateRuleResponse.ProtoReflect.Descriptor instead. +func (*CreateRuleResponse) Descriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{6} +} + +func (x *CreateRuleResponse) GetRule() *Rule { + if x != nil { + return x.Rule + } + return nil +} + +type GetRuleRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetRuleRequest) Reset() { + *x = GetRuleRequest{} + mi := &file_changes_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetRuleRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetRuleRequest) ProtoMessage() {} + +func (x *GetRuleRequest) ProtoReflect() protoreflect.Message { + mi := &file_changes_proto_msgTypes[7] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetRuleRequest.ProtoReflect.Descriptor instead. +func (*GetRuleRequest) Descriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{7} +} + +func (x *GetRuleRequest) GetUUID() []byte { + if x != nil { + return x.UUID + } + return nil +} + +type GetRuleResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Rule *Rule `protobuf:"bytes,1,opt,name=rule,proto3" json:"rule,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetRuleResponse) Reset() { + *x = GetRuleResponse{} + mi := &file_changes_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetRuleResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetRuleResponse) ProtoMessage() {} + +func (x *GetRuleResponse) ProtoReflect() protoreflect.Message { + mi := &file_changes_proto_msgTypes[8] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetRuleResponse.ProtoReflect.Descriptor instead. +func (*GetRuleResponse) Descriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{8} +} + +func (x *GetRuleResponse) GetRule() *Rule { + if x != nil { + return x.Rule + } + return nil +} + +type UpdateRuleRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + Properties *RuleProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdateRuleRequest) Reset() { + *x = UpdateRuleRequest{} + mi := &file_changes_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateRuleRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateRuleRequest) ProtoMessage() {} + +func (x *UpdateRuleRequest) ProtoReflect() protoreflect.Message { + mi := &file_changes_proto_msgTypes[9] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateRuleRequest.ProtoReflect.Descriptor instead. +func (*UpdateRuleRequest) Descriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{9} +} + +func (x *UpdateRuleRequest) GetUUID() []byte { + if x != nil { + return x.UUID + } + return nil +} + +func (x *UpdateRuleRequest) GetProperties() *RuleProperties { + if x != nil { + return x.Properties + } + return nil +} + +type UpdateRuleResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Rule *Rule `protobuf:"bytes,1,opt,name=rule,proto3" json:"rule,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdateRuleResponse) Reset() { + *x = UpdateRuleResponse{} + mi := &file_changes_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateRuleResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateRuleResponse) ProtoMessage() {} + +func (x *UpdateRuleResponse) ProtoReflect() protoreflect.Message { + mi := &file_changes_proto_msgTypes[10] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateRuleResponse.ProtoReflect.Descriptor instead. +func (*UpdateRuleResponse) Descriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{10} +} + +func (x *UpdateRuleResponse) GetRule() *Rule { + if x != nil { + return x.Rule + } + return nil +} + +type DeleteRuleRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeleteRuleRequest) Reset() { + *x = DeleteRuleRequest{} + mi := &file_changes_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteRuleRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteRuleRequest) ProtoMessage() {} + +func (x *DeleteRuleRequest) ProtoReflect() protoreflect.Message { + mi := &file_changes_proto_msgTypes[11] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteRuleRequest.ProtoReflect.Descriptor instead. +func (*DeleteRuleRequest) Descriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{11} +} + +func (x *DeleteRuleRequest) GetUUID() []byte { + if x != nil { + return x.UUID + } + return nil +} + +type DeleteRuleResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeleteRuleResponse) Reset() { + *x = DeleteRuleResponse{} + mi := &file_changes_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteRuleResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteRuleResponse) ProtoMessage() {} + +func (x *DeleteRuleResponse) ProtoReflect() protoreflect.Message { + mi := &file_changes_proto_msgTypes[12] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteRuleResponse.ProtoReflect.Descriptor instead. +func (*DeleteRuleResponse) Descriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{12} +} + +type ExportRuleRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ExportRuleRequest) Reset() { + *x = ExportRuleRequest{} + mi := &file_changes_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ExportRuleRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExportRuleRequest) ProtoMessage() {} + +func (x *ExportRuleRequest) ProtoReflect() protoreflect.Message { + mi := &file_changes_proto_msgTypes[13] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExportRuleRequest.ProtoReflect.Descriptor instead. +func (*ExportRuleRequest) Descriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{13} +} + +func (x *ExportRuleRequest) GetUUID() []byte { + if x != nil { + return x.UUID + } + return nil +} + +type ExportRuleResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Content that should be added to auto-tagging config file to represent this + // rule it is in the format that the cli expects + Rule string `protobuf:"bytes,1,opt,name=rule,proto3" json:"rule,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ExportRuleResponse) Reset() { + *x = ExportRuleResponse{} + mi := &file_changes_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ExportRuleResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExportRuleResponse) ProtoMessage() {} + +func (x *ExportRuleResponse) ProtoReflect() protoreflect.Message { + mi := &file_changes_proto_msgTypes[14] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExportRuleResponse.ProtoReflect.Descriptor instead. +func (*ExportRuleResponse) Descriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{14} +} + +func (x *ExportRuleResponse) GetRule() string { + if x != nil { + return x.Rule + } + return "" +} + +type TestRuleRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + // The entire rule to test, so they don't have to save it first + Properties *RuleProperties `protobuf:"bytes,1,opt,name=properties,proto3" json:"properties,omitempty"` + // List of changes to test the rule on + ChangeUUID [][]byte `protobuf:"bytes,2,rep,name=changeUUID,proto3" json:"changeUUID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *TestRuleRequest) Reset() { + *x = TestRuleRequest{} + mi := &file_changes_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TestRuleRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TestRuleRequest) ProtoMessage() {} + +func (x *TestRuleRequest) ProtoReflect() protoreflect.Message { + mi := &file_changes_proto_msgTypes[15] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TestRuleRequest.ProtoReflect.Descriptor instead. +func (*TestRuleRequest) Descriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{15} +} + +func (x *TestRuleRequest) GetProperties() *RuleProperties { + if x != nil { + return x.Properties + } + return nil +} + +func (x *TestRuleRequest) GetChangeUUID() [][]byte { + if x != nil { + return x.ChangeUUID + } + return nil +} + +type TestRuleResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + // The change UUID that the rule was tested against + ChangeUUID []byte `protobuf:"bytes,1,opt,name=changeUUID,proto3" json:"changeUUID,omitempty"` + // Whether or not the tag was applied to this change + Applied bool `protobuf:"varint,2,opt,name=applied,proto3" json:"applied,omitempty"` + // The value of the tag and the reasoning for it + Value *AutoTagValue `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *TestRuleResponse) Reset() { + *x = TestRuleResponse{} + mi := &file_changes_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TestRuleResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TestRuleResponse) ProtoMessage() {} + +func (x *TestRuleResponse) ProtoReflect() protoreflect.Message { + mi := &file_changes_proto_msgTypes[16] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TestRuleResponse.ProtoReflect.Descriptor instead. +func (*TestRuleResponse) Descriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{16} +} + +func (x *TestRuleResponse) GetChangeUUID() []byte { + if x != nil { + return x.ChangeUUID + } + return nil +} + +func (x *TestRuleResponse) GetApplied() bool { + if x != nil { + return x.Applied + } + return false +} + +func (x *TestRuleResponse) GetValue() *AutoTagValue { + if x != nil { + return x.Value + } + return nil +} + +type GetChangeTimelineRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ChangeUUID []byte `protobuf:"bytes,1,opt,name=changeUUID,proto3" json:"changeUUID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetChangeTimelineRequest) Reset() { + *x = GetChangeTimelineRequest{} + mi := &file_changes_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetChangeTimelineRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetChangeTimelineRequest) ProtoMessage() {} + +func (x *GetChangeTimelineRequest) ProtoReflect() protoreflect.Message { + mi := &file_changes_proto_msgTypes[17] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetChangeTimelineRequest.ProtoReflect.Descriptor instead. +func (*GetChangeTimelineRequest) Descriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{17} +} + +func (x *GetChangeTimelineRequest) GetChangeUUID() []byte { + if x != nil { + return x.ChangeUUID + } + return nil +} + +type GetChangeTimelineResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Entries []*ChangeTimelineEntry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetChangeTimelineResponse) Reset() { + *x = GetChangeTimelineResponse{} + mi := &file_changes_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetChangeTimelineResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetChangeTimelineResponse) ProtoMessage() {} + +func (x *GetChangeTimelineResponse) ProtoReflect() protoreflect.Message { + mi := &file_changes_proto_msgTypes[18] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetChangeTimelineResponse.ProtoReflect.Descriptor instead. +func (*GetChangeTimelineResponse) Descriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{18} +} + +func (x *GetChangeTimelineResponse) GetEntries() []*ChangeTimelineEntry { + if x != nil { + return x.Entries + } + return nil +} + +type ChangeTimelineEntry struct { + state protoimpl.MessageState `protogen:"open.v1"` + // The status that this event should be associated with. Usually this would be + // the status that the changed ended up in as a result of this action + Status ChangeStatus `protobuf:"varint,1,opt,name=status,proto3,enum=changes.ChangeStatus" json:"status,omitempty"` + // The message that describes this event + StatusMessage string `protobuf:"bytes,2,opt,name=statusMessage,proto3" json:"statusMessage,omitempty"` + // The time that this event happened + HappenedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=happenedAt,proto3" json:"happenedAt,omitempty"` + // The name of the user that performed this action + ActorName string `protobuf:"bytes,4,opt,name=actorName,proto3" json:"actorName,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ChangeTimelineEntry) Reset() { + *x = ChangeTimelineEntry{} + mi := &file_changes_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ChangeTimelineEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangeTimelineEntry) ProtoMessage() {} + +func (x *ChangeTimelineEntry) ProtoReflect() protoreflect.Message { + mi := &file_changes_proto_msgTypes[19] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChangeTimelineEntry.ProtoReflect.Descriptor instead. +func (*ChangeTimelineEntry) Descriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{19} +} + +func (x *ChangeTimelineEntry) GetStatus() ChangeStatus { + if x != nil { + return x.Status + } + return ChangeStatus_CHANGE_STATUS_UNSPECIFIED +} + +func (x *ChangeTimelineEntry) GetStatusMessage() string { + if x != nil { + return x.StatusMessage + } + return "" +} + +func (x *ChangeTimelineEntry) GetHappenedAt() *timestamppb.Timestamp { + if x != nil { + return x.HappenedAt + } + return nil +} + +func (x *ChangeTimelineEntry) GetActorName() string { + if x != nil { + return x.ActorName + } + return "" +} + +type GetDiffRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ChangeUUID []byte `protobuf:"bytes,1,opt,name=changeUUID,proto3" json:"changeUUID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetDiffRequest) Reset() { + *x = GetDiffRequest{} + mi := &file_changes_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetDiffRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDiffRequest) ProtoMessage() {} + +func (x *GetDiffRequest) ProtoReflect() protoreflect.Message { + mi := &file_changes_proto_msgTypes[20] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetDiffRequest.ProtoReflect.Descriptor instead. +func (*GetDiffRequest) Descriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{20} +} + +func (x *GetDiffRequest) GetChangeUUID() []byte { + if x != nil { + return x.ChangeUUID + } + return nil +} + +type GetDiffResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Items that were planned to be changed, and were changed + ExpectedItems []*ItemDiff `protobuf:"bytes,1,rep,name=expectedItems,proto3" json:"expectedItems,omitempty"` + // Items that were changed, but were not planned to be changed + UnexpectedItems []*ItemDiff `protobuf:"bytes,3,rep,name=unexpectedItems,proto3" json:"unexpectedItems,omitempty"` + Edges []*Edge `protobuf:"bytes,2,rep,name=edges,proto3" json:"edges,omitempty"` + // Items that were planned to be changed, but were not changed + MissingItems []*ItemDiff `protobuf:"bytes,4,rep,name=missingItems,proto3" json:"missingItems,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetDiffResponse) Reset() { *x = GetDiffResponse{} - mi := &file_changes_proto_msgTypes[4] + mi := &file_changes_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -779,7 +1674,7 @@ func (x *GetDiffResponse) String() string { func (*GetDiffResponse) ProtoMessage() {} func (x *GetDiffResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[4] + mi := &file_changes_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -792,7 +1687,7 @@ func (x *GetDiffResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetDiffResponse.ProtoReflect.Descriptor instead. func (*GetDiffResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{4} + return file_changes_proto_rawDescGZIP(), []int{21} } func (x *GetDiffResponse) GetExpectedItems() []*ItemDiff { @@ -824,16 +1719,15 @@ func (x *GetDiffResponse) GetMissingItems() []*ItemDiff { } type ListChangingItemsSummaryRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChangeUUID []byte `protobuf:"bytes,1,opt,name=changeUUID,proto3" json:"changeUUID,omitempty"` unknownFields protoimpl.UnknownFields - - ChangeUUID []byte `protobuf:"bytes,1,opt,name=changeUUID,proto3" json:"changeUUID,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListChangingItemsSummaryRequest) Reset() { *x = ListChangingItemsSummaryRequest{} - mi := &file_changes_proto_msgTypes[5] + mi := &file_changes_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -845,7 +1739,7 @@ func (x *ListChangingItemsSummaryRequest) String() string { func (*ListChangingItemsSummaryRequest) ProtoMessage() {} func (x *ListChangingItemsSummaryRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[5] + mi := &file_changes_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -858,7 +1752,7 @@ func (x *ListChangingItemsSummaryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListChangingItemsSummaryRequest.ProtoReflect.Descriptor instead. func (*ListChangingItemsSummaryRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{5} + return file_changes_proto_rawDescGZIP(), []int{22} } func (x *ListChangingItemsSummaryRequest) GetChangeUUID() []byte { @@ -869,16 +1763,15 @@ func (x *ListChangingItemsSummaryRequest) GetChangeUUID() []byte { } type ListChangingItemsSummaryResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*ItemDiffSummary `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Items []*ItemDiffSummary `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListChangingItemsSummaryResponse) Reset() { *x = ListChangingItemsSummaryResponse{} - mi := &file_changes_proto_msgTypes[6] + mi := &file_changes_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -890,7 +1783,7 @@ func (x *ListChangingItemsSummaryResponse) String() string { func (*ListChangingItemsSummaryResponse) ProtoMessage() {} func (x *ListChangingItemsSummaryResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[6] + mi := &file_changes_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -903,7 +1796,7 @@ func (x *ListChangingItemsSummaryResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListChangingItemsSummaryResponse.ProtoReflect.Descriptor instead. func (*ListChangingItemsSummaryResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{6} + return file_changes_proto_rawDescGZIP(), []int{23} } func (x *ListChangingItemsSummaryResponse) GetItems() []*ItemDiffSummary { @@ -914,16 +1807,15 @@ func (x *ListChangingItemsSummaryResponse) GetItems() []*ItemDiffSummary { } type GetAffectedAppsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChangeUUID []byte `protobuf:"bytes,1,opt,name=changeUUID,proto3" json:"changeUUID,omitempty"` unknownFields protoimpl.UnknownFields - - ChangeUUID []byte `protobuf:"bytes,1,opt,name=changeUUID,proto3" json:"changeUUID,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetAffectedAppsRequest) Reset() { *x = GetAffectedAppsRequest{} - mi := &file_changes_proto_msgTypes[7] + mi := &file_changes_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -935,7 +1827,7 @@ func (x *GetAffectedAppsRequest) String() string { func (*GetAffectedAppsRequest) ProtoMessage() {} func (x *GetAffectedAppsRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[7] + mi := &file_changes_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -948,7 +1840,7 @@ func (x *GetAffectedAppsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAffectedAppsRequest.ProtoReflect.Descriptor instead. func (*GetAffectedAppsRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{7} + return file_changes_proto_rawDescGZIP(), []int{24} } func (x *GetAffectedAppsRequest) GetChangeUUID() []byte { @@ -959,16 +1851,15 @@ func (x *GetAffectedAppsRequest) GetChangeUUID() []byte { } type GetAffectedAppsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Apps []*AppSummary `protobuf:"bytes,1,rep,name=apps,proto3" json:"apps,omitempty"` unknownFields protoimpl.UnknownFields - - Apps []*AppSummary `protobuf:"bytes,1,rep,name=apps,proto3" json:"apps,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetAffectedAppsResponse) Reset() { *x = GetAffectedAppsResponse{} - mi := &file_changes_proto_msgTypes[8] + mi := &file_changes_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -980,7 +1871,7 @@ func (x *GetAffectedAppsResponse) String() string { func (*GetAffectedAppsResponse) ProtoMessage() {} func (x *GetAffectedAppsResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[8] + mi := &file_changes_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -993,7 +1884,7 @@ func (x *GetAffectedAppsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAffectedAppsResponse.ProtoReflect.Descriptor instead. func (*GetAffectedAppsResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{8} + return file_changes_proto_rawDescGZIP(), []int{25} } func (x *GetAffectedAppsResponse) GetApps() []*AppSummary { @@ -1004,19 +1895,18 @@ func (x *GetAffectedAppsResponse) GetApps() []*AppSummary { } type UpdateChangingItemsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The change to update ChangeUUID []byte `protobuf:"bytes,1,opt,name=changeUUID,proto3" json:"changeUUID,omitempty"` // References to the items that are changing ChangingItems []*Reference `protobuf:"bytes,2,rep,name=changingItems,proto3" json:"changingItems,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UpdateChangingItemsRequest) Reset() { *x = UpdateChangingItemsRequest{} - mi := &file_changes_proto_msgTypes[9] + mi := &file_changes_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1028,7 +1918,7 @@ func (x *UpdateChangingItemsRequest) String() string { func (*UpdateChangingItemsRequest) ProtoMessage() {} func (x *UpdateChangingItemsRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[9] + mi := &file_changes_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1041,7 +1931,7 @@ func (x *UpdateChangingItemsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateChangingItemsRequest.ProtoReflect.Descriptor instead. func (*UpdateChangingItemsRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{9} + return file_changes_proto_rawDescGZIP(), []int{26} } func (x *UpdateChangingItemsRequest) GetChangeUUID() []byte { @@ -1059,20 +1949,19 @@ func (x *UpdateChangingItemsRequest) GetChangingItems() []*Reference { } type MappedItemDiff struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The item that is changing and any known changes to it Item *ItemDiff `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` // a mapping query that can be used to find the item. this can be empty if the // submitter does not know how to map this item. - MappingQuery *Query `protobuf:"bytes,2,opt,name=mappingQuery,proto3,oneof" json:"mappingQuery,omitempty"` + MappingQuery *Query `protobuf:"bytes,2,opt,name=mappingQuery,proto3,oneof" json:"mappingQuery,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *MappedItemDiff) Reset() { *x = MappedItemDiff{} - mi := &file_changes_proto_msgTypes[10] + mi := &file_changes_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1084,7 +1973,7 @@ func (x *MappedItemDiff) String() string { func (*MappedItemDiff) ProtoMessage() {} func (x *MappedItemDiff) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[10] + mi := &file_changes_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1097,7 +1986,7 @@ func (x *MappedItemDiff) ProtoReflect() protoreflect.Message { // Deprecated: Use MappedItemDiff.ProtoReflect.Descriptor instead. func (*MappedItemDiff) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{10} + return file_changes_proto_rawDescGZIP(), []int{27} } func (x *MappedItemDiff) GetItem() *ItemDiff { @@ -1115,21 +2004,24 @@ func (x *MappedItemDiff) GetMappingQuery() *Query { } type UpdatePlannedChangesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The change to update ChangeUUID []byte `protobuf:"bytes,1,opt,name=changeUUID,proto3" json:"changeUUID,omitempty"` - // the changing items + // The changing items ChangingItems []*MappedItemDiff `protobuf:"bytes,2,rep,name=changingItems,proto3" json:"changingItems,omitempty"` // Overrides the stored blast radius config for this change BlastRadiusConfigOverride *BlastRadiusConfig `protobuf:"bytes,3,opt,name=blastRadiusConfigOverride,proto3,oneof" json:"blastRadiusConfigOverride,omitempty"` + // Overrides the auto-tagging rules with rules that have been read from the + // local config file. If this is empty the rules that have been configured in + // the UI will be used + AutoTaggingRulesOverride []*RuleProperties `protobuf:"bytes,4,rep,name=autoTaggingRulesOverride,proto3" json:"autoTaggingRulesOverride,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UpdatePlannedChangesRequest) Reset() { *x = UpdatePlannedChangesRequest{} - mi := &file_changes_proto_msgTypes[11] + mi := &file_changes_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1141,7 +2033,7 @@ func (x *UpdatePlannedChangesRequest) String() string { func (*UpdatePlannedChangesRequest) ProtoMessage() {} func (x *UpdatePlannedChangesRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[11] + mi := &file_changes_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1154,7 +2046,7 @@ func (x *UpdatePlannedChangesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdatePlannedChangesRequest.ProtoReflect.Descriptor instead. func (*UpdatePlannedChangesRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{11} + return file_changes_proto_rawDescGZIP(), []int{28} } func (x *UpdatePlannedChangesRequest) GetChangeUUID() []byte { @@ -1178,17 +2070,23 @@ func (x *UpdatePlannedChangesRequest) GetBlastRadiusConfigOverride() *BlastRadiu return nil } +func (x *UpdatePlannedChangesRequest) GetAutoTaggingRulesOverride() []*RuleProperties { + if x != nil { + return x.AutoTaggingRulesOverride + } + return nil +} + type ListAppChangesSummaryRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + AppUUID []byte `protobuf:"bytes,1,opt,name=appUUID,proto3" json:"appUUID,omitempty"` unknownFields protoimpl.UnknownFields - - AppUUID []byte `protobuf:"bytes,1,opt,name=appUUID,proto3" json:"appUUID,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListAppChangesSummaryRequest) Reset() { *x = ListAppChangesSummaryRequest{} - mi := &file_changes_proto_msgTypes[12] + mi := &file_changes_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1200,7 +2098,7 @@ func (x *ListAppChangesSummaryRequest) String() string { func (*ListAppChangesSummaryRequest) ProtoMessage() {} func (x *ListAppChangesSummaryRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[12] + mi := &file_changes_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1213,7 +2111,7 @@ func (x *ListAppChangesSummaryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListAppChangesSummaryRequest.ProtoReflect.Descriptor instead. func (*ListAppChangesSummaryRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{12} + return file_changes_proto_rawDescGZIP(), []int{29} } func (x *ListAppChangesSummaryRequest) GetAppUUID() []byte { @@ -1224,16 +2122,15 @@ func (x *ListAppChangesSummaryRequest) GetAppUUID() []byte { } type ListAppChangesSummaryResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Changes []*ChangeSummary `protobuf:"bytes,1,rep,name=changes,proto3" json:"changes,omitempty"` unknownFields protoimpl.UnknownFields - - Changes []*ChangeSummary `protobuf:"bytes,1,rep,name=changes,proto3" json:"changes,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListAppChangesSummaryResponse) Reset() { *x = ListAppChangesSummaryResponse{} - mi := &file_changes_proto_msgTypes[13] + mi := &file_changes_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1245,7 +2142,7 @@ func (x *ListAppChangesSummaryResponse) String() string { func (*ListAppChangesSummaryResponse) ProtoMessage() {} func (x *ListAppChangesSummaryResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[13] + mi := &file_changes_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1258,7 +2155,7 @@ func (x *ListAppChangesSummaryResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListAppChangesSummaryResponse.ProtoReflect.Descriptor instead. func (*ListAppChangesSummaryResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{13} + return file_changes_proto_rawDescGZIP(), []int{30} } func (x *ListAppChangesSummaryResponse) GetChanges() []*ChangeSummary { @@ -1269,16 +2166,15 @@ func (x *ListAppChangesSummaryResponse) GetChanges() []*ChangeSummary { } type GetAppSummaryRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` unknownFields protoimpl.UnknownFields - - UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetAppSummaryRequest) Reset() { *x = GetAppSummaryRequest{} - mi := &file_changes_proto_msgTypes[14] + mi := &file_changes_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1290,7 +2186,7 @@ func (x *GetAppSummaryRequest) String() string { func (*GetAppSummaryRequest) ProtoMessage() {} func (x *GetAppSummaryRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[14] + mi := &file_changes_proto_msgTypes[31] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1303,7 +2199,7 @@ func (x *GetAppSummaryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAppSummaryRequest.ProtoReflect.Descriptor instead. func (*GetAppSummaryRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{14} + return file_changes_proto_rawDescGZIP(), []int{31} } func (x *GetAppSummaryRequest) GetUUID() []byte { @@ -1314,16 +2210,15 @@ func (x *GetAppSummaryRequest) GetUUID() []byte { } type GetAppSummaryResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + App *AppSummary `protobuf:"bytes,1,opt,name=app,proto3" json:"app,omitempty"` unknownFields protoimpl.UnknownFields - - App *AppSummary `protobuf:"bytes,1,opt,name=app,proto3" json:"app,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetAppSummaryResponse) Reset() { *x = GetAppSummaryResponse{} - mi := &file_changes_proto_msgTypes[15] + mi := &file_changes_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1335,7 +2230,7 @@ func (x *GetAppSummaryResponse) String() string { func (*GetAppSummaryResponse) ProtoMessage() {} func (x *GetAppSummaryResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[15] + mi := &file_changes_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1348,7 +2243,7 @@ func (x *GetAppSummaryResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAppSummaryResponse.ProtoReflect.Descriptor instead. func (*GetAppSummaryResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{15} + return file_changes_proto_rawDescGZIP(), []int{32} } func (x *GetAppSummaryResponse) GetApp() *AppSummary { @@ -1359,16 +2254,15 @@ func (x *GetAppSummaryResponse) GetApp() *AppSummary { } type GetAppSummariesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UUIDs [][]byte `protobuf:"bytes,1,rep,name=UUIDs,proto3" json:"UUIDs,omitempty"` unknownFields protoimpl.UnknownFields - - UUIDs [][]byte `protobuf:"bytes,1,rep,name=UUIDs,proto3" json:"UUIDs,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetAppSummariesRequest) Reset() { *x = GetAppSummariesRequest{} - mi := &file_changes_proto_msgTypes[16] + mi := &file_changes_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1380,7 +2274,7 @@ func (x *GetAppSummariesRequest) String() string { func (*GetAppSummariesRequest) ProtoMessage() {} func (x *GetAppSummariesRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[16] + mi := &file_changes_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1393,7 +2287,7 @@ func (x *GetAppSummariesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAppSummariesRequest.ProtoReflect.Descriptor instead. func (*GetAppSummariesRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{16} + return file_changes_proto_rawDescGZIP(), []int{33} } func (x *GetAppSummariesRequest) GetUUIDs() [][]byte { @@ -1404,16 +2298,15 @@ func (x *GetAppSummariesRequest) GetUUIDs() [][]byte { } type GetAppSummariesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Apps []*AppSummary `protobuf:"bytes,1,rep,name=apps,proto3" json:"apps,omitempty"` unknownFields protoimpl.UnknownFields - - Apps []*AppSummary `protobuf:"bytes,1,rep,name=apps,proto3" json:"apps,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetAppSummariesResponse) Reset() { *x = GetAppSummariesResponse{} - mi := &file_changes_proto_msgTypes[17] + mi := &file_changes_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1425,7 +2318,7 @@ func (x *GetAppSummariesResponse) String() string { func (*GetAppSummariesResponse) ProtoMessage() {} func (x *GetAppSummariesResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[17] + mi := &file_changes_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1438,7 +2331,7 @@ func (x *GetAppSummariesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAppSummariesResponse.ProtoReflect.Descriptor instead. func (*GetAppSummariesResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{17} + return file_changes_proto_rawDescGZIP(), []int{34} } func (x *GetAppSummariesResponse) GetApps() []*AppSummary { @@ -1449,17 +2342,16 @@ func (x *GetAppSummariesResponse) GetApps() []*AppSummary { } type ListHomeChangesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Pagination *PaginationRequest `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"` + Filters *ChangeFiltersRequest `protobuf:"bytes,2,opt,name=filters,proto3,oneof" json:"filters,omitempty"` unknownFields protoimpl.UnknownFields - - Pagination *PaginationRequest `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"` - Filters *ChangeFiltersRequest `protobuf:"bytes,2,opt,name=filters,proto3,oneof" json:"filters,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListHomeChangesRequest) Reset() { *x = ListHomeChangesRequest{} - mi := &file_changes_proto_msgTypes[18] + mi := &file_changes_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1471,7 +2363,7 @@ func (x *ListHomeChangesRequest) String() string { func (*ListHomeChangesRequest) ProtoMessage() {} func (x *ListHomeChangesRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[18] + mi := &file_changes_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1484,7 +2376,7 @@ func (x *ListHomeChangesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListHomeChangesRequest.ProtoReflect.Descriptor instead. func (*ListHomeChangesRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{18} + return file_changes_proto_rawDescGZIP(), []int{35} } func (x *ListHomeChangesRequest) GetPagination() *PaginationRequest { @@ -1505,21 +2397,20 @@ func (x *ListHomeChangesRequest) GetFilters() *ChangeFiltersRequest { // Repeated entries of the same type are used to represent OR conditions. eg if repo is ["a", "b"] then the filter is (repo == "a" OR repo == "b") // The filters are ANDed together. eg if repo is ["a", "b"] and author is ["c"] then the filter is (repo == "a" OR repo == "b") AND author == "c" type ChangeFiltersRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Repos []string `protobuf:"bytes,1,rep,name=repos,proto3" json:"repos,omitempty"` + Tags map[string]string `protobuf:"bytes,2,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Risks []Risk_Severity `protobuf:"varint,3,rep,packed,name=risks,proto3,enum=changes.Risk_Severity" json:"risks,omitempty"` + Authors []string `protobuf:"bytes,4,rep,name=authors,proto3" json:"authors,omitempty"` + Statuses []ChangeStatus `protobuf:"varint,5,rep,packed,name=statuses,proto3,enum=changes.ChangeStatus" json:"statuses,omitempty"` + SortOrder *SortOrder `protobuf:"varint,6,opt,name=sortOrder,proto3,enum=SortOrder,oneof" json:"sortOrder,omitempty"` // the default is SortOrder.DATE_DESCENDING (newest first) unknownFields protoimpl.UnknownFields - - Repos []string `protobuf:"bytes,1,rep,name=repos,proto3" json:"repos,omitempty"` - Tags map[string]string `protobuf:"bytes,2,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Risks []Risk_Severity `protobuf:"varint,3,rep,packed,name=risks,proto3,enum=changes.Risk_Severity" json:"risks,omitempty"` - Authors []string `protobuf:"bytes,4,rep,name=authors,proto3" json:"authors,omitempty"` - Statuses []ChangeStatus `protobuf:"varint,5,rep,packed,name=statuses,proto3,enum=changes.ChangeStatus" json:"statuses,omitempty"` - SortOrder *SortOrder `protobuf:"varint,6,opt,name=sortOrder,proto3,enum=SortOrder,oneof" json:"sortOrder,omitempty"` // the default is SortOrder.DATE_DESCENDING (newest first) + sizeCache protoimpl.SizeCache } func (x *ChangeFiltersRequest) Reset() { *x = ChangeFiltersRequest{} - mi := &file_changes_proto_msgTypes[19] + mi := &file_changes_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1531,7 +2422,7 @@ func (x *ChangeFiltersRequest) String() string { func (*ChangeFiltersRequest) ProtoMessage() {} func (x *ChangeFiltersRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[19] + mi := &file_changes_proto_msgTypes[36] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1544,7 +2435,7 @@ func (x *ChangeFiltersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeFiltersRequest.ProtoReflect.Descriptor instead. func (*ChangeFiltersRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{19} + return file_changes_proto_rawDescGZIP(), []int{36} } func (x *ChangeFiltersRequest) GetRepos() []string { @@ -1590,17 +2481,16 @@ func (x *ChangeFiltersRequest) GetSortOrder() SortOrder { } type ListHomeChangesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Changes []*ChangeSummary `protobuf:"bytes,1,rep,name=changes,proto3" json:"changes,omitempty"` + Pagination *PaginationResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` unknownFields protoimpl.UnknownFields - - Changes []*ChangeSummary `protobuf:"bytes,1,rep,name=changes,proto3" json:"changes,omitempty"` - Pagination *PaginationResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListHomeChangesResponse) Reset() { *x = ListHomeChangesResponse{} - mi := &file_changes_proto_msgTypes[20] + mi := &file_changes_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1612,7 +2502,7 @@ func (x *ListHomeChangesResponse) String() string { func (*ListHomeChangesResponse) ProtoMessage() {} func (x *ListHomeChangesResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[20] + mi := &file_changes_proto_msgTypes[37] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1625,7 +2515,7 @@ func (x *ListHomeChangesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListHomeChangesResponse.ProtoReflect.Descriptor instead. func (*ListHomeChangesResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{20} + return file_changes_proto_rawDescGZIP(), []int{37} } func (x *ListHomeChangesResponse) GetChanges() []*ChangeSummary { @@ -1643,14 +2533,14 @@ func (x *ListHomeChangesResponse) GetPagination() *PaginationResponse { } type PopulateChangeFiltersRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *PopulateChangeFiltersRequest) Reset() { *x = PopulateChangeFiltersRequest{} - mi := &file_changes_proto_msgTypes[21] + mi := &file_changes_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1662,7 +2552,7 @@ func (x *PopulateChangeFiltersRequest) String() string { func (*PopulateChangeFiltersRequest) ProtoMessage() {} func (x *PopulateChangeFiltersRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[21] + mi := &file_changes_proto_msgTypes[38] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1675,21 +2565,20 @@ func (x *PopulateChangeFiltersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PopulateChangeFiltersRequest.ProtoReflect.Descriptor instead. func (*PopulateChangeFiltersRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{21} + return file_changes_proto_rawDescGZIP(), []int{38} } type PopulateChangeFiltersResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Repos []string `protobuf:"bytes,1,rep,name=repos,proto3" json:"repos,omitempty"` + Authors []string `protobuf:"bytes,2,rep,name=authors,proto3" json:"authors,omitempty"` unknownFields protoimpl.UnknownFields - - Repos []string `protobuf:"bytes,1,rep,name=repos,proto3" json:"repos,omitempty"` - Authors []string `protobuf:"bytes,2,rep,name=authors,proto3" json:"authors,omitempty"` + sizeCache protoimpl.SizeCache } func (x *PopulateChangeFiltersResponse) Reset() { *x = PopulateChangeFiltersResponse{} - mi := &file_changes_proto_msgTypes[22] + mi := &file_changes_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1701,7 +2590,7 @@ func (x *PopulateChangeFiltersResponse) String() string { func (*PopulateChangeFiltersResponse) ProtoMessage() {} func (x *PopulateChangeFiltersResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[22] + mi := &file_changes_proto_msgTypes[39] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1714,7 +2603,7 @@ func (x *PopulateChangeFiltersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PopulateChangeFiltersResponse.ProtoReflect.Descriptor instead. func (*PopulateChangeFiltersResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{22} + return file_changes_proto_rawDescGZIP(), []int{39} } func (x *PopulateChangeFiltersResponse) GetRepos() []string { @@ -1732,14 +2621,14 @@ func (x *PopulateChangeFiltersResponse) GetAuthors() []string { } type ListHomeAppsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListHomeAppsRequest) Reset() { *x = ListHomeAppsRequest{} - mi := &file_changes_proto_msgTypes[23] + mi := &file_changes_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1751,7 +2640,7 @@ func (x *ListHomeAppsRequest) String() string { func (*ListHomeAppsRequest) ProtoMessage() {} func (x *ListHomeAppsRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[23] + mi := &file_changes_proto_msgTypes[40] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1764,20 +2653,19 @@ func (x *ListHomeAppsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListHomeAppsRequest.ProtoReflect.Descriptor instead. func (*ListHomeAppsRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{23} + return file_changes_proto_rawDescGZIP(), []int{40} } type ListHomeAppsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Apps []*AppSummary `protobuf:"bytes,1,rep,name=apps,proto3" json:"apps,omitempty"` unknownFields protoimpl.UnknownFields - - Apps []*AppSummary `protobuf:"bytes,1,rep,name=apps,proto3" json:"apps,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListHomeAppsResponse) Reset() { *x = ListHomeAppsResponse{} - mi := &file_changes_proto_msgTypes[24] + mi := &file_changes_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1789,7 +2677,7 @@ func (x *ListHomeAppsResponse) String() string { func (*ListHomeAppsResponse) ProtoMessage() {} func (x *ListHomeAppsResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[24] + mi := &file_changes_proto_msgTypes[41] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1802,7 +2690,7 @@ func (x *ListHomeAppsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListHomeAppsResponse.ProtoReflect.Descriptor instead. func (*ListHomeAppsResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{24} + return file_changes_proto_rawDescGZIP(), []int{41} } func (x *ListHomeAppsResponse) GetApps() []*AppSummary { @@ -1813,21 +2701,20 @@ func (x *ListHomeAppsResponse) GetApps() []*AppSummary { } type ItemDiffSummary struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // A reference to the item that this diff is related to Item *Reference `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` // The staus of the item Status ItemDiffStatus `protobuf:"varint,4,opt,name=status,proto3,enum=changes.ItemDiffStatus" json:"status,omitempty"` // The health of the item currently (as opposed to before the change) - HealthAfter Health `protobuf:"varint,5,opt,name=healthAfter,proto3,enum=Health" json:"healthAfter,omitempty"` + HealthAfter Health `protobuf:"varint,5,opt,name=healthAfter,proto3,enum=Health" json:"healthAfter,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ItemDiffSummary) Reset() { *x = ItemDiffSummary{} - mi := &file_changes_proto_msgTypes[25] + mi := &file_changes_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1839,7 +2726,7 @@ func (x *ItemDiffSummary) String() string { func (*ItemDiffSummary) ProtoMessage() {} func (x *ItemDiffSummary) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[25] + mi := &file_changes_proto_msgTypes[42] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1852,7 +2739,7 @@ func (x *ItemDiffSummary) ProtoReflect() protoreflect.Message { // Deprecated: Use ItemDiffSummary.ProtoReflect.Descriptor instead. func (*ItemDiffSummary) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{25} + return file_changes_proto_rawDescGZIP(), []int{42} } func (x *ItemDiffSummary) GetItem() *Reference { @@ -1877,21 +2764,20 @@ func (x *ItemDiffSummary) GetHealthAfter() Health { } type ItemDiff struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // A reference to the item that this diff is related to Item *Reference `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` // The staus of the item - Status ItemDiffStatus `protobuf:"varint,2,opt,name=status,proto3,enum=changes.ItemDiffStatus" json:"status,omitempty"` - Before *Item `protobuf:"bytes,3,opt,name=before,proto3" json:"before,omitempty"` - After *Item `protobuf:"bytes,4,opt,name=after,proto3" json:"after,omitempty"` + Status ItemDiffStatus `protobuf:"varint,2,opt,name=status,proto3,enum=changes.ItemDiffStatus" json:"status,omitempty"` + Before *Item `protobuf:"bytes,3,opt,name=before,proto3" json:"before,omitempty"` + After *Item `protobuf:"bytes,4,opt,name=after,proto3" json:"after,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ItemDiff) Reset() { *x = ItemDiff{} - mi := &file_changes_proto_msgTypes[26] + mi := &file_changes_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1903,7 +2789,7 @@ func (x *ItemDiff) String() string { func (*ItemDiff) ProtoMessage() {} func (x *ItemDiff) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[26] + mi := &file_changes_proto_msgTypes[43] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1916,7 +2802,7 @@ func (x *ItemDiff) ProtoReflect() protoreflect.Message { // Deprecated: Use ItemDiff.ProtoReflect.Descriptor instead. func (*ItemDiff) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{26} + return file_changes_proto_rawDescGZIP(), []int{43} } func (x *ItemDiff) GetItem() *Reference { @@ -1948,10 +2834,7 @@ func (x *ItemDiff) GetAfter() *Item { } type AppSummary struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // unique id to identify this app UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` // Name of this App @@ -1973,12 +2856,14 @@ type AppSummary struct { // the `CreateSimpleApp` RPC. Url string `protobuf:"bytes,9,opt,name=url,proto3" json:"url,omitempty"` // UUID of the bookmark query that returns all items in this app - BookmarkUUID []byte `protobuf:"bytes,10,opt,name=bookmarkUUID,proto3" json:"bookmarkUUID,omitempty"` + BookmarkUUID []byte `protobuf:"bytes,10,opt,name=bookmarkUUID,proto3" json:"bookmarkUUID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AppSummary) Reset() { *x = AppSummary{} - mi := &file_changes_proto_msgTypes[27] + mi := &file_changes_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1990,7 +2875,7 @@ func (x *AppSummary) String() string { func (*AppSummary) ProtoMessage() {} func (x *AppSummary) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[27] + mi := &file_changes_proto_msgTypes[44] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2003,7 +2888,7 @@ func (x *AppSummary) ProtoReflect() protoreflect.Message { // Deprecated: Use AppSummary.ProtoReflect.Descriptor instead. func (*AppSummary) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{27} + return file_changes_proto_rawDescGZIP(), []int{44} } func (x *AppSummary) GetUUID() []byte { @@ -2071,19 +2956,18 @@ func (x *AppSummary) GetBookmarkUUID() []byte { // a complete App with machine-supplied and user-supplied values type App struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // machine-generated metadata of this app Metadata *AppMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` // user-supplied properties of this app - Properties *AppProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` + Properties *AppProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *App) Reset() { *x = App{} - mi := &file_changes_proto_msgTypes[28] + mi := &file_changes_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2095,7 +2979,7 @@ func (x *App) String() string { func (*App) ProtoMessage() {} func (x *App) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[28] + mi := &file_changes_proto_msgTypes[45] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2108,7 +2992,7 @@ func (x *App) ProtoReflect() protoreflect.Message { // Deprecated: Use App.ProtoReflect.Descriptor instead. func (*App) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{28} + return file_changes_proto_rawDescGZIP(), []int{45} } func (x *App) GetMetadata() *AppMetadata { @@ -2127,10 +3011,7 @@ func (x *App) GetProperties() *AppProperties { // machine-generated metadata of this app type AppMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // unique id to identify this app UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` // timestamp when this app was created @@ -2149,12 +3030,14 @@ type AppMetadata struct { CreatorName string `protobuf:"bytes,7,opt,name=creatorName,proto3" json:"creatorName,omitempty"` // the url for this app. This will only be set if the app was created using // the `CreateSimpleApp` RPC. - Url string `protobuf:"bytes,9,opt,name=url,proto3" json:"url,omitempty"` + Url string `protobuf:"bytes,9,opt,name=url,proto3" json:"url,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AppMetadata) Reset() { *x = AppMetadata{} - mi := &file_changes_proto_msgTypes[29] + mi := &file_changes_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2166,7 +3049,7 @@ func (x *AppMetadata) String() string { func (*AppMetadata) ProtoMessage() {} func (x *AppMetadata) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[29] + mi := &file_changes_proto_msgTypes[46] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2179,7 +3062,7 @@ func (x *AppMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use AppMetadata.ProtoReflect.Descriptor instead. func (*AppMetadata) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{29} + return file_changes_proto_rawDescGZIP(), []int{46} } func (x *AppMetadata) GetUUID() []byte { @@ -2247,10 +3130,7 @@ func (x *AppMetadata) GetUrl() string { // user-supplied properties of this app type AppProperties struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Name of this App // Example: "Contoso Manager" Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` @@ -2259,12 +3139,14 @@ type AppProperties struct { // on 555-CM LEAD for more details." Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` // UUID of the bookmark query that returns all items in this app - BookmarkUUID []byte `protobuf:"bytes,3,opt,name=bookmarkUUID,proto3" json:"bookmarkUUID,omitempty"` + BookmarkUUID []byte `protobuf:"bytes,3,opt,name=bookmarkUUID,proto3" json:"bookmarkUUID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AppProperties) Reset() { *x = AppProperties{} - mi := &file_changes_proto_msgTypes[30] + mi := &file_changes_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2276,7 +3158,7 @@ func (x *AppProperties) String() string { func (*AppProperties) ProtoMessage() {} func (x *AppProperties) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[30] + mi := &file_changes_proto_msgTypes[47] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2289,7 +3171,7 @@ func (x *AppProperties) ProtoReflect() protoreflect.Message { // Deprecated: Use AppProperties.ProtoReflect.Descriptor instead. func (*AppProperties) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{30} + return file_changes_proto_rawDescGZIP(), []int{47} } func (x *AppProperties) GetName() string { @@ -2315,14 +3197,14 @@ func (x *AppProperties) GetBookmarkUUID() []byte { // list all apps type ListAppsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListAppsRequest) Reset() { *x = ListAppsRequest{} - mi := &file_changes_proto_msgTypes[31] + mi := &file_changes_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2334,7 +3216,7 @@ func (x *ListAppsRequest) String() string { func (*ListAppsRequest) ProtoMessage() {} func (x *ListAppsRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[31] + mi := &file_changes_proto_msgTypes[48] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2347,20 +3229,19 @@ func (x *ListAppsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListAppsRequest.ProtoReflect.Descriptor instead. func (*ListAppsRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{31} + return file_changes_proto_rawDescGZIP(), []int{48} } type ListAppsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Apps []*App `protobuf:"bytes,1,rep,name=apps,proto3" json:"apps,omitempty"` unknownFields protoimpl.UnknownFields - - Apps []*App `protobuf:"bytes,1,rep,name=apps,proto3" json:"apps,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListAppsResponse) Reset() { *x = ListAppsResponse{} - mi := &file_changes_proto_msgTypes[32] + mi := &file_changes_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2372,7 +3253,7 @@ func (x *ListAppsResponse) String() string { func (*ListAppsResponse) ProtoMessage() {} func (x *ListAppsResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[32] + mi := &file_changes_proto_msgTypes[49] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2385,7 +3266,7 @@ func (x *ListAppsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListAppsResponse.ProtoReflect.Descriptor instead. func (*ListAppsResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{32} + return file_changes_proto_rawDescGZIP(), []int{49} } func (x *ListAppsResponse) GetApps() []*App { @@ -2397,16 +3278,15 @@ func (x *ListAppsResponse) GetApps() []*App { // create a new app type CreateAppRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Properties *AppProperties `protobuf:"bytes,1,opt,name=properties,proto3" json:"properties,omitempty"` unknownFields protoimpl.UnknownFields - - Properties *AppProperties `protobuf:"bytes,1,opt,name=properties,proto3" json:"properties,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CreateAppRequest) Reset() { *x = CreateAppRequest{} - mi := &file_changes_proto_msgTypes[33] + mi := &file_changes_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2418,7 +3298,7 @@ func (x *CreateAppRequest) String() string { func (*CreateAppRequest) ProtoMessage() {} func (x *CreateAppRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[33] + mi := &file_changes_proto_msgTypes[50] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2431,7 +3311,7 @@ func (x *CreateAppRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateAppRequest.ProtoReflect.Descriptor instead. func (*CreateAppRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{33} + return file_changes_proto_rawDescGZIP(), []int{50} } func (x *CreateAppRequest) GetProperties() *AppProperties { @@ -2442,16 +3322,15 @@ func (x *CreateAppRequest) GetProperties() *AppProperties { } type CreateAppResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + App *App `protobuf:"bytes,1,opt,name=app,proto3" json:"app,omitempty"` unknownFields protoimpl.UnknownFields - - App *App `protobuf:"bytes,1,opt,name=app,proto3" json:"app,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CreateAppResponse) Reset() { *x = CreateAppResponse{} - mi := &file_changes_proto_msgTypes[34] + mi := &file_changes_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2463,7 +3342,7 @@ func (x *CreateAppResponse) String() string { func (*CreateAppResponse) ProtoMessage() {} func (x *CreateAppResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[34] + mi := &file_changes_proto_msgTypes[51] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2476,7 +3355,7 @@ func (x *CreateAppResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateAppResponse.ProtoReflect.Descriptor instead. func (*CreateAppResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{34} + return file_changes_proto_rawDescGZIP(), []int{51} } func (x *CreateAppResponse) GetApp() *App { @@ -2487,21 +3366,20 @@ func (x *CreateAppResponse) GetApp() *App { } type CreateSimpleAppRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The name of the app Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // The description of the app Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` // The URL of the app - Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"` + Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CreateSimpleAppRequest) Reset() { *x = CreateSimpleAppRequest{} - mi := &file_changes_proto_msgTypes[35] + mi := &file_changes_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2513,7 +3391,7 @@ func (x *CreateSimpleAppRequest) String() string { func (*CreateSimpleAppRequest) ProtoMessage() {} func (x *CreateSimpleAppRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[35] + mi := &file_changes_proto_msgTypes[52] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2526,7 +3404,7 @@ func (x *CreateSimpleAppRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateSimpleAppRequest.ProtoReflect.Descriptor instead. func (*CreateSimpleAppRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{35} + return file_changes_proto_rawDescGZIP(), []int{52} } func (x *CreateSimpleAppRequest) GetName() string { @@ -2551,16 +3429,15 @@ func (x *CreateSimpleAppRequest) GetUrl() string { } type CreateSimpleAppResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + App *App `protobuf:"bytes,1,opt,name=app,proto3" json:"app,omitempty"` unknownFields protoimpl.UnknownFields - - App *App `protobuf:"bytes,1,opt,name=app,proto3" json:"app,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CreateSimpleAppResponse) Reset() { *x = CreateSimpleAppResponse{} - mi := &file_changes_proto_msgTypes[36] + mi := &file_changes_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2572,7 +3449,7 @@ func (x *CreateSimpleAppResponse) String() string { func (*CreateSimpleAppResponse) ProtoMessage() {} func (x *CreateSimpleAppResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[36] + mi := &file_changes_proto_msgTypes[53] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2585,7 +3462,7 @@ func (x *CreateSimpleAppResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateSimpleAppResponse.ProtoReflect.Descriptor instead. func (*CreateSimpleAppResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{36} + return file_changes_proto_rawDescGZIP(), []int{53} } func (x *CreateSimpleAppResponse) GetApp() *App { @@ -2597,16 +3474,15 @@ func (x *CreateSimpleAppResponse) GetApp() *App { // get the details of an existing app type GetAppRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` unknownFields protoimpl.UnknownFields - - UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetAppRequest) Reset() { *x = GetAppRequest{} - mi := &file_changes_proto_msgTypes[37] + mi := &file_changes_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2618,7 +3494,7 @@ func (x *GetAppRequest) String() string { func (*GetAppRequest) ProtoMessage() {} func (x *GetAppRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[37] + mi := &file_changes_proto_msgTypes[54] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2631,7 +3507,7 @@ func (x *GetAppRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAppRequest.ProtoReflect.Descriptor instead. func (*GetAppRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{37} + return file_changes_proto_rawDescGZIP(), []int{54} } func (x *GetAppRequest) GetUUID() []byte { @@ -2642,16 +3518,15 @@ func (x *GetAppRequest) GetUUID() []byte { } type GetAppResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + App *App `protobuf:"bytes,1,opt,name=app,proto3" json:"app,omitempty"` unknownFields protoimpl.UnknownFields - - App *App `protobuf:"bytes,1,opt,name=app,proto3" json:"app,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetAppResponse) Reset() { *x = GetAppResponse{} - mi := &file_changes_proto_msgTypes[38] + mi := &file_changes_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2663,7 +3538,7 @@ func (x *GetAppResponse) String() string { func (*GetAppResponse) ProtoMessage() {} func (x *GetAppResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[38] + mi := &file_changes_proto_msgTypes[55] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2676,7 +3551,7 @@ func (x *GetAppResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAppResponse.ProtoReflect.Descriptor instead. func (*GetAppResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{38} + return file_changes_proto_rawDescGZIP(), []int{55} } func (x *GetAppResponse) GetApp() *App { @@ -2688,17 +3563,16 @@ func (x *GetAppResponse) GetApp() *App { // update an expsting app type UpdateAppRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + Properties *AppProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` unknownFields protoimpl.UnknownFields - - UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` - Properties *AppProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UpdateAppRequest) Reset() { *x = UpdateAppRequest{} - mi := &file_changes_proto_msgTypes[39] + mi := &file_changes_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2710,7 +3584,7 @@ func (x *UpdateAppRequest) String() string { func (*UpdateAppRequest) ProtoMessage() {} func (x *UpdateAppRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[39] + mi := &file_changes_proto_msgTypes[56] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2723,7 +3597,7 @@ func (x *UpdateAppRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateAppRequest.ProtoReflect.Descriptor instead. func (*UpdateAppRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{39} + return file_changes_proto_rawDescGZIP(), []int{56} } func (x *UpdateAppRequest) GetUUID() []byte { @@ -2741,16 +3615,15 @@ func (x *UpdateAppRequest) GetProperties() *AppProperties { } type UpdateAppResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + App *App `protobuf:"bytes,1,opt,name=app,proto3" json:"app,omitempty"` unknownFields protoimpl.UnknownFields - - App *App `protobuf:"bytes,1,opt,name=app,proto3" json:"app,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UpdateAppResponse) Reset() { *x = UpdateAppResponse{} - mi := &file_changes_proto_msgTypes[40] + mi := &file_changes_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2762,7 +3635,7 @@ func (x *UpdateAppResponse) String() string { func (*UpdateAppResponse) ProtoMessage() {} func (x *UpdateAppResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[40] + mi := &file_changes_proto_msgTypes[57] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2775,7 +3648,7 @@ func (x *UpdateAppResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateAppResponse.ProtoReflect.Descriptor instead. func (*UpdateAppResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{40} + return file_changes_proto_rawDescGZIP(), []int{57} } func (x *UpdateAppResponse) GetApp() *App { @@ -2787,16 +3660,15 @@ func (x *UpdateAppResponse) GetApp() *App { // delete an app type DeleteAppRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` unknownFields protoimpl.UnknownFields - - UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + sizeCache protoimpl.SizeCache } func (x *DeleteAppRequest) Reset() { *x = DeleteAppRequest{} - mi := &file_changes_proto_msgTypes[41] + mi := &file_changes_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2808,7 +3680,7 @@ func (x *DeleteAppRequest) String() string { func (*DeleteAppRequest) ProtoMessage() {} func (x *DeleteAppRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[41] + mi := &file_changes_proto_msgTypes[58] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2821,7 +3693,7 @@ func (x *DeleteAppRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteAppRequest.ProtoReflect.Descriptor instead. func (*DeleteAppRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{41} + return file_changes_proto_rawDescGZIP(), []int{58} } func (x *DeleteAppRequest) GetUUID() []byte { @@ -2832,14 +3704,14 @@ func (x *DeleteAppRequest) GetUUID() []byte { } type DeleteAppResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DeleteAppResponse) Reset() { *x = DeleteAppResponse{} - mi := &file_changes_proto_msgTypes[42] + mi := &file_changes_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2851,7 +3723,7 @@ func (x *DeleteAppResponse) String() string { func (*DeleteAppResponse) ProtoMessage() {} func (x *DeleteAppResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[42] + mi := &file_changes_proto_msgTypes[59] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2864,22 +3736,21 @@ func (x *DeleteAppResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteAppResponse.ProtoReflect.Descriptor instead. func (*DeleteAppResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{42} + return file_changes_proto_rawDescGZIP(), []int{59} } // list all changes for an app type ListAppChangesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The UUID of the app to list changes for - UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListAppChangesRequest) Reset() { *x = ListAppChangesRequest{} - mi := &file_changes_proto_msgTypes[43] + mi := &file_changes_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2891,7 +3762,7 @@ func (x *ListAppChangesRequest) String() string { func (*ListAppChangesRequest) ProtoMessage() {} func (x *ListAppChangesRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[43] + mi := &file_changes_proto_msgTypes[60] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2904,40 +3775,215 @@ func (x *ListAppChangesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListAppChangesRequest.ProtoReflect.Descriptor instead. func (*ListAppChangesRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{43} + return file_changes_proto_rawDescGZIP(), []int{60} } func (x *ListAppChangesRequest) GetUUID() []byte { if x != nil { return x.UUID } - return nil + return nil +} + +type ListAppChangesResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + // The list of changes related to an app + Changes []*Change `protobuf:"bytes,1,rep,name=changes,proto3" json:"changes,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListAppChangesResponse) Reset() { + *x = ListAppChangesResponse{} + mi := &file_changes_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListAppChangesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListAppChangesResponse) ProtoMessage() {} + +func (x *ListAppChangesResponse) ProtoReflect() protoreflect.Message { + mi := &file_changes_proto_msgTypes[61] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListAppChangesResponse.ProtoReflect.Descriptor instead. +func (*ListAppChangesResponse) Descriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{61} +} + +func (x *ListAppChangesResponse) GetChanges() []*Change { + if x != nil { + return x.Changes + } + return nil +} + +type TagValue struct { + state protoimpl.MessageState `protogen:"open.v1"` + // The value of the tag, this can be user-defined or auto-generated + // + // Types that are valid to be assigned to Value: + // + // *TagValue_UserTagValue + // *TagValue_AutoTagValue + Value isTagValue_Value `protobuf_oneof:"value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *TagValue) Reset() { + *x = TagValue{} + mi := &file_changes_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TagValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TagValue) ProtoMessage() {} + +func (x *TagValue) ProtoReflect() protoreflect.Message { + mi := &file_changes_proto_msgTypes[62] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TagValue.ProtoReflect.Descriptor instead. +func (*TagValue) Descriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{62} +} + +func (x *TagValue) GetValue() isTagValue_Value { + if x != nil { + return x.Value + } + return nil +} + +func (x *TagValue) GetUserTagValue() *UserTagValue { + if x != nil { + if x, ok := x.Value.(*TagValue_UserTagValue); ok { + return x.UserTagValue + } + } + return nil +} + +func (x *TagValue) GetAutoTagValue() *AutoTagValue { + if x != nil { + if x, ok := x.Value.(*TagValue_AutoTagValue); ok { + return x.AutoTagValue + } + } + return nil +} + +type isTagValue_Value interface { + isTagValue_Value() +} + +type TagValue_UserTagValue struct { + UserTagValue *UserTagValue `protobuf:"bytes,1,opt,name=userTagValue,proto3,oneof"` +} + +type TagValue_AutoTagValue struct { + AutoTagValue *AutoTagValue `protobuf:"bytes,2,opt,name=autoTagValue,proto3,oneof"` +} + +func (*TagValue_UserTagValue) isTagValue_Value() {} + +func (*TagValue_AutoTagValue) isTagValue_Value() {} + +type UserTagValue struct { + state protoimpl.MessageState `protogen:"open.v1"` + // The value of the tag that was set by the user + Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UserTagValue) Reset() { + *x = UserTagValue{} + mi := &file_changes_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UserTagValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserTagValue) ProtoMessage() {} + +func (x *UserTagValue) ProtoReflect() protoreflect.Message { + mi := &file_changes_proto_msgTypes[63] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserTagValue.ProtoReflect.Descriptor instead. +func (*UserTagValue) Descriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{63} +} + +func (x *UserTagValue) GetValue() string { + if x != nil { + return x.Value + } + return "" } -type ListAppChangesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache +type AutoTagValue struct { + state protoimpl.MessageState `protogen:"open.v1"` + // The value of the tag + Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + // Reasoning for this decision + Reasoning string `protobuf:"bytes,2,opt,name=reasoning,proto3" json:"reasoning,omitempty"` unknownFields protoimpl.UnknownFields - - // The list of changes related to an app - Changes []*Change `protobuf:"bytes,1,rep,name=changes,proto3" json:"changes,omitempty"` + sizeCache protoimpl.SizeCache } -func (x *ListAppChangesResponse) Reset() { - *x = ListAppChangesResponse{} - mi := &file_changes_proto_msgTypes[44] +func (x *AutoTagValue) Reset() { + *x = AutoTagValue{} + mi := &file_changes_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ListAppChangesResponse) String() string { +func (x *AutoTagValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListAppChangesResponse) ProtoMessage() {} +func (*AutoTagValue) ProtoMessage() {} -func (x *ListAppChangesResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[44] +func (x *AutoTagValue) ProtoReflect() protoreflect.Message { + mi := &file_changes_proto_msgTypes[64] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2948,24 +3994,28 @@ func (x *ListAppChangesResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListAppChangesResponse.ProtoReflect.Descriptor instead. -func (*ListAppChangesResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{44} +// Deprecated: Use AutoTagValue.ProtoReflect.Descriptor instead. +func (*AutoTagValue) Descriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{64} } -func (x *ListAppChangesResponse) GetChanges() []*Change { +func (x *AutoTagValue) GetValue() string { if x != nil { - return x.Changes + return x.Value } - return nil + return "" +} + +func (x *AutoTagValue) GetReasoning() string { + if x != nil { + return x.Reasoning + } + return "" } // A smaller summary of a change type ChangeSummary struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // unique id to identify this change UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` // Short title for this change. @@ -2998,15 +4048,25 @@ type ChangeSummary struct { // Quick description of the change. // Example: "upgrade of the database to get access to the new contoso management processor" Description string `protobuf:"bytes,14,opt,name=description,proto3" json:"description,omitempty"` - // Repo information; can be an empty string. CLI attempts auto-population, but users can override. Not necessarily a URL. The UI will be responsible for any formatting/shortnening/sprucing up should it be required. + // Repo information; can be an empty string. CLI attempts auto-population, but + // users can override. Not necessarily a URL. The UI will be responsible for + // any formatting/shortening/sprucing up should it be required. Repo string `protobuf:"bytes,16,opt,name=repo,proto3" json:"repo,omitempty"` - // User-defined tags associated with this change, will be populated via the CLI and not the UI. - Tags map[string]string `protobuf:"bytes,17,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Tags that were set bu the user when the tag was created + // + // Deprecated: Use enrichedTags instead + // + // Deprecated: Marked as deprecated in changes.proto. + Tags map[string]string `protobuf:"bytes,17,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // Tags associated with this change + EnrichedTags map[string]*TagValue `protobuf:"bytes,18,rep,name=enrichedTags,proto3" json:"enrichedTags,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ChangeSummary) Reset() { *x = ChangeSummary{} - mi := &file_changes_proto_msgTypes[45] + mi := &file_changes_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3018,7 +4078,7 @@ func (x *ChangeSummary) String() string { func (*ChangeSummary) ProtoMessage() {} func (x *ChangeSummary) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[45] + mi := &file_changes_proto_msgTypes[65] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3031,7 +4091,7 @@ func (x *ChangeSummary) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeSummary.ProtoReflect.Descriptor instead. func (*ChangeSummary) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{45} + return file_changes_proto_rawDescGZIP(), []int{65} } func (x *ChangeSummary) GetUUID() []byte { @@ -3139,6 +4199,7 @@ func (x *ChangeSummary) GetRepo() string { return "" } +// Deprecated: Marked as deprecated in changes.proto. func (x *ChangeSummary) GetTags() map[string]string { if x != nil { return x.Tags @@ -3146,21 +4207,27 @@ func (x *ChangeSummary) GetTags() map[string]string { return nil } +func (x *ChangeSummary) GetEnrichedTags() map[string]*TagValue { + if x != nil { + return x.EnrichedTags + } + return nil +} + // a complete Change with machine-supplied and user-supplied values type Change struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // machine-generated metadata of this change Metadata *ChangeMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` // user-supplied properties of this change - Properties *ChangeProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` + Properties *ChangeProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Change) Reset() { *x = Change{} - mi := &file_changes_proto_msgTypes[46] + mi := &file_changes_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3172,7 +4239,7 @@ func (x *Change) String() string { func (*Change) ProtoMessage() {} func (x *Change) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[46] + mi := &file_changes_proto_msgTypes[66] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3185,7 +4252,7 @@ func (x *Change) ProtoReflect() protoreflect.Message { // Deprecated: Use Change.ProtoReflect.Descriptor instead. func (*Change) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{46} + return file_changes_proto_rawDescGZIP(), []int{66} } func (x *Change) GetMetadata() *ChangeMetadata { @@ -3204,10 +4271,7 @@ func (x *Change) GetProperties() *ChangeProperties { // machine-generated metadata of this change type ChangeMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // unique id to identify this change UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` // timestamp when this change was created @@ -3243,11 +4307,13 @@ type ChangeMetadata struct { WarningHealthChange *ChangeMetadata_HealthChange `protobuf:"bytes,14,opt,name=WarningHealthChange,proto3" json:"WarningHealthChange,omitempty"` ErrorHealthChange *ChangeMetadata_HealthChange `protobuf:"bytes,15,opt,name=ErrorHealthChange,proto3" json:"ErrorHealthChange,omitempty"` PendingHealthChange *ChangeMetadata_HealthChange `protobuf:"bytes,16,opt,name=PendingHealthChange,proto3" json:"PendingHealthChange,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ChangeMetadata) Reset() { *x = ChangeMetadata{} - mi := &file_changes_proto_msgTypes[47] + mi := &file_changes_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3259,7 +4325,7 @@ func (x *ChangeMetadata) String() string { func (*ChangeMetadata) ProtoMessage() {} func (x *ChangeMetadata) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[47] + mi := &file_changes_proto_msgTypes[67] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3272,7 +4338,7 @@ func (x *ChangeMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeMetadata.ProtoReflect.Descriptor instead. func (*ChangeMetadata) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{47} + return file_changes_proto_rawDescGZIP(), []int{67} } func (x *ChangeMetadata) GetUUID() []byte { @@ -3410,10 +4476,7 @@ func (x *ChangeMetadata) GetPendingHealthChange() *ChangeMetadata_HealthChange { // user-supplied properties of this change type ChangeProperties struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Short title for this change. // Example: "database upgrade" Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"` @@ -3451,13 +4514,24 @@ type ChangeProperties struct { CodeChanges string `protobuf:"bytes,14,opt,name=codeChanges,proto3" json:"codeChanges,omitempty"` // Repo information; can be an empty string. CLI attempts auto-population, but users can override. Not necessarily a URL. The UI will be responsible for any formatting/shortnening/sprucing up should it be required. Repo string `protobuf:"bytes,15,opt,name=repo,proto3" json:"repo,omitempty"` - // User-defined tags associated with this change, will be populated via the CLI and not the UI. - Tags map[string]string `protobuf:"bytes,16,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Tags that were set bu the user when the tag was created + // + // Deprecated: Use enrichedTags instead + // + // Deprecated: Marked as deprecated in changes.proto. + Tags map[string]string `protobuf:"bytes,16,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // Tags associated with this change + EnrichedTags map[string]*TagValue `protobuf:"bytes,18,rep,name=enrichedTags,proto3" json:"enrichedTags,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // Tags that were skipped by auto-tagging rules + SkippedAutoTags map[string]*AutoTagValue `protobuf:"bytes,19,rep,name=skippedAutoTags,proto3" json:"skippedAutoTags,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + AutoTaggingRuleSource ChangeProperties_AutoTaggingRuleSource `protobuf:"varint,20,opt,name=autoTaggingRuleSource,proto3,enum=changes.ChangeProperties_AutoTaggingRuleSource" json:"autoTaggingRuleSource,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ChangeProperties) Reset() { *x = ChangeProperties{} - mi := &file_changes_proto_msgTypes[48] + mi := &file_changes_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3469,7 +4543,7 @@ func (x *ChangeProperties) String() string { func (*ChangeProperties) ProtoMessage() {} func (x *ChangeProperties) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[48] + mi := &file_changes_proto_msgTypes[68] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3482,7 +4556,7 @@ func (x *ChangeProperties) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeProperties.ProtoReflect.Descriptor instead. func (*ChangeProperties) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{48} + return file_changes_proto_rawDescGZIP(), []int{68} } func (x *ChangeProperties) GetTitle() string { @@ -3583,6 +4657,7 @@ func (x *ChangeProperties) GetRepo() string { return "" } +// Deprecated: Marked as deprecated in changes.proto. func (x *ChangeProperties) GetTags() map[string]string { if x != nil { return x.Tags @@ -3590,16 +4665,37 @@ func (x *ChangeProperties) GetTags() map[string]string { return nil } +func (x *ChangeProperties) GetEnrichedTags() map[string]*TagValue { + if x != nil { + return x.EnrichedTags + } + return nil +} + +func (x *ChangeProperties) GetSkippedAutoTags() map[string]*AutoTagValue { + if x != nil { + return x.SkippedAutoTags + } + return nil +} + +func (x *ChangeProperties) GetAutoTaggingRuleSource() ChangeProperties_AutoTaggingRuleSource { + if x != nil { + return x.AutoTaggingRuleSource + } + return ChangeProperties_AUTO_TAGGING_RULE_SOURCE_UNSPECIFIED +} + // list all changes type ListChangesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListChangesRequest) Reset() { *x = ListChangesRequest{} - mi := &file_changes_proto_msgTypes[49] + mi := &file_changes_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3611,7 +4707,7 @@ func (x *ListChangesRequest) String() string { func (*ListChangesRequest) ProtoMessage() {} func (x *ListChangesRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[49] + mi := &file_changes_proto_msgTypes[69] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3624,20 +4720,19 @@ func (x *ListChangesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListChangesRequest.ProtoReflect.Descriptor instead. func (*ListChangesRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{49} + return file_changes_proto_rawDescGZIP(), []int{69} } type ListChangesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Changes []*Change `protobuf:"bytes,1,rep,name=changes,proto3" json:"changes,omitempty"` unknownFields protoimpl.UnknownFields - - Changes []*Change `protobuf:"bytes,1,rep,name=changes,proto3" json:"changes,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListChangesResponse) Reset() { *x = ListChangesResponse{} - mi := &file_changes_proto_msgTypes[50] + mi := &file_changes_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3649,7 +4744,7 @@ func (x *ListChangesResponse) String() string { func (*ListChangesResponse) ProtoMessage() {} func (x *ListChangesResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[50] + mi := &file_changes_proto_msgTypes[70] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3662,7 +4757,7 @@ func (x *ListChangesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListChangesResponse.ProtoReflect.Descriptor instead. func (*ListChangesResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{50} + return file_changes_proto_rawDescGZIP(), []int{70} } func (x *ListChangesResponse) GetChanges() []*Change { @@ -3674,16 +4769,15 @@ func (x *ListChangesResponse) GetChanges() []*Change { // list all changes in a specific status type ListChangesByStatusRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Status ChangeStatus `protobuf:"varint,1,opt,name=status,proto3,enum=changes.ChangeStatus" json:"status,omitempty"` unknownFields protoimpl.UnknownFields - - Status ChangeStatus `protobuf:"varint,1,opt,name=status,proto3,enum=changes.ChangeStatus" json:"status,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListChangesByStatusRequest) Reset() { *x = ListChangesByStatusRequest{} - mi := &file_changes_proto_msgTypes[51] + mi := &file_changes_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3695,7 +4789,7 @@ func (x *ListChangesByStatusRequest) String() string { func (*ListChangesByStatusRequest) ProtoMessage() {} func (x *ListChangesByStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[51] + mi := &file_changes_proto_msgTypes[71] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3708,7 +4802,7 @@ func (x *ListChangesByStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListChangesByStatusRequest.ProtoReflect.Descriptor instead. func (*ListChangesByStatusRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{51} + return file_changes_proto_rawDescGZIP(), []int{71} } func (x *ListChangesByStatusRequest) GetStatus() ChangeStatus { @@ -3719,16 +4813,15 @@ func (x *ListChangesByStatusRequest) GetStatus() ChangeStatus { } type ListChangesByStatusResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Changes []*Change `protobuf:"bytes,1,rep,name=changes,proto3" json:"changes,omitempty"` unknownFields protoimpl.UnknownFields - - Changes []*Change `protobuf:"bytes,1,rep,name=changes,proto3" json:"changes,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListChangesByStatusResponse) Reset() { *x = ListChangesByStatusResponse{} - mi := &file_changes_proto_msgTypes[52] + mi := &file_changes_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3740,7 +4833,7 @@ func (x *ListChangesByStatusResponse) String() string { func (*ListChangesByStatusResponse) ProtoMessage() {} func (x *ListChangesByStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[52] + mi := &file_changes_proto_msgTypes[72] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3753,7 +4846,7 @@ func (x *ListChangesByStatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListChangesByStatusResponse.ProtoReflect.Descriptor instead. func (*ListChangesByStatusResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{52} + return file_changes_proto_rawDescGZIP(), []int{72} } func (x *ListChangesByStatusResponse) GetChanges() []*Change { @@ -3765,16 +4858,15 @@ func (x *ListChangesByStatusResponse) GetChanges() []*Change { // create a new change type CreateChangeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Properties *ChangeProperties `protobuf:"bytes,1,opt,name=properties,proto3" json:"properties,omitempty"` unknownFields protoimpl.UnknownFields - - Properties *ChangeProperties `protobuf:"bytes,1,opt,name=properties,proto3" json:"properties,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CreateChangeRequest) Reset() { *x = CreateChangeRequest{} - mi := &file_changes_proto_msgTypes[53] + mi := &file_changes_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3786,7 +4878,7 @@ func (x *CreateChangeRequest) String() string { func (*CreateChangeRequest) ProtoMessage() {} func (x *CreateChangeRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[53] + mi := &file_changes_proto_msgTypes[73] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3799,7 +4891,7 @@ func (x *CreateChangeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateChangeRequest.ProtoReflect.Descriptor instead. func (*CreateChangeRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{53} + return file_changes_proto_rawDescGZIP(), []int{73} } func (x *CreateChangeRequest) GetProperties() *ChangeProperties { @@ -3810,16 +4902,15 @@ func (x *CreateChangeRequest) GetProperties() *ChangeProperties { } type CreateChangeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Change *Change `protobuf:"bytes,1,opt,name=change,proto3" json:"change,omitempty"` unknownFields protoimpl.UnknownFields - - Change *Change `protobuf:"bytes,1,opt,name=change,proto3" json:"change,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CreateChangeResponse) Reset() { *x = CreateChangeResponse{} - mi := &file_changes_proto_msgTypes[54] + mi := &file_changes_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3831,7 +4922,7 @@ func (x *CreateChangeResponse) String() string { func (*CreateChangeResponse) ProtoMessage() {} func (x *CreateChangeResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[54] + mi := &file_changes_proto_msgTypes[74] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3844,7 +4935,7 @@ func (x *CreateChangeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateChangeResponse.ProtoReflect.Descriptor instead. func (*CreateChangeResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{54} + return file_changes_proto_rawDescGZIP(), []int{74} } func (x *CreateChangeResponse) GetChange() *Change { @@ -3856,21 +4947,20 @@ func (x *CreateChangeResponse) GetChange() *Change { // get the details of a specific change type GetChangeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` // Return a slimmed down version of the change. This will exclude the // following data: // * `rawPlan`: The entire Terraform plan output // * `codeChanges`: The code changes that created this change - Slim bool `protobuf:"varint,2,opt,name=slim,proto3" json:"slim,omitempty"` + Slim bool `protobuf:"varint,2,opt,name=slim,proto3" json:"slim,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetChangeRequest) Reset() { *x = GetChangeRequest{} - mi := &file_changes_proto_msgTypes[55] + mi := &file_changes_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3882,7 +4972,7 @@ func (x *GetChangeRequest) String() string { func (*GetChangeRequest) ProtoMessage() {} func (x *GetChangeRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[55] + mi := &file_changes_proto_msgTypes[75] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3895,7 +4985,7 @@ func (x *GetChangeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChangeRequest.ProtoReflect.Descriptor instead. func (*GetChangeRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{55} + return file_changes_proto_rawDescGZIP(), []int{75} } func (x *GetChangeRequest) GetUUID() []byte { @@ -3913,16 +5003,15 @@ func (x *GetChangeRequest) GetSlim() bool { } type GetChangeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Change *Change `protobuf:"bytes,1,opt,name=change,proto3" json:"change,omitempty"` unknownFields protoimpl.UnknownFields - - Change *Change `protobuf:"bytes,1,opt,name=change,proto3" json:"change,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetChangeResponse) Reset() { *x = GetChangeResponse{} - mi := &file_changes_proto_msgTypes[56] + mi := &file_changes_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3934,7 +5023,7 @@ func (x *GetChangeResponse) String() string { func (*GetChangeResponse) ProtoMessage() {} func (x *GetChangeResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[56] + mi := &file_changes_proto_msgTypes[76] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3947,7 +5036,7 @@ func (x *GetChangeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChangeResponse.ProtoReflect.Descriptor instead. func (*GetChangeResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{56} + return file_changes_proto_rawDescGZIP(), []int{76} } func (x *GetChangeResponse) GetChange() *Change { @@ -3959,16 +5048,15 @@ func (x *GetChangeResponse) GetChange() *Change { // get the details of a specific change type GetChangeRisksRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` unknownFields protoimpl.UnknownFields - - UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetChangeRisksRequest) Reset() { *x = GetChangeRisksRequest{} - mi := &file_changes_proto_msgTypes[57] + mi := &file_changes_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3980,7 +5068,7 @@ func (x *GetChangeRisksRequest) String() string { func (*GetChangeRisksRequest) ProtoMessage() {} func (x *GetChangeRisksRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[57] + mi := &file_changes_proto_msgTypes[77] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3993,7 +5081,7 @@ func (x *GetChangeRisksRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChangeRisksRequest.ProtoReflect.Descriptor instead. func (*GetChangeRisksRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{57} + return file_changes_proto_rawDescGZIP(), []int{77} } func (x *GetChangeRisksRequest) GetUUID() []byte { @@ -4004,12 +5092,9 @@ func (x *GetChangeRisksRequest) GetUUID() []byte { } type ChangeRiskMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The status of the risk calculation - RiskCalculationStatus *RiskCalculationStatus `protobuf:"bytes,1,opt,name=riskCalculationStatus,proto3" json:"riskCalculationStatus,omitempty"` + ChangeAnalysisStatus *ChangeAnalysisStatus `protobuf:"bytes,1,opt,name=changeAnalysisStatus,proto3" json:"changeAnalysisStatus,omitempty"` // The risks that are related to this change Risks []*Risk `protobuf:"bytes,5,rep,name=risks,proto3" json:"risks,omitempty"` // The number of low risks in this change @@ -4017,12 +5102,14 @@ type ChangeRiskMetadata struct { // The number of medium risks in this change NumMediumRisk int32 `protobuf:"varint,7,opt,name=numMediumRisk,proto3" json:"numMediumRisk,omitempty"` // The number of high risks in this change - NumHighRisk int32 `protobuf:"varint,8,opt,name=numHighRisk,proto3" json:"numHighRisk,omitempty"` + NumHighRisk int32 `protobuf:"varint,8,opt,name=numHighRisk,proto3" json:"numHighRisk,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ChangeRiskMetadata) Reset() { *x = ChangeRiskMetadata{} - mi := &file_changes_proto_msgTypes[58] + mi := &file_changes_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4034,7 +5121,7 @@ func (x *ChangeRiskMetadata) String() string { func (*ChangeRiskMetadata) ProtoMessage() {} func (x *ChangeRiskMetadata) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[58] + mi := &file_changes_proto_msgTypes[78] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4047,12 +5134,12 @@ func (x *ChangeRiskMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeRiskMetadata.ProtoReflect.Descriptor instead. func (*ChangeRiskMetadata) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{58} + return file_changes_proto_rawDescGZIP(), []int{78} } -func (x *ChangeRiskMetadata) GetRiskCalculationStatus() *RiskCalculationStatus { +func (x *ChangeRiskMetadata) GetChangeAnalysisStatus() *ChangeAnalysisStatus { if x != nil { - return x.RiskCalculationStatus + return x.ChangeAnalysisStatus } return nil } @@ -4086,16 +5173,15 @@ func (x *ChangeRiskMetadata) GetNumHighRisk() int32 { } type GetChangeRisksResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ChangeRiskMetadata *ChangeRiskMetadata `protobuf:"bytes,1,opt,name=changeRiskMetadata,proto3" json:"changeRiskMetadata,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ChangeRiskMetadata *ChangeRiskMetadata `protobuf:"bytes,1,opt,name=changeRiskMetadata,proto3" json:"changeRiskMetadata,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetChangeRisksResponse) Reset() { *x = GetChangeRisksResponse{} - mi := &file_changes_proto_msgTypes[59] + mi := &file_changes_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4107,7 +5193,7 @@ func (x *GetChangeRisksResponse) String() string { func (*GetChangeRisksResponse) ProtoMessage() {} func (x *GetChangeRisksResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[59] + mi := &file_changes_proto_msgTypes[79] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4120,7 +5206,7 @@ func (x *GetChangeRisksResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChangeRisksResponse.ProtoReflect.Descriptor instead. func (*GetChangeRisksResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{59} + return file_changes_proto_rawDescGZIP(), []int{79} } func (x *GetChangeRisksResponse) GetChangeRiskMetadata() *ChangeRiskMetadata { @@ -4132,17 +5218,16 @@ func (x *GetChangeRisksResponse) GetChangeRiskMetadata() *ChangeRiskMetadata { // update an existing change type UpdateChangeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + Properties *ChangeProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` unknownFields protoimpl.UnknownFields - - UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` - Properties *ChangeProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UpdateChangeRequest) Reset() { *x = UpdateChangeRequest{} - mi := &file_changes_proto_msgTypes[60] + mi := &file_changes_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4154,7 +5239,7 @@ func (x *UpdateChangeRequest) String() string { func (*UpdateChangeRequest) ProtoMessage() {} func (x *UpdateChangeRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[60] + mi := &file_changes_proto_msgTypes[80] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4167,7 +5252,7 @@ func (x *UpdateChangeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateChangeRequest.ProtoReflect.Descriptor instead. func (*UpdateChangeRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{60} + return file_changes_proto_rawDescGZIP(), []int{80} } func (x *UpdateChangeRequest) GetUUID() []byte { @@ -4185,16 +5270,15 @@ func (x *UpdateChangeRequest) GetProperties() *ChangeProperties { } type UpdateChangeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Change *Change `protobuf:"bytes,1,opt,name=change,proto3" json:"change,omitempty"` unknownFields protoimpl.UnknownFields - - Change *Change `protobuf:"bytes,1,opt,name=change,proto3" json:"change,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UpdateChangeResponse) Reset() { *x = UpdateChangeResponse{} - mi := &file_changes_proto_msgTypes[61] + mi := &file_changes_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4206,7 +5290,7 @@ func (x *UpdateChangeResponse) String() string { func (*UpdateChangeResponse) ProtoMessage() {} func (x *UpdateChangeResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[61] + mi := &file_changes_proto_msgTypes[81] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4219,7 +5303,7 @@ func (x *UpdateChangeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateChangeResponse.ProtoReflect.Descriptor instead. func (*UpdateChangeResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{61} + return file_changes_proto_rawDescGZIP(), []int{81} } func (x *UpdateChangeResponse) GetChange() *Change { @@ -4231,16 +5315,15 @@ func (x *UpdateChangeResponse) GetChange() *Change { // delete a change type DeleteChangeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` unknownFields protoimpl.UnknownFields - - UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + sizeCache protoimpl.SizeCache } func (x *DeleteChangeRequest) Reset() { *x = DeleteChangeRequest{} - mi := &file_changes_proto_msgTypes[62] + mi := &file_changes_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4252,7 +5335,7 @@ func (x *DeleteChangeRequest) String() string { func (*DeleteChangeRequest) ProtoMessage() {} func (x *DeleteChangeRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[62] + mi := &file_changes_proto_msgTypes[82] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4265,7 +5348,7 @@ func (x *DeleteChangeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteChangeRequest.ProtoReflect.Descriptor instead. func (*DeleteChangeRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{62} + return file_changes_proto_rawDescGZIP(), []int{82} } func (x *DeleteChangeRequest) GetUUID() []byte { @@ -4277,16 +5360,15 @@ func (x *DeleteChangeRequest) GetUUID() []byte { // list changes for a snapshot UUID type ListChangesBySnapshotUUIDRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` unknownFields protoimpl.UnknownFields - - UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListChangesBySnapshotUUIDRequest) Reset() { *x = ListChangesBySnapshotUUIDRequest{} - mi := &file_changes_proto_msgTypes[63] + mi := &file_changes_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4298,7 +5380,7 @@ func (x *ListChangesBySnapshotUUIDRequest) String() string { func (*ListChangesBySnapshotUUIDRequest) ProtoMessage() {} func (x *ListChangesBySnapshotUUIDRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[63] + mi := &file_changes_proto_msgTypes[83] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4311,7 +5393,7 @@ func (x *ListChangesBySnapshotUUIDRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListChangesBySnapshotUUIDRequest.ProtoReflect.Descriptor instead. func (*ListChangesBySnapshotUUIDRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{63} + return file_changes_proto_rawDescGZIP(), []int{83} } func (x *ListChangesBySnapshotUUIDRequest) GetUUID() []byte { @@ -4322,16 +5404,15 @@ func (x *ListChangesBySnapshotUUIDRequest) GetUUID() []byte { } type ListChangesBySnapshotUUIDResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Changes []*Change `protobuf:"bytes,1,rep,name=changes,proto3" json:"changes,omitempty"` unknownFields protoimpl.UnknownFields - - Changes []*Change `protobuf:"bytes,1,rep,name=changes,proto3" json:"changes,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListChangesBySnapshotUUIDResponse) Reset() { *x = ListChangesBySnapshotUUIDResponse{} - mi := &file_changes_proto_msgTypes[64] + mi := &file_changes_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4343,7 +5424,7 @@ func (x *ListChangesBySnapshotUUIDResponse) String() string { func (*ListChangesBySnapshotUUIDResponse) ProtoMessage() {} func (x *ListChangesBySnapshotUUIDResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[64] + mi := &file_changes_proto_msgTypes[84] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4356,7 +5437,7 @@ func (x *ListChangesBySnapshotUUIDResponse) ProtoReflect() protoreflect.Message // Deprecated: Use ListChangesBySnapshotUUIDResponse.ProtoReflect.Descriptor instead. func (*ListChangesBySnapshotUUIDResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{64} + return file_changes_proto_rawDescGZIP(), []int{84} } func (x *ListChangesBySnapshotUUIDResponse) GetChanges() []*Change { @@ -4367,14 +5448,14 @@ func (x *ListChangesBySnapshotUUIDResponse) GetChanges() []*Change { } type DeleteChangeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DeleteChangeResponse) Reset() { *x = DeleteChangeResponse{} - mi := &file_changes_proto_msgTypes[65] + mi := &file_changes_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4386,7 +5467,7 @@ func (x *DeleteChangeResponse) String() string { func (*DeleteChangeResponse) ProtoMessage() {} func (x *DeleteChangeResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[65] + mi := &file_changes_proto_msgTypes[85] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4399,18 +5480,18 @@ func (x *DeleteChangeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteChangeResponse.ProtoReflect.Descriptor instead. func (*DeleteChangeResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{65} + return file_changes_proto_rawDescGZIP(), []int{85} } type RefreshStateRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RefreshStateRequest) Reset() { *x = RefreshStateRequest{} - mi := &file_changes_proto_msgTypes[66] + mi := &file_changes_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4422,7 +5503,7 @@ func (x *RefreshStateRequest) String() string { func (*RefreshStateRequest) ProtoMessage() {} func (x *RefreshStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[66] + mi := &file_changes_proto_msgTypes[86] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4435,18 +5516,18 @@ func (x *RefreshStateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RefreshStateRequest.ProtoReflect.Descriptor instead. func (*RefreshStateRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{66} + return file_changes_proto_rawDescGZIP(), []int{86} } type RefreshStateResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RefreshStateResponse) Reset() { *x = RefreshStateResponse{} - mi := &file_changes_proto_msgTypes[67] + mi := &file_changes_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4458,7 +5539,7 @@ func (x *RefreshStateResponse) String() string { func (*RefreshStateResponse) ProtoMessage() {} func (x *RefreshStateResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[67] + mi := &file_changes_proto_msgTypes[87] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4471,26 +5552,25 @@ func (x *RefreshStateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RefreshStateResponse.ProtoReflect.Descriptor instead. func (*RefreshStateResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{67} + return file_changes_proto_rawDescGZIP(), []int{87} } type CalculateBlastRadiusRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // ID of the change to calculate the blast radius for. ChangeUUID []byte `protobuf:"bytes,1,opt,name=changeUUID,proto3" json:"changeUUID,omitempty"` // If true, the blast radius will be calculated again, even if it was already. // Otherwise if the blast radius has already been calculated (i.e. the status // is `DEFINING` and `blastRadiusBookmarkUUID` is set) an error will be // returned. - Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"` + Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CalculateBlastRadiusRequest) Reset() { *x = CalculateBlastRadiusRequest{} - mi := &file_changes_proto_msgTypes[68] + mi := &file_changes_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4502,7 +5582,7 @@ func (x *CalculateBlastRadiusRequest) String() string { func (*CalculateBlastRadiusRequest) ProtoMessage() {} func (x *CalculateBlastRadiusRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[68] + mi := &file_changes_proto_msgTypes[88] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4515,7 +5595,7 @@ func (x *CalculateBlastRadiusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CalculateBlastRadiusRequest.ProtoReflect.Descriptor instead. func (*CalculateBlastRadiusRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{68} + return file_changes_proto_rawDescGZIP(), []int{88} } func (x *CalculateBlastRadiusRequest) GetChangeUUID() []byte { @@ -4533,22 +5613,21 @@ func (x *CalculateBlastRadiusRequest) GetForce() bool { } type CalculateBlastRadiusResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` State CalculateBlastRadiusResponse_State `protobuf:"varint,1,opt,name=state,proto3,enum=changes.CalculateBlastRadiusResponse_State" json:"state,omitempty"` NumItems uint32 `protobuf:"varint,2,opt,name=numItems,proto3" json:"numItems,omitempty"` NumEdges uint32 `protobuf:"varint,3,opt,name=numEdges,proto3" json:"numEdges,omitempty"` // A list of errors that were encountered as part of calculating the blast // radius. These should only be populated if the state is `STATE_DONE` to // avoid sending them repeatedly - Errors []string `protobuf:"bytes,4,rep,name=errors,proto3" json:"errors,omitempty"` + Errors []string `protobuf:"bytes,4,rep,name=errors,proto3" json:"errors,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CalculateBlastRadiusResponse) Reset() { *x = CalculateBlastRadiusResponse{} - mi := &file_changes_proto_msgTypes[69] + mi := &file_changes_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4560,7 +5639,7 @@ func (x *CalculateBlastRadiusResponse) String() string { func (*CalculateBlastRadiusResponse) ProtoMessage() {} func (x *CalculateBlastRadiusResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[69] + mi := &file_changes_proto_msgTypes[89] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4573,7 +5652,7 @@ func (x *CalculateBlastRadiusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CalculateBlastRadiusResponse.ProtoReflect.Descriptor instead. func (*CalculateBlastRadiusResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{69} + return file_changes_proto_rawDescGZIP(), []int{89} } func (x *CalculateBlastRadiusResponse) GetState() CalculateBlastRadiusResponse_State { @@ -4605,16 +5684,15 @@ func (x *CalculateBlastRadiusResponse) GetErrors() []string { } type StartChangeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChangeUUID []byte `protobuf:"bytes,1,opt,name=changeUUID,proto3" json:"changeUUID,omitempty"` unknownFields protoimpl.UnknownFields - - ChangeUUID []byte `protobuf:"bytes,1,opt,name=changeUUID,proto3" json:"changeUUID,omitempty"` + sizeCache protoimpl.SizeCache } func (x *StartChangeRequest) Reset() { *x = StartChangeRequest{} - mi := &file_changes_proto_msgTypes[70] + mi := &file_changes_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4626,7 +5704,7 @@ func (x *StartChangeRequest) String() string { func (*StartChangeRequest) ProtoMessage() {} func (x *StartChangeRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[70] + mi := &file_changes_proto_msgTypes[90] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4639,7 +5717,7 @@ func (x *StartChangeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StartChangeRequest.ProtoReflect.Descriptor instead. func (*StartChangeRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{70} + return file_changes_proto_rawDescGZIP(), []int{90} } func (x *StartChangeRequest) GetChangeUUID() []byte { @@ -4650,18 +5728,17 @@ func (x *StartChangeRequest) GetChangeUUID() []byte { } type StartChangeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + State StartChangeResponse_State `protobuf:"varint,1,opt,name=state,proto3,enum=changes.StartChangeResponse_State" json:"state,omitempty"` + NumItems uint32 `protobuf:"varint,2,opt,name=numItems,proto3" json:"numItems,omitempty"` + NumEdges uint32 `protobuf:"varint,3,opt,name=NumEdges,proto3" json:"NumEdges,omitempty"` unknownFields protoimpl.UnknownFields - - State StartChangeResponse_State `protobuf:"varint,1,opt,name=state,proto3,enum=changes.StartChangeResponse_State" json:"state,omitempty"` - NumItems uint32 `protobuf:"varint,2,opt,name=numItems,proto3" json:"numItems,omitempty"` - NumEdges uint32 `protobuf:"varint,3,opt,name=NumEdges,proto3" json:"NumEdges,omitempty"` + sizeCache protoimpl.SizeCache } func (x *StartChangeResponse) Reset() { *x = StartChangeResponse{} - mi := &file_changes_proto_msgTypes[71] + mi := &file_changes_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4673,7 +5750,7 @@ func (x *StartChangeResponse) String() string { func (*StartChangeResponse) ProtoMessage() {} func (x *StartChangeResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[71] + mi := &file_changes_proto_msgTypes[91] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4686,7 +5763,7 @@ func (x *StartChangeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StartChangeResponse.ProtoReflect.Descriptor instead. func (*StartChangeResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{71} + return file_changes_proto_rawDescGZIP(), []int{91} } func (x *StartChangeResponse) GetState() StartChangeResponse_State { @@ -4711,16 +5788,15 @@ func (x *StartChangeResponse) GetNumEdges() uint32 { } type EndChangeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChangeUUID []byte `protobuf:"bytes,1,opt,name=changeUUID,proto3" json:"changeUUID,omitempty"` unknownFields protoimpl.UnknownFields - - ChangeUUID []byte `protobuf:"bytes,1,opt,name=changeUUID,proto3" json:"changeUUID,omitempty"` + sizeCache protoimpl.SizeCache } func (x *EndChangeRequest) Reset() { *x = EndChangeRequest{} - mi := &file_changes_proto_msgTypes[72] + mi := &file_changes_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4732,7 +5808,7 @@ func (x *EndChangeRequest) String() string { func (*EndChangeRequest) ProtoMessage() {} func (x *EndChangeRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[72] + mi := &file_changes_proto_msgTypes[92] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4745,7 +5821,7 @@ func (x *EndChangeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use EndChangeRequest.ProtoReflect.Descriptor instead. func (*EndChangeRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{72} + return file_changes_proto_rawDescGZIP(), []int{92} } func (x *EndChangeRequest) GetChangeUUID() []byte { @@ -4756,18 +5832,17 @@ func (x *EndChangeRequest) GetChangeUUID() []byte { } type EndChangeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + State EndChangeResponse_State `protobuf:"varint,1,opt,name=state,proto3,enum=changes.EndChangeResponse_State" json:"state,omitempty"` + NumItems uint32 `protobuf:"varint,2,opt,name=numItems,proto3" json:"numItems,omitempty"` + NumEdges uint32 `protobuf:"varint,3,opt,name=NumEdges,proto3" json:"NumEdges,omitempty"` unknownFields protoimpl.UnknownFields - - State EndChangeResponse_State `protobuf:"varint,1,opt,name=state,proto3,enum=changes.EndChangeResponse_State" json:"state,omitempty"` - NumItems uint32 `protobuf:"varint,2,opt,name=numItems,proto3" json:"numItems,omitempty"` - NumEdges uint32 `protobuf:"varint,3,opt,name=NumEdges,proto3" json:"NumEdges,omitempty"` + sizeCache protoimpl.SizeCache } func (x *EndChangeResponse) Reset() { *x = EndChangeResponse{} - mi := &file_changes_proto_msgTypes[73] + mi := &file_changes_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4779,7 +5854,7 @@ func (x *EndChangeResponse) String() string { func (*EndChangeResponse) ProtoMessage() {} func (x *EndChangeResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[73] + mi := &file_changes_proto_msgTypes[93] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4792,7 +5867,7 @@ func (x *EndChangeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use EndChangeResponse.ProtoReflect.Descriptor instead. func (*EndChangeResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{73} + return file_changes_proto_rawDescGZIP(), []int{93} } func (x *EndChangeResponse) GetState() EndChangeResponse_State { @@ -4818,19 +5893,18 @@ func (x *EndChangeResponse) GetNumEdges() uint32 { // complete Onboarding information with machine-supplied and user-supplied values type Onboarding struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // machine-generated metadata of this onboarding info Metadata *OnboardingMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` // user-supplied properties of this onboarding info - Properties *OnboardingProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` + Properties *OnboardingProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Onboarding) Reset() { *x = Onboarding{} - mi := &file_changes_proto_msgTypes[74] + mi := &file_changes_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4842,7 +5916,7 @@ func (x *Onboarding) String() string { func (*Onboarding) ProtoMessage() {} func (x *Onboarding) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[74] + mi := &file_changes_proto_msgTypes[94] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4855,7 +5929,7 @@ func (x *Onboarding) ProtoReflect() protoreflect.Message { // Deprecated: Use Onboarding.ProtoReflect.Descriptor instead. func (*Onboarding) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{74} + return file_changes_proto_rawDescGZIP(), []int{94} } func (x *Onboarding) GetMetadata() *OnboardingMetadata { @@ -4874,19 +5948,18 @@ func (x *Onboarding) GetProperties() *OnboardingProperties { // machine-generated metadata of this onboarding info type OnboardingMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // timestamp when this onboarding info was created Created *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=created,proto3" json:"created,omitempty"` // whether or not the user already has an AWS source configured - HasAwsSource bool `protobuf:"varint,3,opt,name=hasAwsSource,proto3" json:"hasAwsSource,omitempty"` + HasAwsSource bool `protobuf:"varint,3,opt,name=hasAwsSource,proto3" json:"hasAwsSource,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *OnboardingMetadata) Reset() { *x = OnboardingMetadata{} - mi := &file_changes_proto_msgTypes[75] + mi := &file_changes_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4898,7 +5971,7 @@ func (x *OnboardingMetadata) String() string { func (*OnboardingMetadata) ProtoMessage() {} func (x *OnboardingMetadata) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[75] + mi := &file_changes_proto_msgTypes[95] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4911,7 +5984,7 @@ func (x *OnboardingMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use OnboardingMetadata.ProtoReflect.Descriptor instead. func (*OnboardingMetadata) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{75} + return file_changes_proto_rawDescGZIP(), []int{95} } func (x *OnboardingMetadata) GetCreated() *timestamppb.Timestamp { @@ -4930,10 +6003,7 @@ func (x *OnboardingMetadata) GetHasAwsSource() bool { // user-supplied properties of this onboarding info type OnboardingProperties struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The current status of this onboarding info. Status OnboardingStatus `protobuf:"varint,1,opt,name=status,proto3,enum=changes.OnboardingStatus" json:"status,omitempty"` // The UUID for the aws-source that was configured as part of onboarding @@ -4941,12 +6011,14 @@ type OnboardingProperties struct { // The UUID of the app that was created as part of onboarding AppUUID []byte `protobuf:"bytes,3,opt,name=appUUID,proto3" json:"appUUID,omitempty"` // The UUID of the change that was created as part of onboarding - ChangeUUID []byte `protobuf:"bytes,4,opt,name=changeUUID,proto3" json:"changeUUID,omitempty"` + ChangeUUID []byte `protobuf:"bytes,4,opt,name=changeUUID,proto3" json:"changeUUID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *OnboardingProperties) Reset() { *x = OnboardingProperties{} - mi := &file_changes_proto_msgTypes[76] + mi := &file_changes_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4958,7 +6030,7 @@ func (x *OnboardingProperties) String() string { func (*OnboardingProperties) ProtoMessage() {} func (x *OnboardingProperties) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[76] + mi := &file_changes_proto_msgTypes[96] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4971,7 +6043,7 @@ func (x *OnboardingProperties) ProtoReflect() protoreflect.Message { // Deprecated: Use OnboardingProperties.ProtoReflect.Descriptor instead. func (*OnboardingProperties) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{76} + return file_changes_proto_rawDescGZIP(), []int{96} } func (x *OnboardingProperties) GetStatus() OnboardingStatus { @@ -5004,14 +6076,14 @@ func (x *OnboardingProperties) GetChangeUUID() []byte { // get the onboarding status type GetOnboardingRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetOnboardingRequest) Reset() { *x = GetOnboardingRequest{} - mi := &file_changes_proto_msgTypes[77] + mi := &file_changes_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5023,7 +6095,7 @@ func (x *GetOnboardingRequest) String() string { func (*GetOnboardingRequest) ProtoMessage() {} func (x *GetOnboardingRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[77] + mi := &file_changes_proto_msgTypes[97] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5036,20 +6108,19 @@ func (x *GetOnboardingRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetOnboardingRequest.ProtoReflect.Descriptor instead. func (*GetOnboardingRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{77} + return file_changes_proto_rawDescGZIP(), []int{97} } type GetOnboardingResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Onboarding *Onboarding `protobuf:"bytes,1,opt,name=onboarding,proto3" json:"onboarding,omitempty"` unknownFields protoimpl.UnknownFields - - Onboarding *Onboarding `protobuf:"bytes,1,opt,name=onboarding,proto3" json:"onboarding,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetOnboardingResponse) Reset() { *x = GetOnboardingResponse{} - mi := &file_changes_proto_msgTypes[78] + mi := &file_changes_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5061,7 +6132,7 @@ func (x *GetOnboardingResponse) String() string { func (*GetOnboardingResponse) ProtoMessage() {} func (x *GetOnboardingResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[78] + mi := &file_changes_proto_msgTypes[98] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5074,7 +6145,7 @@ func (x *GetOnboardingResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetOnboardingResponse.ProtoReflect.Descriptor instead. func (*GetOnboardingResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{78} + return file_changes_proto_rawDescGZIP(), []int{98} } func (x *GetOnboardingResponse) GetOnboarding() *Onboarding { @@ -5086,16 +6157,15 @@ func (x *GetOnboardingResponse) GetOnboarding() *Onboarding { // update onboarding status type UpdateOnboardingRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Properties *OnboardingProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` unknownFields protoimpl.UnknownFields - - Properties *OnboardingProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UpdateOnboardingRequest) Reset() { *x = UpdateOnboardingRequest{} - mi := &file_changes_proto_msgTypes[79] + mi := &file_changes_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5107,7 +6177,7 @@ func (x *UpdateOnboardingRequest) String() string { func (*UpdateOnboardingRequest) ProtoMessage() {} func (x *UpdateOnboardingRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[79] + mi := &file_changes_proto_msgTypes[99] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5120,7 +6190,7 @@ func (x *UpdateOnboardingRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateOnboardingRequest.ProtoReflect.Descriptor instead. func (*UpdateOnboardingRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{79} + return file_changes_proto_rawDescGZIP(), []int{99} } func (x *UpdateOnboardingRequest) GetProperties() *OnboardingProperties { @@ -5131,16 +6201,15 @@ func (x *UpdateOnboardingRequest) GetProperties() *OnboardingProperties { } type UpdateOnboardingResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Onboarding *Onboarding `protobuf:"bytes,1,opt,name=onboarding,proto3" json:"onboarding,omitempty"` unknownFields protoimpl.UnknownFields - - Onboarding *Onboarding `protobuf:"bytes,1,opt,name=onboarding,proto3" json:"onboarding,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UpdateOnboardingResponse) Reset() { *x = UpdateOnboardingResponse{} - mi := &file_changes_proto_msgTypes[80] + mi := &file_changes_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5152,7 +6221,7 @@ func (x *UpdateOnboardingResponse) String() string { func (*UpdateOnboardingResponse) ProtoMessage() {} func (x *UpdateOnboardingResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[80] + mi := &file_changes_proto_msgTypes[100] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5165,7 +6234,7 @@ func (x *UpdateOnboardingResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateOnboardingResponse.ProtoReflect.Descriptor instead. func (*UpdateOnboardingResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{80} + return file_changes_proto_rawDescGZIP(), []int{100} } func (x *UpdateOnboardingResponse) GetOnboarding() *Onboarding { @@ -5176,17 +6245,16 @@ func (x *UpdateOnboardingResponse) GetOnboarding() *Onboarding { } type SimulateChangeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The ID of the change to simulate - ChangeUUID []byte `protobuf:"bytes,1,opt,name=changeUUID,proto3" json:"changeUUID,omitempty"` + ChangeUUID []byte `protobuf:"bytes,1,opt,name=changeUUID,proto3" json:"changeUUID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SimulateChangeRequest) Reset() { *x = SimulateChangeRequest{} - mi := &file_changes_proto_msgTypes[81] + mi := &file_changes_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5198,7 +6266,7 @@ func (x *SimulateChangeRequest) String() string { func (*SimulateChangeRequest) ProtoMessage() {} func (x *SimulateChangeRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[81] + mi := &file_changes_proto_msgTypes[101] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5211,7 +6279,7 @@ func (x *SimulateChangeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SimulateChangeRequest.ProtoReflect.Descriptor instead. func (*SimulateChangeRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{81} + return file_changes_proto_rawDescGZIP(), []int{101} } func (x *SimulateChangeRequest) GetChangeUUID() []byte { @@ -5222,21 +6290,20 @@ func (x *SimulateChangeRequest) GetChangeUUID() []byte { } type SimulateChangeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Whether the simulation is complete Done bool `protobuf:"varint,1,opt,name=done,proto3" json:"done,omitempty"` // How far through the simulation process we are. This will be pretty // apprioximate as it's not expected to take very long and is more to give the // sense of progress than to be an accurate measure PercentComplete uint32 `protobuf:"varint,2,opt,name=percentComplete,proto3" json:"percentComplete,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SimulateChangeResponse) Reset() { *x = SimulateChangeResponse{} - mi := &file_changes_proto_msgTypes[82] + mi := &file_changes_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5248,7 +6315,7 @@ func (x *SimulateChangeResponse) String() string { func (*SimulateChangeResponse) ProtoMessage() {} func (x *SimulateChangeResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[82] + mi := &file_changes_proto_msgTypes[102] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5261,7 +6328,7 @@ func (x *SimulateChangeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SimulateChangeResponse.ProtoReflect.Descriptor instead. func (*SimulateChangeResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{82} + return file_changes_proto_rawDescGZIP(), []int{102} } func (x *SimulateChangeResponse) GetDone() bool { @@ -5279,20 +6346,19 @@ func (x *SimulateChangeResponse) GetPercentComplete() uint32 { } type Risk struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UUID []byte `protobuf:"bytes,5,opt,name=UUID,proto3" json:"UUID,omitempty"` + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + Severity Risk_Severity `protobuf:"varint,2,opt,name=severity,proto3,enum=changes.Risk_Severity" json:"severity,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + RelatedItems []*Reference `protobuf:"bytes,4,rep,name=relatedItems,proto3" json:"relatedItems,omitempty"` unknownFields protoimpl.UnknownFields - - UUID []byte `protobuf:"bytes,5,opt,name=UUID,proto3" json:"UUID,omitempty"` - Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` - Severity Risk_Severity `protobuf:"varint,2,opt,name=severity,proto3,enum=changes.Risk_Severity" json:"severity,omitempty"` - Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` - RelatedItems []*Reference `protobuf:"bytes,4,rep,name=relatedItems,proto3" json:"relatedItems,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Risk) Reset() { *x = Risk{} - mi := &file_changes_proto_msgTypes[83] + mi := &file_changes_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5304,7 +6370,7 @@ func (x *Risk) String() string { func (*Risk) ProtoMessage() {} func (x *Risk) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[83] + mi := &file_changes_proto_msgTypes[103] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5317,7 +6383,7 @@ func (x *Risk) ProtoReflect() protoreflect.Message { // Deprecated: Use Risk.ProtoReflect.Descriptor instead. func (*Risk) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{83} + return file_changes_proto_rawDescGZIP(), []int{103} } func (x *Risk) GetUUID() []byte { @@ -5355,33 +6421,32 @@ func (x *Risk) GetRelatedItems() []*Reference { return nil } -type RiskCalculationStatus struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Status RiskCalculationStatus_Status `protobuf:"varint,1,opt,name=status,proto3,enum=changes.RiskCalculationStatus_Status" json:"status,omitempty"` +type ChangeAnalysisStatus struct { + state protoimpl.MessageState `protogen:"open.v1"` + Status ChangeAnalysisStatus_Status `protobuf:"varint,1,opt,name=status,proto3,enum=changes.ChangeAnalysisStatus_Status" json:"status,omitempty"` // Milestones within the risk calculation process. They will be populated when // the status is `STATUS_INPROGRESS` and show a more detailed breakdown of the // progress - ProgressMilestones []*RiskCalculationStatus_ProgressMilestone `protobuf:"bytes,5,rep,name=progressMilestones,proto3" json:"progressMilestones,omitempty"` + ProgressMilestones []*ChangeAnalysisStatus_ProgressMilestone `protobuf:"bytes,5,rep,name=progressMilestones,proto3" json:"progressMilestones,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } -func (x *RiskCalculationStatus) Reset() { - *x = RiskCalculationStatus{} - mi := &file_changes_proto_msgTypes[84] +func (x *ChangeAnalysisStatus) Reset() { + *x = ChangeAnalysisStatus{} + mi := &file_changes_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *RiskCalculationStatus) String() string { +func (x *ChangeAnalysisStatus) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RiskCalculationStatus) ProtoMessage() {} +func (*ChangeAnalysisStatus) ProtoMessage() {} -func (x *RiskCalculationStatus) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[84] +func (x *ChangeAnalysisStatus) ProtoReflect() protoreflect.Message { + mi := &file_changes_proto_msgTypes[104] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5392,19 +6457,19 @@ func (x *RiskCalculationStatus) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RiskCalculationStatus.ProtoReflect.Descriptor instead. -func (*RiskCalculationStatus) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{84} +// Deprecated: Use ChangeAnalysisStatus.ProtoReflect.Descriptor instead. +func (*ChangeAnalysisStatus) Descriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{104} } -func (x *RiskCalculationStatus) GetStatus() RiskCalculationStatus_Status { +func (x *ChangeAnalysisStatus) GetStatus() ChangeAnalysisStatus_Status { if x != nil { return x.Status } - return RiskCalculationStatus_STATUS_UNSPECIFIED + return ChangeAnalysisStatus_STATUS_UNSPECIFIED } -func (x *RiskCalculationStatus) GetProgressMilestones() []*RiskCalculationStatus_ProgressMilestone { +func (x *ChangeAnalysisStatus) GetProgressMilestones() []*ChangeAnalysisStatus_ProgressMilestone { if x != nil { return x.ProgressMilestones } @@ -5412,10 +6477,7 @@ func (x *RiskCalculationStatus) GetProgressMilestones() []*RiskCalculationStatus } type ChangeArchive struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` Change *Change `protobuf:"bytes,1,opt,name=Change,proto3" json:"Change,omitempty"` ChangingItemsBookmark *Bookmark `protobuf:"bytes,2,opt,name=changingItemsBookmark,proto3,oneof" json:"changingItemsBookmark,omitempty"` BlastRadiusSnapshot *Snapshot `protobuf:"bytes,3,opt,name=blastRadiusSnapshot,proto3,oneof" json:"blastRadiusSnapshot,omitempty"` @@ -5424,11 +6486,13 @@ type ChangeArchive struct { AffectedApps []*App `protobuf:"bytes,6,rep,name=affectedApps,proto3" json:"affectedApps,omitempty"` Timeline []*ChangeTimelineEntry `protobuf:"bytes,7,rep,name=timeline,proto3" json:"timeline,omitempty"` ChangeRiskMetadata *ChangeRiskMetadata `protobuf:"bytes,8,opt,name=changeRiskMetadata,proto3" json:"changeRiskMetadata,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ChangeArchive) Reset() { *x = ChangeArchive{} - mi := &file_changes_proto_msgTypes[85] + mi := &file_changes_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5440,7 +6504,7 @@ func (x *ChangeArchive) String() string { func (*ChangeArchive) ProtoMessage() {} func (x *ChangeArchive) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[85] + mi := &file_changes_proto_msgTypes[105] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5453,7 +6517,7 @@ func (x *ChangeArchive) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeArchive.ProtoReflect.Descriptor instead. func (*ChangeArchive) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{85} + return file_changes_proto_rawDescGZIP(), []int{105} } func (x *ChangeArchive) GetChange() *Change { @@ -5513,16 +6577,15 @@ func (x *ChangeArchive) GetChangeRiskMetadata() *ChangeRiskMetadata { } type GetChangeArchiveRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` unknownFields protoimpl.UnknownFields - - UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetChangeArchiveRequest) Reset() { *x = GetChangeArchiveRequest{} - mi := &file_changes_proto_msgTypes[86] + mi := &file_changes_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5534,7 +6597,7 @@ func (x *GetChangeArchiveRequest) String() string { func (*GetChangeArchiveRequest) ProtoMessage() {} func (x *GetChangeArchiveRequest) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[86] + mi := &file_changes_proto_msgTypes[106] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5547,7 +6610,7 @@ func (x *GetChangeArchiveRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChangeArchiveRequest.ProtoReflect.Descriptor instead. func (*GetChangeArchiveRequest) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{86} + return file_changes_proto_rawDescGZIP(), []int{106} } func (x *GetChangeArchiveRequest) GetUUID() []byte { @@ -5558,16 +6621,15 @@ func (x *GetChangeArchiveRequest) GetUUID() []byte { } type GetChangeArchiveResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChangeArchive *ChangeArchive `protobuf:"bytes,1,opt,name=changeArchive,proto3" json:"changeArchive,omitempty"` unknownFields protoimpl.UnknownFields - - ChangeArchive *ChangeArchive `protobuf:"bytes,1,opt,name=changeArchive,proto3" json:"changeArchive,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetChangeArchiveResponse) Reset() { *x = GetChangeArchiveResponse{} - mi := &file_changes_proto_msgTypes[87] + mi := &file_changes_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5579,7 +6641,7 @@ func (x *GetChangeArchiveResponse) String() string { func (*GetChangeArchiveResponse) ProtoMessage() {} func (x *GetChangeArchiveResponse) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[87] + mi := &file_changes_proto_msgTypes[107] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5592,7 +6654,7 @@ func (x *GetChangeArchiveResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChangeArchiveResponse.ProtoReflect.Descriptor instead. func (*GetChangeArchiveResponse) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{87} + return file_changes_proto_rawDescGZIP(), []int{107} } func (x *GetChangeArchiveResponse) GetChangeArchive() *ChangeArchive { @@ -5607,10 +6669,7 @@ func (x *GetChangeArchiveResponse) GetChangeArchive() *ChangeArchive { // items, but also the number of items that have been added and removed, even // if they were to add to the same number type ChangeMetadata_HealthChange struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The number of items that were added to this health state as part of the // change Added int32 `protobuf:"varint,1,opt,name=added,proto3" json:"added,omitempty"` @@ -5618,12 +6677,14 @@ type ChangeMetadata_HealthChange struct { // the change Removed int32 `protobuf:"varint,2,opt,name=removed,proto3" json:"removed,omitempty"` // The final number of items that were in this health state - FinalTotal int32 `protobuf:"varint,3,opt,name=finalTotal,proto3" json:"finalTotal,omitempty"` + FinalTotal int32 `protobuf:"varint,3,opt,name=finalTotal,proto3" json:"finalTotal,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ChangeMetadata_HealthChange) Reset() { *x = ChangeMetadata_HealthChange{} - mi := &file_changes_proto_msgTypes[90] + mi := &file_changes_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5635,7 +6696,7 @@ func (x *ChangeMetadata_HealthChange) String() string { func (*ChangeMetadata_HealthChange) ProtoMessage() {} func (x *ChangeMetadata_HealthChange) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[90] + mi := &file_changes_proto_msgTypes[111] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5648,7 +6709,7 @@ func (x *ChangeMetadata_HealthChange) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeMetadata_HealthChange.ProtoReflect.Descriptor instead. func (*ChangeMetadata_HealthChange) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{47, 0} + return file_changes_proto_rawDescGZIP(), []int{67, 0} } func (x *ChangeMetadata_HealthChange) GetAdded() int32 { @@ -5672,32 +6733,31 @@ func (x *ChangeMetadata_HealthChange) GetFinalTotal() int32 { return 0 } -type RiskCalculationStatus_ProgressMilestone struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - +type ChangeAnalysisStatus_ProgressMilestone struct { + state protoimpl.MessageState `protogen:"open.v1"` // The description of this milestone Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` // The status of this milestone - Status RiskCalculationStatus_ProgressMilestone_Status `protobuf:"varint,2,opt,name=status,proto3,enum=changes.RiskCalculationStatus_ProgressMilestone_Status" json:"status,omitempty"` + Status ChangeAnalysisStatus_ProgressMilestone_Status `protobuf:"varint,2,opt,name=status,proto3,enum=changes.ChangeAnalysisStatus_ProgressMilestone_Status" json:"status,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } -func (x *RiskCalculationStatus_ProgressMilestone) Reset() { - *x = RiskCalculationStatus_ProgressMilestone{} - mi := &file_changes_proto_msgTypes[92] +func (x *ChangeAnalysisStatus_ProgressMilestone) Reset() { + *x = ChangeAnalysisStatus_ProgressMilestone{} + mi := &file_changes_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *RiskCalculationStatus_ProgressMilestone) String() string { +func (x *ChangeAnalysisStatus_ProgressMilestone) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RiskCalculationStatus_ProgressMilestone) ProtoMessage() {} +func (*ChangeAnalysisStatus_ProgressMilestone) ProtoMessage() {} -func (x *RiskCalculationStatus_ProgressMilestone) ProtoReflect() protoreflect.Message { - mi := &file_changes_proto_msgTypes[92] +func (x *ChangeAnalysisStatus_ProgressMilestone) ProtoReflect() protoreflect.Message { + mi := &file_changes_proto_msgTypes[115] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5708,23 +6768,23 @@ func (x *RiskCalculationStatus_ProgressMilestone) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use RiskCalculationStatus_ProgressMilestone.ProtoReflect.Descriptor instead. -func (*RiskCalculationStatus_ProgressMilestone) Descriptor() ([]byte, []int) { - return file_changes_proto_rawDescGZIP(), []int{84, 0} +// Deprecated: Use ChangeAnalysisStatus_ProgressMilestone.ProtoReflect.Descriptor instead. +func (*ChangeAnalysisStatus_ProgressMilestone) Descriptor() ([]byte, []int) { + return file_changes_proto_rawDescGZIP(), []int{104, 0} } -func (x *RiskCalculationStatus_ProgressMilestone) GetDescription() string { +func (x *ChangeAnalysisStatus_ProgressMilestone) GetDescription() string { if x != nil { return x.Description } return "" } -func (x *RiskCalculationStatus_ProgressMilestone) GetStatus() RiskCalculationStatus_ProgressMilestone_Status { +func (x *ChangeAnalysisStatus_ProgressMilestone) GetStatus() ChangeAnalysisStatus_ProgressMilestone_Status { if x != nil { return x.Status } - return RiskCalculationStatus_ProgressMilestone_STATUS_PENDING + return ChangeAnalysisStatus_ProgressMilestone_STATUS_PENDING } var File_changes_proto protoreflect.FileDescriptor @@ -5738,342 +6798,302 @@ var file_changes_proto_rawDesc = []byte{ 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0x3a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, - 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x22, 0x53, - 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6c, - 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x65, - 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x22, 0xc4, 0x01, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2d, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x3a, 0x0a, 0x0a, 0x68, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, + 0x74, 0x6f, 0x22, 0xd8, 0x01, 0x0a, 0x0c, 0x52, 0x75, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x38, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x38, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x0a, 0x68, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, - 0x61, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x30, 0x0a, 0x0e, 0x47, 0x65, - 0x74, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x22, 0xdb, 0x01, 0x0a, - 0x0f, 0x47, 0x65, 0x74, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x37, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x69, 0x66, 0x66, 0x52, 0x0d, 0x65, 0x78, 0x70, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x3b, 0x0a, 0x0f, 0x75, 0x6e, 0x65, - 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x49, 0x74, 0x65, - 0x6d, 0x44, 0x69, 0x66, 0x66, 0x52, 0x0f, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x05, 0x65, 0x64, 0x67, 0x65, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x45, 0x64, 0x67, 0x65, 0x52, 0x05, 0x65, 0x64, - 0x67, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x0c, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x49, 0x74, - 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x73, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x69, 0x66, 0x66, 0x52, 0x0c, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x41, 0x0a, 0x1f, 0x4c, 0x69, - 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x53, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, - 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x22, 0x52, 0x0a, - 0x20, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, - 0x6d, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x44, - 0x69, 0x66, 0x66, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, - 0x73, 0x22, 0x38, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x22, 0x42, 0x0a, 0x17, 0x47, - 0x65, 0x74, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x61, 0x70, 0x70, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x41, - 0x70, 0x70, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x04, 0x61, 0x70, 0x70, 0x73, 0x22, - 0x6e, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x69, 0x6e, - 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, - 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x12, 0x30, 0x0a, - 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, - 0x79, 0x0a, 0x0e, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x69, 0x66, - 0x66, 0x12, 0x25, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x69, - 0x66, 0x66, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x2f, 0x0a, 0x0c, 0x6d, 0x61, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x22, 0xf8, 0x01, 0x0a, 0x1b, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x12, 0x3d, 0x0a, 0x0d, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x70, - 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x69, 0x66, 0x66, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x5c, 0x0a, 0x19, 0x62, 0x6c, 0x61, - 0x73, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, - 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, - 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x19, 0x62, 0x6c, 0x61, 0x73, 0x74, - 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, - 0x72, 0x69, 0x64, 0x65, 0x88, 0x01, 0x01, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x62, 0x6c, 0x61, 0x73, - 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, - 0x72, 0x72, 0x69, 0x64, 0x65, 0x22, 0x38, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x55, 0x55, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x70, 0x70, 0x55, 0x55, 0x49, 0x44, 0x22, - 0x51, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x30, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x22, 0x2a, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x53, 0x75, 0x6d, 0x6d, - 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x22, 0x3e, - 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x03, 0x61, 0x70, 0x70, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x41, - 0x70, 0x70, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x03, 0x61, 0x70, 0x70, 0x22, 0x2e, - 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x55, 0x55, 0x49, 0x44, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x05, 0x55, 0x55, 0x49, 0x44, 0x73, 0x22, 0x42, - 0x0a, 0x17, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, + 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x41, 0x74, 0x12, 0x40, 0x0a, 0x0d, 0x6c, + 0x61, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, + 0x6c, 0x61, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x64, 0x22, 0x9c, 0x01, + 0x0a, 0x0e, 0x52, 0x75, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x67, 0x4b, 0x65, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x67, 0x4b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x07, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, + 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0b, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x72, 0x0a, 0x04, + 0x52, 0x75, 0x6c, 0x65, 0x12, 0x31, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x69, 0x65, 0x73, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, + 0x22, 0x12, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x38, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x05, 0x72, 0x75, 0x6c, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x73, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x4c, + 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, + 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x37, 0x0a, 0x12, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x21, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0d, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, + 0x04, 0x72, 0x75, 0x6c, 0x65, 0x22, 0x24, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x22, 0x34, 0x0a, 0x0f, 0x47, + 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, + 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x75, 0x6c, + 0x65, 0x22, 0x60, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x50, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x69, 0x65, 0x73, 0x22, 0x37, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x04, 0x72, 0x75, 0x6c, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x22, 0x27, 0x0a, 0x11, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x04, 0x55, 0x55, 0x49, 0x44, 0x22, 0x14, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x0a, 0x11, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x55, 0x55, 0x49, 0x44, 0x22, 0x28, 0x0a, 0x12, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, + 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x75, + 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x22, 0x6a, + 0x0a, 0x0f, 0x54, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, + 0x52, 0x75, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0a, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0a, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x22, 0x79, 0x0a, 0x10, 0x54, 0x65, + 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x12, 0x18, + 0x0a, 0x07, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x07, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, + 0x44, 0x22, 0x53, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, + 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, + 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, 0xc4, 0x01, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2d, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, + 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, + 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x68, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x41, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x68, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x30, 0x0a, + 0x0e, 0x47, 0x65, 0x74, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x22, + 0xdb, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x69, 0x66, 0x66, 0x52, 0x0d, 0x65, + 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x3b, 0x0a, 0x0f, + 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, + 0x49, 0x74, 0x65, 0x6d, 0x44, 0x69, 0x66, 0x66, 0x52, 0x0f, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x05, 0x65, 0x64, 0x67, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x45, 0x64, 0x67, 0x65, 0x52, + 0x05, 0x65, 0x64, 0x67, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x0c, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, + 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x69, 0x66, 0x66, 0x52, + 0x0c, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x41, 0x0a, + 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, + 0x6d, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, + 0x22, 0x52, 0x0a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x69, 0x6e, 0x67, + 0x49, 0x74, 0x65, 0x6d, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x49, 0x74, + 0x65, 0x6d, 0x44, 0x69, 0x66, 0x66, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x05, 0x69, + 0x74, 0x65, 0x6d, 0x73, 0x22, 0x38, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x66, 0x66, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, + 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x22, 0x42, + 0x0a, 0x17, 0x47, 0x65, 0x74, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x61, 0x70, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x04, 0x61, 0x70, - 0x70, 0x73, 0x22, 0x96, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6d, 0x65, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, - 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x3c, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x48, 0x00, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x88, 0x01, 0x01, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, 0xda, 0x02, 0x0a, 0x14, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x12, 0x3b, 0x0a, 0x04, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x2c, 0x0a, 0x05, 0x72, 0x69, 0x73, 0x6b, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, - 0x2e, 0x52, 0x69, 0x73, 0x6b, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x52, 0x05, - 0x72, 0x69, 0x73, 0x6b, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x73, 0x12, - 0x31, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x0e, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x09, 0x73, 0x6f, 0x72, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x48, 0x00, 0x52, 0x09, 0x73, 0x6f, 0x72, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x88, 0x01, - 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 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, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, - 0x6f, 0x72, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, 0x80, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, - 0x74, 0x48, 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x07, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x50, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, - 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x1e, 0x0a, 0x1c, 0x50, - 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4f, 0x0a, 0x1d, 0x50, - 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x70, 0x73, 0x22, 0x6e, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, + 0x12, 0x30, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, + 0x6d, 0x73, 0x22, 0x79, 0x0a, 0x0e, 0x4d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, + 0x44, 0x69, 0x66, 0x66, 0x12, 0x25, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x49, 0x74, 0x65, + 0x6d, 0x44, 0x69, 0x66, 0x66, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x2f, 0x0a, 0x0c, 0x6d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x06, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x22, 0xcd, 0x02, + 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, + 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x12, 0x3d, 0x0a, + 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4d, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x69, 0x66, 0x66, 0x52, 0x0d, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x5c, 0x0a, 0x19, + 0x62, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, + 0x64, 0x69, 0x75, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x19, 0x62, 0x6c, + 0x61, 0x73, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, + 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x18, 0x61, 0x75, + 0x74, 0x6f, 0x54, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x4f, 0x76, + 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x18, 0x61, 0x75, 0x74, 0x6f, 0x54, 0x61, 0x67, 0x67, 0x69, + 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x42, + 0x1c, 0x0a, 0x1a, 0x5f, 0x62, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x22, 0x38, 0x0a, + 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x53, + 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x70, 0x70, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, + 0x61, 0x70, 0x70, 0x55, 0x55, 0x49, 0x44, 0x22, 0x51, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x41, + 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x79, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x2a, 0x0a, 0x14, 0x47, 0x65, + 0x74, 0x41, 0x70, 0x70, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x22, 0x3e, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, + 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x25, 0x0a, 0x03, 0x61, 0x70, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x79, 0x52, 0x03, 0x61, 0x70, 0x70, 0x22, 0x2e, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, + 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x55, 0x55, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, + 0x05, 0x55, 0x55, 0x49, 0x44, 0x73, 0x22, 0x42, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, + 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x27, 0x0a, 0x04, 0x61, 0x70, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x75, 0x6d, + 0x6d, 0x61, 0x72, 0x79, 0x52, 0x04, 0x61, 0x70, 0x70, 0x73, 0x22, 0x96, 0x01, 0x0a, 0x16, 0x4c, + 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x50, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x07, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x07, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x73, 0x22, 0xda, 0x02, 0x0a, 0x14, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, - 0x6f, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x73, 0x22, 0x15, 0x0a, 0x13, - 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x3f, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6d, 0x65, 0x41, - 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x61, - 0x70, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x04, - 0x61, 0x70, 0x70, 0x73, 0x22, 0x8d, 0x01, 0x0a, 0x0f, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x69, 0x66, - 0x66, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x69, 0x66, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x29, 0x0a, 0x0b, 0x68, 0x65, 0x61, - 0x6c, 0x74, 0x68, 0x41, 0x66, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x07, - 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x0b, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x41, - 0x66, 0x74, 0x65, 0x72, 0x22, 0x97, 0x01, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x69, 0x66, - 0x66, 0x12, 0x1e, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0a, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x04, 0x69, 0x74, 0x65, - 0x6d, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x49, 0x74, 0x65, 0x6d, - 0x44, 0x69, 0x66, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, - 0x65, 0x12, 0x1b, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x05, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x22, 0xb6, - 0x02, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x12, 0x0a, - 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x55, 0x55, 0x49, - 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x13, 0x6e, 0x75, 0x6d, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x73, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x6e, 0x75, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, - 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x75, 0x6d, - 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6e, 0x75, 0x6d, - 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x75, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x55, - 0x55, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, - 0x61, 0x72, 0x6b, 0x55, 0x55, 0x49, 0x44, 0x22, 0x6f, 0x0a, 0x03, 0x41, 0x70, 0x70, 0x12, 0x30, - 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x12, 0x36, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x41, - 0x70, 0x70, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0a, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x81, 0x03, 0x0a, 0x0b, 0x41, 0x70, 0x70, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x38, 0x0a, 0x09, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x38, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x20, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0a, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x69, 0x74, 0x65, - 0x6d, 0x73, 0x12, 0x46, 0x0a, 0x10, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x4c, 0x61, 0x73, 0x74, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x4c, - 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x13, 0x6e, 0x75, + 0x6f, 0x73, 0x12, 0x3b, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, + 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, + 0x2c, 0x0a, 0x05, 0x72, 0x69, 0x73, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x16, + 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x52, 0x69, 0x73, 0x6b, 0x2e, 0x53, 0x65, + 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x52, 0x05, 0x72, 0x69, 0x73, 0x6b, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, + 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x09, 0x73, 0x6f, + 0x72, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, + 0x53, 0x6f, 0x72, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x09, 0x73, 0x6f, 0x72, + 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 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, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x6f, 0x72, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x22, 0x80, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x07, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x75, + 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x33, + 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x1e, 0x0a, 0x1c, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x22, 0x4f, 0x0a, 0x1d, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x75, + 0x74, 0x68, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x75, 0x74, + 0x68, 0x6f, 0x72, 0x73, 0x22, 0x15, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6d, 0x65, + 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3f, 0x0a, 0x14, 0x4c, + 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x61, 0x70, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x53, + 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x04, 0x61, 0x70, 0x70, 0x73, 0x22, 0x8d, 0x01, 0x0a, + 0x0f, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x69, 0x66, 0x66, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, + 0x12, 0x1e, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, + 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, + 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x44, + 0x69, 0x66, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x29, 0x0a, 0x0b, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x41, 0x66, 0x74, 0x65, 0x72, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x07, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, + 0x0b, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x41, 0x66, 0x74, 0x65, 0x72, 0x22, 0x97, 0x01, 0x0a, + 0x08, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x69, 0x66, 0x66, 0x12, 0x1e, 0x0a, 0x04, 0x69, 0x74, 0x65, + 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x73, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x69, 0x66, 0x66, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x06, 0x62, 0x65, + 0x66, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x49, 0x74, 0x65, + 0x6d, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x05, 0x61, 0x66, 0x74, + 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, + 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x22, 0xb6, 0x02, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x53, 0x75, + 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x30, 0x0a, 0x13, 0x6e, 0x75, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x41, 0x66, 0x66, + 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x6e, 0x75, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x6e, - 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x6e, 0x75, 0x6d, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x73, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, - 0x6e, 0x75, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x6e, 0x75, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, - 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x69, 0x0a, 0x0d, - 0x41, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x55, - 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, - 0x61, 0x72, 0x6b, 0x55, 0x55, 0x49, 0x44, 0x22, 0x11, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x41, - 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x34, 0x0a, 0x10, 0x4c, 0x69, - 0x73, 0x74, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, - 0x0a, 0x04, 0x61, 0x70, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x52, 0x04, 0x61, 0x70, 0x70, 0x73, - 0x22, 0x4a, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, - 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x33, 0x0a, 0x11, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x1e, 0x0a, 0x03, 0x61, 0x70, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x52, 0x03, 0x61, 0x70, - 0x70, 0x22, 0x60, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x69, 0x6d, 0x70, 0x6c, - 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x75, 0x72, 0x6c, 0x22, 0x39, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x69, 0x6d, - 0x70, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, - 0x0a, 0x03, 0x61, 0x70, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x52, 0x03, 0x61, 0x70, 0x70, 0x22, 0x23, - 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x55, - 0x55, 0x49, 0x44, 0x22, 0x30, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x03, 0x61, 0x70, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x41, 0x70, 0x70, - 0x52, 0x03, 0x61, 0x70, 0x70, 0x22, 0x5e, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, - 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x36, 0x0a, - 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x50, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x33, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, - 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x03, 0x61, 0x70, - 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x2e, 0x41, 0x70, 0x70, 0x52, 0x03, 0x61, 0x70, 0x70, 0x22, 0x26, 0x0a, 0x10, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, - 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x55, 0x55, - 0x49, 0x44, 0x22, 0x13, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x41, - 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, - 0x55, 0x55, 0x49, 0x44, 0x22, 0x43, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, - 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x97, 0x05, 0x0a, 0x0d, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x55, - 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x4c, 0x69, - 0x6e, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, - 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x38, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x20, - 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x45, - 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x41, 0x66, 0x66, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6e, - 0x75, 0x6d, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x2a, - 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, - 0x6d, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e, 0x75, 0x6d, 0x41, 0x66, 0x66, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x75, - 0x6d, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x45, 0x64, 0x67, 0x65, 0x73, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e, 0x75, 0x6d, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x45, 0x64, 0x67, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x4c, 0x6f, 0x77, - 0x52, 0x69, 0x73, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x4c, - 0x6f, 0x77, 0x52, 0x69, 0x73, 0x6b, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x64, - 0x69, 0x75, 0x6d, 0x52, 0x69, 0x73, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6e, - 0x75, 0x6d, 0x4d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x52, 0x69, 0x73, 0x6b, 0x12, 0x20, 0x0a, 0x0b, - 0x6e, 0x75, 0x6d, 0x48, 0x69, 0x67, 0x68, 0x52, 0x69, 0x73, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0b, 0x6e, 0x75, 0x6d, 0x48, 0x69, 0x67, 0x68, 0x52, 0x69, 0x73, 0x6b, 0x12, 0x20, - 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x72, 0x65, 0x70, 0x6f, 0x12, 0x34, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x11, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, - 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, 0x78, 0x0a, 0x06, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x33, 0x0a, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, - 0x73, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xf1, 0x08, - 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x38, 0x0a, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x62, + 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x55, 0x55, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x55, 0x55, 0x49, 0x44, 0x22, + 0x6f, 0x0a, 0x03, 0x41, 0x70, 0x70, 0x12, 0x30, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x69, 0x65, 0x73, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, + 0x22, 0x81, 0x03, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x38, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, @@ -6082,633 +7102,855 @@ var file_changes_proto_rawDesc = []byte{ 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x6f, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x28, 0x0a, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x20, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x46, 0x0a, 0x10, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x4c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x10, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x4c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x12, 0x30, 0x0a, 0x13, 0x6e, 0x75, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x13, 0x6e, 0x75, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x41, 0x66, 0x66, 0x65, 0x63, + 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x75, 0x72, 0x6c, 0x22, 0x69, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x62, + 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x55, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x55, 0x55, 0x49, 0x44, 0x22, + 0x11, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x34, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x04, 0x61, 0x70, 0x70, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x41, + 0x70, 0x70, 0x52, 0x04, 0x61, 0x70, 0x70, 0x73, 0x22, 0x4a, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x0a, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x50, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x69, 0x65, 0x73, 0x22, 0x33, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x03, 0x61, 0x70, 0x70, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x2e, 0x41, 0x70, 0x70, 0x52, 0x03, 0x61, 0x70, 0x70, 0x22, 0x60, 0x0a, 0x16, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x39, 0x0a, 0x17, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x03, 0x61, 0x70, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x41, 0x70, + 0x70, 0x52, 0x03, 0x61, 0x70, 0x70, 0x22, 0x23, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x22, 0x30, 0x0a, 0x0e, 0x47, + 0x65, 0x74, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, + 0x03, 0x61, 0x70, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x52, 0x03, 0x61, 0x70, 0x70, 0x22, 0x5e, 0x0a, + 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x36, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, + 0x73, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x33, 0x0a, + 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x03, 0x61, 0x70, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x52, 0x03, 0x61, + 0x70, 0x70, 0x22, 0x26, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x22, 0x13, 0x0a, 0x11, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x2b, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x22, 0x43, 0x0a, 0x16, + 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x22, 0x8d, 0x01, 0x0a, 0x08, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3b, + 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x75, + 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3b, 0x0a, 0x0c, 0x61, + 0x75, 0x74, 0x6f, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x41, 0x75, 0x74, 0x6f, + 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x6f, + 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x24, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x42, 0x0a, 0x0c, 0x41, 0x75, 0x74, 0x6f, 0x54, + 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0xbd, 0x06, 0x0a, 0x0d, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x12, 0x0a, + 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x55, 0x55, 0x49, + 0x44, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, + 0x4c, 0x69, 0x6e, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x63, 0x6b, + 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x38, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x45, 0x6d, 0x61, + 0x69, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, + 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x41, 0x66, 0x66, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x41, 0x66, 0x66, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x41, 0x66, - 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x10, 0x6e, 0x75, 0x6d, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x74, - 0x65, 0x6d, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x45, 0x64, 0x67, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e, - 0x75, 0x6d, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x45, 0x64, 0x67, 0x65, 0x73, 0x12, - 0x2c, 0x0a, 0x11, 0x6e, 0x75, 0x6d, 0x55, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x49, - 0x74, 0x65, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x6e, 0x75, 0x6d, 0x55, - 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x28, 0x0a, - 0x0f, 0x6e, 0x75, 0x6d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, - 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, - 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e, 0x75, 0x6d, - 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x28, 0x0a, - 0x0f, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x56, 0x0a, 0x13, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, - 0x77, 0x6e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x48, 0x65, - 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x13, 0x55, 0x6e, 0x6b, 0x6e, - 0x6f, 0x77, 0x6e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, - 0x4c, 0x0a, 0x0e, 0x4f, 0x6b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x4f, - 0x6b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x56, 0x0a, - 0x13, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x52, 0x13, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x52, 0x0a, 0x11, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x65, - 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x11, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x65, 0x61, - 0x6c, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x50, 0x65, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, - 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x13, 0x50, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x1a, 0x5e, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x61, 0x64, 0x64, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x22, 0xb9, 0x05, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, - 0x0a, 0x0a, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x14, - 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, - 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x63, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x73, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x63, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x73, - 0x12, 0x3c, 0x0a, 0x19, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, - 0x73, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x55, 0x55, 0x49, 0x44, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x19, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, - 0x6d, 0x73, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x55, 0x55, 0x49, 0x44, 0x12, 0x38, - 0x0a, 0x17, 0x62, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x53, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x55, 0x55, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x17, 0x62, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x53, 0x6e, 0x61, 0x70, - 0x73, 0x68, 0x6f, 0x74, 0x55, 0x55, 0x49, 0x44, 0x12, 0x3a, 0x0a, 0x18, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x55, 0x55, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x18, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x55, 0x55, 0x49, 0x44, 0x12, 0x38, 0x0a, 0x17, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x66, - 0x74, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x55, 0x55, 0x49, 0x44, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x17, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x66, 0x74, - 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x55, 0x55, 0x49, 0x44, 0x12, 0x2a, - 0x0a, 0x10, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x55, 0x55, - 0x49, 0x44, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x10, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x55, 0x55, 0x49, 0x44, 0x12, 0x39, 0x0a, 0x0e, 0x70, 0x6c, - 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x49, 0x74, 0x65, - 0x6d, 0x44, 0x69, 0x66, 0x66, 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x61, 0x77, 0x50, 0x6c, 0x61, 0x6e, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x61, 0x77, 0x50, 0x6c, 0x61, 0x6e, 0x12, - 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x72, 0x65, 0x70, 0x6f, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x10, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x54, - 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x1a, 0x37, + 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e, 0x75, 0x6d, 0x41, + 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2a, 0x0a, 0x10, + 0x6e, 0x75, 0x6d, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x45, 0x64, 0x67, 0x65, 0x73, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e, 0x75, 0x6d, 0x41, 0x66, 0x66, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x45, 0x64, 0x67, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x4c, + 0x6f, 0x77, 0x52, 0x69, 0x73, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6e, 0x75, + 0x6d, 0x4c, 0x6f, 0x77, 0x52, 0x69, 0x73, 0x6b, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x75, 0x6d, 0x4d, + 0x65, 0x64, 0x69, 0x75, 0x6d, 0x52, 0x69, 0x73, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0d, 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x52, 0x69, 0x73, 0x6b, 0x12, 0x20, + 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 0x48, 0x69, 0x67, 0x68, 0x52, 0x69, 0x73, 0x6b, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6e, 0x75, 0x6d, 0x48, 0x69, 0x67, 0x68, 0x52, 0x69, 0x73, 0x6b, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x11, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x67, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, + 0x12, 0x4c, 0x0a, 0x0c, 0x65, 0x6e, 0x72, 0x69, 0x63, 0x68, 0x65, 0x64, 0x54, 0x61, 0x67, 0x73, + 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x45, + 0x6e, 0x72, 0x69, 0x63, 0x68, 0x65, 0x64, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0c, 0x65, 0x6e, 0x72, 0x69, 0x63, 0x68, 0x65, 0x64, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 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, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0x14, 0x0a, - 0x12, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x40, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x07, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x07, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x4b, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x73, 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0x48, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x29, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x50, 0x0a, 0x13, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, - 0x65, 0x73, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x3f, - 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, - 0x3a, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x69, 0x6d, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x6c, 0x69, 0x6d, 0x22, 0x3c, 0x0a, 0x11, 0x47, - 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x27, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x52, 0x0a, 0x11, 0x45, 0x6e, 0x72, 0x69, 0x63, + 0x68, 0x65, 0x64, 0x54, 0x61, 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, 0x27, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x78, 0x0a, 0x06, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xf1, 0x08, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x38, 0x0a, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x38, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x45, 0x6d, 0x61, 0x69, + 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, + 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x41, 0x66, 0x66, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, + 0x6e, 0x75, 0x6d, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, + 0x2a, 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x74, + 0x65, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e, 0x75, 0x6d, 0x41, 0x66, + 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6e, + 0x75, 0x6d, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x45, 0x64, 0x67, 0x65, 0x73, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e, 0x75, 0x6d, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x45, 0x64, 0x67, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6e, 0x75, 0x6d, 0x55, 0x6e, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x11, 0x6e, 0x75, 0x6d, 0x55, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, + 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, + 0x6e, 0x75, 0x6d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, + 0x28, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, + 0x6d, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x75, 0x6d, + 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, + 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, + 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, + 0x56, 0x0a, 0x13, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x52, 0x13, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x48, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x4c, 0x0a, 0x0e, 0x4f, 0x6b, 0x48, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x4f, 0x6b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, + 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x48, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x13, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x52, 0x0a, + 0x11, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x11, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x56, 0x0a, 0x13, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x52, 0x13, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x1a, 0x5e, 0x0a, 0x0c, 0x48, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x64, + 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x61, 0x64, 0x64, 0x65, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6e, + 0x61, 0x6c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, + 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x86, 0x0a, 0x0a, 0x10, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, + 0x4c, 0x69, 0x6e, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x63, 0x6b, + 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, + 0x63, 0x63, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x63, 0x63, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x3c, 0x0a, 0x19, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, + 0x6b, 0x55, 0x55, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x19, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, + 0x72, 0x6b, 0x55, 0x55, 0x49, 0x44, 0x12, 0x38, 0x0a, 0x17, 0x62, 0x6c, 0x61, 0x73, 0x74, 0x52, + 0x61, 0x64, 0x69, 0x75, 0x73, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x55, 0x55, 0x49, + 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x17, 0x62, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, + 0x64, 0x69, 0x75, 0x73, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x55, 0x55, 0x49, 0x44, + 0x12, 0x3a, 0x0a, 0x18, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, + 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x55, 0x55, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x18, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, + 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x55, 0x55, 0x49, 0x44, 0x12, 0x38, 0x0a, 0x17, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x66, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x55, 0x55, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x17, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x66, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x55, 0x55, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x55, 0x55, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0c, + 0x52, 0x10, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x55, 0x55, + 0x49, 0x44, 0x12, 0x39, 0x0a, 0x0e, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x69, 0x66, 0x66, 0x52, 0x0e, 0x70, + 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x72, 0x61, 0x77, 0x50, 0x6c, 0x61, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x72, 0x61, 0x77, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, + 0x64, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x70, + 0x6f, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x12, 0x3b, 0x0a, + 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x4f, 0x0a, 0x0c, 0x65, 0x6e, + 0x72, 0x69, 0x63, 0x68, 0x65, 0x64, 0x54, 0x61, 0x67, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2b, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x72, 0x69, + 0x63, 0x68, 0x65, 0x64, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x65, + 0x6e, 0x72, 0x69, 0x63, 0x68, 0x65, 0x64, 0x54, 0x61, 0x67, 0x73, 0x12, 0x58, 0x0a, 0x0f, 0x73, + 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x41, 0x75, 0x74, 0x6f, 0x54, 0x61, 0x67, 0x73, 0x18, 0x13, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2e, + 0x53, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x41, 0x75, 0x74, 0x6f, 0x54, 0x61, 0x67, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x41, 0x75, 0x74, + 0x6f, 0x54, 0x61, 0x67, 0x73, 0x12, 0x65, 0x0a, 0x15, 0x61, 0x75, 0x74, 0x6f, 0x54, 0x61, 0x67, + 0x67, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2e, + 0x41, 0x75, 0x74, 0x6f, 0x54, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x53, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x15, 0x61, 0x75, 0x74, 0x6f, 0x54, 0x61, 0x67, 0x67, 0x69, + 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0x37, 0x0a, 0x09, + 0x54, 0x61, 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, 0x1a, 0x52, 0x0a, 0x11, 0x45, 0x6e, 0x72, 0x69, 0x63, 0x68, 0x65, + 0x64, 0x54, 0x61, 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, 0x27, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x59, 0x0a, 0x14, 0x53, 0x6b, 0x69, + 0x70, 0x70, 0x65, 0x64, 0x41, 0x75, 0x74, 0x6f, 0x54, 0x61, 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, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x41, 0x75, 0x74, + 0x6f, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x85, 0x01, 0x0a, 0x15, 0x41, 0x75, 0x74, 0x6f, 0x54, 0x61, 0x67, + 0x67, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x28, + 0x0a, 0x24, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x54, 0x41, 0x47, 0x47, 0x49, 0x4e, 0x47, 0x5f, 0x52, + 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x55, 0x54, 0x4f, + 0x5f, 0x54, 0x41, 0x47, 0x47, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x53, 0x4f, + 0x55, 0x52, 0x43, 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x41, + 0x55, 0x54, 0x4f, 0x5f, 0x54, 0x41, 0x47, 0x47, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x55, 0x4c, 0x45, + 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x55, 0x49, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x01, + 0x10, 0x02, 0x22, 0x14, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x40, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x29, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x2b, 0x0a, 0x15, 0x47, 0x65, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x22, 0xf7, 0x01, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x52, 0x69, 0x73, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x54, 0x0a, - 0x15, 0x72, 0x69, 0x73, 0x6b, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x52, 0x69, 0x73, 0x6b, 0x43, 0x61, 0x6c, 0x63, 0x75, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x15, 0x72, 0x69, - 0x73, 0x6b, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x05, 0x72, 0x69, 0x73, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x52, 0x69, 0x73, - 0x6b, 0x52, 0x05, 0x72, 0x69, 0x73, 0x6b, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x4c, - 0x6f, 0x77, 0x52, 0x69, 0x73, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6e, 0x75, - 0x6d, 0x4c, 0x6f, 0x77, 0x52, 0x69, 0x73, 0x6b, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x75, 0x6d, 0x4d, - 0x65, 0x64, 0x69, 0x75, 0x6d, 0x52, 0x69, 0x73, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0d, 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x52, 0x69, 0x73, 0x6b, 0x12, 0x20, - 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 0x48, 0x69, 0x67, 0x68, 0x52, 0x69, 0x73, 0x6b, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6e, 0x75, 0x6d, 0x48, 0x69, 0x67, 0x68, 0x52, 0x69, 0x73, 0x6b, - 0x22, 0x65, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x69, 0x73, - 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x12, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x52, 0x12, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x64, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, - 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x55, 0x55, - 0x49, 0x44, 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, - 0x73, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x3f, 0x0a, - 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x29, - 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x22, 0x36, 0x0a, 0x20, 0x4c, 0x69, 0x73, - 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x42, 0x79, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, - 0x6f, 0x74, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x55, 0x55, 0x49, - 0x44, 0x22, 0x4e, 0x0a, 0x21, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, - 0x42, 0x79, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, + 0x65, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x4b, 0x0a, 0x1a, 0x4c, 0x69, + 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x48, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x66, - 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x53, 0x0a, 0x1b, 0x43, 0x61, 0x6c, 0x63, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0xa2, 0x02, - 0x0a, 0x1c, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x6c, 0x61, 0x73, 0x74, - 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, - 0x65, 0x42, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1a, 0x0a, - 0x08, 0x6e, 0x75, 0x6d, 0x45, 0x64, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x08, 0x6e, 0x75, 0x6d, 0x45, 0x64, 0x67, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x73, 0x22, 0x6f, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, - 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, - 0x56, 0x45, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, 0x54, - 0x45, 0x5f, 0x53, 0x41, 0x56, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, - 0x41, 0x54, 0x45, 0x5f, 0x46, 0x49, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x50, 0x50, 0x53, - 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x4f, 0x4e, 0x45, - 0x10, 0x04, 0x22, 0x34, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x22, 0xed, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x38, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x22, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x75, - 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x75, - 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x75, 0x6d, 0x45, 0x64, 0x67, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4e, 0x75, 0x6d, 0x45, 0x64, 0x67, - 0x65, 0x73, 0x22, 0x64, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, - 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x41, 0x4b, 0x49, - 0x4e, 0x47, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x10, 0x01, 0x12, 0x19, 0x0a, - 0x15, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x41, 0x56, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x4e, - 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x54, 0x41, 0x54, - 0x45, 0x5f, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x22, 0x32, 0x0a, 0x10, 0x45, 0x6e, 0x64, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x22, 0xe9, 0x01, 0x0a, - 0x11, 0x45, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x20, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x64, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x75, - 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x75, - 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x75, 0x6d, 0x45, 0x64, 0x67, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4e, 0x75, 0x6d, 0x45, 0x64, 0x67, - 0x65, 0x73, 0x22, 0x64, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, - 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x41, 0x4b, 0x49, - 0x4e, 0x47, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x10, 0x01, 0x12, 0x19, 0x0a, - 0x15, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x41, 0x56, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x4e, - 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x54, 0x41, 0x54, - 0x45, 0x5f, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x22, 0x84, 0x01, 0x0a, 0x0a, 0x4f, 0x6e, 0x62, - 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x73, 0x2e, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x12, 0x3d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4f, - 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x73, 0x22, 0x50, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x69, 0x65, 0x73, 0x22, 0x3f, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x22, 0x3a, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x6c, 0x69, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x6c, 0x69, 0x6d, + 0x22, 0x3c, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x2b, + 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x22, 0xf4, 0x01, 0x0a, 0x12, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x51, 0x0a, 0x14, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x14, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x05, 0x72, 0x69, 0x73, 0x6b, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x52, + 0x69, 0x73, 0x6b, 0x52, 0x05, 0x72, 0x69, 0x73, 0x6b, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x75, + 0x6d, 0x4c, 0x6f, 0x77, 0x52, 0x69, 0x73, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x6e, 0x75, 0x6d, 0x4c, 0x6f, 0x77, 0x52, 0x69, 0x73, 0x6b, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x75, + 0x6d, 0x4d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x52, 0x69, 0x73, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0d, 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x52, 0x69, 0x73, 0x6b, + 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 0x48, 0x69, 0x67, 0x68, 0x52, 0x69, 0x73, 0x6b, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6e, 0x75, 0x6d, 0x48, 0x69, 0x67, 0x68, 0x52, 0x69, + 0x73, 0x6b, 0x22, 0x65, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, + 0x69, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x12, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x12, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x69, 0x73, + 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x64, 0x0a, 0x13, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x55, 0x55, 0x49, 0x44, 0x12, 0x39, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, - 0x6e, 0x0a, 0x12, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x68, - 0x61, 0x73, 0x41, 0x77, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x41, 0x77, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, - 0xaf, 0x01, 0x0a, 0x14, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x2e, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x61, - 0x77, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0d, 0x61, 0x77, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x55, 0x49, - 0x44, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x55, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x07, 0x61, 0x70, 0x70, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x4a, 0x04, 0x08, 0x05, 0x10, - 0x06, 0x22, 0x16, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, - 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4c, 0x0a, 0x15, 0x47, 0x65, 0x74, - 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x6f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, - 0x2e, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x6f, 0x6e, 0x62, - 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x58, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, + 0x3f, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x22, 0x29, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x22, 0x36, 0x0a, 0x20, 0x4c, + 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x42, 0x79, 0x53, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x55, + 0x55, 0x49, 0x44, 0x22, 0x4e, 0x0a, 0x21, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x73, 0x42, 0x79, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x55, 0x55, 0x49, 0x44, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x52, + 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x53, 0x0a, 0x1b, 0x43, 0x61, + 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x64, 0x69, + 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, + 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, + 0xa2, 0x02, 0x0a, 0x1c, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x6c, 0x61, + 0x73, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x41, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2b, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, + 0x61, 0x74, 0x65, 0x42, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, + 0x1a, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x45, 0x64, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x45, 0x64, 0x67, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x73, 0x22, 0x6f, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x49, 0x53, + 0x43, 0x4f, 0x56, 0x45, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x5f, 0x53, 0x41, 0x56, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x49, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x50, + 0x50, 0x53, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x4f, + 0x4e, 0x45, 0x10, 0x04, 0x22, 0x34, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x22, 0xed, 0x01, 0x0a, 0x13, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x38, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x22, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x6e, 0x75, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x6e, 0x75, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x75, 0x6d, 0x45, + 0x64, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4e, 0x75, 0x6d, 0x45, + 0x64, 0x67, 0x65, 0x73, 0x22, 0x64, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, + 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x41, + 0x4b, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x10, 0x01, 0x12, + 0x19, 0x0a, 0x15, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x41, 0x56, 0x49, 0x4e, 0x47, 0x5f, + 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x5f, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x22, 0x32, 0x0a, 0x10, 0x45, 0x6e, + 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, + 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x22, 0xe9, + 0x01, 0x0a, 0x11, 0x45, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x45, 0x6e, + 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x6e, 0x75, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x6e, 0x75, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x75, 0x6d, 0x45, + 0x64, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4e, 0x75, 0x6d, 0x45, + 0x64, 0x67, 0x65, 0x73, 0x22, 0x64, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, + 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x41, + 0x4b, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x10, 0x01, 0x12, + 0x19, 0x0a, 0x15, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x41, 0x56, 0x49, 0x4e, 0x47, 0x5f, + 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x5f, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x22, 0x84, 0x01, 0x0a, 0x0a, 0x4f, + 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x3d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, - 0x73, 0x22, 0x4f, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x62, 0x6f, 0x61, - 0x72, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, - 0x0a, 0x6f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4f, 0x6e, 0x62, 0x6f, - 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x6f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, - 0x6e, 0x67, 0x22, 0x37, 0x0a, 0x15, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x22, 0x56, 0x0a, 0x16, 0x53, - 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x65, 0x72, - 0x63, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x22, 0x96, 0x02, 0x0a, 0x04, 0x52, 0x69, 0x73, 0x6b, 0x12, 0x12, 0x0a, 0x04, - 0x55, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, - 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, - 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x2e, 0x52, 0x69, 0x73, 0x6b, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, - 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x0c, - 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0c, - 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x5e, 0x0a, 0x08, - 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x45, 0x56, 0x45, - 0x52, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x4c, - 0x4f, 0x57, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, - 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x45, 0x56, - 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x10, 0x03, 0x22, 0x9d, 0x04, 0x0a, - 0x15, 0x52, 0x69, 0x73, 0x6b, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, - 0x2e, 0x52, 0x69, 0x73, 0x6b, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x22, 0x6e, 0x0a, 0x12, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x22, 0x0a, + 0x0c, 0x68, 0x61, 0x73, 0x41, 0x77, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x41, 0x77, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x22, 0xaf, 0x01, 0x0a, 0x14, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, + 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, + 0x0d, 0x61, 0x77, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x61, 0x77, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, + 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x55, 0x55, 0x49, 0x44, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x70, 0x70, 0x55, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x4a, 0x04, 0x08, + 0x05, 0x10, 0x06, 0x22, 0x16, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, + 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4c, 0x0a, 0x15, 0x47, + 0x65, 0x74, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x6f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, + 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x73, 0x2e, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x6f, + 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x58, 0x0a, 0x17, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x73, 0x2e, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x69, 0x65, 0x73, 0x22, 0x4f, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x62, + 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x33, 0x0a, 0x0a, 0x6f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4f, 0x6e, + 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x6f, 0x6e, 0x62, 0x6f, 0x61, 0x72, + 0x64, 0x69, 0x6e, 0x67, 0x22, 0x37, 0x0a, 0x15, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, + 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x55, 0x55, 0x49, 0x44, 0x22, 0x56, 0x0a, + 0x16, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x70, + 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x22, 0x96, 0x02, 0x0a, 0x04, 0x52, 0x69, 0x73, 0x6b, 0x12, 0x12, + 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x55, 0x55, + 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, + 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x52, 0x69, 0x73, 0x6b, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, + 0x74, 0x79, 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, + 0x0a, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x5e, + 0x0a, 0x08, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x45, + 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, + 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, + 0x54, 0x59, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x53, + 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x10, 0x03, 0x22, 0x99, + 0x04, 0x0a, 0x14, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x60, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x5f, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x52, 0x69, 0x73, 0x6b, - 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, - 0x6f, 0x6e, 0x65, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x69, 0x6c, - 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x1a, 0xf2, 0x01, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x12, 0x20, 0x0a, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x4f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x37, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x52, 0x69, 0x73, 0x6b, 0x43, 0x61, - 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, - 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, - 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x22, 0x6a, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, - 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x15, - 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x50, 0x52, 0x4f, 0x47, 0x52, - 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, - 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x53, 0x4b, 0x49, 0x50, 0x50, 0x45, 0x44, 0x10, 0x04, 0x22, 0x6e, 0x0a, 0x06, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, - 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x50, 0x52, 0x4f, 0x47, 0x52, - 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, - 0x53, 0x4b, 0x49, 0x50, 0x50, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, - 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x22, 0x8a, 0x05, 0x0a, - 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0x27, - 0x0a, 0x06, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, - 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, - 0x06, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x4e, 0x0a, 0x15, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, - 0x6b, 0x73, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x48, 0x00, 0x52, 0x15, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x6f, 0x6f, 0x6b, - 0x6d, 0x61, 0x72, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x13, 0x62, 0x6c, 0x61, 0x73, 0x74, - 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, - 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x48, 0x01, 0x52, 0x13, 0x62, 0x6c, 0x61, - 0x73, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x14, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x42, 0x65, 0x66, - 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x2e, 0x53, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x48, 0x02, 0x52, 0x14, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x4a, 0x0a, 0x13, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x66, 0x74, 0x65, 0x72, - 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, - 0x68, 0x6f, 0x74, 0x48, 0x03, 0x52, 0x13, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x66, 0x74, - 0x65, 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, - 0x0c, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x41, 0x70, - 0x70, 0x52, 0x0c, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, - 0x38, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x08, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x4b, 0x0a, 0x12, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x52, 0x12, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, - 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x62, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, - 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x66, 0x74, 0x65, - 0x72, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x22, 0x2d, 0x0a, 0x17, 0x47, 0x65, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x22, 0x58, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, - 0x63, 0x68, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x63, 0x68, - 0x69, 0x76, 0x65, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, - 0x76, 0x65, 0x2a, 0xcb, 0x01, 0x0a, 0x0e, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x69, 0x66, 0x66, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x1c, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x44, 0x49, - 0x46, 0x46, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x54, 0x45, 0x4d, 0x5f, - 0x44, 0x49, 0x46, 0x46, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x43, 0x48, - 0x41, 0x4e, 0x47, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x54, 0x45, 0x4d, 0x5f, - 0x44, 0x49, 0x46, 0x46, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, - 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x44, 0x49, - 0x46, 0x46, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, - 0x44, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x44, 0x49, 0x46, 0x46, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, - 0x04, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x44, 0x49, 0x46, 0x46, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x43, 0x45, 0x44, 0x10, 0x05, - 0x2a, 0x9c, 0x01, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, - 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x48, 0x41, - 0x50, 0x50, 0x45, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, - 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x52, 0x4f, 0x43, 0x45, - 0x53, 0x53, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x48, 0x41, 0x4e, 0x47, - 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x04, 0x2a, - 0xe3, 0x01, 0x0a, 0x10, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x1d, 0x4f, 0x4e, 0x42, 0x4f, 0x41, 0x52, 0x44, 0x49, - 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x4f, 0x4e, 0x42, 0x4f, 0x41, - 0x52, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x41, 0x44, 0x44, - 0x5f, 0x41, 0x57, 0x53, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x1d, - 0x0a, 0x19, 0x4f, 0x4e, 0x42, 0x4f, 0x41, 0x52, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x41, 0x50, 0x50, 0x10, 0x02, 0x12, 0x23, 0x0a, - 0x1f, 0x4f, 0x4e, 0x42, 0x4f, 0x41, 0x52, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, - 0x10, 0x03, 0x12, 0x25, 0x0a, 0x21, 0x4f, 0x4e, 0x42, 0x4f, 0x41, 0x52, 0x44, 0x49, 0x4e, 0x47, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x49, 0x4d, 0x55, 0x4c, 0x41, 0x54, 0x45, - 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x4e, 0x42, - 0x4f, 0x41, 0x52, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, - 0x4f, 0x4e, 0x45, 0x10, 0x05, 0x32, 0x82, 0x17, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, - 0x41, 0x70, 0x70, 0x73, 0x12, 0x18, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, - 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x09, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x12, 0x19, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1a, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, - 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x41, 0x70, 0x70, - 0x12, 0x1f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x20, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x12, 0x16, 0x2e, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, - 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, - 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x12, 0x19, 0x2e, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x42, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x12, - 0x19, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x60, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x42, - 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x42, 0x79, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x12, 0x1c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1d, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x42, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x19, 0x2e, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x52, 0x69, 0x73, 0x6b, 0x73, 0x12, 0x1e, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, - 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, - 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0x20, 0x2e, 0x63, 0x68, 0x61, + 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, + 0x6e, 0x65, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x69, 0x6c, 0x65, + 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x1a, 0xf1, 0x01, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4e, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, + 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x50, 0x72, + 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x6a, + 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, + 0x53, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, + 0x4e, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, + 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, + 0x5f, 0x53, 0x4b, 0x49, 0x50, 0x50, 0x45, 0x44, 0x10, 0x04, 0x22, 0x6e, 0x0a, 0x06, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, + 0x53, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x4b, + 0x49, 0x50, 0x50, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x22, 0x8a, 0x05, 0x0a, 0x0d, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0x27, 0x0a, 0x06, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x4e, 0x0a, 0x15, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x69, 0x6e, + 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, + 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x48, 0x00, 0x52, 0x15, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, + 0x72, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x13, 0x62, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, + 0x64, 0x69, 0x75, 0x73, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x2e, 0x53, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x48, 0x01, 0x52, 0x13, 0x62, 0x6c, 0x61, 0x73, 0x74, + 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x4c, 0x0a, 0x14, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x42, 0x65, 0x66, 0x6f, 0x72, + 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x2e, 0x53, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x48, 0x02, 0x52, 0x14, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x42, 0x65, + 0x66, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x4a, 0x0a, 0x13, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x66, 0x74, 0x65, 0x72, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x48, 0x03, 0x52, 0x13, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x66, 0x74, 0x65, 0x72, + 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x0c, 0x61, + 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x52, + 0x0c, 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x38, 0x0a, + 0x08, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x74, + 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x4b, 0x0a, 0x12, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x52, 0x69, 0x73, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x52, 0x12, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x69, 0x6e, + 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x42, 0x16, + 0x0a, 0x14, 0x5f, 0x62, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x42, + 0x16, 0x0a, 0x14, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x66, 0x74, 0x65, 0x72, 0x53, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x22, 0x2d, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x22, 0x58, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, + 0x65, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, + 0x2a, 0xcb, 0x01, 0x0a, 0x0e, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x69, 0x66, 0x66, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x1c, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x44, 0x49, 0x46, 0x46, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x44, 0x49, + 0x46, 0x46, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x43, 0x48, 0x41, 0x4e, + 0x47, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x44, 0x49, + 0x46, 0x46, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, + 0x44, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x44, 0x49, 0x46, 0x46, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x44, 0x10, + 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x44, 0x49, 0x46, 0x46, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, + 0x1d, 0x0a, 0x19, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x44, 0x49, 0x46, 0x46, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x55, 0x53, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x43, 0x45, 0x44, 0x10, 0x05, 0x2a, 0x9c, + 0x01, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x1d, 0x0a, 0x19, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, + 0x0a, 0x16, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, + 0x44, 0x45, 0x46, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x48, + 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x48, 0x41, 0x50, 0x50, + 0x45, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, 0x4e, 0x47, + 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, + 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x04, 0x2a, 0xe3, 0x01, + 0x0a, 0x10, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x21, 0x0a, 0x1d, 0x4f, 0x4e, 0x42, 0x4f, 0x41, 0x52, 0x44, 0x49, 0x4e, 0x47, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x4f, 0x4e, 0x42, 0x4f, 0x41, 0x52, 0x44, + 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x41, + 0x57, 0x53, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, + 0x4f, 0x4e, 0x42, 0x4f, 0x41, 0x52, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x41, 0x50, 0x50, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x4f, + 0x4e, 0x42, 0x4f, 0x41, 0x52, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, + 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x03, + 0x12, 0x25, 0x0a, 0x21, 0x4f, 0x4e, 0x42, 0x4f, 0x41, 0x52, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x49, 0x4d, 0x55, 0x4c, 0x41, 0x54, 0x45, 0x5f, 0x43, + 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x4e, 0x42, 0x4f, 0x41, + 0x52, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x4e, + 0x45, 0x10, 0x05, 0x32, 0x82, 0x17, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, + 0x70, 0x73, 0x12, 0x18, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x41, 0x70, 0x70, 0x12, 0x19, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1a, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x0f, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x12, 0x1f, + 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, + 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x20, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x39, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x12, 0x16, 0x2e, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, + 0x74, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x09, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x12, 0x19, 0x2e, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x42, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x12, 0x19, 0x2e, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, + 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, + 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x42, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x42, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x42, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x4b, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x12, 0x1c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, + 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, + 0x09, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x19, 0x2e, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, + 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x69, + 0x73, 0x6b, 0x73, 0x12, 0x1e, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, + 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, + 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0x20, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, - 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x4b, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, - 0x1c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, + 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1c, 0x2e, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x63, 0x68, 0x61, + 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x19, 0x4c, 0x69, 0x73, - 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x42, 0x79, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, - 0x6f, 0x74, 0x55, 0x55, 0x49, 0x44, 0x12, 0x29, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x42, 0x79, 0x53, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2a, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x42, 0x79, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, - 0x11, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, - 0x6e, 0x65, 0x12, 0x21, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, - 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x52, 0x65, 0x66, - 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x42, 0x79, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x55, 0x55, 0x49, 0x44, 0x12, 0x29, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x42, 0x79, 0x53, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x55, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2a, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x73, 0x42, 0x79, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x55, + 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x11, 0x47, + 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, + 0x12, 0x21, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, + 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x52, 0x65, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x14, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, - 0x61, 0x74, 0x65, 0x42, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x12, 0x24, - 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, - 0x74, 0x65, 0x42, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, - 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x64, - 0x69, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x4a, 0x0a, - 0x0b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1b, 0x2e, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x45, 0x6e, 0x64, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x19, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, - 0x2e, 0x45, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1a, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x64, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, - 0x53, 0x0a, 0x0e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x12, 0x1e, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x69, 0x6d, 0x75, - 0x6c, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x69, 0x6d, 0x75, - 0x6c, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x30, 0x01, 0x12, 0x4e, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x62, 0x6f, 0x61, - 0x72, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, - 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, - 0x65, 0x74, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, - 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x20, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, + 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x14, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, + 0x65, 0x42, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x12, 0x24, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x42, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x61, 0x6c, + 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1b, 0x2e, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x45, 0x6e, 0x64, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x12, 0x19, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x45, + 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1a, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x64, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x53, 0x0a, + 0x0e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, + 0x1e, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x30, 0x01, 0x12, 0x4e, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, + 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, + 0x74, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, + 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x57, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x62, 0x6f, + 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x20, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x62, 0x6f, 0x61, - 0x72, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, - 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x73, 0x12, 0x1c, 0x2e, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6d, 0x65, - 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x4c, + 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x73, 0x12, 0x1c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6d, 0x65, 0x41, 0x70, - 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x0f, 0x4c, 0x69, - 0x73, 0x74, 0x48, 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x1f, 0x2e, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6d, 0x65, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, - 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6d, - 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x4e, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, - 0x79, 0x12, 0x1d, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, - 0x70, 0x70, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1e, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, - 0x70, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x54, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, - 0x69, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, - 0x74, 0x41, 0x70, 0x70, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, - 0x65, 0x74, 0x41, 0x70, 0x70, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, - 0x70, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x15, 0x4c, 0x69, 0x73, - 0x74, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, - 0x72, 0x79, 0x12, 0x25, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, - 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x63, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x23, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x69, 0x6e, - 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, - 0x65, 0x42, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x65, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x24, - 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, - 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, - 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x64, - 0x69, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x54, 0x0a, - 0x0f, 0x47, 0x65, 0x74, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, - 0x12, 0x1f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x66, - 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x20, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, - 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, - 0x28, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, - 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x69, 0x6e, 0x67, - 0x49, 0x74, 0x65, 0x6d, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x44, 0x69, 0x66, 0x66, 0x12, - 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x69, 0x66, - 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x66, 0x0a, 0x15, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x25, 0x2e, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x50, 0x6f, 0x70, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x24, 0x5a, 0x22, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x76, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x64, 0x74, 0x65, 0x63, 0x68, 0x2f, 0x73, 0x64, 0x70, 0x2d, 0x67, 0x6f, 0x3b, 0x73, 0x64, 0x70, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, + 0x48, 0x6f, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6d, 0x65, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x6d, 0x65, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, + 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, + 0x1d, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, + 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, + 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x53, + 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, + 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, + 0x73, 0x12, 0x1f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, + 0x70, 0x70, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x70, 0x70, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x41, + 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, + 0x12, 0x25, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, + 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x63, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x69, 0x6e, + 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x23, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x42, + 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x30, 0x01, 0x12, 0x65, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6c, + 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x24, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, + 0x6e, 0x6e, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x61, 0x6c, + 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x54, 0x0a, 0x0f, 0x47, + 0x65, 0x74, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x1f, + 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x66, 0x66, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x20, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x66, 0x66, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x6f, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x69, 0x6e, + 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x28, 0x2e, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x49, 0x74, + 0x65, 0x6d, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x44, 0x69, 0x66, 0x66, 0x12, 0x17, 0x2e, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x69, 0x66, 0x66, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x2e, 0x47, 0x65, 0x74, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x66, 0x0a, 0x15, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x25, 0x2e, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x73, 0x2e, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x26, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x50, 0x6f, 0x70, 0x75, 0x6c, + 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf5, 0x03, 0x0a, 0x12, 0x41, 0x75, 0x74, + 0x6f, 0x54, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, + 0x42, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x19, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x12, 0x1a, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, + 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x47, 0x65, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, + 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, + 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x1a, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x45, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x1a, 0x2e, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, + 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x75, 0x6c, 0x65, 0x12, 0x1a, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1b, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, + 0x08, 0x54, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x18, 0x2e, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x73, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2e, 0x54, 0x65, + 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, + 0x42, 0x24, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, + 0x76, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x64, 0x74, 0x65, 0x63, 0x68, 0x2f, 0x73, 0x64, 0x70, 0x2d, + 0x67, 0x6f, 0x3b, 0x73, 0x64, 0x70, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -6723,299 +7965,360 @@ func file_changes_proto_rawDescGZIP() []byte { return file_changes_proto_rawDescData } -var file_changes_proto_enumTypes = make([]protoimpl.EnumInfo, 9) -var file_changes_proto_msgTypes = make([]protoimpl.MessageInfo, 93) +var file_changes_proto_enumTypes = make([]protoimpl.EnumInfo, 10) +var file_changes_proto_msgTypes = make([]protoimpl.MessageInfo, 116) var file_changes_proto_goTypes = []any{ - (ItemDiffStatus)(0), // 0: changes.ItemDiffStatus - (ChangeStatus)(0), // 1: changes.ChangeStatus - (OnboardingStatus)(0), // 2: changes.OnboardingStatus - (CalculateBlastRadiusResponse_State)(0), // 3: changes.CalculateBlastRadiusResponse.State - (StartChangeResponse_State)(0), // 4: changes.StartChangeResponse.State - (EndChangeResponse_State)(0), // 5: changes.EndChangeResponse.State - (Risk_Severity)(0), // 6: changes.Risk.Severity - (RiskCalculationStatus_Status)(0), // 7: changes.RiskCalculationStatus.Status - (RiskCalculationStatus_ProgressMilestone_Status)(0), // 8: changes.RiskCalculationStatus.ProgressMilestone.Status - (*GetChangeTimelineRequest)(nil), // 9: changes.GetChangeTimelineRequest - (*GetChangeTimelineResponse)(nil), // 10: changes.GetChangeTimelineResponse - (*ChangeTimelineEntry)(nil), // 11: changes.ChangeTimelineEntry - (*GetDiffRequest)(nil), // 12: changes.GetDiffRequest - (*GetDiffResponse)(nil), // 13: changes.GetDiffResponse - (*ListChangingItemsSummaryRequest)(nil), // 14: changes.ListChangingItemsSummaryRequest - (*ListChangingItemsSummaryResponse)(nil), // 15: changes.ListChangingItemsSummaryResponse - (*GetAffectedAppsRequest)(nil), // 16: changes.GetAffectedAppsRequest - (*GetAffectedAppsResponse)(nil), // 17: changes.GetAffectedAppsResponse - (*UpdateChangingItemsRequest)(nil), // 18: changes.UpdateChangingItemsRequest - (*MappedItemDiff)(nil), // 19: changes.MappedItemDiff - (*UpdatePlannedChangesRequest)(nil), // 20: changes.UpdatePlannedChangesRequest - (*ListAppChangesSummaryRequest)(nil), // 21: changes.ListAppChangesSummaryRequest - (*ListAppChangesSummaryResponse)(nil), // 22: changes.ListAppChangesSummaryResponse - (*GetAppSummaryRequest)(nil), // 23: changes.GetAppSummaryRequest - (*GetAppSummaryResponse)(nil), // 24: changes.GetAppSummaryResponse - (*GetAppSummariesRequest)(nil), // 25: changes.GetAppSummariesRequest - (*GetAppSummariesResponse)(nil), // 26: changes.GetAppSummariesResponse - (*ListHomeChangesRequest)(nil), // 27: changes.ListHomeChangesRequest - (*ChangeFiltersRequest)(nil), // 28: changes.ChangeFiltersRequest - (*ListHomeChangesResponse)(nil), // 29: changes.ListHomeChangesResponse - (*PopulateChangeFiltersRequest)(nil), // 30: changes.PopulateChangeFiltersRequest - (*PopulateChangeFiltersResponse)(nil), // 31: changes.PopulateChangeFiltersResponse - (*ListHomeAppsRequest)(nil), // 32: changes.ListHomeAppsRequest - (*ListHomeAppsResponse)(nil), // 33: changes.ListHomeAppsResponse - (*ItemDiffSummary)(nil), // 34: changes.ItemDiffSummary - (*ItemDiff)(nil), // 35: changes.ItemDiff - (*AppSummary)(nil), // 36: changes.AppSummary - (*App)(nil), // 37: changes.App - (*AppMetadata)(nil), // 38: changes.AppMetadata - (*AppProperties)(nil), // 39: changes.AppProperties - (*ListAppsRequest)(nil), // 40: changes.ListAppsRequest - (*ListAppsResponse)(nil), // 41: changes.ListAppsResponse - (*CreateAppRequest)(nil), // 42: changes.CreateAppRequest - (*CreateAppResponse)(nil), // 43: changes.CreateAppResponse - (*CreateSimpleAppRequest)(nil), // 44: changes.CreateSimpleAppRequest - (*CreateSimpleAppResponse)(nil), // 45: changes.CreateSimpleAppResponse - (*GetAppRequest)(nil), // 46: changes.GetAppRequest - (*GetAppResponse)(nil), // 47: changes.GetAppResponse - (*UpdateAppRequest)(nil), // 48: changes.UpdateAppRequest - (*UpdateAppResponse)(nil), // 49: changes.UpdateAppResponse - (*DeleteAppRequest)(nil), // 50: changes.DeleteAppRequest - (*DeleteAppResponse)(nil), // 51: changes.DeleteAppResponse - (*ListAppChangesRequest)(nil), // 52: changes.ListAppChangesRequest - (*ListAppChangesResponse)(nil), // 53: changes.ListAppChangesResponse - (*ChangeSummary)(nil), // 54: changes.ChangeSummary - (*Change)(nil), // 55: changes.Change - (*ChangeMetadata)(nil), // 56: changes.ChangeMetadata - (*ChangeProperties)(nil), // 57: changes.ChangeProperties - (*ListChangesRequest)(nil), // 58: changes.ListChangesRequest - (*ListChangesResponse)(nil), // 59: changes.ListChangesResponse - (*ListChangesByStatusRequest)(nil), // 60: changes.ListChangesByStatusRequest - (*ListChangesByStatusResponse)(nil), // 61: changes.ListChangesByStatusResponse - (*CreateChangeRequest)(nil), // 62: changes.CreateChangeRequest - (*CreateChangeResponse)(nil), // 63: changes.CreateChangeResponse - (*GetChangeRequest)(nil), // 64: changes.GetChangeRequest - (*GetChangeResponse)(nil), // 65: changes.GetChangeResponse - (*GetChangeRisksRequest)(nil), // 66: changes.GetChangeRisksRequest - (*ChangeRiskMetadata)(nil), // 67: changes.ChangeRiskMetadata - (*GetChangeRisksResponse)(nil), // 68: changes.GetChangeRisksResponse - (*UpdateChangeRequest)(nil), // 69: changes.UpdateChangeRequest - (*UpdateChangeResponse)(nil), // 70: changes.UpdateChangeResponse - (*DeleteChangeRequest)(nil), // 71: changes.DeleteChangeRequest - (*ListChangesBySnapshotUUIDRequest)(nil), // 72: changes.ListChangesBySnapshotUUIDRequest - (*ListChangesBySnapshotUUIDResponse)(nil), // 73: changes.ListChangesBySnapshotUUIDResponse - (*DeleteChangeResponse)(nil), // 74: changes.DeleteChangeResponse - (*RefreshStateRequest)(nil), // 75: changes.RefreshStateRequest - (*RefreshStateResponse)(nil), // 76: changes.RefreshStateResponse - (*CalculateBlastRadiusRequest)(nil), // 77: changes.CalculateBlastRadiusRequest - (*CalculateBlastRadiusResponse)(nil), // 78: changes.CalculateBlastRadiusResponse - (*StartChangeRequest)(nil), // 79: changes.StartChangeRequest - (*StartChangeResponse)(nil), // 80: changes.StartChangeResponse - (*EndChangeRequest)(nil), // 81: changes.EndChangeRequest - (*EndChangeResponse)(nil), // 82: changes.EndChangeResponse - (*Onboarding)(nil), // 83: changes.Onboarding - (*OnboardingMetadata)(nil), // 84: changes.OnboardingMetadata - (*OnboardingProperties)(nil), // 85: changes.OnboardingProperties - (*GetOnboardingRequest)(nil), // 86: changes.GetOnboardingRequest - (*GetOnboardingResponse)(nil), // 87: changes.GetOnboardingResponse - (*UpdateOnboardingRequest)(nil), // 88: changes.UpdateOnboardingRequest - (*UpdateOnboardingResponse)(nil), // 89: changes.UpdateOnboardingResponse - (*SimulateChangeRequest)(nil), // 90: changes.SimulateChangeRequest - (*SimulateChangeResponse)(nil), // 91: changes.SimulateChangeResponse - (*Risk)(nil), // 92: changes.Risk - (*RiskCalculationStatus)(nil), // 93: changes.RiskCalculationStatus - (*ChangeArchive)(nil), // 94: changes.ChangeArchive - (*GetChangeArchiveRequest)(nil), // 95: changes.GetChangeArchiveRequest - (*GetChangeArchiveResponse)(nil), // 96: changes.GetChangeArchiveResponse - nil, // 97: changes.ChangeFiltersRequest.TagsEntry - nil, // 98: changes.ChangeSummary.TagsEntry - (*ChangeMetadata_HealthChange)(nil), // 99: changes.ChangeMetadata.HealthChange - nil, // 100: changes.ChangeProperties.TagsEntry - (*RiskCalculationStatus_ProgressMilestone)(nil), // 101: changes.RiskCalculationStatus.ProgressMilestone - (*timestamppb.Timestamp)(nil), // 102: google.protobuf.Timestamp - (*Edge)(nil), // 103: Edge - (*Reference)(nil), // 104: Reference - (*Query)(nil), // 105: Query - (*BlastRadiusConfig)(nil), // 106: config.BlastRadiusConfig - (*PaginationRequest)(nil), // 107: PaginationRequest - (SortOrder)(0), // 108: SortOrder - (*PaginationResponse)(nil), // 109: PaginationResponse - (Health)(0), // 110: Health - (*Item)(nil), // 111: Item - (*Bookmark)(nil), // 112: bookmarks.Bookmark - (*Snapshot)(nil), // 113: snapshots.Snapshot + (ItemDiffStatus)(0), // 0: changes.ItemDiffStatus + (ChangeStatus)(0), // 1: changes.ChangeStatus + (OnboardingStatus)(0), // 2: changes.OnboardingStatus + (ChangeProperties_AutoTaggingRuleSource)(0), // 3: changes.ChangeProperties.AutoTaggingRuleSource + (CalculateBlastRadiusResponse_State)(0), // 4: changes.CalculateBlastRadiusResponse.State + (StartChangeResponse_State)(0), // 5: changes.StartChangeResponse.State + (EndChangeResponse_State)(0), // 6: changes.EndChangeResponse.State + (Risk_Severity)(0), // 7: changes.Risk.Severity + (ChangeAnalysisStatus_Status)(0), // 8: changes.ChangeAnalysisStatus.Status + (ChangeAnalysisStatus_ProgressMilestone_Status)(0), // 9: changes.ChangeAnalysisStatus.ProgressMilestone.Status + (*RuleMetadata)(nil), // 10: changes.RuleMetadata + (*RuleProperties)(nil), // 11: changes.RuleProperties + (*Rule)(nil), // 12: changes.Rule + (*ListRulesRequest)(nil), // 13: changes.ListRulesRequest + (*ListRulesResponse)(nil), // 14: changes.ListRulesResponse + (*CreateRuleRequest)(nil), // 15: changes.CreateRuleRequest + (*CreateRuleResponse)(nil), // 16: changes.CreateRuleResponse + (*GetRuleRequest)(nil), // 17: changes.GetRuleRequest + (*GetRuleResponse)(nil), // 18: changes.GetRuleResponse + (*UpdateRuleRequest)(nil), // 19: changes.UpdateRuleRequest + (*UpdateRuleResponse)(nil), // 20: changes.UpdateRuleResponse + (*DeleteRuleRequest)(nil), // 21: changes.DeleteRuleRequest + (*DeleteRuleResponse)(nil), // 22: changes.DeleteRuleResponse + (*ExportRuleRequest)(nil), // 23: changes.ExportRuleRequest + (*ExportRuleResponse)(nil), // 24: changes.ExportRuleResponse + (*TestRuleRequest)(nil), // 25: changes.TestRuleRequest + (*TestRuleResponse)(nil), // 26: changes.TestRuleResponse + (*GetChangeTimelineRequest)(nil), // 27: changes.GetChangeTimelineRequest + (*GetChangeTimelineResponse)(nil), // 28: changes.GetChangeTimelineResponse + (*ChangeTimelineEntry)(nil), // 29: changes.ChangeTimelineEntry + (*GetDiffRequest)(nil), // 30: changes.GetDiffRequest + (*GetDiffResponse)(nil), // 31: changes.GetDiffResponse + (*ListChangingItemsSummaryRequest)(nil), // 32: changes.ListChangingItemsSummaryRequest + (*ListChangingItemsSummaryResponse)(nil), // 33: changes.ListChangingItemsSummaryResponse + (*GetAffectedAppsRequest)(nil), // 34: changes.GetAffectedAppsRequest + (*GetAffectedAppsResponse)(nil), // 35: changes.GetAffectedAppsResponse + (*UpdateChangingItemsRequest)(nil), // 36: changes.UpdateChangingItemsRequest + (*MappedItemDiff)(nil), // 37: changes.MappedItemDiff + (*UpdatePlannedChangesRequest)(nil), // 38: changes.UpdatePlannedChangesRequest + (*ListAppChangesSummaryRequest)(nil), // 39: changes.ListAppChangesSummaryRequest + (*ListAppChangesSummaryResponse)(nil), // 40: changes.ListAppChangesSummaryResponse + (*GetAppSummaryRequest)(nil), // 41: changes.GetAppSummaryRequest + (*GetAppSummaryResponse)(nil), // 42: changes.GetAppSummaryResponse + (*GetAppSummariesRequest)(nil), // 43: changes.GetAppSummariesRequest + (*GetAppSummariesResponse)(nil), // 44: changes.GetAppSummariesResponse + (*ListHomeChangesRequest)(nil), // 45: changes.ListHomeChangesRequest + (*ChangeFiltersRequest)(nil), // 46: changes.ChangeFiltersRequest + (*ListHomeChangesResponse)(nil), // 47: changes.ListHomeChangesResponse + (*PopulateChangeFiltersRequest)(nil), // 48: changes.PopulateChangeFiltersRequest + (*PopulateChangeFiltersResponse)(nil), // 49: changes.PopulateChangeFiltersResponse + (*ListHomeAppsRequest)(nil), // 50: changes.ListHomeAppsRequest + (*ListHomeAppsResponse)(nil), // 51: changes.ListHomeAppsResponse + (*ItemDiffSummary)(nil), // 52: changes.ItemDiffSummary + (*ItemDiff)(nil), // 53: changes.ItemDiff + (*AppSummary)(nil), // 54: changes.AppSummary + (*App)(nil), // 55: changes.App + (*AppMetadata)(nil), // 56: changes.AppMetadata + (*AppProperties)(nil), // 57: changes.AppProperties + (*ListAppsRequest)(nil), // 58: changes.ListAppsRequest + (*ListAppsResponse)(nil), // 59: changes.ListAppsResponse + (*CreateAppRequest)(nil), // 60: changes.CreateAppRequest + (*CreateAppResponse)(nil), // 61: changes.CreateAppResponse + (*CreateSimpleAppRequest)(nil), // 62: changes.CreateSimpleAppRequest + (*CreateSimpleAppResponse)(nil), // 63: changes.CreateSimpleAppResponse + (*GetAppRequest)(nil), // 64: changes.GetAppRequest + (*GetAppResponse)(nil), // 65: changes.GetAppResponse + (*UpdateAppRequest)(nil), // 66: changes.UpdateAppRequest + (*UpdateAppResponse)(nil), // 67: changes.UpdateAppResponse + (*DeleteAppRequest)(nil), // 68: changes.DeleteAppRequest + (*DeleteAppResponse)(nil), // 69: changes.DeleteAppResponse + (*ListAppChangesRequest)(nil), // 70: changes.ListAppChangesRequest + (*ListAppChangesResponse)(nil), // 71: changes.ListAppChangesResponse + (*TagValue)(nil), // 72: changes.TagValue + (*UserTagValue)(nil), // 73: changes.UserTagValue + (*AutoTagValue)(nil), // 74: changes.AutoTagValue + (*ChangeSummary)(nil), // 75: changes.ChangeSummary + (*Change)(nil), // 76: changes.Change + (*ChangeMetadata)(nil), // 77: changes.ChangeMetadata + (*ChangeProperties)(nil), // 78: changes.ChangeProperties + (*ListChangesRequest)(nil), // 79: changes.ListChangesRequest + (*ListChangesResponse)(nil), // 80: changes.ListChangesResponse + (*ListChangesByStatusRequest)(nil), // 81: changes.ListChangesByStatusRequest + (*ListChangesByStatusResponse)(nil), // 82: changes.ListChangesByStatusResponse + (*CreateChangeRequest)(nil), // 83: changes.CreateChangeRequest + (*CreateChangeResponse)(nil), // 84: changes.CreateChangeResponse + (*GetChangeRequest)(nil), // 85: changes.GetChangeRequest + (*GetChangeResponse)(nil), // 86: changes.GetChangeResponse + (*GetChangeRisksRequest)(nil), // 87: changes.GetChangeRisksRequest + (*ChangeRiskMetadata)(nil), // 88: changes.ChangeRiskMetadata + (*GetChangeRisksResponse)(nil), // 89: changes.GetChangeRisksResponse + (*UpdateChangeRequest)(nil), // 90: changes.UpdateChangeRequest + (*UpdateChangeResponse)(nil), // 91: changes.UpdateChangeResponse + (*DeleteChangeRequest)(nil), // 92: changes.DeleteChangeRequest + (*ListChangesBySnapshotUUIDRequest)(nil), // 93: changes.ListChangesBySnapshotUUIDRequest + (*ListChangesBySnapshotUUIDResponse)(nil), // 94: changes.ListChangesBySnapshotUUIDResponse + (*DeleteChangeResponse)(nil), // 95: changes.DeleteChangeResponse + (*RefreshStateRequest)(nil), // 96: changes.RefreshStateRequest + (*RefreshStateResponse)(nil), // 97: changes.RefreshStateResponse + (*CalculateBlastRadiusRequest)(nil), // 98: changes.CalculateBlastRadiusRequest + (*CalculateBlastRadiusResponse)(nil), // 99: changes.CalculateBlastRadiusResponse + (*StartChangeRequest)(nil), // 100: changes.StartChangeRequest + (*StartChangeResponse)(nil), // 101: changes.StartChangeResponse + (*EndChangeRequest)(nil), // 102: changes.EndChangeRequest + (*EndChangeResponse)(nil), // 103: changes.EndChangeResponse + (*Onboarding)(nil), // 104: changes.Onboarding + (*OnboardingMetadata)(nil), // 105: changes.OnboardingMetadata + (*OnboardingProperties)(nil), // 106: changes.OnboardingProperties + (*GetOnboardingRequest)(nil), // 107: changes.GetOnboardingRequest + (*GetOnboardingResponse)(nil), // 108: changes.GetOnboardingResponse + (*UpdateOnboardingRequest)(nil), // 109: changes.UpdateOnboardingRequest + (*UpdateOnboardingResponse)(nil), // 110: changes.UpdateOnboardingResponse + (*SimulateChangeRequest)(nil), // 111: changes.SimulateChangeRequest + (*SimulateChangeResponse)(nil), // 112: changes.SimulateChangeResponse + (*Risk)(nil), // 113: changes.Risk + (*ChangeAnalysisStatus)(nil), // 114: changes.ChangeAnalysisStatus + (*ChangeArchive)(nil), // 115: changes.ChangeArchive + (*GetChangeArchiveRequest)(nil), // 116: changes.GetChangeArchiveRequest + (*GetChangeArchiveResponse)(nil), // 117: changes.GetChangeArchiveResponse + nil, // 118: changes.ChangeFiltersRequest.TagsEntry + nil, // 119: changes.ChangeSummary.TagsEntry + nil, // 120: changes.ChangeSummary.EnrichedTagsEntry + (*ChangeMetadata_HealthChange)(nil), // 121: changes.ChangeMetadata.HealthChange + nil, // 122: changes.ChangeProperties.TagsEntry + nil, // 123: changes.ChangeProperties.EnrichedTagsEntry + nil, // 124: changes.ChangeProperties.SkippedAutoTagsEntry + (*ChangeAnalysisStatus_ProgressMilestone)(nil), // 125: changes.ChangeAnalysisStatus.ProgressMilestone + (*timestamppb.Timestamp)(nil), // 126: google.protobuf.Timestamp + (*Edge)(nil), // 127: Edge + (*Reference)(nil), // 128: Reference + (*Query)(nil), // 129: Query + (*BlastRadiusConfig)(nil), // 130: config.BlastRadiusConfig + (*PaginationRequest)(nil), // 131: PaginationRequest + (SortOrder)(0), // 132: SortOrder + (*PaginationResponse)(nil), // 133: PaginationResponse + (Health)(0), // 134: Health + (*Item)(nil), // 135: Item + (*Bookmark)(nil), // 136: bookmarks.Bookmark + (*Snapshot)(nil), // 137: snapshots.Snapshot } var file_changes_proto_depIdxs = []int32{ - 11, // 0: changes.GetChangeTimelineResponse.entries:type_name -> changes.ChangeTimelineEntry - 1, // 1: changes.ChangeTimelineEntry.status:type_name -> changes.ChangeStatus - 102, // 2: changes.ChangeTimelineEntry.happenedAt:type_name -> google.protobuf.Timestamp - 35, // 3: changes.GetDiffResponse.expectedItems:type_name -> changes.ItemDiff - 35, // 4: changes.GetDiffResponse.unexpectedItems:type_name -> changes.ItemDiff - 103, // 5: changes.GetDiffResponse.edges:type_name -> Edge - 35, // 6: changes.GetDiffResponse.missingItems:type_name -> changes.ItemDiff - 34, // 7: changes.ListChangingItemsSummaryResponse.items:type_name -> changes.ItemDiffSummary - 36, // 8: changes.GetAffectedAppsResponse.apps:type_name -> changes.AppSummary - 104, // 9: changes.UpdateChangingItemsRequest.changingItems:type_name -> Reference - 35, // 10: changes.MappedItemDiff.item:type_name -> changes.ItemDiff - 105, // 11: changes.MappedItemDiff.mappingQuery:type_name -> Query - 19, // 12: changes.UpdatePlannedChangesRequest.changingItems:type_name -> changes.MappedItemDiff - 106, // 13: changes.UpdatePlannedChangesRequest.blastRadiusConfigOverride:type_name -> config.BlastRadiusConfig - 54, // 14: changes.ListAppChangesSummaryResponse.changes:type_name -> changes.ChangeSummary - 36, // 15: changes.GetAppSummaryResponse.app:type_name -> changes.AppSummary - 36, // 16: changes.GetAppSummariesResponse.apps:type_name -> changes.AppSummary - 107, // 17: changes.ListHomeChangesRequest.pagination:type_name -> PaginationRequest - 28, // 18: changes.ListHomeChangesRequest.filters:type_name -> changes.ChangeFiltersRequest - 97, // 19: changes.ChangeFiltersRequest.tags:type_name -> changes.ChangeFiltersRequest.TagsEntry - 6, // 20: changes.ChangeFiltersRequest.risks:type_name -> changes.Risk.Severity - 1, // 21: changes.ChangeFiltersRequest.statuses:type_name -> changes.ChangeStatus - 108, // 22: changes.ChangeFiltersRequest.sortOrder:type_name -> SortOrder - 54, // 23: changes.ListHomeChangesResponse.changes:type_name -> changes.ChangeSummary - 109, // 24: changes.ListHomeChangesResponse.pagination:type_name -> PaginationResponse - 36, // 25: changes.ListHomeAppsResponse.apps:type_name -> changes.AppSummary - 104, // 26: changes.ItemDiffSummary.item:type_name -> Reference - 0, // 27: changes.ItemDiffSummary.status:type_name -> changes.ItemDiffStatus - 110, // 28: changes.ItemDiffSummary.healthAfter:type_name -> Health - 104, // 29: changes.ItemDiff.item:type_name -> Reference - 0, // 30: changes.ItemDiff.status:type_name -> changes.ItemDiffStatus - 111, // 31: changes.ItemDiff.before:type_name -> Item - 111, // 32: changes.ItemDiff.after:type_name -> Item - 102, // 33: changes.AppSummary.createdAt:type_name -> google.protobuf.Timestamp - 38, // 34: changes.App.metadata:type_name -> changes.AppMetadata - 39, // 35: changes.App.properties:type_name -> changes.AppProperties - 102, // 36: changes.AppMetadata.createdAt:type_name -> google.protobuf.Timestamp - 102, // 37: changes.AppMetadata.updatedAt:type_name -> google.protobuf.Timestamp - 104, // 38: changes.AppMetadata.items:type_name -> Reference - 102, // 39: changes.AppMetadata.itemsLastUpdated:type_name -> google.protobuf.Timestamp - 37, // 40: changes.ListAppsResponse.apps:type_name -> changes.App - 39, // 41: changes.CreateAppRequest.properties:type_name -> changes.AppProperties - 37, // 42: changes.CreateAppResponse.app:type_name -> changes.App - 37, // 43: changes.CreateSimpleAppResponse.app:type_name -> changes.App - 37, // 44: changes.GetAppResponse.app:type_name -> changes.App - 39, // 45: changes.UpdateAppRequest.properties:type_name -> changes.AppProperties - 37, // 46: changes.UpdateAppResponse.app:type_name -> changes.App - 55, // 47: changes.ListAppChangesResponse.changes:type_name -> changes.Change - 1, // 48: changes.ChangeSummary.status:type_name -> changes.ChangeStatus - 102, // 49: changes.ChangeSummary.createdAt:type_name -> google.protobuf.Timestamp - 98, // 50: changes.ChangeSummary.tags:type_name -> changes.ChangeSummary.TagsEntry - 56, // 51: changes.Change.metadata:type_name -> changes.ChangeMetadata - 57, // 52: changes.Change.properties:type_name -> changes.ChangeProperties - 102, // 53: changes.ChangeMetadata.createdAt:type_name -> google.protobuf.Timestamp - 102, // 54: changes.ChangeMetadata.updatedAt:type_name -> google.protobuf.Timestamp - 1, // 55: changes.ChangeMetadata.status:type_name -> changes.ChangeStatus - 99, // 56: changes.ChangeMetadata.UnknownHealthChange:type_name -> changes.ChangeMetadata.HealthChange - 99, // 57: changes.ChangeMetadata.OkHealthChange:type_name -> changes.ChangeMetadata.HealthChange - 99, // 58: changes.ChangeMetadata.WarningHealthChange:type_name -> changes.ChangeMetadata.HealthChange - 99, // 59: changes.ChangeMetadata.ErrorHealthChange:type_name -> changes.ChangeMetadata.HealthChange - 99, // 60: changes.ChangeMetadata.PendingHealthChange:type_name -> changes.ChangeMetadata.HealthChange - 35, // 61: changes.ChangeProperties.plannedChanges:type_name -> changes.ItemDiff - 100, // 62: changes.ChangeProperties.tags:type_name -> changes.ChangeProperties.TagsEntry - 55, // 63: changes.ListChangesResponse.changes:type_name -> changes.Change - 1, // 64: changes.ListChangesByStatusRequest.status:type_name -> changes.ChangeStatus - 55, // 65: changes.ListChangesByStatusResponse.changes:type_name -> changes.Change - 57, // 66: changes.CreateChangeRequest.properties:type_name -> changes.ChangeProperties - 55, // 67: changes.CreateChangeResponse.change:type_name -> changes.Change - 55, // 68: changes.GetChangeResponse.change:type_name -> changes.Change - 93, // 69: changes.ChangeRiskMetadata.riskCalculationStatus:type_name -> changes.RiskCalculationStatus - 92, // 70: changes.ChangeRiskMetadata.risks:type_name -> changes.Risk - 67, // 71: changes.GetChangeRisksResponse.changeRiskMetadata:type_name -> changes.ChangeRiskMetadata - 57, // 72: changes.UpdateChangeRequest.properties:type_name -> changes.ChangeProperties - 55, // 73: changes.UpdateChangeResponse.change:type_name -> changes.Change - 55, // 74: changes.ListChangesBySnapshotUUIDResponse.changes:type_name -> changes.Change - 3, // 75: changes.CalculateBlastRadiusResponse.state:type_name -> changes.CalculateBlastRadiusResponse.State - 4, // 76: changes.StartChangeResponse.state:type_name -> changes.StartChangeResponse.State - 5, // 77: changes.EndChangeResponse.state:type_name -> changes.EndChangeResponse.State - 84, // 78: changes.Onboarding.metadata:type_name -> changes.OnboardingMetadata - 85, // 79: changes.Onboarding.properties:type_name -> changes.OnboardingProperties - 102, // 80: changes.OnboardingMetadata.created:type_name -> google.protobuf.Timestamp - 2, // 81: changes.OnboardingProperties.status:type_name -> changes.OnboardingStatus - 83, // 82: changes.GetOnboardingResponse.onboarding:type_name -> changes.Onboarding - 85, // 83: changes.UpdateOnboardingRequest.properties:type_name -> changes.OnboardingProperties - 83, // 84: changes.UpdateOnboardingResponse.onboarding:type_name -> changes.Onboarding - 6, // 85: changes.Risk.severity:type_name -> changes.Risk.Severity - 104, // 86: changes.Risk.relatedItems:type_name -> Reference - 7, // 87: changes.RiskCalculationStatus.status:type_name -> changes.RiskCalculationStatus.Status - 101, // 88: changes.RiskCalculationStatus.progressMilestones:type_name -> changes.RiskCalculationStatus.ProgressMilestone - 55, // 89: changes.ChangeArchive.Change:type_name -> changes.Change - 112, // 90: changes.ChangeArchive.changingItemsBookmark:type_name -> bookmarks.Bookmark - 113, // 91: changes.ChangeArchive.blastRadiusSnapshot:type_name -> snapshots.Snapshot - 113, // 92: changes.ChangeArchive.systemBeforeSnapshot:type_name -> snapshots.Snapshot - 113, // 93: changes.ChangeArchive.systemAfterSnapshot:type_name -> snapshots.Snapshot - 37, // 94: changes.ChangeArchive.affectedApps:type_name -> changes.App - 11, // 95: changes.ChangeArchive.timeline:type_name -> changes.ChangeTimelineEntry - 67, // 96: changes.ChangeArchive.changeRiskMetadata:type_name -> changes.ChangeRiskMetadata - 94, // 97: changes.GetChangeArchiveResponse.changeArchive:type_name -> changes.ChangeArchive - 8, // 98: changes.RiskCalculationStatus.ProgressMilestone.status:type_name -> changes.RiskCalculationStatus.ProgressMilestone.Status - 40, // 99: changes.ChangesService.ListApps:input_type -> changes.ListAppsRequest - 42, // 100: changes.ChangesService.CreateApp:input_type -> changes.CreateAppRequest - 44, // 101: changes.ChangesService.CreateSimpleApp:input_type -> changes.CreateSimpleAppRequest - 46, // 102: changes.ChangesService.GetApp:input_type -> changes.GetAppRequest - 48, // 103: changes.ChangesService.UpdateApp:input_type -> changes.UpdateAppRequest - 50, // 104: changes.ChangesService.DeleteApp:input_type -> changes.DeleteAppRequest - 58, // 105: changes.ChangesService.ListChanges:input_type -> changes.ListChangesRequest - 60, // 106: changes.ChangesService.ListChangesByStatus:input_type -> changes.ListChangesByStatusRequest - 62, // 107: changes.ChangesService.CreateChange:input_type -> changes.CreateChangeRequest - 64, // 108: changes.ChangesService.GetChange:input_type -> changes.GetChangeRequest - 66, // 109: changes.ChangesService.GetChangeRisks:input_type -> changes.GetChangeRisksRequest - 95, // 110: changes.ChangesService.GetChangeArchive:input_type -> changes.GetChangeArchiveRequest - 69, // 111: changes.ChangesService.UpdateChange:input_type -> changes.UpdateChangeRequest - 71, // 112: changes.ChangesService.DeleteChange:input_type -> changes.DeleteChangeRequest - 72, // 113: changes.ChangesService.ListChangesBySnapshotUUID:input_type -> changes.ListChangesBySnapshotUUIDRequest - 9, // 114: changes.ChangesService.GetChangeTimeline:input_type -> changes.GetChangeTimelineRequest - 75, // 115: changes.ChangesService.RefreshState:input_type -> changes.RefreshStateRequest - 77, // 116: changes.ChangesService.CalculateBlastRadius:input_type -> changes.CalculateBlastRadiusRequest - 79, // 117: changes.ChangesService.StartChange:input_type -> changes.StartChangeRequest - 81, // 118: changes.ChangesService.EndChange:input_type -> changes.EndChangeRequest - 90, // 119: changes.ChangesService.SimulateChange:input_type -> changes.SimulateChangeRequest - 86, // 120: changes.ChangesService.GetOnboarding:input_type -> changes.GetOnboardingRequest - 88, // 121: changes.ChangesService.UpdateOnboarding:input_type -> changes.UpdateOnboardingRequest - 32, // 122: changes.ChangesService.ListHomeApps:input_type -> changes.ListHomeAppsRequest - 27, // 123: changes.ChangesService.ListHomeChanges:input_type -> changes.ListHomeChangesRequest - 23, // 124: changes.ChangesService.GetAppSummary:input_type -> changes.GetAppSummaryRequest - 25, // 125: changes.ChangesService.GetAppSummaries:input_type -> changes.GetAppSummariesRequest - 52, // 126: changes.ChangesService.ListAppChanges:input_type -> changes.ListAppChangesRequest - 21, // 127: changes.ChangesService.ListAppChangesSummary:input_type -> changes.ListAppChangesSummaryRequest - 18, // 128: changes.ChangesService.UpdateChangingItems:input_type -> changes.UpdateChangingItemsRequest - 20, // 129: changes.ChangesService.UpdatePlannedChanges:input_type -> changes.UpdatePlannedChangesRequest - 16, // 130: changes.ChangesService.GetAffectedApps:input_type -> changes.GetAffectedAppsRequest - 14, // 131: changes.ChangesService.ListChangingItemsSummary:input_type -> changes.ListChangingItemsSummaryRequest - 12, // 132: changes.ChangesService.GetDiff:input_type -> changes.GetDiffRequest - 30, // 133: changes.ChangesService.PopulateChangeFilters:input_type -> changes.PopulateChangeFiltersRequest - 41, // 134: changes.ChangesService.ListApps:output_type -> changes.ListAppsResponse - 43, // 135: changes.ChangesService.CreateApp:output_type -> changes.CreateAppResponse - 45, // 136: changes.ChangesService.CreateSimpleApp:output_type -> changes.CreateSimpleAppResponse - 47, // 137: changes.ChangesService.GetApp:output_type -> changes.GetAppResponse - 49, // 138: changes.ChangesService.UpdateApp:output_type -> changes.UpdateAppResponse - 51, // 139: changes.ChangesService.DeleteApp:output_type -> changes.DeleteAppResponse - 59, // 140: changes.ChangesService.ListChanges:output_type -> changes.ListChangesResponse - 61, // 141: changes.ChangesService.ListChangesByStatus:output_type -> changes.ListChangesByStatusResponse - 63, // 142: changes.ChangesService.CreateChange:output_type -> changes.CreateChangeResponse - 65, // 143: changes.ChangesService.GetChange:output_type -> changes.GetChangeResponse - 68, // 144: changes.ChangesService.GetChangeRisks:output_type -> changes.GetChangeRisksResponse - 96, // 145: changes.ChangesService.GetChangeArchive:output_type -> changes.GetChangeArchiveResponse - 70, // 146: changes.ChangesService.UpdateChange:output_type -> changes.UpdateChangeResponse - 74, // 147: changes.ChangesService.DeleteChange:output_type -> changes.DeleteChangeResponse - 73, // 148: changes.ChangesService.ListChangesBySnapshotUUID:output_type -> changes.ListChangesBySnapshotUUIDResponse - 10, // 149: changes.ChangesService.GetChangeTimeline:output_type -> changes.GetChangeTimelineResponse - 76, // 150: changes.ChangesService.RefreshState:output_type -> changes.RefreshStateResponse - 78, // 151: changes.ChangesService.CalculateBlastRadius:output_type -> changes.CalculateBlastRadiusResponse - 80, // 152: changes.ChangesService.StartChange:output_type -> changes.StartChangeResponse - 82, // 153: changes.ChangesService.EndChange:output_type -> changes.EndChangeResponse - 91, // 154: changes.ChangesService.SimulateChange:output_type -> changes.SimulateChangeResponse - 87, // 155: changes.ChangesService.GetOnboarding:output_type -> changes.GetOnboardingResponse - 89, // 156: changes.ChangesService.UpdateOnboarding:output_type -> changes.UpdateOnboardingResponse - 33, // 157: changes.ChangesService.ListHomeApps:output_type -> changes.ListHomeAppsResponse - 29, // 158: changes.ChangesService.ListHomeChanges:output_type -> changes.ListHomeChangesResponse - 24, // 159: changes.ChangesService.GetAppSummary:output_type -> changes.GetAppSummaryResponse - 26, // 160: changes.ChangesService.GetAppSummaries:output_type -> changes.GetAppSummariesResponse - 53, // 161: changes.ChangesService.ListAppChanges:output_type -> changes.ListAppChangesResponse - 22, // 162: changes.ChangesService.ListAppChangesSummary:output_type -> changes.ListAppChangesSummaryResponse - 78, // 163: changes.ChangesService.UpdateChangingItems:output_type -> changes.CalculateBlastRadiusResponse - 78, // 164: changes.ChangesService.UpdatePlannedChanges:output_type -> changes.CalculateBlastRadiusResponse - 17, // 165: changes.ChangesService.GetAffectedApps:output_type -> changes.GetAffectedAppsResponse - 15, // 166: changes.ChangesService.ListChangingItemsSummary:output_type -> changes.ListChangingItemsSummaryResponse - 13, // 167: changes.ChangesService.GetDiff:output_type -> changes.GetDiffResponse - 31, // 168: changes.ChangesService.PopulateChangeFilters:output_type -> changes.PopulateChangeFiltersResponse - 134, // [134:169] is the sub-list for method output_type - 99, // [99:134] is the sub-list for method input_type - 99, // [99:99] is the sub-list for extension type_name - 99, // [99:99] is the sub-list for extension extendee - 0, // [0:99] is the sub-list for field type_name + 126, // 0: changes.RuleMetadata.createdAt:type_name -> google.protobuf.Timestamp + 126, // 1: changes.RuleMetadata.lastRunAt:type_name -> google.protobuf.Timestamp + 126, // 2: changes.RuleMetadata.lastActivated:type_name -> google.protobuf.Timestamp + 10, // 3: changes.Rule.metadata:type_name -> changes.RuleMetadata + 11, // 4: changes.Rule.properties:type_name -> changes.RuleProperties + 12, // 5: changes.ListRulesResponse.rules:type_name -> changes.Rule + 11, // 6: changes.CreateRuleRequest.properties:type_name -> changes.RuleProperties + 12, // 7: changes.CreateRuleResponse.rule:type_name -> changes.Rule + 12, // 8: changes.GetRuleResponse.rule:type_name -> changes.Rule + 11, // 9: changes.UpdateRuleRequest.properties:type_name -> changes.RuleProperties + 12, // 10: changes.UpdateRuleResponse.rule:type_name -> changes.Rule + 11, // 11: changes.TestRuleRequest.properties:type_name -> changes.RuleProperties + 74, // 12: changes.TestRuleResponse.value:type_name -> changes.AutoTagValue + 29, // 13: changes.GetChangeTimelineResponse.entries:type_name -> changes.ChangeTimelineEntry + 1, // 14: changes.ChangeTimelineEntry.status:type_name -> changes.ChangeStatus + 126, // 15: changes.ChangeTimelineEntry.happenedAt:type_name -> google.protobuf.Timestamp + 53, // 16: changes.GetDiffResponse.expectedItems:type_name -> changes.ItemDiff + 53, // 17: changes.GetDiffResponse.unexpectedItems:type_name -> changes.ItemDiff + 127, // 18: changes.GetDiffResponse.edges:type_name -> Edge + 53, // 19: changes.GetDiffResponse.missingItems:type_name -> changes.ItemDiff + 52, // 20: changes.ListChangingItemsSummaryResponse.items:type_name -> changes.ItemDiffSummary + 54, // 21: changes.GetAffectedAppsResponse.apps:type_name -> changes.AppSummary + 128, // 22: changes.UpdateChangingItemsRequest.changingItems:type_name -> Reference + 53, // 23: changes.MappedItemDiff.item:type_name -> changes.ItemDiff + 129, // 24: changes.MappedItemDiff.mappingQuery:type_name -> Query + 37, // 25: changes.UpdatePlannedChangesRequest.changingItems:type_name -> changes.MappedItemDiff + 130, // 26: changes.UpdatePlannedChangesRequest.blastRadiusConfigOverride:type_name -> config.BlastRadiusConfig + 11, // 27: changes.UpdatePlannedChangesRequest.autoTaggingRulesOverride:type_name -> changes.RuleProperties + 75, // 28: changes.ListAppChangesSummaryResponse.changes:type_name -> changes.ChangeSummary + 54, // 29: changes.GetAppSummaryResponse.app:type_name -> changes.AppSummary + 54, // 30: changes.GetAppSummariesResponse.apps:type_name -> changes.AppSummary + 131, // 31: changes.ListHomeChangesRequest.pagination:type_name -> PaginationRequest + 46, // 32: changes.ListHomeChangesRequest.filters:type_name -> changes.ChangeFiltersRequest + 118, // 33: changes.ChangeFiltersRequest.tags:type_name -> changes.ChangeFiltersRequest.TagsEntry + 7, // 34: changes.ChangeFiltersRequest.risks:type_name -> changes.Risk.Severity + 1, // 35: changes.ChangeFiltersRequest.statuses:type_name -> changes.ChangeStatus + 132, // 36: changes.ChangeFiltersRequest.sortOrder:type_name -> SortOrder + 75, // 37: changes.ListHomeChangesResponse.changes:type_name -> changes.ChangeSummary + 133, // 38: changes.ListHomeChangesResponse.pagination:type_name -> PaginationResponse + 54, // 39: changes.ListHomeAppsResponse.apps:type_name -> changes.AppSummary + 128, // 40: changes.ItemDiffSummary.item:type_name -> Reference + 0, // 41: changes.ItemDiffSummary.status:type_name -> changes.ItemDiffStatus + 134, // 42: changes.ItemDiffSummary.healthAfter:type_name -> Health + 128, // 43: changes.ItemDiff.item:type_name -> Reference + 0, // 44: changes.ItemDiff.status:type_name -> changes.ItemDiffStatus + 135, // 45: changes.ItemDiff.before:type_name -> Item + 135, // 46: changes.ItemDiff.after:type_name -> Item + 126, // 47: changes.AppSummary.createdAt:type_name -> google.protobuf.Timestamp + 56, // 48: changes.App.metadata:type_name -> changes.AppMetadata + 57, // 49: changes.App.properties:type_name -> changes.AppProperties + 126, // 50: changes.AppMetadata.createdAt:type_name -> google.protobuf.Timestamp + 126, // 51: changes.AppMetadata.updatedAt:type_name -> google.protobuf.Timestamp + 128, // 52: changes.AppMetadata.items:type_name -> Reference + 126, // 53: changes.AppMetadata.itemsLastUpdated:type_name -> google.protobuf.Timestamp + 55, // 54: changes.ListAppsResponse.apps:type_name -> changes.App + 57, // 55: changes.CreateAppRequest.properties:type_name -> changes.AppProperties + 55, // 56: changes.CreateAppResponse.app:type_name -> changes.App + 55, // 57: changes.CreateSimpleAppResponse.app:type_name -> changes.App + 55, // 58: changes.GetAppResponse.app:type_name -> changes.App + 57, // 59: changes.UpdateAppRequest.properties:type_name -> changes.AppProperties + 55, // 60: changes.UpdateAppResponse.app:type_name -> changes.App + 76, // 61: changes.ListAppChangesResponse.changes:type_name -> changes.Change + 73, // 62: changes.TagValue.userTagValue:type_name -> changes.UserTagValue + 74, // 63: changes.TagValue.autoTagValue:type_name -> changes.AutoTagValue + 1, // 64: changes.ChangeSummary.status:type_name -> changes.ChangeStatus + 126, // 65: changes.ChangeSummary.createdAt:type_name -> google.protobuf.Timestamp + 119, // 66: changes.ChangeSummary.tags:type_name -> changes.ChangeSummary.TagsEntry + 120, // 67: changes.ChangeSummary.enrichedTags:type_name -> changes.ChangeSummary.EnrichedTagsEntry + 77, // 68: changes.Change.metadata:type_name -> changes.ChangeMetadata + 78, // 69: changes.Change.properties:type_name -> changes.ChangeProperties + 126, // 70: changes.ChangeMetadata.createdAt:type_name -> google.protobuf.Timestamp + 126, // 71: changes.ChangeMetadata.updatedAt:type_name -> google.protobuf.Timestamp + 1, // 72: changes.ChangeMetadata.status:type_name -> changes.ChangeStatus + 121, // 73: changes.ChangeMetadata.UnknownHealthChange:type_name -> changes.ChangeMetadata.HealthChange + 121, // 74: changes.ChangeMetadata.OkHealthChange:type_name -> changes.ChangeMetadata.HealthChange + 121, // 75: changes.ChangeMetadata.WarningHealthChange:type_name -> changes.ChangeMetadata.HealthChange + 121, // 76: changes.ChangeMetadata.ErrorHealthChange:type_name -> changes.ChangeMetadata.HealthChange + 121, // 77: changes.ChangeMetadata.PendingHealthChange:type_name -> changes.ChangeMetadata.HealthChange + 53, // 78: changes.ChangeProperties.plannedChanges:type_name -> changes.ItemDiff + 122, // 79: changes.ChangeProperties.tags:type_name -> changes.ChangeProperties.TagsEntry + 123, // 80: changes.ChangeProperties.enrichedTags:type_name -> changes.ChangeProperties.EnrichedTagsEntry + 124, // 81: changes.ChangeProperties.skippedAutoTags:type_name -> changes.ChangeProperties.SkippedAutoTagsEntry + 3, // 82: changes.ChangeProperties.autoTaggingRuleSource:type_name -> changes.ChangeProperties.AutoTaggingRuleSource + 76, // 83: changes.ListChangesResponse.changes:type_name -> changes.Change + 1, // 84: changes.ListChangesByStatusRequest.status:type_name -> changes.ChangeStatus + 76, // 85: changes.ListChangesByStatusResponse.changes:type_name -> changes.Change + 78, // 86: changes.CreateChangeRequest.properties:type_name -> changes.ChangeProperties + 76, // 87: changes.CreateChangeResponse.change:type_name -> changes.Change + 76, // 88: changes.GetChangeResponse.change:type_name -> changes.Change + 114, // 89: changes.ChangeRiskMetadata.changeAnalysisStatus:type_name -> changes.ChangeAnalysisStatus + 113, // 90: changes.ChangeRiskMetadata.risks:type_name -> changes.Risk + 88, // 91: changes.GetChangeRisksResponse.changeRiskMetadata:type_name -> changes.ChangeRiskMetadata + 78, // 92: changes.UpdateChangeRequest.properties:type_name -> changes.ChangeProperties + 76, // 93: changes.UpdateChangeResponse.change:type_name -> changes.Change + 76, // 94: changes.ListChangesBySnapshotUUIDResponse.changes:type_name -> changes.Change + 4, // 95: changes.CalculateBlastRadiusResponse.state:type_name -> changes.CalculateBlastRadiusResponse.State + 5, // 96: changes.StartChangeResponse.state:type_name -> changes.StartChangeResponse.State + 6, // 97: changes.EndChangeResponse.state:type_name -> changes.EndChangeResponse.State + 105, // 98: changes.Onboarding.metadata:type_name -> changes.OnboardingMetadata + 106, // 99: changes.Onboarding.properties:type_name -> changes.OnboardingProperties + 126, // 100: changes.OnboardingMetadata.created:type_name -> google.protobuf.Timestamp + 2, // 101: changes.OnboardingProperties.status:type_name -> changes.OnboardingStatus + 104, // 102: changes.GetOnboardingResponse.onboarding:type_name -> changes.Onboarding + 106, // 103: changes.UpdateOnboardingRequest.properties:type_name -> changes.OnboardingProperties + 104, // 104: changes.UpdateOnboardingResponse.onboarding:type_name -> changes.Onboarding + 7, // 105: changes.Risk.severity:type_name -> changes.Risk.Severity + 128, // 106: changes.Risk.relatedItems:type_name -> Reference + 8, // 107: changes.ChangeAnalysisStatus.status:type_name -> changes.ChangeAnalysisStatus.Status + 125, // 108: changes.ChangeAnalysisStatus.progressMilestones:type_name -> changes.ChangeAnalysisStatus.ProgressMilestone + 76, // 109: changes.ChangeArchive.Change:type_name -> changes.Change + 136, // 110: changes.ChangeArchive.changingItemsBookmark:type_name -> bookmarks.Bookmark + 137, // 111: changes.ChangeArchive.blastRadiusSnapshot:type_name -> snapshots.Snapshot + 137, // 112: changes.ChangeArchive.systemBeforeSnapshot:type_name -> snapshots.Snapshot + 137, // 113: changes.ChangeArchive.systemAfterSnapshot:type_name -> snapshots.Snapshot + 55, // 114: changes.ChangeArchive.affectedApps:type_name -> changes.App + 29, // 115: changes.ChangeArchive.timeline:type_name -> changes.ChangeTimelineEntry + 88, // 116: changes.ChangeArchive.changeRiskMetadata:type_name -> changes.ChangeRiskMetadata + 115, // 117: changes.GetChangeArchiveResponse.changeArchive:type_name -> changes.ChangeArchive + 72, // 118: changes.ChangeSummary.EnrichedTagsEntry.value:type_name -> changes.TagValue + 72, // 119: changes.ChangeProperties.EnrichedTagsEntry.value:type_name -> changes.TagValue + 74, // 120: changes.ChangeProperties.SkippedAutoTagsEntry.value:type_name -> changes.AutoTagValue + 9, // 121: changes.ChangeAnalysisStatus.ProgressMilestone.status:type_name -> changes.ChangeAnalysisStatus.ProgressMilestone.Status + 58, // 122: changes.ChangesService.ListApps:input_type -> changes.ListAppsRequest + 60, // 123: changes.ChangesService.CreateApp:input_type -> changes.CreateAppRequest + 62, // 124: changes.ChangesService.CreateSimpleApp:input_type -> changes.CreateSimpleAppRequest + 64, // 125: changes.ChangesService.GetApp:input_type -> changes.GetAppRequest + 66, // 126: changes.ChangesService.UpdateApp:input_type -> changes.UpdateAppRequest + 68, // 127: changes.ChangesService.DeleteApp:input_type -> changes.DeleteAppRequest + 79, // 128: changes.ChangesService.ListChanges:input_type -> changes.ListChangesRequest + 81, // 129: changes.ChangesService.ListChangesByStatus:input_type -> changes.ListChangesByStatusRequest + 83, // 130: changes.ChangesService.CreateChange:input_type -> changes.CreateChangeRequest + 85, // 131: changes.ChangesService.GetChange:input_type -> changes.GetChangeRequest + 87, // 132: changes.ChangesService.GetChangeRisks:input_type -> changes.GetChangeRisksRequest + 116, // 133: changes.ChangesService.GetChangeArchive:input_type -> changes.GetChangeArchiveRequest + 90, // 134: changes.ChangesService.UpdateChange:input_type -> changes.UpdateChangeRequest + 92, // 135: changes.ChangesService.DeleteChange:input_type -> changes.DeleteChangeRequest + 93, // 136: changes.ChangesService.ListChangesBySnapshotUUID:input_type -> changes.ListChangesBySnapshotUUIDRequest + 27, // 137: changes.ChangesService.GetChangeTimeline:input_type -> changes.GetChangeTimelineRequest + 96, // 138: changes.ChangesService.RefreshState:input_type -> changes.RefreshStateRequest + 98, // 139: changes.ChangesService.CalculateBlastRadius:input_type -> changes.CalculateBlastRadiusRequest + 100, // 140: changes.ChangesService.StartChange:input_type -> changes.StartChangeRequest + 102, // 141: changes.ChangesService.EndChange:input_type -> changes.EndChangeRequest + 111, // 142: changes.ChangesService.SimulateChange:input_type -> changes.SimulateChangeRequest + 107, // 143: changes.ChangesService.GetOnboarding:input_type -> changes.GetOnboardingRequest + 109, // 144: changes.ChangesService.UpdateOnboarding:input_type -> changes.UpdateOnboardingRequest + 50, // 145: changes.ChangesService.ListHomeApps:input_type -> changes.ListHomeAppsRequest + 45, // 146: changes.ChangesService.ListHomeChanges:input_type -> changes.ListHomeChangesRequest + 41, // 147: changes.ChangesService.GetAppSummary:input_type -> changes.GetAppSummaryRequest + 43, // 148: changes.ChangesService.GetAppSummaries:input_type -> changes.GetAppSummariesRequest + 70, // 149: changes.ChangesService.ListAppChanges:input_type -> changes.ListAppChangesRequest + 39, // 150: changes.ChangesService.ListAppChangesSummary:input_type -> changes.ListAppChangesSummaryRequest + 36, // 151: changes.ChangesService.UpdateChangingItems:input_type -> changes.UpdateChangingItemsRequest + 38, // 152: changes.ChangesService.UpdatePlannedChanges:input_type -> changes.UpdatePlannedChangesRequest + 34, // 153: changes.ChangesService.GetAffectedApps:input_type -> changes.GetAffectedAppsRequest + 32, // 154: changes.ChangesService.ListChangingItemsSummary:input_type -> changes.ListChangingItemsSummaryRequest + 30, // 155: changes.ChangesService.GetDiff:input_type -> changes.GetDiffRequest + 48, // 156: changes.ChangesService.PopulateChangeFilters:input_type -> changes.PopulateChangeFiltersRequest + 13, // 157: changes.AutoTaggingService.ListRules:input_type -> changes.ListRulesRequest + 15, // 158: changes.AutoTaggingService.CreateRule:input_type -> changes.CreateRuleRequest + 17, // 159: changes.AutoTaggingService.GetRule:input_type -> changes.GetRuleRequest + 19, // 160: changes.AutoTaggingService.UpdateRule:input_type -> changes.UpdateRuleRequest + 21, // 161: changes.AutoTaggingService.DeleteRule:input_type -> changes.DeleteRuleRequest + 23, // 162: changes.AutoTaggingService.ExportRule:input_type -> changes.ExportRuleRequest + 25, // 163: changes.AutoTaggingService.TestRule:input_type -> changes.TestRuleRequest + 59, // 164: changes.ChangesService.ListApps:output_type -> changes.ListAppsResponse + 61, // 165: changes.ChangesService.CreateApp:output_type -> changes.CreateAppResponse + 63, // 166: changes.ChangesService.CreateSimpleApp:output_type -> changes.CreateSimpleAppResponse + 65, // 167: changes.ChangesService.GetApp:output_type -> changes.GetAppResponse + 67, // 168: changes.ChangesService.UpdateApp:output_type -> changes.UpdateAppResponse + 69, // 169: changes.ChangesService.DeleteApp:output_type -> changes.DeleteAppResponse + 80, // 170: changes.ChangesService.ListChanges:output_type -> changes.ListChangesResponse + 82, // 171: changes.ChangesService.ListChangesByStatus:output_type -> changes.ListChangesByStatusResponse + 84, // 172: changes.ChangesService.CreateChange:output_type -> changes.CreateChangeResponse + 86, // 173: changes.ChangesService.GetChange:output_type -> changes.GetChangeResponse + 89, // 174: changes.ChangesService.GetChangeRisks:output_type -> changes.GetChangeRisksResponse + 117, // 175: changes.ChangesService.GetChangeArchive:output_type -> changes.GetChangeArchiveResponse + 91, // 176: changes.ChangesService.UpdateChange:output_type -> changes.UpdateChangeResponse + 95, // 177: changes.ChangesService.DeleteChange:output_type -> changes.DeleteChangeResponse + 94, // 178: changes.ChangesService.ListChangesBySnapshotUUID:output_type -> changes.ListChangesBySnapshotUUIDResponse + 28, // 179: changes.ChangesService.GetChangeTimeline:output_type -> changes.GetChangeTimelineResponse + 97, // 180: changes.ChangesService.RefreshState:output_type -> changes.RefreshStateResponse + 99, // 181: changes.ChangesService.CalculateBlastRadius:output_type -> changes.CalculateBlastRadiusResponse + 101, // 182: changes.ChangesService.StartChange:output_type -> changes.StartChangeResponse + 103, // 183: changes.ChangesService.EndChange:output_type -> changes.EndChangeResponse + 112, // 184: changes.ChangesService.SimulateChange:output_type -> changes.SimulateChangeResponse + 108, // 185: changes.ChangesService.GetOnboarding:output_type -> changes.GetOnboardingResponse + 110, // 186: changes.ChangesService.UpdateOnboarding:output_type -> changes.UpdateOnboardingResponse + 51, // 187: changes.ChangesService.ListHomeApps:output_type -> changes.ListHomeAppsResponse + 47, // 188: changes.ChangesService.ListHomeChanges:output_type -> changes.ListHomeChangesResponse + 42, // 189: changes.ChangesService.GetAppSummary:output_type -> changes.GetAppSummaryResponse + 44, // 190: changes.ChangesService.GetAppSummaries:output_type -> changes.GetAppSummariesResponse + 71, // 191: changes.ChangesService.ListAppChanges:output_type -> changes.ListAppChangesResponse + 40, // 192: changes.ChangesService.ListAppChangesSummary:output_type -> changes.ListAppChangesSummaryResponse + 99, // 193: changes.ChangesService.UpdateChangingItems:output_type -> changes.CalculateBlastRadiusResponse + 99, // 194: changes.ChangesService.UpdatePlannedChanges:output_type -> changes.CalculateBlastRadiusResponse + 35, // 195: changes.ChangesService.GetAffectedApps:output_type -> changes.GetAffectedAppsResponse + 33, // 196: changes.ChangesService.ListChangingItemsSummary:output_type -> changes.ListChangingItemsSummaryResponse + 31, // 197: changes.ChangesService.GetDiff:output_type -> changes.GetDiffResponse + 49, // 198: changes.ChangesService.PopulateChangeFilters:output_type -> changes.PopulateChangeFiltersResponse + 14, // 199: changes.AutoTaggingService.ListRules:output_type -> changes.ListRulesResponse + 16, // 200: changes.AutoTaggingService.CreateRule:output_type -> changes.CreateRuleResponse + 18, // 201: changes.AutoTaggingService.GetRule:output_type -> changes.GetRuleResponse + 20, // 202: changes.AutoTaggingService.UpdateRule:output_type -> changes.UpdateRuleResponse + 22, // 203: changes.AutoTaggingService.DeleteRule:output_type -> changes.DeleteRuleResponse + 24, // 204: changes.AutoTaggingService.ExportRule:output_type -> changes.ExportRuleResponse + 26, // 205: changes.AutoTaggingService.TestRule:output_type -> changes.TestRuleResponse + 164, // [164:206] is the sub-list for method output_type + 122, // [122:164] is the sub-list for method input_type + 122, // [122:122] is the sub-list for extension type_name + 122, // [122:122] is the sub-list for extension extendee + 0, // [0:122] is the sub-list for field type_name } func init() { file_changes_proto_init() } @@ -7028,20 +8331,24 @@ func file_changes_proto_init() { file_snapshots_proto_init() file_config_proto_init() file_util_proto_init() - file_changes_proto_msgTypes[10].OneofWrappers = []any{} - file_changes_proto_msgTypes[11].OneofWrappers = []any{} - file_changes_proto_msgTypes[18].OneofWrappers = []any{} - file_changes_proto_msgTypes[19].OneofWrappers = []any{} - file_changes_proto_msgTypes[85].OneofWrappers = []any{} + file_changes_proto_msgTypes[27].OneofWrappers = []any{} + file_changes_proto_msgTypes[28].OneofWrappers = []any{} + file_changes_proto_msgTypes[35].OneofWrappers = []any{} + file_changes_proto_msgTypes[36].OneofWrappers = []any{} + file_changes_proto_msgTypes[62].OneofWrappers = []any{ + (*TagValue_UserTagValue)(nil), + (*TagValue_AutoTagValue)(nil), + } + file_changes_proto_msgTypes[105].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_changes_proto_rawDesc, - NumEnums: 9, - NumMessages: 93, + NumEnums: 10, + NumMessages: 116, NumExtensions: 0, - NumServices: 1, + NumServices: 2, }, GoTypes: file_changes_proto_goTypes, DependencyIndexes: file_changes_proto_depIdxs, diff --git a/cli.pb.go b/cli.pb.go index 655b3ee..96565e8 100644 --- a/cli.pb.go +++ b/cli.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.2 +// protoc-gen-go v1.36.0 // protoc (unknown) // source: cli.proto @@ -21,11 +21,10 @@ const ( ) type GetConfigRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` unknownFields protoimpl.UnknownFields - - Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetConfigRequest) Reset() { @@ -66,11 +65,10 @@ func (x *GetConfigRequest) GetKey() string { } type GetConfigResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` unknownFields protoimpl.UnknownFields - - Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetConfigResponse) Reset() { @@ -111,12 +109,11 @@ func (x *GetConfigResponse) GetValue() string { } type SetConfigRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` unknownFields protoimpl.UnknownFields - - Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` - Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SetConfigRequest) Reset() { @@ -164,9 +161,9 @@ func (x *SetConfigRequest) GetValue() string { } type SetConfigResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SetConfigResponse) Reset() { diff --git a/config.pb.go b/config.pb.go index 5141902..c4759e0 100644 --- a/config.pb.go +++ b/config.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.2 +// protoc-gen-go v1.36.0 // protoc (unknown) // source: config.proto @@ -132,16 +132,15 @@ func (GetHcpConfigResponse_Status) EnumDescriptor() ([]byte, []int) { // does not affect manually requested blast radii vie the "Explore" view or the // API type BlastRadiusConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The maximum number of items that can be returned in a single blast radius // request. Once a request has hit this limit, all currently running // requests will be cancelled and the blast radius returned as-is MaxItems int32 `protobuf:"varint,1,opt,name=maxItems,proto3" json:"maxItems,omitempty"` // How deeply to link when calculating the blast radius for a change - LinkDepth int32 `protobuf:"varint,2,opt,name=linkDepth,proto3" json:"linkDepth,omitempty"` + LinkDepth int32 `protobuf:"varint,2,opt,name=linkDepth,proto3" json:"linkDepth,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *BlastRadiusConfig) Reset() { @@ -194,10 +193,7 @@ func (x *BlastRadiusConfig) GetLinkDepth() int32 { // however we do need to change this message in a breaking way, we will need to // do some kind of a migration (depending on the change) type AccountConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The preset that we should use when calculating the blast radius for a // change. If this is set to "CUSTOM" then the `blastRadius` config should be // set @@ -211,6 +207,8 @@ type AccountConfig struct { // on risks that we have additional context for. If you find that Overmind's // risks are "too obvious" then this might be a good setting to enable. SkipUnmappedChangesForRisks bool `protobuf:"varint,3,opt,name=skipUnmappedChangesForRisks,proto3" json:"skipUnmappedChangesForRisks,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AccountConfig) Reset() { @@ -265,9 +263,9 @@ func (x *AccountConfig) GetSkipUnmappedChangesForRisks() bool { } type GetAccountConfigRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetAccountConfigRequest) Reset() { @@ -301,11 +299,10 @@ func (*GetAccountConfigRequest) Descriptor() ([]byte, []int) { } type GetAccountConfigResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Config *AccountConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` unknownFields protoimpl.UnknownFields - - Config *AccountConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetAccountConfigResponse) Reset() { @@ -347,11 +344,10 @@ func (x *GetAccountConfigResponse) GetConfig() *AccountConfig { // Updates the account config for the user's account. type UpdateAccountConfigRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Config *AccountConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` unknownFields protoimpl.UnknownFields - - Config *AccountConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UpdateAccountConfigRequest) Reset() { @@ -392,11 +388,10 @@ func (x *UpdateAccountConfigRequest) GetConfig() *AccountConfig { } type UpdateAccountConfigResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Config *AccountConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` unknownFields protoimpl.UnknownFields - - Config *AccountConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UpdateAccountConfigResponse) Reset() { @@ -437,14 +432,13 @@ func (x *UpdateAccountConfigResponse) GetConfig() *AccountConfig { } type CreateHcpConfigRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The URL that the user should be redirected to after the whole process is // over. This should be a page in the frontend, probably the HCP Terraform // Integration page. FinalFrontendRedirect string `protobuf:"bytes,1,opt,name=finalFrontendRedirect,proto3" json:"finalFrontendRedirect,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CreateHcpConfigRequest) Reset() { @@ -485,16 +479,15 @@ func (x *CreateHcpConfigRequest) GetFinalFrontendRedirect() string { } type CreateHcpConfigResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The configuration of the HCP Run Task that was created Config *HcpConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` // The API Key response for the API key that backs this integration. This // API will have been created but not yet authorised, the user must still be // redirected to the authorizeURL to complete the process. - ApiKey *CreateAPIKeyResponse `protobuf:"bytes,2,opt,name=apiKey,proto3" json:"apiKey,omitempty"` + ApiKey *CreateAPIKeyResponse `protobuf:"bytes,2,opt,name=apiKey,proto3" json:"apiKey,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CreateHcpConfigResponse) Reset() { @@ -542,14 +535,13 @@ func (x *CreateHcpConfigResponse) GetApiKey() *CreateAPIKeyResponse { } type HcpConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // the Endpoint URL for the HCP Run Task configuration Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` // the HMAC secret for the HCP Run Task configuration - Secret string `protobuf:"bytes,2,opt,name=secret,proto3" json:"secret,omitempty"` + Secret string `protobuf:"bytes,2,opt,name=secret,proto3" json:"secret,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *HcpConfig) Reset() { @@ -597,9 +589,9 @@ func (x *HcpConfig) GetSecret() string { } type GetHcpConfigRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetHcpConfigRequest) Reset() { @@ -633,12 +625,11 @@ func (*GetHcpConfigRequest) Descriptor() ([]byte, []int) { } type GetHcpConfigResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Config *HcpConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` + Status GetHcpConfigResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=config.GetHcpConfigResponse_Status" json:"status,omitempty"` unknownFields protoimpl.UnknownFields - - Config *HcpConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` - Status GetHcpConfigResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=config.GetHcpConfigResponse_Status" json:"status,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetHcpConfigResponse) Reset() { @@ -686,9 +677,9 @@ func (x *GetHcpConfigResponse) GetStatus() GetHcpConfigResponse_Status { } type DeleteHcpConfigRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DeleteHcpConfigRequest) Reset() { @@ -722,9 +713,9 @@ func (*DeleteHcpConfigRequest) Descriptor() ([]byte, []int) { } type DeleteHcpConfigResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DeleteHcpConfigResponse) Reset() { diff --git a/gateway.pb.go b/gateway.pb.go index b743cbc..df459b4 100644 --- a/gateway.pb.go +++ b/gateway.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.2 +// protoc-gen-go v1.36.0 // protoc (unknown) // source: gateway.proto @@ -24,11 +24,8 @@ const ( // A union of all request made to the gateway. type GatewayRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to RequestType: + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to RequestType: // // *GatewayRequest_Query // *GatewayRequest_CancelQuery @@ -42,6 +39,8 @@ type GatewayRequest struct { // *GatewayRequest_ChatMessage RequestType isGatewayRequest_RequestType `protobuf_oneof:"request_type"` MinStatusInterval *durationpb.Duration `protobuf:"bytes,2,opt,name=minStatusInterval,proto3,oneof" json:"minStatusInterval,omitempty"` // Minimum time between status updates. Setting this value too low can result in too many status messages + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GatewayRequest) Reset() { @@ -74,79 +73,99 @@ func (*GatewayRequest) Descriptor() ([]byte, []int) { return file_gateway_proto_rawDescGZIP(), []int{0} } -func (m *GatewayRequest) GetRequestType() isGatewayRequest_RequestType { - if m != nil { - return m.RequestType +func (x *GatewayRequest) GetRequestType() isGatewayRequest_RequestType { + if x != nil { + return x.RequestType } return nil } func (x *GatewayRequest) GetQuery() *Query { - if x, ok := x.GetRequestType().(*GatewayRequest_Query); ok { - return x.Query + if x != nil { + if x, ok := x.RequestType.(*GatewayRequest_Query); ok { + return x.Query + } } return nil } func (x *GatewayRequest) GetCancelQuery() *CancelQuery { - if x, ok := x.GetRequestType().(*GatewayRequest_CancelQuery); ok { - return x.CancelQuery + if x != nil { + if x, ok := x.RequestType.(*GatewayRequest_CancelQuery); ok { + return x.CancelQuery + } } return nil } func (x *GatewayRequest) GetUndoQuery() *UndoQuery { - if x, ok := x.GetRequestType().(*GatewayRequest_UndoQuery); ok { - return x.UndoQuery + if x != nil { + if x, ok := x.RequestType.(*GatewayRequest_UndoQuery); ok { + return x.UndoQuery + } } return nil } func (x *GatewayRequest) GetExpand() *Expand { - if x, ok := x.GetRequestType().(*GatewayRequest_Expand); ok { - return x.Expand + if x != nil { + if x, ok := x.RequestType.(*GatewayRequest_Expand); ok { + return x.Expand + } } return nil } func (x *GatewayRequest) GetUndoExpand() *UndoExpand { - if x, ok := x.GetRequestType().(*GatewayRequest_UndoExpand); ok { - return x.UndoExpand + if x != nil { + if x, ok := x.RequestType.(*GatewayRequest_UndoExpand); ok { + return x.UndoExpand + } } return nil } func (x *GatewayRequest) GetStoreSnapshot() *StoreSnapshot { - if x, ok := x.GetRequestType().(*GatewayRequest_StoreSnapshot); ok { - return x.StoreSnapshot + if x != nil { + if x, ok := x.RequestType.(*GatewayRequest_StoreSnapshot); ok { + return x.StoreSnapshot + } } return nil } func (x *GatewayRequest) GetLoadSnapshot() *LoadSnapshot { - if x, ok := x.GetRequestType().(*GatewayRequest_LoadSnapshot); ok { - return x.LoadSnapshot + if x != nil { + if x, ok := x.RequestType.(*GatewayRequest_LoadSnapshot); ok { + return x.LoadSnapshot + } } return nil } func (x *GatewayRequest) GetStoreBookmark() *StoreBookmark { - if x, ok := x.GetRequestType().(*GatewayRequest_StoreBookmark); ok { - return x.StoreBookmark + if x != nil { + if x, ok := x.RequestType.(*GatewayRequest_StoreBookmark); ok { + return x.StoreBookmark + } } return nil } func (x *GatewayRequest) GetLoadBookmark() *LoadBookmark { - if x, ok := x.GetRequestType().(*GatewayRequest_LoadBookmark); ok { - return x.LoadBookmark + if x != nil { + if x, ok := x.RequestType.(*GatewayRequest_LoadBookmark); ok { + return x.LoadBookmark + } } return nil } func (x *GatewayRequest) GetChatMessage() *ChatMessage { - if x, ok := x.GetRequestType().(*GatewayRequest_ChatMessage); ok { - return x.ChatMessage + if x != nil { + if x, ok := x.RequestType.(*GatewayRequest_ChatMessage); ok { + return x.ChatMessage + } } return nil } @@ -239,11 +258,8 @@ func (*GatewayRequest_ChatMessage) isGatewayRequest_RequestType() {} // however the purpose of it is purely as a wrapper to the many different types // of messages that the gateway can send type GatewayResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to ResponseType: + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to ResponseType: // // *GatewayResponse_NewItem // *GatewayResponse_NewEdge @@ -261,7 +277,9 @@ type GatewayResponse struct { // *GatewayResponse_ChatResponse // *GatewayResponse_ToolStart // *GatewayResponse_ToolFinish - ResponseType isGatewayResponse_ResponseType `protobuf_oneof:"response_type"` + ResponseType isGatewayResponse_ResponseType `protobuf_oneof:"response_type"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GatewayResponse) Reset() { @@ -294,121 +312,153 @@ func (*GatewayResponse) Descriptor() ([]byte, []int) { return file_gateway_proto_rawDescGZIP(), []int{1} } -func (m *GatewayResponse) GetResponseType() isGatewayResponse_ResponseType { - if m != nil { - return m.ResponseType +func (x *GatewayResponse) GetResponseType() isGatewayResponse_ResponseType { + if x != nil { + return x.ResponseType } return nil } func (x *GatewayResponse) GetNewItem() *Item { - if x, ok := x.GetResponseType().(*GatewayResponse_NewItem); ok { - return x.NewItem + if x != nil { + if x, ok := x.ResponseType.(*GatewayResponse_NewItem); ok { + return x.NewItem + } } return nil } func (x *GatewayResponse) GetNewEdge() *Edge { - if x, ok := x.GetResponseType().(*GatewayResponse_NewEdge); ok { - return x.NewEdge + if x != nil { + if x, ok := x.ResponseType.(*GatewayResponse_NewEdge); ok { + return x.NewEdge + } } return nil } func (x *GatewayResponse) GetStatus() *GatewayRequestStatus { - if x, ok := x.GetResponseType().(*GatewayResponse_Status); ok { - return x.Status + if x != nil { + if x, ok := x.ResponseType.(*GatewayResponse_Status); ok { + return x.Status + } } return nil } func (x *GatewayResponse) GetError() string { - if x, ok := x.GetResponseType().(*GatewayResponse_Error); ok { - return x.Error + if x != nil { + if x, ok := x.ResponseType.(*GatewayResponse_Error); ok { + return x.Error + } } return "" } func (x *GatewayResponse) GetQueryError() *QueryError { - if x, ok := x.GetResponseType().(*GatewayResponse_QueryError); ok { - return x.QueryError + if x != nil { + if x, ok := x.ResponseType.(*GatewayResponse_QueryError); ok { + return x.QueryError + } } return nil } func (x *GatewayResponse) GetDeleteItem() *Reference { - if x, ok := x.GetResponseType().(*GatewayResponse_DeleteItem); ok { - return x.DeleteItem + if x != nil { + if x, ok := x.ResponseType.(*GatewayResponse_DeleteItem); ok { + return x.DeleteItem + } } return nil } func (x *GatewayResponse) GetDeleteEdge() *Edge { - if x, ok := x.GetResponseType().(*GatewayResponse_DeleteEdge); ok { - return x.DeleteEdge + if x != nil { + if x, ok := x.ResponseType.(*GatewayResponse_DeleteEdge); ok { + return x.DeleteEdge + } } return nil } func (x *GatewayResponse) GetUpdateItem() *Item { - if x, ok := x.GetResponseType().(*GatewayResponse_UpdateItem); ok { - return x.UpdateItem + if x != nil { + if x, ok := x.ResponseType.(*GatewayResponse_UpdateItem); ok { + return x.UpdateItem + } } return nil } func (x *GatewayResponse) GetSnapshotStoreResult() *SnapshotStoreResult { - if x, ok := x.GetResponseType().(*GatewayResponse_SnapshotStoreResult); ok { - return x.SnapshotStoreResult + if x != nil { + if x, ok := x.ResponseType.(*GatewayResponse_SnapshotStoreResult); ok { + return x.SnapshotStoreResult + } } return nil } func (x *GatewayResponse) GetSnapshotLoadResult() *SnapshotLoadResult { - if x, ok := x.GetResponseType().(*GatewayResponse_SnapshotLoadResult); ok { - return x.SnapshotLoadResult + if x != nil { + if x, ok := x.ResponseType.(*GatewayResponse_SnapshotLoadResult); ok { + return x.SnapshotLoadResult + } } return nil } func (x *GatewayResponse) GetBookmarkStoreResult() *BookmarkStoreResult { - if x, ok := x.GetResponseType().(*GatewayResponse_BookmarkStoreResult); ok { - return x.BookmarkStoreResult + if x != nil { + if x, ok := x.ResponseType.(*GatewayResponse_BookmarkStoreResult); ok { + return x.BookmarkStoreResult + } } return nil } func (x *GatewayResponse) GetBookmarkLoadResult() *BookmarkLoadResult { - if x, ok := x.GetResponseType().(*GatewayResponse_BookmarkLoadResult); ok { - return x.BookmarkLoadResult + if x != nil { + if x, ok := x.ResponseType.(*GatewayResponse_BookmarkLoadResult); ok { + return x.BookmarkLoadResult + } } return nil } func (x *GatewayResponse) GetQueryStatus() *QueryStatus { - if x, ok := x.GetResponseType().(*GatewayResponse_QueryStatus); ok { - return x.QueryStatus + if x != nil { + if x, ok := x.ResponseType.(*GatewayResponse_QueryStatus); ok { + return x.QueryStatus + } } return nil } func (x *GatewayResponse) GetChatResponse() *ChatResponse { - if x, ok := x.GetResponseType().(*GatewayResponse_ChatResponse); ok { - return x.ChatResponse + if x != nil { + if x, ok := x.ResponseType.(*GatewayResponse_ChatResponse); ok { + return x.ChatResponse + } } return nil } func (x *GatewayResponse) GetToolStart() *ToolStart { - if x, ok := x.GetResponseType().(*GatewayResponse_ToolStart); ok { - return x.ToolStart + if x != nil { + if x, ok := x.ResponseType.(*GatewayResponse_ToolStart); ok { + return x.ToolStart + } } return nil } func (x *GatewayResponse) GetToolFinish() *ToolFinish { - if x, ok := x.GetResponseType().(*GatewayResponse_ToolFinish); ok { - return x.ToolFinish + if x != nil { + if x, ok := x.ResponseType.(*GatewayResponse_ToolFinish); ok { + return x.ToolFinish + } } return nil } @@ -515,17 +565,16 @@ func (*GatewayResponse_ToolFinish) isGatewayResponse_ResponseType() {} // Contains the status of the gateway request. type GatewayRequestStatus struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ResponderStates map[string]ResponderState `protobuf:"bytes,1,rep,name=responderStates,proto3" json:"responderStates,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=ResponderState"` + state protoimpl.MessageState `protogen:"open.v1"` + ResponderStates map[string]ResponderState `protobuf:"bytes,1,rep,name=responderStates,proto3" json:"responderStates,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=ResponderState"` Summary *GatewayRequestStatus_Summary `protobuf:"bytes,3,opt,name=summary,proto3" json:"summary,omitempty"` // Whether all items have finished being processed by the gateway. It is // possible for all responders to be complete, but the gateway is still // working. A request should only be considered complete when all working == // 0 and postProcessingComplete == true PostProcessingComplete bool `protobuf:"varint,4,opt,name=postProcessingComplete,proto3" json:"postProcessingComplete,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GatewayRequestStatus) Reset() { @@ -582,10 +631,7 @@ func (x *GatewayRequestStatus) GetPostProcessingComplete() bool { // Ask the gateway to store the current state as bookmark with the specified details. // Returns a BookmarkStored message when the bookmark is stored type StoreBookmark struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // user supplied name of this bookmark Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // user supplied description of this bookmark @@ -595,7 +641,9 @@ type StoreBookmark struct { // whether this bookmark should be stored as a system bookmark. System // bookmarks are hidden and can only be returned via the UUID, they don't // show up in lists - IsSystem bool `protobuf:"varint,4,opt,name=isSystem,proto3" json:"isSystem,omitempty"` + IsSystem bool `protobuf:"varint,4,opt,name=isSystem,proto3" json:"isSystem,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *StoreBookmark) Reset() { @@ -658,16 +706,15 @@ func (x *StoreBookmark) GetIsSystem() bool { // After a bookmark is successfully stored, this reply with the new bookmark's details is sent. type BookmarkStoreResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` - ErrorMessage string `protobuf:"bytes,2,opt,name=errorMessage,proto3" json:"errorMessage,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + ErrorMessage string `protobuf:"bytes,2,opt,name=errorMessage,proto3" json:"errorMessage,omitempty"` // a correlation ID to match up requests and responses. this field returns the contents of the request's msgID MsgID []byte `protobuf:"bytes,4,opt,name=msgID,proto3" json:"msgID,omitempty"` // UUID of the newly created bookmark - BookmarkID []byte `protobuf:"bytes,5,opt,name=bookmarkID,proto3" json:"bookmarkID,omitempty"` + BookmarkID []byte `protobuf:"bytes,5,opt,name=bookmarkID,proto3" json:"bookmarkID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *BookmarkStoreResult) Reset() { @@ -731,10 +778,7 @@ func (x *BookmarkStoreResult) GetBookmarkID() []byte { // Ask the gateway to load the specified bookmark into the current state. // Results are streamed to the client in the same way query results are. type LoadBookmark struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // unique id of the bookmark to load UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` // a correlation ID to match up requests and responses. set this to a value unique per connection @@ -742,7 +786,9 @@ type LoadBookmark struct { // set to true to force fetching fresh data IgnoreCache bool `protobuf:"varint,3,opt,name=ignoreCache,proto3" json:"ignoreCache,omitempty"` // The time at which the gateway should stop processing the queries spawned by this request - Deadline *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=deadline,proto3" json:"deadline,omitempty"` + Deadline *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=deadline,proto3" json:"deadline,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LoadBookmark) Reset() { @@ -804,16 +850,15 @@ func (x *LoadBookmark) GetDeadline() *timestamppb.Timestamp { } type BookmarkLoadResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` - ErrorMessage string `protobuf:"bytes,2,opt,name=errorMessage,proto3" json:"errorMessage,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + ErrorMessage string `protobuf:"bytes,2,opt,name=errorMessage,proto3" json:"errorMessage,omitempty"` // UUIDs of all queries that have been started as a result of loading this bookmark StartedQueryUUIDs [][]byte `protobuf:"bytes,3,rep,name=startedQueryUUIDs,proto3" json:"startedQueryUUIDs,omitempty"` // a correlation ID to match up requests and responses. this field returns the contents of the request's msgID - MsgID []byte `protobuf:"bytes,4,opt,name=msgID,proto3" json:"msgID,omitempty"` + MsgID []byte `protobuf:"bytes,4,opt,name=msgID,proto3" json:"msgID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *BookmarkLoadResult) Reset() { @@ -877,16 +922,15 @@ func (x *BookmarkLoadResult) GetMsgID() []byte { // Ask the gateway to store the current state as snapshot with the specified details. // Returns a SnapshotStored message when the snapshot is stored type StoreSnapshot struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // user supplied name of this snapshot Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // user supplied description of this snapshot Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` // a correlation ID to match up requests and responses. set this to a value unique per connection - MsgID []byte `protobuf:"bytes,3,opt,name=msgID,proto3" json:"msgID,omitempty"` + MsgID []byte `protobuf:"bytes,3,opt,name=msgID,proto3" json:"msgID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *StoreSnapshot) Reset() { @@ -942,15 +986,14 @@ func (x *StoreSnapshot) GetMsgID() []byte { // After a snapshot is successfully stored, this reply with the new snapshot's details is sent. type SnapshotStoreResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` - ErrorMessage string `protobuf:"bytes,2,opt,name=errorMessage,proto3" json:"errorMessage,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + ErrorMessage string `protobuf:"bytes,2,opt,name=errorMessage,proto3" json:"errorMessage,omitempty"` // a correlation ID to match up requests and responses. this field returns the contents of the request's msgID - MsgID []byte `protobuf:"bytes,4,opt,name=msgID,proto3" json:"msgID,omitempty"` - SnapshotID []byte `protobuf:"bytes,5,opt,name=snapshotID,proto3" json:"snapshotID,omitempty"` // The UUID of the newly stored snapshot + MsgID []byte `protobuf:"bytes,4,opt,name=msgID,proto3" json:"msgID,omitempty"` + SnapshotID []byte `protobuf:"bytes,5,opt,name=snapshotID,proto3" json:"snapshotID,omitempty"` // The UUID of the newly stored snapshot + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SnapshotStoreResult) Reset() { @@ -1014,14 +1057,13 @@ func (x *SnapshotStoreResult) GetSnapshotID() []byte { // Ask the gateway to load the specified snapshot into the current state. // Results are streamed to the client in the same way query results are. type LoadSnapshot struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // unique id of the snapshot to load UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` // a correlation ID to match up requests and responses. set this to a value unique per connection - MsgID []byte `protobuf:"bytes,2,opt,name=msgID,proto3" json:"msgID,omitempty"` + MsgID []byte `protobuf:"bytes,2,opt,name=msgID,proto3" json:"msgID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LoadSnapshot) Reset() { @@ -1069,14 +1111,13 @@ func (x *LoadSnapshot) GetMsgID() []byte { } type SnapshotLoadResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` - ErrorMessage string `protobuf:"bytes,2,opt,name=errorMessage,proto3" json:"errorMessage,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + ErrorMessage string `protobuf:"bytes,2,opt,name=errorMessage,proto3" json:"errorMessage,omitempty"` // a correlation ID to match up requests and responses. this field returns the contents of the request's msgID - MsgID []byte `protobuf:"bytes,4,opt,name=msgID,proto3" json:"msgID,omitempty"` + MsgID []byte `protobuf:"bytes,4,opt,name=msgID,proto3" json:"msgID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SnapshotLoadResult) Reset() { @@ -1131,17 +1172,16 @@ func (x *SnapshotLoadResult) GetMsgID() []byte { } type ChatMessage struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The message to create // - // Types that are assignable to RequestType: + // Types that are valid to be assigned to RequestType: // // *ChatMessage_Text // *ChatMessage_Cancel - RequestType isChatMessage_RequestType `protobuf_oneof:"request_type"` + RequestType isChatMessage_RequestType `protobuf_oneof:"request_type"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ChatMessage) Reset() { @@ -1174,23 +1214,27 @@ func (*ChatMessage) Descriptor() ([]byte, []int) { return file_gateway_proto_rawDescGZIP(), []int{11} } -func (m *ChatMessage) GetRequestType() isChatMessage_RequestType { - if m != nil { - return m.RequestType +func (x *ChatMessage) GetRequestType() isChatMessage_RequestType { + if x != nil { + return x.RequestType } return nil } func (x *ChatMessage) GetText() string { - if x, ok := x.GetRequestType().(*ChatMessage_Text); ok { - return x.Text + if x != nil { + if x, ok := x.RequestType.(*ChatMessage_Text); ok { + return x.Text + } } return "" } func (x *ChatMessage) GetCancel() bool { - if x, ok := x.GetRequestType().(*ChatMessage_Cancel); ok { - return x.Cancel + if x != nil { + if x, ok := x.RequestType.(*ChatMessage_Cancel); ok { + return x.Cancel + } } return false } @@ -1213,12 +1257,11 @@ func (*ChatMessage_Text) isChatMessage_RequestType() {} func (*ChatMessage_Cancel) isChatMessage_RequestType() {} type ToolMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // A unique ID that tracks this tool call and can be used to correlate messages - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ToolMetadata) Reset() { @@ -1259,14 +1302,13 @@ func (x *ToolMetadata) GetId() string { } type QueryToolStart struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + Method QueryMethod `protobuf:"varint,2,opt,name=method,proto3,enum=QueryMethod" json:"method,omitempty"` + Query string `protobuf:"bytes,3,opt,name=query,proto3" json:"query,omitempty"` + Scope string `protobuf:"bytes,4,opt,name=scope,proto3" json:"scope,omitempty"` unknownFields protoimpl.UnknownFields - - Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - Method QueryMethod `protobuf:"varint,2,opt,name=method,proto3,enum=QueryMethod" json:"method,omitempty"` - Query string `protobuf:"bytes,3,opt,name=query,proto3" json:"query,omitempty"` - Scope string `protobuf:"bytes,4,opt,name=scope,proto3" json:"scope,omitempty"` + sizeCache protoimpl.SizeCache } func (x *QueryToolStart) Reset() { @@ -1328,11 +1370,10 @@ func (x *QueryToolStart) GetScope() string { } type QueryToolFinish struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + NumItems int32 `protobuf:"varint,1,opt,name=numItems,proto3" json:"numItems,omitempty"` unknownFields protoimpl.UnknownFields - - NumItems int32 `protobuf:"varint,1,opt,name=numItems,proto3" json:"numItems,omitempty"` + sizeCache protoimpl.SizeCache } func (x *QueryToolFinish) Reset() { @@ -1373,13 +1414,12 @@ func (x *QueryToolFinish) GetNumItems() int32 { } type RelationshipToolStart struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - UniqueAttributeValue string `protobuf:"bytes,2,opt,name=uniqueAttributeValue,proto3" json:"uniqueAttributeValue,omitempty"` - Scope string `protobuf:"bytes,3,opt,name=scope,proto3" json:"scope,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + UniqueAttributeValue string `protobuf:"bytes,2,opt,name=uniqueAttributeValue,proto3" json:"uniqueAttributeValue,omitempty"` + Scope string `protobuf:"bytes,3,opt,name=scope,proto3" json:"scope,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RelationshipToolStart) Reset() { @@ -1434,11 +1474,10 @@ func (x *RelationshipToolStart) GetScope() string { } type RelationshipToolFinish struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + NumItems int32 `protobuf:"varint,1,opt,name=numItems,proto3" json:"numItems,omitempty"` unknownFields protoimpl.UnknownFields - - NumItems int32 `protobuf:"varint,1,opt,name=numItems,proto3" json:"numItems,omitempty"` + sizeCache protoimpl.SizeCache } func (x *RelationshipToolFinish) Reset() { @@ -1479,13 +1518,12 @@ func (x *RelationshipToolFinish) GetNumItems() int32 { } type ChangesByReferenceToolStart struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - UniqueAttributeValue string `protobuf:"bytes,2,opt,name=uniqueAttributeValue,proto3" json:"uniqueAttributeValue,omitempty"` - Scope string `protobuf:"bytes,3,opt,name=scope,proto3" json:"scope,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + UniqueAttributeValue string `protobuf:"bytes,2,opt,name=uniqueAttributeValue,proto3" json:"uniqueAttributeValue,omitempty"` + Scope string `protobuf:"bytes,3,opt,name=scope,proto3" json:"scope,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ChangesByReferenceToolStart) Reset() { @@ -1540,16 +1578,15 @@ func (x *ChangesByReferenceToolStart) GetScope() string { } type ChangeByReferenceSummary struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` // from ChangeProperties UUID []byte `protobuf:"bytes,2,opt,name=UUID,proto3" json:"UUID,omitempty"` // from ChangeMetadata CreatedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=createdAt,proto3" json:"createdAt,omitempty"` // From ChangeMetadata Owner string `protobuf:"bytes,4,opt,name=owner,proto3" json:"owner,omitempty"` // From ChangeProperties NumAffectedItems int32 `protobuf:"varint,5,opt,name=numAffectedItems,proto3" json:"numAffectedItems,omitempty"` // From ChangeMetadata ChangeStatus ChangeStatus `protobuf:"varint,6,opt,name=changeStatus,proto3,enum=changes.ChangeStatus" json:"changeStatus,omitempty"` // From ChangeMetadata + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ChangeByReferenceSummary) Reset() { @@ -1625,11 +1662,10 @@ func (x *ChangeByReferenceSummary) GetChangeStatus() ChangeStatus { } type ChangesByReferenceToolFinish struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` ChangeSummaries []*ChangeByReferenceSummary `protobuf:"bytes,1,rep,name=changeSummaries,proto3" json:"changeSummaries,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ChangesByReferenceToolFinish) Reset() { @@ -1670,17 +1706,16 @@ func (x *ChangesByReferenceToolFinish) GetChangeSummaries() []*ChangeByReference } type ToolStart struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Metadata *ToolMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` - // Types that are assignable to ToolType: + state protoimpl.MessageState `protogen:"open.v1"` + Metadata *ToolMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + // Types that are valid to be assigned to ToolType: // // *ToolStart_Query // *ToolStart_Relationship // *ToolStart_ChangesByReference - ToolType isToolStart_ToolType `protobuf_oneof:"tool_type"` + ToolType isToolStart_ToolType `protobuf_oneof:"tool_type"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ToolStart) Reset() { @@ -1720,30 +1755,36 @@ func (x *ToolStart) GetMetadata() *ToolMetadata { return nil } -func (m *ToolStart) GetToolType() isToolStart_ToolType { - if m != nil { - return m.ToolType +func (x *ToolStart) GetToolType() isToolStart_ToolType { + if x != nil { + return x.ToolType } return nil } func (x *ToolStart) GetQuery() *QueryToolStart { - if x, ok := x.GetToolType().(*ToolStart_Query); ok { - return x.Query + if x != nil { + if x, ok := x.ToolType.(*ToolStart_Query); ok { + return x.Query + } } return nil } func (x *ToolStart) GetRelationship() *RelationshipToolStart { - if x, ok := x.GetToolType().(*ToolStart_Relationship); ok { - return x.Relationship + if x != nil { + if x, ok := x.ToolType.(*ToolStart_Relationship); ok { + return x.Relationship + } } return nil } func (x *ToolStart) GetChangesByReference() *ChangesByReferenceToolStart { - if x, ok := x.GetToolType().(*ToolStart_ChangesByReference); ok { - return x.ChangesByReference + if x != nil { + if x, ok := x.ToolType.(*ToolStart_ChangesByReference); ok { + return x.ChangesByReference + } } return nil } @@ -1771,18 +1812,17 @@ func (*ToolStart_Relationship) isToolStart_ToolType() {} func (*ToolStart_ChangesByReference) isToolStart_ToolType() {} type ToolFinish struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Metadata *ToolMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` - Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` - // Types that are assignable to ToolType: + state protoimpl.MessageState `protogen:"open.v1"` + Metadata *ToolMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` + // Types that are valid to be assigned to ToolType: // // *ToolFinish_Query // *ToolFinish_Relationship // *ToolFinish_ChangesByReference - ToolType isToolFinish_ToolType `protobuf_oneof:"tool_type"` + ToolType isToolFinish_ToolType `protobuf_oneof:"tool_type"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ToolFinish) Reset() { @@ -1829,30 +1869,36 @@ func (x *ToolFinish) GetError() string { return "" } -func (m *ToolFinish) GetToolType() isToolFinish_ToolType { - if m != nil { - return m.ToolType +func (x *ToolFinish) GetToolType() isToolFinish_ToolType { + if x != nil { + return x.ToolType } return nil } func (x *ToolFinish) GetQuery() *QueryToolFinish { - if x, ok := x.GetToolType().(*ToolFinish_Query); ok { - return x.Query + if x != nil { + if x, ok := x.ToolType.(*ToolFinish_Query); ok { + return x.Query + } } return nil } func (x *ToolFinish) GetRelationship() *RelationshipToolFinish { - if x, ok := x.GetToolType().(*ToolFinish_Relationship); ok { - return x.Relationship + if x != nil { + if x, ok := x.ToolType.(*ToolFinish_Relationship); ok { + return x.Relationship + } } return nil } func (x *ToolFinish) GetChangesByReference() *ChangesByReferenceToolFinish { - if x, ok := x.GetToolType().(*ToolFinish_ChangesByReference); ok { - return x.ChangesByReference + if x != nil { + if x, ok := x.ToolType.(*ToolFinish_ChangesByReference); ok { + return x.ChangesByReference + } } return nil } @@ -1880,12 +1926,11 @@ func (*ToolFinish_Relationship) isToolFinish_ToolType() {} func (*ToolFinish_ChangesByReference) isToolFinish_ToolType() {} type ChatResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` + Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` unknownFields protoimpl.UnknownFields - - Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` - Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ChatResponse) Reset() { @@ -1933,16 +1978,15 @@ func (x *ChatResponse) GetError() string { } type GatewayRequestStatus_Summary struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Working int32 `protobuf:"varint,1,opt,name=working,proto3" json:"working,omitempty"` + Stalled int32 `protobuf:"varint,2,opt,name=stalled,proto3" json:"stalled,omitempty"` + Complete int32 `protobuf:"varint,3,opt,name=complete,proto3" json:"complete,omitempty"` + Error int32 `protobuf:"varint,4,opt,name=error,proto3" json:"error,omitempty"` + Cancelled int32 `protobuf:"varint,5,opt,name=cancelled,proto3" json:"cancelled,omitempty"` + Responders int32 `protobuf:"varint,6,opt,name=responders,proto3" json:"responders,omitempty"` unknownFields protoimpl.UnknownFields - - Working int32 `protobuf:"varint,1,opt,name=working,proto3" json:"working,omitempty"` - Stalled int32 `protobuf:"varint,2,opt,name=stalled,proto3" json:"stalled,omitempty"` - Complete int32 `protobuf:"varint,3,opt,name=complete,proto3" json:"complete,omitempty"` - Error int32 `protobuf:"varint,4,opt,name=error,proto3" json:"error,omitempty"` - Cancelled int32 `protobuf:"varint,5,opt,name=cancelled,proto3" json:"cancelled,omitempty"` - Responders int32 `protobuf:"varint,6,opt,name=responders,proto3" json:"responders,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GatewayRequestStatus_Summary) Reset() { diff --git a/invites.pb.go b/invites.pb.go index 424f5cf..155d15b 100644 --- a/invites.pb.go +++ b/invites.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.2 +// protoc-gen-go v1.36.0 // protoc (unknown) // source: invites.proto @@ -74,11 +74,10 @@ func (Invite_InviteStatus) EnumDescriptor() ([]byte, []int) { } type CreateInviteRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Emails []string `protobuf:"bytes,1,rep,name=emails,proto3" json:"emails,omitempty"` unknownFields protoimpl.UnknownFields - - Emails []string `protobuf:"bytes,1,rep,name=emails,proto3" json:"emails,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CreateInviteRequest) Reset() { @@ -119,9 +118,9 @@ func (x *CreateInviteRequest) GetEmails() []string { } type CreateInviteResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CreateInviteResponse) Reset() { @@ -155,12 +154,11 @@ func (*CreateInviteResponse) Descriptor() ([]byte, []int) { } type Invite struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` + Status Invite_InviteStatus `protobuf:"varint,2,opt,name=status,proto3,enum=invites.Invite_InviteStatus" json:"status,omitempty"` unknownFields protoimpl.UnknownFields - - Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` - Status Invite_InviteStatus `protobuf:"varint,2,opt,name=status,proto3,enum=invites.Invite_InviteStatus" json:"status,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Invite) Reset() { @@ -208,9 +206,9 @@ func (x *Invite) GetStatus() Invite_InviteStatus { } type ListInvitesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListInvitesRequest) Reset() { @@ -244,11 +242,10 @@ func (*ListInvitesRequest) Descriptor() ([]byte, []int) { } type ListInvitesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Invites []*Invite `protobuf:"bytes,1,rep,name=invites,proto3" json:"invites,omitempty"` unknownFields protoimpl.UnknownFields - - Invites []*Invite `protobuf:"bytes,1,rep,name=invites,proto3" json:"invites,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListInvitesResponse) Reset() { @@ -289,11 +286,10 @@ func (x *ListInvitesResponse) GetInvites() []*Invite { } type RevokeInviteRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` unknownFields protoimpl.UnknownFields - - Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` + sizeCache protoimpl.SizeCache } func (x *RevokeInviteRequest) Reset() { @@ -334,9 +330,9 @@ func (x *RevokeInviteRequest) GetEmail() string { } type RevokeInviteResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RevokeInviteResponse) Reset() { @@ -370,11 +366,10 @@ func (*RevokeInviteResponse) Descriptor() ([]byte, []int) { } type ResendInviteRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` unknownFields protoimpl.UnknownFields - - Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResendInviteRequest) Reset() { @@ -415,9 +410,9 @@ func (x *ResendInviteRequest) GetEmail() string { } type ResendInviteResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResendInviteResponse) Reset() { diff --git a/items.pb.go b/items.pb.go index 0438a06..d91f9f0 100644 --- a/items.pb.go +++ b/items.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.2 +// protoc-gen-go v1.36.0 // protoc (unknown) // source: items.proto @@ -293,14 +293,13 @@ func (QueryError_ErrorType) EnumDescriptor() ([]byte, []int) { // | true | true | changes on both sides of the link can affect the other // | | | example: changes to both EC2 Instances and their volumes can affect the other side of the relation. type BlastPropagation struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // is true if changes on linked items can affect this item In bool `protobuf:"varint,1,opt,name=in,proto3" json:"in,omitempty"` // is true if changes on this item can affect linked items - Out bool `protobuf:"varint,2,opt,name=out,proto3" json:"out,omitempty"` + Out bool `protobuf:"varint,2,opt,name=out,proto3" json:"out,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *BlastPropagation) Reset() { @@ -349,14 +348,13 @@ func (x *BlastPropagation) GetOut() bool { // An annotated query to indicate potential linked items. type LinkedItemQuery struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // the query that would find linked items Query *Query `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` // how configuration changes (i.e. the "blast") propagates over this link BlastPropagation *BlastPropagation `protobuf:"bytes,2,opt,name=blastPropagation,proto3" json:"blastPropagation,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LinkedItemQuery) Reset() { @@ -405,14 +403,13 @@ func (x *LinkedItemQuery) GetBlastPropagation() *BlastPropagation { // An annotated reference to list linked items. type LinkedItem struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // the linked item Item *Reference `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` // how configuration changes (i.e. the "blast") propagates over this link BlastPropagation *BlastPropagation `protobuf:"bytes,2,opt,name=blastPropagation,proto3" json:"blastPropagation,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LinkedItem) Reset() { @@ -463,14 +460,11 @@ func (x *LinkedItem) GetBlastPropagation() *BlastPropagation { // real reason why this whole thing couldn't be modelled in protobuf though if // required. Just need to decide what if anything should remain private type Item struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - UniqueAttribute string `protobuf:"bytes,2,opt,name=uniqueAttribute,proto3" json:"uniqueAttribute,omitempty"` - Attributes *ItemAttributes `protobuf:"bytes,3,opt,name=attributes,proto3" json:"attributes,omitempty"` - Metadata *Metadata `protobuf:"bytes,4,opt,name=metadata,proto3" json:"metadata,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + UniqueAttribute string `protobuf:"bytes,2,opt,name=uniqueAttribute,proto3" json:"uniqueAttribute,omitempty"` + Attributes *ItemAttributes `protobuf:"bytes,3,opt,name=attributes,proto3" json:"attributes,omitempty"` + Metadata *Metadata `protobuf:"bytes,4,opt,name=metadata,proto3" json:"metadata,omitempty"` // The scope within which the item is unique. Item uniqueness is determined // by the combination of type and uniqueAttribute value. However it is // possible for the same item to exist in many scopes. There is not formal @@ -488,7 +482,9 @@ type Item struct { // Arbitrary key-value pairs that can be used to store additional information. // These tags are retrieved from the source and map to the target's definition // of a tag (e.g. AWS tags, Kubernetes labels, etc.) - Tags map[string]string `protobuf:"bytes,19,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Tags map[string]string `protobuf:"bytes,19,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Item) Reset() { @@ -589,11 +585,10 @@ func (x *Item) GetTags() map[string]string { // have at least one attribute however as it needs something to uniquely // identify it type ItemAttributes struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + AttrStruct *structpb.Struct `protobuf:"bytes,1,opt,name=attrStruct,proto3" json:"attrStruct,omitempty"` unknownFields protoimpl.UnknownFields - - AttrStruct *structpb.Struct `protobuf:"bytes,1,opt,name=attrStruct,proto3" json:"attrStruct,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ItemAttributes) Reset() { @@ -635,10 +630,7 @@ func (x *ItemAttributes) GetAttrStruct() *structpb.Struct { // Metadata about the item. Where it came from, how long it took, etc. type Metadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // This is the name of the source that was used to find the item. SourceName string `protobuf:"bytes,2,opt,name=sourceName,proto3" json:"sourceName,omitempty"` // The query that caused this item to be found. This is for gateway-internal use and will not be exposed to the frontend. @@ -667,7 +659,9 @@ type Metadata struct { // be the output of a command. This could be used by a remote source to gather // information, but we don't actually want to show the user all the commands // that were run, just the final item returned by the source - Hidden bool `protobuf:"varint,7,opt,name=hidden,proto3" json:"hidden,omitempty"` + Hidden bool `protobuf:"varint,7,opt,name=hidden,proto3" json:"hidden,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Metadata) Reset() { @@ -746,11 +740,10 @@ func (x *Metadata) GetHidden() bool { // This is a list of items, like a List() would return type Items struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Items []*Item `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` unknownFields protoimpl.UnknownFields - - Items []*Item `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Items) Reset() { @@ -792,10 +785,7 @@ func (x *Items) GetItems() []*Item { // Query represents a query for an item or a list of items. type Query struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The type of item to search for. "*" means all types Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` // Which method to use when looking for it @@ -825,7 +815,9 @@ type Query struct { // propagated to all related queries (e.g. for linked items) and processes. // Note: there is currently a migration going on from timeouts to durations, // so depending on which service is hit, either one is evaluated. - Deadline *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=deadline,proto3" json:"deadline,omitempty"` + Deadline *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=deadline,proto3" json:"deadline,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Query) Reset() { @@ -915,16 +907,15 @@ func (x *Query) GetDeadline() *timestamppb.Timestamp { } type QueryResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to ResponseType: + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to ResponseType: // // *QueryResponse_NewItem // *QueryResponse_Response // *QueryResponse_Error - ResponseType isQueryResponse_ResponseType `protobuf_oneof:"response_type"` + ResponseType isQueryResponse_ResponseType `protobuf_oneof:"response_type"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *QueryResponse) Reset() { @@ -957,30 +948,36 @@ func (*QueryResponse) Descriptor() ([]byte, []int) { return file_items_proto_rawDescGZIP(), []int{8} } -func (m *QueryResponse) GetResponseType() isQueryResponse_ResponseType { - if m != nil { - return m.ResponseType +func (x *QueryResponse) GetResponseType() isQueryResponse_ResponseType { + if x != nil { + return x.ResponseType } return nil } func (x *QueryResponse) GetNewItem() *Item { - if x, ok := x.GetResponseType().(*QueryResponse_NewItem); ok { - return x.NewItem + if x != nil { + if x, ok := x.ResponseType.(*QueryResponse_NewItem); ok { + return x.NewItem + } } return nil } func (x *QueryResponse) GetResponse() *Response { - if x, ok := x.GetResponseType().(*QueryResponse_Response); ok { - return x.Response + if x != nil { + if x, ok := x.ResponseType.(*QueryResponse_Response); ok { + return x.Response + } } return nil } func (x *QueryResponse) GetError() *QueryError { - if x, ok := x.GetResponseType().(*QueryResponse_Error); ok { - return x.Error + if x != nil { + if x, ok := x.ResponseType.(*QueryResponse_Error); ok { + return x.Error + } } return nil } @@ -1009,13 +1006,12 @@ func (*QueryResponse_Error) isQueryResponse_ResponseType() {} // QueryStatus informs the client of status updates of all queries running in this session. type QueryStatus struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // UUID of the query - UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` - Status QueryStatus_Status `protobuf:"varint,2,opt,name=status,proto3,enum=QueryStatus_Status" json:"status,omitempty"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + Status QueryStatus_Status `protobuf:"varint,2,opt,name=status,proto3,enum=QueryStatus_Status" json:"status,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *QueryStatus) Reset() { @@ -1064,10 +1060,7 @@ func (x *QueryStatus) GetStatus() QueryStatus_Status { // QueryError is sent back when an item query fails type QueryError struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // UUID of the item query that this response is in relation to (in binary // format) UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` @@ -1082,6 +1075,8 @@ type QueryError struct { ItemType string `protobuf:"bytes,6,opt,name=itemType,proto3" json:"itemType,omitempty"` // The name of the responder that this error was raised from ResponderName string `protobuf:"bytes,7,opt,name=responderName,proto3" json:"responderName,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *QueryError) Reset() { @@ -1168,12 +1163,11 @@ func (x *QueryError) GetResponderName() string { // sent with a state of CANCELLED to acknowledge that the query has ended due // to a cancellation type CancelQuery struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // UUID of the Query to cancel - UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CancelQuery) Reset() { @@ -1219,12 +1213,11 @@ func (x *CancelQuery) GetUUID() []byte { // been sent to the client, the gateway will send `deleteItem` messages instructing // the client to delete them type UndoQuery struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // UUID of the Query to cancel - UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UndoQuery) Reset() { @@ -1272,10 +1265,7 @@ func (x *UndoQuery) GetUUID() []byte { // "Expanding" an item will mean an item always acts the same, even if its // linked item queries have changed type Expand struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The item that should be expanded Item *Reference `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` // How many levels of expansion should be run @@ -1286,7 +1276,9 @@ type Expand struct { // representation UUID []byte `protobuf:"bytes,3,opt,name=UUID,proto3" json:"UUID,omitempty"` // The time at which the gateway should stop processing the queries spawned by this request - Deadline *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=deadline,proto3" json:"deadline,omitempty"` + Deadline *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=deadline,proto3" json:"deadline,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Expand) Reset() { @@ -1353,12 +1345,11 @@ func (x *Expand) GetDeadline() *timestamppb.Timestamp { // been sent to the client, the gateway will send `deleteItem` messages instructing // the client to delete them type UndoExpand struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // UUID of the Expand to cancel - UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UndoExpand) Reset() { @@ -1406,16 +1397,15 @@ func (x *UndoExpand) GetUUID() []byte { // - UniqueAttributeValue // - Scope type Reference struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - UniqueAttributeValue string `protobuf:"bytes,2,opt,name=uniqueAttributeValue,proto3" json:"uniqueAttributeValue,omitempty"` - Scope string `protobuf:"bytes,3,opt,name=scope,proto3" json:"scope,omitempty"` - IsQuery bool `protobuf:"varint,4,opt,name=isQuery,proto3" json:"isQuery,omitempty"` - Query string `protobuf:"bytes,5,opt,name=query,proto3" json:"query,omitempty"` - Method QueryMethod `protobuf:"varint,6,opt,name=method,proto3,enum=QueryMethod" json:"method,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + UniqueAttributeValue string `protobuf:"bytes,2,opt,name=uniqueAttributeValue,proto3" json:"uniqueAttributeValue,omitempty"` + Scope string `protobuf:"bytes,3,opt,name=scope,proto3" json:"scope,omitempty"` + IsQuery bool `protobuf:"varint,4,opt,name=isQuery,proto3" json:"isQuery,omitempty"` + Query string `protobuf:"bytes,5,opt,name=query,proto3" json:"query,omitempty"` + Method QueryMethod `protobuf:"varint,6,opt,name=method,proto3,enum=QueryMethod" json:"method,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Reference) Reset() { @@ -1495,13 +1485,12 @@ func (x *Reference) GetMethod() QueryMethod { // field, however request managed by the gateway will explicitly send edges to // reduce the processing burden on the client side type Edge struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - From *Reference `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"` - To *Reference `protobuf:"bytes,2,opt,name=to,proto3" json:"to,omitempty"` - BlastPropagation *BlastPropagation `protobuf:"bytes,3,opt,name=blastPropagation,proto3" json:"blastPropagation,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + From *Reference `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"` + To *Reference `protobuf:"bytes,2,opt,name=to,proto3" json:"to,omitempty"` + BlastPropagation *BlastPropagation `protobuf:"bytes,3,opt,name=blastPropagation,proto3" json:"blastPropagation,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Edge) Reset() { @@ -1557,10 +1546,7 @@ func (x *Edge) GetBlastPropagation() *BlastPropagation { // Defines how this query should behave when finding new items type Query_RecursionBehaviour struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // How deeply to link items. A value of 0 will mean that items are not linked. // To resolve linked items "infinitely" simply set this to a high number, with // the highest being 4,294,967,295. While this isn't truly *infinite*, chances @@ -1568,6 +1554,8 @@ type Query_RecursionBehaviour struct { LinkDepth uint32 `protobuf:"varint,1,opt,name=linkDepth,proto3" json:"linkDepth,omitempty"` // set to true to only follow links that propagate configuration change impact FollowOnlyBlastPropagation bool `protobuf:"varint,2,opt,name=followOnlyBlastPropagation,proto3" json:"followOnlyBlastPropagation,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Query_RecursionBehaviour) Reset() { diff --git a/responses.pb.go b/responses.pb.go index ddc0b35..2c5b496 100644 --- a/responses.pb.go +++ b/responses.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.2 +// protoc-gen-go v1.36.0 // protoc (unknown) // source: responses.proto @@ -86,10 +86,7 @@ func (ResponderState) EnumDescriptor() ([]byte, []int) { // Response is returned when a query is made type Response struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The name of the responder that is working on a response. This is purely // informational Responder string `protobuf:"bytes,1,opt,name=responder,proto3" json:"responder,omitempty"` @@ -106,6 +103,8 @@ type Response struct { // internal bookkeeping and should remain constant for the duration of a // request, preferably over the lifetime of the source process. ResponderUUID []byte `protobuf:"bytes,5,opt,name=responderUUID,proto3" json:"responderUUID,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Response) Reset() { diff --git a/revlink.pb.go b/revlink.pb.go index 9f5bdc0..f0dece0 100644 --- a/revlink.pb.go +++ b/revlink.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.2 +// protoc-gen-go v1.36.0 // protoc (unknown) // source: revlink.proto @@ -22,16 +22,15 @@ const ( ) type GetReverseLinksRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The account that the item belongs to Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` // The item that you would like to find reverse links for Item *Reference `protobuf:"bytes,2,opt,name=item,proto3" json:"item,omitempty"` // set to true to only return links that propagate configuration change impact FollowOnlyBlastPropagation bool `protobuf:"varint,3,opt,name=followOnlyBlastPropagation,proto3" json:"followOnlyBlastPropagation,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetReverseLinksRequest) Reset() { @@ -86,13 +85,12 @@ func (x *GetReverseLinksRequest) GetFollowOnlyBlastPropagation() bool { } type GetReverseLinksResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The item queries that should be executed in order to find items that link // to the requested item LinkedItemQueries []*LinkedItemQuery `protobuf:"bytes,1,rep,name=linkedItemQueries,proto3" json:"linkedItemQueries,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetReverseLinksResponse) Reset() { @@ -133,19 +131,18 @@ func (x *GetReverseLinksResponse) GetLinkedItemQueries() []*LinkedItemQuery { } type IngestGatewayResponseRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The account that the response belongs to Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` // The response type to ingest // - // Types that are assignable to ResponseType: + // Types that are valid to be assigned to ResponseType: // // *IngestGatewayResponseRequest_NewItem // *IngestGatewayResponseRequest_NewEdge - ResponseType isIngestGatewayResponseRequest_ResponseType `protobuf_oneof:"response_type"` + ResponseType isIngestGatewayResponseRequest_ResponseType `protobuf_oneof:"response_type"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *IngestGatewayResponseRequest) Reset() { @@ -185,23 +182,27 @@ func (x *IngestGatewayResponseRequest) GetAccount() string { return "" } -func (m *IngestGatewayResponseRequest) GetResponseType() isIngestGatewayResponseRequest_ResponseType { - if m != nil { - return m.ResponseType +func (x *IngestGatewayResponseRequest) GetResponseType() isIngestGatewayResponseRequest_ResponseType { + if x != nil { + return x.ResponseType } return nil } func (x *IngestGatewayResponseRequest) GetNewItem() *Item { - if x, ok := x.GetResponseType().(*IngestGatewayResponseRequest_NewItem); ok { - return x.NewItem + if x != nil { + if x, ok := x.ResponseType.(*IngestGatewayResponseRequest_NewItem); ok { + return x.NewItem + } } return nil } func (x *IngestGatewayResponseRequest) GetNewEdge() *Edge { - if x, ok := x.GetResponseType().(*IngestGatewayResponseRequest_NewEdge); ok { - return x.NewEdge + if x != nil { + if x, ok := x.ResponseType.(*IngestGatewayResponseRequest_NewEdge); ok { + return x.NewEdge + } } return nil } @@ -223,12 +224,11 @@ func (*IngestGatewayResponseRequest_NewItem) isIngestGatewayResponseRequest_Resp func (*IngestGatewayResponseRequest_NewEdge) isIngestGatewayResponseRequest_ResponseType() {} type IngestGatewayResponsesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - NumItemsReceived int32 `protobuf:"varint,1,opt,name=numItemsReceived,proto3" json:"numItemsReceived,omitempty"` - NumEdgesReceived int32 `protobuf:"varint,2,opt,name=numEdgesReceived,proto3" json:"numEdgesReceived,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + NumItemsReceived int32 `protobuf:"varint,1,opt,name=numItemsReceived,proto3" json:"numItemsReceived,omitempty"` + NumEdgesReceived int32 `protobuf:"varint,2,opt,name=numEdgesReceived,proto3" json:"numEdgesReceived,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *IngestGatewayResponsesResponse) Reset() { diff --git a/sdpconnect/changes.connect.go b/sdpconnect/changes.connect.go index 339a7d7..9b747db 100644 --- a/sdpconnect/changes.connect.go +++ b/sdpconnect/changes.connect.go @@ -23,6 +23,8 @@ const _ = connect.IsAtLeastVersion1_13_0 const ( // ChangesServiceName is the fully-qualified name of the ChangesService service. ChangesServiceName = "changes.ChangesService" + // AutoTaggingServiceName is the fully-qualified name of the AutoTaggingService service. + AutoTaggingServiceName = "changes.AutoTaggingService" ) // These constants are the fully-qualified names of the RPCs defined in this package. They're @@ -135,6 +137,27 @@ const ( // ChangesServicePopulateChangeFiltersProcedure is the fully-qualified name of the ChangesService's // PopulateChangeFilters RPC. ChangesServicePopulateChangeFiltersProcedure = "/changes.ChangesService/PopulateChangeFilters" + // AutoTaggingServiceListRulesProcedure is the fully-qualified name of the AutoTaggingService's + // ListRules RPC. + AutoTaggingServiceListRulesProcedure = "/changes.AutoTaggingService/ListRules" + // AutoTaggingServiceCreateRuleProcedure is the fully-qualified name of the AutoTaggingService's + // CreateRule RPC. + AutoTaggingServiceCreateRuleProcedure = "/changes.AutoTaggingService/CreateRule" + // AutoTaggingServiceGetRuleProcedure is the fully-qualified name of the AutoTaggingService's + // GetRule RPC. + AutoTaggingServiceGetRuleProcedure = "/changes.AutoTaggingService/GetRule" + // AutoTaggingServiceUpdateRuleProcedure is the fully-qualified name of the AutoTaggingService's + // UpdateRule RPC. + AutoTaggingServiceUpdateRuleProcedure = "/changes.AutoTaggingService/UpdateRule" + // AutoTaggingServiceDeleteRuleProcedure is the fully-qualified name of the AutoTaggingService's + // DeleteRule RPC. + AutoTaggingServiceDeleteRuleProcedure = "/changes.AutoTaggingService/DeleteRule" + // AutoTaggingServiceExportRuleProcedure is the fully-qualified name of the AutoTaggingService's + // ExportRule RPC. + AutoTaggingServiceExportRuleProcedure = "/changes.AutoTaggingService/ExportRule" + // AutoTaggingServiceTestRuleProcedure is the fully-qualified name of the AutoTaggingService's + // TestRule RPC. + AutoTaggingServiceTestRuleProcedure = "/changes.AutoTaggingService/TestRule" ) // These variables are the protoreflect.Descriptor objects for the RPCs defined in this package. @@ -175,6 +198,14 @@ var ( changesServiceListChangingItemsSummaryMethodDescriptor = changesServiceServiceDescriptor.Methods().ByName("ListChangingItemsSummary") changesServiceGetDiffMethodDescriptor = changesServiceServiceDescriptor.Methods().ByName("GetDiff") changesServicePopulateChangeFiltersMethodDescriptor = changesServiceServiceDescriptor.Methods().ByName("PopulateChangeFilters") + autoTaggingServiceServiceDescriptor = sdp_go.File_changes_proto.Services().ByName("AutoTaggingService") + autoTaggingServiceListRulesMethodDescriptor = autoTaggingServiceServiceDescriptor.Methods().ByName("ListRules") + autoTaggingServiceCreateRuleMethodDescriptor = autoTaggingServiceServiceDescriptor.Methods().ByName("CreateRule") + autoTaggingServiceGetRuleMethodDescriptor = autoTaggingServiceServiceDescriptor.Methods().ByName("GetRule") + autoTaggingServiceUpdateRuleMethodDescriptor = autoTaggingServiceServiceDescriptor.Methods().ByName("UpdateRule") + autoTaggingServiceDeleteRuleMethodDescriptor = autoTaggingServiceServiceDescriptor.Methods().ByName("DeleteRule") + autoTaggingServiceExportRuleMethodDescriptor = autoTaggingServiceServiceDescriptor.Methods().ByName("ExportRule") + autoTaggingServiceTestRuleMethodDescriptor = autoTaggingServiceServiceDescriptor.Methods().ByName("TestRule") ) // ChangesServiceClient is a client for the changes.ChangesService service. @@ -1250,3 +1281,255 @@ func (UnimplementedChangesServiceHandler) GetDiff(context.Context, *connect.Requ func (UnimplementedChangesServiceHandler) PopulateChangeFilters(context.Context, *connect.Request[sdp_go.PopulateChangeFiltersRequest]) (*connect.Response[sdp_go.PopulateChangeFiltersResponse], error) { return nil, connect.NewError(connect.CodeUnimplemented, errors.New("changes.ChangesService.PopulateChangeFilters is not implemented")) } + +// AutoTaggingServiceClient is a client for the changes.AutoTaggingService service. +type AutoTaggingServiceClient interface { + // Used on the auto-tagging page to list all rules for an account + // Returns a list of rules + ListRules(context.Context, *connect.Request[sdp_go.ListRulesRequest]) (*connect.Response[sdp_go.ListRulesResponse], error) + // Creates a new rule, with the provided properties. This will return a + // CodeAlreadyExists error if the `tagKey` is not unique + CreateRule(context.Context, *connect.Request[sdp_go.CreateRuleRequest]) (*connect.Response[sdp_go.CreateRuleResponse], error) + // Get the details of a rule + GetRule(context.Context, *connect.Request[sdp_go.GetRuleRequest]) (*connect.Response[sdp_go.GetRuleResponse], error) + // Given a rule UUID, updates the rule properties. Note the key can be + // updated, but it only applies to new changes. This will return a + // CodeAlreadyExists error if the new `tagKey` is not unique + UpdateRule(context.Context, *connect.Request[sdp_go.UpdateRuleRequest]) (*connect.Response[sdp_go.UpdateRuleResponse], error) + // Given a rule UUID permanently delete that rule, existing changes will not + // be affected + DeleteRule(context.Context, *connect.Request[sdp_go.DeleteRuleRequest]) (*connect.Response[sdp_go.DeleteRuleResponse], error) + // Convert a rule's properties to a string that can be used in the rules + // config file + ExportRule(context.Context, *connect.Request[sdp_go.ExportRuleRequest]) (*connect.Response[sdp_go.ExportRuleResponse], error) + // Given a rule, and a list of changes uuids + // The response will contain the rule uuid and a list of changes and what tags they would have if the rule was applied + TestRule(context.Context, *connect.Request[sdp_go.TestRuleRequest]) (*connect.ServerStreamForClient[sdp_go.TestRuleResponse], error) +} + +// NewAutoTaggingServiceClient constructs a client for the changes.AutoTaggingService service. By +// default, it uses the Connect protocol with the binary Protobuf Codec, asks for gzipped responses, +// and sends uncompressed requests. To use the gRPC or gRPC-Web protocols, supply the +// connect.WithGRPC() or connect.WithGRPCWeb() options. +// +// The URL supplied here should be the base URL for the Connect or gRPC server (for example, +// http://api.acme.com or https://acme.com/grpc). +func NewAutoTaggingServiceClient(httpClient connect.HTTPClient, baseURL string, opts ...connect.ClientOption) AutoTaggingServiceClient { + baseURL = strings.TrimRight(baseURL, "/") + return &autoTaggingServiceClient{ + listRules: connect.NewClient[sdp_go.ListRulesRequest, sdp_go.ListRulesResponse]( + httpClient, + baseURL+AutoTaggingServiceListRulesProcedure, + connect.WithSchema(autoTaggingServiceListRulesMethodDescriptor), + connect.WithClientOptions(opts...), + ), + createRule: connect.NewClient[sdp_go.CreateRuleRequest, sdp_go.CreateRuleResponse]( + httpClient, + baseURL+AutoTaggingServiceCreateRuleProcedure, + connect.WithSchema(autoTaggingServiceCreateRuleMethodDescriptor), + connect.WithClientOptions(opts...), + ), + getRule: connect.NewClient[sdp_go.GetRuleRequest, sdp_go.GetRuleResponse]( + httpClient, + baseURL+AutoTaggingServiceGetRuleProcedure, + connect.WithSchema(autoTaggingServiceGetRuleMethodDescriptor), + connect.WithClientOptions(opts...), + ), + updateRule: connect.NewClient[sdp_go.UpdateRuleRequest, sdp_go.UpdateRuleResponse]( + httpClient, + baseURL+AutoTaggingServiceUpdateRuleProcedure, + connect.WithSchema(autoTaggingServiceUpdateRuleMethodDescriptor), + connect.WithClientOptions(opts...), + ), + deleteRule: connect.NewClient[sdp_go.DeleteRuleRequest, sdp_go.DeleteRuleResponse]( + httpClient, + baseURL+AutoTaggingServiceDeleteRuleProcedure, + connect.WithSchema(autoTaggingServiceDeleteRuleMethodDescriptor), + connect.WithClientOptions(opts...), + ), + exportRule: connect.NewClient[sdp_go.ExportRuleRequest, sdp_go.ExportRuleResponse]( + httpClient, + baseURL+AutoTaggingServiceExportRuleProcedure, + connect.WithSchema(autoTaggingServiceExportRuleMethodDescriptor), + connect.WithClientOptions(opts...), + ), + testRule: connect.NewClient[sdp_go.TestRuleRequest, sdp_go.TestRuleResponse]( + httpClient, + baseURL+AutoTaggingServiceTestRuleProcedure, + connect.WithSchema(autoTaggingServiceTestRuleMethodDescriptor), + connect.WithClientOptions(opts...), + ), + } +} + +// autoTaggingServiceClient implements AutoTaggingServiceClient. +type autoTaggingServiceClient struct { + listRules *connect.Client[sdp_go.ListRulesRequest, sdp_go.ListRulesResponse] + createRule *connect.Client[sdp_go.CreateRuleRequest, sdp_go.CreateRuleResponse] + getRule *connect.Client[sdp_go.GetRuleRequest, sdp_go.GetRuleResponse] + updateRule *connect.Client[sdp_go.UpdateRuleRequest, sdp_go.UpdateRuleResponse] + deleteRule *connect.Client[sdp_go.DeleteRuleRequest, sdp_go.DeleteRuleResponse] + exportRule *connect.Client[sdp_go.ExportRuleRequest, sdp_go.ExportRuleResponse] + testRule *connect.Client[sdp_go.TestRuleRequest, sdp_go.TestRuleResponse] +} + +// ListRules calls changes.AutoTaggingService.ListRules. +func (c *autoTaggingServiceClient) ListRules(ctx context.Context, req *connect.Request[sdp_go.ListRulesRequest]) (*connect.Response[sdp_go.ListRulesResponse], error) { + return c.listRules.CallUnary(ctx, req) +} + +// CreateRule calls changes.AutoTaggingService.CreateRule. +func (c *autoTaggingServiceClient) CreateRule(ctx context.Context, req *connect.Request[sdp_go.CreateRuleRequest]) (*connect.Response[sdp_go.CreateRuleResponse], error) { + return c.createRule.CallUnary(ctx, req) +} + +// GetRule calls changes.AutoTaggingService.GetRule. +func (c *autoTaggingServiceClient) GetRule(ctx context.Context, req *connect.Request[sdp_go.GetRuleRequest]) (*connect.Response[sdp_go.GetRuleResponse], error) { + return c.getRule.CallUnary(ctx, req) +} + +// UpdateRule calls changes.AutoTaggingService.UpdateRule. +func (c *autoTaggingServiceClient) UpdateRule(ctx context.Context, req *connect.Request[sdp_go.UpdateRuleRequest]) (*connect.Response[sdp_go.UpdateRuleResponse], error) { + return c.updateRule.CallUnary(ctx, req) +} + +// DeleteRule calls changes.AutoTaggingService.DeleteRule. +func (c *autoTaggingServiceClient) DeleteRule(ctx context.Context, req *connect.Request[sdp_go.DeleteRuleRequest]) (*connect.Response[sdp_go.DeleteRuleResponse], error) { + return c.deleteRule.CallUnary(ctx, req) +} + +// ExportRule calls changes.AutoTaggingService.ExportRule. +func (c *autoTaggingServiceClient) ExportRule(ctx context.Context, req *connect.Request[sdp_go.ExportRuleRequest]) (*connect.Response[sdp_go.ExportRuleResponse], error) { + return c.exportRule.CallUnary(ctx, req) +} + +// TestRule calls changes.AutoTaggingService.TestRule. +func (c *autoTaggingServiceClient) TestRule(ctx context.Context, req *connect.Request[sdp_go.TestRuleRequest]) (*connect.ServerStreamForClient[sdp_go.TestRuleResponse], error) { + return c.testRule.CallServerStream(ctx, req) +} + +// AutoTaggingServiceHandler is an implementation of the changes.AutoTaggingService service. +type AutoTaggingServiceHandler interface { + // Used on the auto-tagging page to list all rules for an account + // Returns a list of rules + ListRules(context.Context, *connect.Request[sdp_go.ListRulesRequest]) (*connect.Response[sdp_go.ListRulesResponse], error) + // Creates a new rule, with the provided properties. This will return a + // CodeAlreadyExists error if the `tagKey` is not unique + CreateRule(context.Context, *connect.Request[sdp_go.CreateRuleRequest]) (*connect.Response[sdp_go.CreateRuleResponse], error) + // Get the details of a rule + GetRule(context.Context, *connect.Request[sdp_go.GetRuleRequest]) (*connect.Response[sdp_go.GetRuleResponse], error) + // Given a rule UUID, updates the rule properties. Note the key can be + // updated, but it only applies to new changes. This will return a + // CodeAlreadyExists error if the new `tagKey` is not unique + UpdateRule(context.Context, *connect.Request[sdp_go.UpdateRuleRequest]) (*connect.Response[sdp_go.UpdateRuleResponse], error) + // Given a rule UUID permanently delete that rule, existing changes will not + // be affected + DeleteRule(context.Context, *connect.Request[sdp_go.DeleteRuleRequest]) (*connect.Response[sdp_go.DeleteRuleResponse], error) + // Convert a rule's properties to a string that can be used in the rules + // config file + ExportRule(context.Context, *connect.Request[sdp_go.ExportRuleRequest]) (*connect.Response[sdp_go.ExportRuleResponse], error) + // Given a rule, and a list of changes uuids + // The response will contain the rule uuid and a list of changes and what tags they would have if the rule was applied + TestRule(context.Context, *connect.Request[sdp_go.TestRuleRequest], *connect.ServerStream[sdp_go.TestRuleResponse]) error +} + +// NewAutoTaggingServiceHandler builds an HTTP handler from the service implementation. It returns +// the path on which to mount the handler and the handler itself. +// +// By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf +// and JSON codecs. They also support gzip compression. +func NewAutoTaggingServiceHandler(svc AutoTaggingServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) { + autoTaggingServiceListRulesHandler := connect.NewUnaryHandler( + AutoTaggingServiceListRulesProcedure, + svc.ListRules, + connect.WithSchema(autoTaggingServiceListRulesMethodDescriptor), + connect.WithHandlerOptions(opts...), + ) + autoTaggingServiceCreateRuleHandler := connect.NewUnaryHandler( + AutoTaggingServiceCreateRuleProcedure, + svc.CreateRule, + connect.WithSchema(autoTaggingServiceCreateRuleMethodDescriptor), + connect.WithHandlerOptions(opts...), + ) + autoTaggingServiceGetRuleHandler := connect.NewUnaryHandler( + AutoTaggingServiceGetRuleProcedure, + svc.GetRule, + connect.WithSchema(autoTaggingServiceGetRuleMethodDescriptor), + connect.WithHandlerOptions(opts...), + ) + autoTaggingServiceUpdateRuleHandler := connect.NewUnaryHandler( + AutoTaggingServiceUpdateRuleProcedure, + svc.UpdateRule, + connect.WithSchema(autoTaggingServiceUpdateRuleMethodDescriptor), + connect.WithHandlerOptions(opts...), + ) + autoTaggingServiceDeleteRuleHandler := connect.NewUnaryHandler( + AutoTaggingServiceDeleteRuleProcedure, + svc.DeleteRule, + connect.WithSchema(autoTaggingServiceDeleteRuleMethodDescriptor), + connect.WithHandlerOptions(opts...), + ) + autoTaggingServiceExportRuleHandler := connect.NewUnaryHandler( + AutoTaggingServiceExportRuleProcedure, + svc.ExportRule, + connect.WithSchema(autoTaggingServiceExportRuleMethodDescriptor), + connect.WithHandlerOptions(opts...), + ) + autoTaggingServiceTestRuleHandler := connect.NewServerStreamHandler( + AutoTaggingServiceTestRuleProcedure, + svc.TestRule, + connect.WithSchema(autoTaggingServiceTestRuleMethodDescriptor), + connect.WithHandlerOptions(opts...), + ) + return "/changes.AutoTaggingService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + switch r.URL.Path { + case AutoTaggingServiceListRulesProcedure: + autoTaggingServiceListRulesHandler.ServeHTTP(w, r) + case AutoTaggingServiceCreateRuleProcedure: + autoTaggingServiceCreateRuleHandler.ServeHTTP(w, r) + case AutoTaggingServiceGetRuleProcedure: + autoTaggingServiceGetRuleHandler.ServeHTTP(w, r) + case AutoTaggingServiceUpdateRuleProcedure: + autoTaggingServiceUpdateRuleHandler.ServeHTTP(w, r) + case AutoTaggingServiceDeleteRuleProcedure: + autoTaggingServiceDeleteRuleHandler.ServeHTTP(w, r) + case AutoTaggingServiceExportRuleProcedure: + autoTaggingServiceExportRuleHandler.ServeHTTP(w, r) + case AutoTaggingServiceTestRuleProcedure: + autoTaggingServiceTestRuleHandler.ServeHTTP(w, r) + default: + http.NotFound(w, r) + } + }) +} + +// UnimplementedAutoTaggingServiceHandler returns CodeUnimplemented from all methods. +type UnimplementedAutoTaggingServiceHandler struct{} + +func (UnimplementedAutoTaggingServiceHandler) ListRules(context.Context, *connect.Request[sdp_go.ListRulesRequest]) (*connect.Response[sdp_go.ListRulesResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("changes.AutoTaggingService.ListRules is not implemented")) +} + +func (UnimplementedAutoTaggingServiceHandler) CreateRule(context.Context, *connect.Request[sdp_go.CreateRuleRequest]) (*connect.Response[sdp_go.CreateRuleResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("changes.AutoTaggingService.CreateRule is not implemented")) +} + +func (UnimplementedAutoTaggingServiceHandler) GetRule(context.Context, *connect.Request[sdp_go.GetRuleRequest]) (*connect.Response[sdp_go.GetRuleResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("changes.AutoTaggingService.GetRule is not implemented")) +} + +func (UnimplementedAutoTaggingServiceHandler) UpdateRule(context.Context, *connect.Request[sdp_go.UpdateRuleRequest]) (*connect.Response[sdp_go.UpdateRuleResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("changes.AutoTaggingService.UpdateRule is not implemented")) +} + +func (UnimplementedAutoTaggingServiceHandler) DeleteRule(context.Context, *connect.Request[sdp_go.DeleteRuleRequest]) (*connect.Response[sdp_go.DeleteRuleResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("changes.AutoTaggingService.DeleteRule is not implemented")) +} + +func (UnimplementedAutoTaggingServiceHandler) ExportRule(context.Context, *connect.Request[sdp_go.ExportRuleRequest]) (*connect.Response[sdp_go.ExportRuleResponse], error) { + return nil, connect.NewError(connect.CodeUnimplemented, errors.New("changes.AutoTaggingService.ExportRule is not implemented")) +} + +func (UnimplementedAutoTaggingServiceHandler) TestRule(context.Context, *connect.Request[sdp_go.TestRuleRequest], *connect.ServerStream[sdp_go.TestRuleResponse]) error { + return connect.NewError(connect.CodeUnimplemented, errors.New("changes.AutoTaggingService.TestRule is not implemented")) +} diff --git a/snapshots.pb.go b/snapshots.pb.go index 6d87455..1e83d83 100644 --- a/snapshots.pb.go +++ b/snapshots.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.2 +// protoc-gen-go v1.36.0 // protoc (unknown) // source: snapshots.proto @@ -22,12 +22,11 @@ const ( ) type Snapshot struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Metadata *SnapshotMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Properties *SnapshotProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` unknownFields protoimpl.UnknownFields - - Metadata *SnapshotMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` - Properties *SnapshotProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Snapshot) Reset() { @@ -75,10 +74,7 @@ func (x *Snapshot) GetProperties() *SnapshotProperties { } type SnapshotProperties struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // name of this snapshot Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // description of this snapshot @@ -88,7 +84,9 @@ type SnapshotProperties struct { // items that should be excluded from the snapshot's results ExcludedItems []*Reference `protobuf:"bytes,4,rep,name=excludedItems,proto3" json:"excludedItems,omitempty"` // items stored in the snapshot - Items []*Item `protobuf:"bytes,5,rep,name=items,proto3" json:"items,omitempty"` + Items []*Item `protobuf:"bytes,5,rep,name=items,proto3" json:"items,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SnapshotProperties) Reset() { @@ -157,14 +155,13 @@ func (x *SnapshotProperties) GetItems() []*Item { } type SnapshotMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // unique id to identify this snapshot UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` // timestamp when this snapshot was created - Created *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=created,proto3" json:"created,omitempty"` + Created *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=created,proto3" json:"created,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SnapshotMetadata) Reset() { @@ -213,9 +210,9 @@ func (x *SnapshotMetadata) GetCreated() *timestamppb.Timestamp { // lists all snapshots type ListSnapshotsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListSnapshotsRequest) Reset() { @@ -249,12 +246,11 @@ func (*ListSnapshotsRequest) Descriptor() ([]byte, []int) { } type ListSnapshotResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // the list of all snapshots - Snapshots []*Snapshot `protobuf:"bytes,1,rep,name=snapshots,proto3" json:"snapshots,omitempty"` + Snapshots []*Snapshot `protobuf:"bytes,1,rep,name=snapshots,proto3" json:"snapshots,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListSnapshotResponse) Reset() { @@ -296,12 +292,11 @@ func (x *ListSnapshotResponse) GetSnapshots() []*Snapshot { // creates a new snapshot type CreateSnapshotRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // properties of the new snapshot - Properties *SnapshotProperties `protobuf:"bytes,1,opt,name=properties,proto3" json:"properties,omitempty"` + Properties *SnapshotProperties `protobuf:"bytes,1,opt,name=properties,proto3" json:"properties,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CreateSnapshotRequest) Reset() { @@ -342,12 +337,11 @@ func (x *CreateSnapshotRequest) GetProperties() *SnapshotProperties { } type CreateSnapshotResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // the newly created snapshot - Snapshot *Snapshot `protobuf:"bytes,1,opt,name=snapshot,proto3" json:"snapshot,omitempty"` + Snapshot *Snapshot `protobuf:"bytes,1,opt,name=snapshot,proto3" json:"snapshot,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CreateSnapshotResponse) Reset() { @@ -389,11 +383,10 @@ func (x *CreateSnapshotResponse) GetSnapshot() *Snapshot { // get the details of a specific snapshot type GetSnapshotRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` unknownFields protoimpl.UnknownFields - - UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetSnapshotRequest) Reset() { @@ -434,11 +427,10 @@ func (x *GetSnapshotRequest) GetUUID() []byte { } type GetSnapshotResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Snapshot *Snapshot `protobuf:"bytes,1,opt,name=snapshot,proto3" json:"snapshot,omitempty"` unknownFields protoimpl.UnknownFields - - Snapshot *Snapshot `protobuf:"bytes,1,opt,name=snapshot,proto3" json:"snapshot,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetSnapshotResponse) Reset() { @@ -480,12 +472,11 @@ func (x *GetSnapshotResponse) GetSnapshot() *Snapshot { // updates the properties of an existing snapshot type UpdateSnapshotRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + Properties *SnapshotProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` unknownFields protoimpl.UnknownFields - - UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` - Properties *SnapshotProperties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UpdateSnapshotRequest) Reset() { @@ -533,12 +524,11 @@ func (x *UpdateSnapshotRequest) GetProperties() *SnapshotProperties { } type UpdateSnapshotResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // the updated version of the snapshot - Snapshot *Snapshot `protobuf:"bytes,1,opt,name=snapshot,proto3" json:"snapshot,omitempty"` + Snapshot *Snapshot `protobuf:"bytes,1,opt,name=snapshot,proto3" json:"snapshot,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UpdateSnapshotResponse) Reset() { @@ -580,11 +570,10 @@ func (x *UpdateSnapshotResponse) GetSnapshot() *Snapshot { // deletes a given snapshot type DeleteSnapshotRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` unknownFields protoimpl.UnknownFields - - UUID []byte `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"` + sizeCache protoimpl.SizeCache } func (x *DeleteSnapshotRequest) Reset() { @@ -625,9 +614,9 @@ func (x *DeleteSnapshotRequest) GetUUID() []byte { } type DeleteSnapshotResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DeleteSnapshotResponse) Reset() { @@ -662,9 +651,9 @@ func (*DeleteSnapshotResponse) Descriptor() ([]byte, []int) { // get the initial data type GetInitialDataRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetInitialDataRequest) Reset() { @@ -698,12 +687,11 @@ func (*GetInitialDataRequest) Descriptor() ([]byte, []int) { } type GetInitialDataResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - BlastRadiusSnapshot *Snapshot `protobuf:"bytes,1,opt,name=blastRadiusSnapshot,proto3" json:"blastRadiusSnapshot,omitempty"` - ChangingItemsBookmark *Bookmark `protobuf:"bytes,2,opt,name=changingItemsBookmark,proto3" json:"changingItemsBookmark,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + BlastRadiusSnapshot *Snapshot `protobuf:"bytes,1,opt,name=blastRadiusSnapshot,proto3" json:"blastRadiusSnapshot,omitempty"` + ChangingItemsBookmark *Bookmark `protobuf:"bytes,2,opt,name=changingItemsBookmark,proto3" json:"changingItemsBookmark,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetInitialDataResponse) Reset() { @@ -751,12 +739,11 @@ func (x *GetInitialDataResponse) GetChangingItemsBookmark() *Bookmark { } type ListSnapshotsByGUNRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GloballyUniqueName string `protobuf:"bytes,1,opt,name=globallyUniqueName,proto3" json:"globallyUniqueName,omitempty"` - Pagination *PaginationRequest `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + GloballyUniqueName string `protobuf:"bytes,1,opt,name=globallyUniqueName,proto3" json:"globallyUniqueName,omitempty"` + Pagination *PaginationRequest `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListSnapshotsByGUNRequest) Reset() { @@ -804,12 +791,11 @@ func (x *ListSnapshotsByGUNRequest) GetPagination() *PaginationRequest { } type ListSnapshotsByGUNResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + UUIDs [][]byte `protobuf:"bytes,1,rep,name=UUIDs,proto3" json:"UUIDs,omitempty"` + Pagination *PaginationResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` unknownFields protoimpl.UnknownFields - - UUIDs [][]byte `protobuf:"bytes,1,rep,name=UUIDs,proto3" json:"UUIDs,omitempty"` - Pagination *PaginationResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListSnapshotsByGUNResponse) Reset() { diff --git a/util.pb.go b/util.pb.go index 4b1eeae..d1711cc 100644 --- a/util.pb.go +++ b/util.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.2 +// protoc-gen-go v1.36.0 // protoc (unknown) // source: util.proto @@ -73,17 +73,16 @@ func (SortOrder) EnumDescriptor() ([]byte, []int) { } type PaginationRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The number of items to return in a single page. The minimum is 10 and the // maximum is 100. PageSize int32 `protobuf:"varint,1,opt,name=pageSize,proto3" json:"pageSize,omitempty"` // The page number to return. the first page is 1. If the page number is // larger than the total number of pages, the last page is returned. If the // page number is negative, the first page 1 is returned. - Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *PaginationRequest) Reset() { @@ -131,10 +130,7 @@ func (x *PaginationRequest) GetPage() int32 { } type PaginationResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The number of items in the current page PageSize int32 `protobuf:"varint,1,opt,name=pageSize,proto3" json:"pageSize,omitempty"` // The total number of items available. Expensive to calculate @@ -148,7 +144,9 @@ type PaginationResponse struct { Page int32 `protobuf:"varint,3,opt,name=page,proto3" json:"page,omitempty"` // The total number of pages available. based on the totalItems and pageSize. // If there are no results this will be zero. - TotalPages int32 `protobuf:"varint,4,opt,name=totalPages,proto3" json:"totalPages,omitempty"` + TotalPages int32 `protobuf:"varint,4,opt,name=totalPages,proto3" json:"totalPages,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *PaginationResponse) Reset() {