blob: 884cbf9630d1b509a7b2085218fc9aaab04e0124 [file] [log] [blame]
// Copyright 2018 The LUCI Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.33.0
// protoc v3.21.7
// source: go.chromium.org/luci/common/proto/gerrit/gerrit.proto
package gerritpb
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
emptypb "google.golang.org/protobuf/types/known/emptypb"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// Specifies what extra information to include in the response.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#query-options
type QueryOption int32
const (
QueryOption_OPTION_UNSPECIFIED QueryOption = 0
// A summary of each label required for submit, and approvers that have
// granted (or rejected) with that label.
QueryOption_LABELS QueryOption = 1
// Detailed label information, including numeric values of all existing
// approvals, recognized label values, values permitted to be set by the
// current user, all reviewers by state, and reviewers that may be removed by
// the current user.
QueryOption_DETAILED_LABELS QueryOption = 2
// Describe the current revision (patch set) of the change, including the
// commit SHA-1 and URLs to fetch from.
QueryOption_CURRENT_REVISION QueryOption = 4
// Describe all revisions, not just current.
QueryOption_ALL_REVISIONS QueryOption = 8
// Parse and output all header fields from the commit object, including
// message. Only valid when the CURRENT_REVISION or ALL_REVISIONS option is
// selected.
QueryOption_CURRENT_COMMIT QueryOption = 16
// Parse and output all header fields from the output revisions. If only
// CURRENT_REVISION was requested then only the current revision’s commit data
// will be output.
QueryOption_ALL_COMMITS QueryOption = 32
// List files modified by the commit and magic files, including basic line
// counts inserted/deleted per file. Only valid when the CURRENT_REVISION or
// ALL_REVISIONS option is selected.
QueryOption_CURRENT_FILES QueryOption = 64
// List files modified by the commit and magic files, including basic line
// counts inserted/deleted per file. If only the CURRENT_REVISION was
// requested then only that commit’s modified files will be output.
QueryOption_ALL_FILES QueryOption = 128
// Include _account_id, email and username fields when referencing accounts.
QueryOption_DETAILED_ACCOUNTS QueryOption = 256
// Include updates to reviewers set as ReviewerUpdateInfo entities.
QueryOption_REVIEWER_UPDATES QueryOption = 512
// Include messages associated with the change.
QueryOption_MESSAGES QueryOption = 1024
// Include information on available actions for the change and its current
// revision. Ignored if the caller is not authenticated.
QueryOption_CURRENT_ACTIONS QueryOption = 2048
// Include information on available change actions for the change. Ignored if
// the caller is not authenticated.
QueryOption_CHANGE_ACTIONS QueryOption = 4096
// Include the reviewed field if all of the following are true:
// - the change is open
// - the caller is authenticated
// - the caller has commented on the change more recently than the last update
// from the change owner, i.e. this change would show up in the results of
// reviewedby:self.
QueryOption_REVIEWED QueryOption = 8192
// Skip the mergeable field in ChangeInfo. For fast moving projects, this
// field must be recomputed often, which is slow for projects with big trees.
QueryOption_SKIP_MERGEABLE QueryOption = 16384
// Include the submittable field in ChangeInfo, which can be used to tell if
// the change is reviewed and ready for submit.
QueryOption_SUBMITTABLE QueryOption = 32768
// Include the web_links field in CommitInfo, therefore only valid in
// combination with CURRENT_COMMIT or ALL_COMMITS.
QueryOption_WEB_LINKS QueryOption = 65536
// Include potential problems with the change.
QueryOption_CHECK QueryOption = 131072
// Include the full commit message with Gerrit-specific commit footers in the
// RevisionInfo.
QueryOption_COMMIT_FOOTERS QueryOption = 262144
// Include push certificate information in the RevisionInfo. Ignored if signed
// push is not enabled on the server.
QueryOption_PUSH_CERTIFICATES QueryOption = 524288
// Include references to external tracking systems as TrackingIdInfo.
QueryOption_TRACKING_IDS QueryOption = 1048576
// Include the commands field in the FetchInfo for revisions. Only valid when
// the CURRENT_REVISION or ALL_REVISIONS option is selected.
QueryOption_DOWNLOAD_COMMANDS QueryOption = 2097152
// Include the submit_requirements field in ChangeInfo.
QueryOption_SUBMIT_REQUIREMENTS QueryOption = 4194304
// MAX_QUERY_OPTION is the largest possible number in QueryOption.
//
// This is not meant to be used, but to indicate the upper bound of the valid
// enum value set.
//
// QueryOption is typed as int32, and the largest possible value is
// pow(2,31) - 1. MAX_QUERY_OPTION is the largest power of 2 allowed in
// QueryOption.
QueryOption_MAX_QUERY_OPTION QueryOption = 1073741824
)
// Enum value maps for QueryOption.
var (
QueryOption_name = map[int32]string{
0: "OPTION_UNSPECIFIED",
1: "LABELS",
2: "DETAILED_LABELS",
4: "CURRENT_REVISION",
8: "ALL_REVISIONS",
16: "CURRENT_COMMIT",
32: "ALL_COMMITS",
64: "CURRENT_FILES",
128: "ALL_FILES",
256: "DETAILED_ACCOUNTS",
512: "REVIEWER_UPDATES",
1024: "MESSAGES",
2048: "CURRENT_ACTIONS",
4096: "CHANGE_ACTIONS",
8192: "REVIEWED",
16384: "SKIP_MERGEABLE",
32768: "SUBMITTABLE",
65536: "WEB_LINKS",
131072: "CHECK",
262144: "COMMIT_FOOTERS",
524288: "PUSH_CERTIFICATES",
1048576: "TRACKING_IDS",
2097152: "DOWNLOAD_COMMANDS",
4194304: "SUBMIT_REQUIREMENTS",
1073741824: "MAX_QUERY_OPTION",
}
QueryOption_value = map[string]int32{
"OPTION_UNSPECIFIED": 0,
"LABELS": 1,
"DETAILED_LABELS": 2,
"CURRENT_REVISION": 4,
"ALL_REVISIONS": 8,
"CURRENT_COMMIT": 16,
"ALL_COMMITS": 32,
"CURRENT_FILES": 64,
"ALL_FILES": 128,
"DETAILED_ACCOUNTS": 256,
"REVIEWER_UPDATES": 512,
"MESSAGES": 1024,
"CURRENT_ACTIONS": 2048,
"CHANGE_ACTIONS": 4096,
"REVIEWED": 8192,
"SKIP_MERGEABLE": 16384,
"SUBMITTABLE": 32768,
"WEB_LINKS": 65536,
"CHECK": 131072,
"COMMIT_FOOTERS": 262144,
"PUSH_CERTIFICATES": 524288,
"TRACKING_IDS": 1048576,
"DOWNLOAD_COMMANDS": 2097152,
"SUBMIT_REQUIREMENTS": 4194304,
"MAX_QUERY_OPTION": 1073741824,
}
)
func (x QueryOption) Enum() *QueryOption {
p := new(QueryOption)
*p = x
return p
}
func (x QueryOption) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (QueryOption) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[0].Descriptor()
}
func (QueryOption) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[0]
}
func (x QueryOption) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use QueryOption.Descriptor instead.
func (QueryOption) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{0}
}
// Specify the notification options for an action.
// Different endpoints support different subsets of this enum.
type Notify int32
const (
Notify_NOTIFY_UNSPECIFIED Notify = 0
// Do not send email notifications.
Notify_NOTIFY_NONE Notify = 1
// Notify all OWNERS.
Notify_NOTIFY_OWNER Notify = 2
// Notify OWNERS who are also reviewers
Notify_NOTIFY_OWNER_REVIEWERS Notify = 3
// Notify all OWNERS and reviewers
Notify_NOTIFY_ALL Notify = 4
)
// Enum value maps for Notify.
var (
Notify_name = map[int32]string{
0: "NOTIFY_UNSPECIFIED",
1: "NOTIFY_NONE",
2: "NOTIFY_OWNER",
3: "NOTIFY_OWNER_REVIEWERS",
4: "NOTIFY_ALL",
}
Notify_value = map[string]int32{
"NOTIFY_UNSPECIFIED": 0,
"NOTIFY_NONE": 1,
"NOTIFY_OWNER": 2,
"NOTIFY_OWNER_REVIEWERS": 3,
"NOTIFY_ALL": 4,
}
)
func (x Notify) Enum() *Notify {
p := new(Notify)
*p = x
return p
}
func (x Notify) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Notify) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[1].Descriptor()
}
func (Notify) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[1]
}
func (x Notify) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Notify.Descriptor instead.
func (Notify) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{1}
}
type ChangeStatus int32
const (
ChangeStatus_CHANGE_STATUS_INVALID ChangeStatus = 0
ChangeStatus_NEW ChangeStatus = 1
ChangeStatus_MERGED ChangeStatus = 2
ChangeStatus_ABANDONED ChangeStatus = 3
)
// Enum value maps for ChangeStatus.
var (
ChangeStatus_name = map[int32]string{
0: "CHANGE_STATUS_INVALID",
1: "NEW",
2: "MERGED",
3: "ABANDONED",
}
ChangeStatus_value = map[string]int32{
"CHANGE_STATUS_INVALID": 0,
"NEW": 1,
"MERGED": 2,
"ABANDONED": 3,
}
)
func (x ChangeStatus) Enum() *ChangeStatus {
p := new(ChangeStatus)
*p = x
return p
}
func (x ChangeStatus) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (ChangeStatus) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[2].Descriptor()
}
func (ChangeStatus) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[2]
}
func (x ChangeStatus) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use ChangeStatus.Descriptor instead.
func (ChangeStatus) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{2}
}
type MergeableStrategy int32
const (
MergeableStrategy_MERGEABLE_STRATEGY_UNSPECIFIED MergeableStrategy = 0
MergeableStrategy_RECURSIVE MergeableStrategy = 1
MergeableStrategy_RESOLVE MergeableStrategy = 2
MergeableStrategy_SIMPLE_TWO_WAY_IN_CORE MergeableStrategy = 3
MergeableStrategy_OURS MergeableStrategy = 4
MergeableStrategy_THEIRS MergeableStrategy = 5
)
// Enum value maps for MergeableStrategy.
var (
MergeableStrategy_name = map[int32]string{
0: "MERGEABLE_STRATEGY_UNSPECIFIED",
1: "RECURSIVE",
2: "RESOLVE",
3: "SIMPLE_TWO_WAY_IN_CORE",
4: "OURS",
5: "THEIRS",
}
MergeableStrategy_value = map[string]int32{
"MERGEABLE_STRATEGY_UNSPECIFIED": 0,
"RECURSIVE": 1,
"RESOLVE": 2,
"SIMPLE_TWO_WAY_IN_CORE": 3,
"OURS": 4,
"THEIRS": 5,
}
)
func (x MergeableStrategy) Enum() *MergeableStrategy {
p := new(MergeableStrategy)
*p = x
return p
}
func (x MergeableStrategy) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (MergeableStrategy) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[3].Descriptor()
}
func (MergeableStrategy) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[3]
}
func (x MergeableStrategy) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use MergeableStrategy.Descriptor instead.
func (MergeableStrategy) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{3}
}
// Specify how recipient will be notified.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/user-notify.html#recipient-types
type NotifyDetails_RecipientType int32
const (
NotifyDetails_RECIPIENT_TYPE_UNSPECIFIED NotifyDetails_RecipientType = 0
// The standard To field is used; addresses are visible to all.
NotifyDetails_RECIPIENT_TYPE_TO NotifyDetails_RecipientType = 1
// The standard CC field is used; addresses are visible to all.
NotifyDetails_RECIPIENT_TYPE_CC NotifyDetails_RecipientType = 2
// SMTP RCPT TO is used to hide the address.
NotifyDetails_RECIPIENT_TYPE_BCC NotifyDetails_RecipientType = 3
)
// Enum value maps for NotifyDetails_RecipientType.
var (
NotifyDetails_RecipientType_name = map[int32]string{
0: "RECIPIENT_TYPE_UNSPECIFIED",
1: "RECIPIENT_TYPE_TO",
2: "RECIPIENT_TYPE_CC",
3: "RECIPIENT_TYPE_BCC",
}
NotifyDetails_RecipientType_value = map[string]int32{
"RECIPIENT_TYPE_UNSPECIFIED": 0,
"RECIPIENT_TYPE_TO": 1,
"RECIPIENT_TYPE_CC": 2,
"RECIPIENT_TYPE_BCC": 3,
}
)
func (x NotifyDetails_RecipientType) Enum() *NotifyDetails_RecipientType {
p := new(NotifyDetails_RecipientType)
*p = x
return p
}
func (x NotifyDetails_RecipientType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (NotifyDetails_RecipientType) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[4].Descriptor()
}
func (NotifyDetails_RecipientType) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[4]
}
func (x NotifyDetails_RecipientType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use NotifyDetails_RecipientType.Descriptor instead.
func (NotifyDetails_RecipientType) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{0, 0}
}
// The kind of change for this revision.
type RevisionInfo_Kind int32
const (
RevisionInfo_KIND_INVALID RevisionInfo_Kind = 0
RevisionInfo_REWORK RevisionInfo_Kind = 1
RevisionInfo_TRIVIAL_REBASE RevisionInfo_Kind = 2
RevisionInfo_MERGE_FIRST_PARENT_UPDATE RevisionInfo_Kind = 3
RevisionInfo_NO_CODE_CHANGE RevisionInfo_Kind = 4
RevisionInfo_NO_CHANGE RevisionInfo_Kind = 5
)
// Enum value maps for RevisionInfo_Kind.
var (
RevisionInfo_Kind_name = map[int32]string{
0: "KIND_INVALID",
1: "REWORK",
2: "TRIVIAL_REBASE",
3: "MERGE_FIRST_PARENT_UPDATE",
4: "NO_CODE_CHANGE",
5: "NO_CHANGE",
}
RevisionInfo_Kind_value = map[string]int32{
"KIND_INVALID": 0,
"REWORK": 1,
"TRIVIAL_REBASE": 2,
"MERGE_FIRST_PARENT_UPDATE": 3,
"NO_CODE_CHANGE": 4,
"NO_CHANGE": 5,
}
)
func (x RevisionInfo_Kind) Enum() *RevisionInfo_Kind {
p := new(RevisionInfo_Kind)
*p = x
return p
}
func (x RevisionInfo_Kind) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (RevisionInfo_Kind) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[5].Descriptor()
}
func (RevisionInfo_Kind) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[5]
}
func (x RevisionInfo_Kind) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use RevisionInfo_Kind.Descriptor instead.
func (RevisionInfo_Kind) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{8, 0}
}
type Requirement_Status int32
const (
Requirement_REQUIREMENT_STATUS_UNSPECIFIED Requirement_Status = 0
Requirement_REQUIREMENT_STATUS_OK Requirement_Status = 1
Requirement_REQUIREMENT_STATUS_NOT_READY Requirement_Status = 2
Requirement_REQUIREMENT_STATUS_RULE_ERROR Requirement_Status = 3
)
// Enum value maps for Requirement_Status.
var (
Requirement_Status_name = map[int32]string{
0: "REQUIREMENT_STATUS_UNSPECIFIED",
1: "REQUIREMENT_STATUS_OK",
2: "REQUIREMENT_STATUS_NOT_READY",
3: "REQUIREMENT_STATUS_RULE_ERROR",
}
Requirement_Status_value = map[string]int32{
"REQUIREMENT_STATUS_UNSPECIFIED": 0,
"REQUIREMENT_STATUS_OK": 1,
"REQUIREMENT_STATUS_NOT_READY": 2,
"REQUIREMENT_STATUS_RULE_ERROR": 3,
}
)
func (x Requirement_Status) Enum() *Requirement_Status {
p := new(Requirement_Status)
*p = x
return p
}
func (x Requirement_Status) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Requirement_Status) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[6].Descriptor()
}
func (Requirement_Status) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[6]
}
func (x Requirement_Status) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Requirement_Status.Descriptor instead.
func (Requirement_Status) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{14, 0}
}
type FileInfo_Status int32
const (
FileInfo_M FileInfo_Status = 0 // Modified (default; omitted)
FileInfo_A FileInfo_Status = 1 // Added
FileInfo_D FileInfo_Status = 2 // Deleted
FileInfo_R FileInfo_Status = 3 // Renamed
FileInfo_C FileInfo_Status = 4 // Copied
FileInfo_W FileInfo_Status = 5 // Rewritten
)
// Enum value maps for FileInfo_Status.
var (
FileInfo_Status_name = map[int32]string{
0: "M",
1: "A",
2: "D",
3: "R",
4: "C",
5: "W",
}
FileInfo_Status_value = map[string]int32{
"M": 0,
"A": 1,
"D": 2,
"R": 3,
"C": 4,
"W": 5,
}
)
func (x FileInfo_Status) Enum() *FileInfo_Status {
p := new(FileInfo_Status)
*p = x
return p
}
func (x FileInfo_Status) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (FileInfo_Status) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[7].Descriptor()
}
func (FileInfo_Status) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[7]
}
func (x FileInfo_Status) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use FileInfo_Status.Descriptor instead.
func (FileInfo_Status) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{15, 0}
}
type AddReviewerRequest_State int32
const (
AddReviewerRequest_ADD_REVIEWER_STATE_UNSPECIFIED AddReviewerRequest_State = 0
AddReviewerRequest_ADD_REVIEWER_STATE_REVIEWER AddReviewerRequest_State = 1
AddReviewerRequest_ADD_REVIEWER_STATE_CC AddReviewerRequest_State = 2
)
// Enum value maps for AddReviewerRequest_State.
var (
AddReviewerRequest_State_name = map[int32]string{
0: "ADD_REVIEWER_STATE_UNSPECIFIED",
1: "ADD_REVIEWER_STATE_REVIEWER",
2: "ADD_REVIEWER_STATE_CC",
}
AddReviewerRequest_State_value = map[string]int32{
"ADD_REVIEWER_STATE_UNSPECIFIED": 0,
"ADD_REVIEWER_STATE_REVIEWER": 1,
"ADD_REVIEWER_STATE_CC": 2,
}
)
func (x AddReviewerRequest_State) Enum() *AddReviewerRequest_State {
p := new(AddReviewerRequest_State)
*p = x
return p
}
func (x AddReviewerRequest_State) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (AddReviewerRequest_State) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[8].Descriptor()
}
func (AddReviewerRequest_State) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[8]
}
func (x AddReviewerRequest_State) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use AddReviewerRequest_State.Descriptor instead.
func (AddReviewerRequest_State) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{25, 0}
}
// Subset of reviewer states. See the "state" entry at
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#reviewer-input
type ReviewerInput_State int32
const (
ReviewerInput_REVIEWER_INPUT_STATE_UNSPECIFIED ReviewerInput_State = 0
ReviewerInput_REVIEWER_INPUT_STATE_REVIEWER ReviewerInput_State = 1
ReviewerInput_REVIEWER_INPUT_STATE_CC ReviewerInput_State = 2
)
// Enum value maps for ReviewerInput_State.
var (
ReviewerInput_State_name = map[int32]string{
0: "REVIEWER_INPUT_STATE_UNSPECIFIED",
1: "REVIEWER_INPUT_STATE_REVIEWER",
2: "REVIEWER_INPUT_STATE_CC",
}
ReviewerInput_State_value = map[string]int32{
"REVIEWER_INPUT_STATE_UNSPECIFIED": 0,
"REVIEWER_INPUT_STATE_REVIEWER": 1,
"REVIEWER_INPUT_STATE_CC": 2,
}
)
func (x ReviewerInput_State) Enum() *ReviewerInput_State {
p := new(ReviewerInput_State)
*p = x
return p
}
func (x ReviewerInput_State) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (ReviewerInput_State) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[9].Descriptor()
}
func (ReviewerInput_State) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[9]
}
func (x ReviewerInput_State) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use ReviewerInput_State.Descriptor instead.
func (ReviewerInput_State) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{30, 0}
}
type MergeableInfo_SubmitType int32
const (
MergeableInfo_SUBMIT_TYPE_UNSPECIFIED MergeableInfo_SubmitType = 0
MergeableInfo_MERGE_IF_NECESSARY MergeableInfo_SubmitType = 1
MergeableInfo_FAST_FORWARD_ONLY MergeableInfo_SubmitType = 2
MergeableInfo_REBASE_IF_NECESSARY MergeableInfo_SubmitType = 3
MergeableInfo_REBASE_ALWAYS MergeableInfo_SubmitType = 4
MergeableInfo_MERGE_ALWAYS MergeableInfo_SubmitType = 5
MergeableInfo_CHERRY_PICK MergeableInfo_SubmitType = 6
)
// Enum value maps for MergeableInfo_SubmitType.
var (
MergeableInfo_SubmitType_name = map[int32]string{
0: "SUBMIT_TYPE_UNSPECIFIED",
1: "MERGE_IF_NECESSARY",
2: "FAST_FORWARD_ONLY",
3: "REBASE_IF_NECESSARY",
4: "REBASE_ALWAYS",
5: "MERGE_ALWAYS",
6: "CHERRY_PICK",
}
MergeableInfo_SubmitType_value = map[string]int32{
"SUBMIT_TYPE_UNSPECIFIED": 0,
"MERGE_IF_NECESSARY": 1,
"FAST_FORWARD_ONLY": 2,
"REBASE_IF_NECESSARY": 3,
"REBASE_ALWAYS": 4,
"MERGE_ALWAYS": 5,
"CHERRY_PICK": 6,
}
)
func (x MergeableInfo_SubmitType) Enum() *MergeableInfo_SubmitType {
p := new(MergeableInfo_SubmitType)
*p = x
return p
}
func (x MergeableInfo_SubmitType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (MergeableInfo_SubmitType) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[10].Descriptor()
}
func (MergeableInfo_SubmitType) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[10]
}
func (x MergeableInfo_SubmitType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use MergeableInfo_SubmitType.Descriptor instead.
func (MergeableInfo_SubmitType) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{35, 0}
}
type ProjectInfo_State int32
const (
ProjectInfo_PROJECT_STATE_UNSPECIFIED ProjectInfo_State = 0
ProjectInfo_PROJECT_STATE_ACTIVE ProjectInfo_State = 1
ProjectInfo_PROJECT_STATE_READ_ONLY ProjectInfo_State = 2
ProjectInfo_PROJECT_STATE_HIDDEN ProjectInfo_State = 3
)
// Enum value maps for ProjectInfo_State.
var (
ProjectInfo_State_name = map[int32]string{
0: "PROJECT_STATE_UNSPECIFIED",
1: "PROJECT_STATE_ACTIVE",
2: "PROJECT_STATE_READ_ONLY",
3: "PROJECT_STATE_HIDDEN",
}
ProjectInfo_State_value = map[string]int32{
"PROJECT_STATE_UNSPECIFIED": 0,
"PROJECT_STATE_ACTIVE": 1,
"PROJECT_STATE_READ_ONLY": 2,
"PROJECT_STATE_HIDDEN": 3,
}
)
func (x ProjectInfo_State) Enum() *ProjectInfo_State {
p := new(ProjectInfo_State)
*p = x
return p
}
func (x ProjectInfo_State) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (ProjectInfo_State) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[11].Descriptor()
}
func (ProjectInfo_State) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[11]
}
func (x ProjectInfo_State) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use ProjectInfo_State.Descriptor instead.
func (ProjectInfo_State) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{42, 0}
}
type SubmitRequirementResultInfo_Status int32
const (
SubmitRequirementResultInfo_SUBMIT_REQUIREMENT_STATUS_UNSPECIFIED SubmitRequirementResultInfo_Status = 0
SubmitRequirementResultInfo_SATISFIED SubmitRequirementResultInfo_Status = 1
SubmitRequirementResultInfo_UNSATISFIED SubmitRequirementResultInfo_Status = 2
SubmitRequirementResultInfo_OVERRIDDEN SubmitRequirementResultInfo_Status = 3
SubmitRequirementResultInfo_NOT_APPLICABLE SubmitRequirementResultInfo_Status = 4
SubmitRequirementResultInfo_ERROR SubmitRequirementResultInfo_Status = 5
SubmitRequirementResultInfo_FORCED SubmitRequirementResultInfo_Status = 6
)
// Enum value maps for SubmitRequirementResultInfo_Status.
var (
SubmitRequirementResultInfo_Status_name = map[int32]string{
0: "SUBMIT_REQUIREMENT_STATUS_UNSPECIFIED",
1: "SATISFIED",
2: "UNSATISFIED",
3: "OVERRIDDEN",
4: "NOT_APPLICABLE",
5: "ERROR",
6: "FORCED",
}
SubmitRequirementResultInfo_Status_value = map[string]int32{
"SUBMIT_REQUIREMENT_STATUS_UNSPECIFIED": 0,
"SATISFIED": 1,
"UNSATISFIED": 2,
"OVERRIDDEN": 3,
"NOT_APPLICABLE": 4,
"ERROR": 5,
"FORCED": 6,
}
)
func (x SubmitRequirementResultInfo_Status) Enum() *SubmitRequirementResultInfo_Status {
p := new(SubmitRequirementResultInfo_Status)
*p = x
return p
}
func (x SubmitRequirementResultInfo_Status) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (SubmitRequirementResultInfo_Status) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[12].Descriptor()
}
func (SubmitRequirementResultInfo_Status) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes[12]
}
func (x SubmitRequirementResultInfo_Status) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use SubmitRequirementResultInfo_Status.Descriptor instead.
func (SubmitRequirementResultInfo_Status) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{55, 0}
}
// Detailed information about whom to notify about the update.
type NotifyDetails struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Recipients of the same RecipientType will be merged. Duplicate
// accountIDs in `notify_info` will be removed.
Recipients []*NotifyDetails_Recipient `protobuf:"bytes,1,rep,name=recipients,proto3" json:"recipients,omitempty"`
}
func (x *NotifyDetails) Reset() {
*x = NotifyDetails{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *NotifyDetails) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*NotifyDetails) ProtoMessage() {}
func (x *NotifyDetails) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use NotifyDetails.ProtoReflect.Descriptor instead.
func (*NotifyDetails) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{0}
}
func (x *NotifyDetails) GetRecipients() []*NotifyDetails_Recipient {
if x != nil {
return x.Recipients
}
return nil
}
// Request to list changes based on a query.
type ListChangesRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The query used to filter the changes.
//
// This is the same as the query that can be used in the Gerrit web UI. It is
// space-separated and can include filters like "label:Commit-Queue" or
// "status:open". The possible search operators are described at:
// https://gerrit-review.googlesource.com/Documentation/user-search.html
//
// An empty query matches all changes.
Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"`
// What to include in the response.
Options []QueryOption `protobuf:"varint,2,rep,packed,name=options,proto3,enum=gerrit.QueryOption" json:"options,omitempty"`
// Caps the number of results to return. Required.
//
// Defaults to 25 if not provided; maximum value 1000.
//
// Use luci/common/api/gerrit:PagingListChanges wrapper if you need to fetch
// more or all changes.
Limit int64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"`
// The number of changes to skip from the start, for pagination.
//
// Note that without using offset, it's also possible to do paging by
// including a "before:" time in the query, and querying for changes before
// the earliest change in the current page. This may be preferred but is not
// very trivial to implement correctly.
Offset int64 `protobuf:"varint,4,opt,name=offset,proto3" json:"offset,omitempty"`
}
func (x *ListChangesRequest) Reset() {
*x = ListChangesRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListChangesRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListChangesRequest) ProtoMessage() {}
func (x *ListChangesRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListChangesRequest.ProtoReflect.Descriptor instead.
func (*ListChangesRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{1}
}
func (x *ListChangesRequest) GetQuery() string {
if x != nil {
return x.Query
}
return ""
}
func (x *ListChangesRequest) GetOptions() []QueryOption {
if x != nil {
return x.Options
}
return nil
}
func (x *ListChangesRequest) GetLimit() int64 {
if x != nil {
return x.Limit
}
return 0
}
func (x *ListChangesRequest) GetOffset() int64 {
if x != nil {
return x.Offset
}
return 0
}
// A list of changes that matched the query.
type ListChangesResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The changes that matched the query, with the fields requested.
//
// The order of the changes is expected to be decreasing by update time,
// however the The Gerrit API doc doesn't explicitly specify the order:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html
Changes []*ChangeInfo `protobuf:"bytes,1,rep,name=changes,proto3" json:"changes,omitempty"`
// True if there are more changes not returned.
//
// This will be set if the number of changes matching the query exceeds the
// limit supplied; however, it's possible that if the number exceeds some
// internal Gerrit maximum, this will not be set.
//
// Specifically (as of Dec 2018) Google's Gerrit instance will not look
// beyond a maximum hardcoded in Gerrit backend of 10k changes in the index
// of changes, and so if a query matches more than that many changes, Gerrit
// backend may not know and may not set "_more_changes".
MoreChanges bool `protobuf:"varint,2,opt,name=more_changes,json=moreChanges,proto3" json:"more_changes,omitempty"`
}
func (x *ListChangesResponse) Reset() {
*x = ListChangesResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListChangesResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListChangesResponse) ProtoMessage() {}
func (x *ListChangesResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListChangesResponse.ProtoReflect.Descriptor instead.
func (*ListChangesResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{2}
}
func (x *ListChangesResponse) GetChanges() []*ChangeInfo {
if x != nil {
return x.Changes
}
return nil
}
func (x *ListChangesResponse) GetMoreChanges() bool {
if x != nil {
return x.MoreChanges
}
return false
}
// Request to get information for a single change.
//
// Encodes path arguments and query options described at
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#get-change
type GetChangeRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Change number.
Number int64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
// What to include in the response.
Options []QueryOption `protobuf:"varint,2,rep,packed,name=options,proto3,enum=gerrit.QueryOption" json:"options,omitempty"`
// The Gerrit project.
// Specifying this field is optional, but encouraged because it requires less
// work on the Gerrit side.
Project string `protobuf:"bytes,3,opt,name=project,proto3" json:"project,omitempty"`
// The SHA-1 of a historical NoteDB snapshot of the change to retrieve.
//
// If the SHA-1 is not reachable from the serving Gerrit replica,
// status code 412 is returned.
// If the given value is not a valid NoteDB SHA-1,
// status code 400 is returned.
//
// If omitted, GetChange will return the latest snapshot known by the serving
// Gerrit replica.
Meta string `protobuf:"bytes,4,opt,name=meta,proto3" json:"meta,omitempty"`
}
func (x *GetChangeRequest) Reset() {
*x = GetChangeRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetChangeRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetChangeRequest) ProtoMessage() {}
func (x *GetChangeRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetChangeRequest.ProtoReflect.Descriptor instead.
func (*GetChangeRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{3}
}
func (x *GetChangeRequest) GetNumber() int64 {
if x != nil {
return x.Number
}
return 0
}
func (x *GetChangeRequest) GetOptions() []QueryOption {
if x != nil {
return x.Options
}
return nil
}
func (x *GetChangeRequest) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
func (x *GetChangeRequest) GetMeta() string {
if x != nil {
return x.Meta
}
return ""
}
// Information about an account.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-accounts.html#account-info
type AccountInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The full name of the user.
// Only set if detailed account information is requested.
// See option DETAILED_ACCOUNTS for change queries
// and option DETAILS for account queries.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// The email address the user prefers to be contacted through.
// Only set if detailed account information is requested.
// See option DETAILED_ACCOUNTS for change queries
// and options DETAILS and ALL_EMAILS for account queries.
Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"`
// A list of the secondary email addresses of the user.
// Only set for account queries when the ALL_EMAILS option or the suggest
// parameter is set. Secondary emails are only included if the calling user
// has the Modify Account, and hence is allowed to see secondary emails of
// other users.
SecondaryEmails []string `protobuf:"bytes,3,rep,name=secondary_emails,json=secondaryEmails,proto3" json:"secondary_emails,omitempty"`
// The username of the user.
// Only set if detailed account information is requested.
// See option DETAILED_ACCOUNTS for change queries
// and option DETAILS for account queries.
Username string `protobuf:"bytes,4,opt,name=username,proto3" json:"username,omitempty"`
// The numeric ID of the account
AccountId int64 `protobuf:"varint,5,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"`
// List of additional tags that this account has.
//
// The only current tag an account can have is SERVICE_USER.
// Only set if detailed account information is requested.
// See option DETAILED_ACCOUNTS
Tags []string `protobuf:"bytes,6,rep,name=tags,proto3" json:"tags,omitempty"`
}
func (x *AccountInfo) Reset() {
*x = AccountInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AccountInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AccountInfo) ProtoMessage() {}
func (x *AccountInfo) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AccountInfo.ProtoReflect.Descriptor instead.
func (*AccountInfo) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{4}
}
func (x *AccountInfo) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *AccountInfo) GetEmail() string {
if x != nil {
return x.Email
}
return ""
}
func (x *AccountInfo) GetSecondaryEmails() []string {
if x != nil {
return x.SecondaryEmails
}
return nil
}
func (x *AccountInfo) GetUsername() string {
if x != nil {
return x.Username
}
return ""
}
func (x *AccountInfo) GetAccountId() int64 {
if x != nil {
return x.AccountId
}
return 0
}
func (x *AccountInfo) GetTags() []string {
if x != nil {
return x.Tags
}
return nil
}
// The GitPersonInfo entity contains information about the author/committer of a commit.
//
// Fields are a subset of:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#git-person-info
type GitPersonInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The name of the author/committer.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// The email address of the author/committer.
Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"`
}
func (x *GitPersonInfo) Reset() {
*x = GitPersonInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GitPersonInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GitPersonInfo) ProtoMessage() {}
func (x *GitPersonInfo) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GitPersonInfo.ProtoReflect.Descriptor instead.
func (*GitPersonInfo) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{5}
}
func (x *GitPersonInfo) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *GitPersonInfo) GetEmail() string {
if x != nil {
return x.Email
}
return ""
}
// Information about a change.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#change-info
//
// Next tag: 24.
type ChangeInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The change number.
Number int64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
// The owner of the change.
Owner *AccountInfo `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"`
// The project of this change. For example, "chromium/src".
Project string `protobuf:"bytes,3,opt,name=project,proto3" json:"project,omitempty"`
// Ref that this change targets, e.g.: refs/heads/master
//
// Note that the gerrit API may return short branch name (master instead of
// refs/heads/master) but we convert it to a ref for consistency across the
// API.
Ref string `protobuf:"bytes,4,opt,name=ref,proto3" json:"ref,omitempty"`
Status ChangeStatus `protobuf:"varint,5,opt,name=status,proto3,enum=gerrit.ChangeStatus" json:"status,omitempty"`
// Current revision of the change.
//
// See:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#revision-id
CurrentRevision string `protobuf:"bytes,6,opt,name=current_revision,json=currentRevision,proto3" json:"current_revision,omitempty"`
// A map of patch set commit IDs to RevisionInfos.
//
// Only set if revision information is requested.
Revisions map[string]*RevisionInfo `protobuf:"bytes,7,rep,name=revisions,proto3" json:"revisions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
// A map of label names to LabelInfos.
//
// Only set if label info is requested.
Labels map[string]*LabelInfo `protobuf:"bytes,8,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
// Messages associated with the change.
//
// Only set if messages are requested.
Messages []*ChangeMessageInfo `protobuf:"bytes,9,rep,name=messages,proto3" json:"messages,omitempty"`
// List of the requirements to be met before this change can be submitted.
//
// Deprecated: use `submit_requirements` instead.
//
// Deprecated: Marked as deprecated in go.chromium.org/luci/common/proto/gerrit/gerrit.proto.
Requirements []*Requirement `protobuf:"bytes,14,rep,name=requirements,proto3" json:"requirements,omitempty"`
// Whether the change is approved
// by the project submit rules.
//
// Only set if submittable is requested.
Submittable bool `protobuf:"varint,10,opt,name=submittable,proto3" json:"submittable,omitempty"`
// Whether change is private.
IsPrivate bool `protobuf:"varint,13,opt,name=is_private,json=isPrivate,proto3" json:"is_private,omitempty"`
// List of hashtags that are set on the change.
Hashtags []string `protobuf:"bytes,19,rep,name=hashtags,proto3" json:"hashtags,omitempty"`
// Timestamp of when the change was created
Created *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=created,proto3" json:"created,omitempty"`
// Timestamp of when the change was last updated
Updated *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=updated,proto3" json:"updated,omitempty"`
// Timestamp of when the change was submitted.
//
// Only set for merged changes.
Submitted *timestamppb.Timestamp `protobuf:"bytes,21,opt,name=submitted,proto3" json:"submitted,omitempty"`
// The numeric Change-Id of the change that this change reverts.
RevertOf int64 `protobuf:"varint,15,opt,name=revert_of,json=revertOf,proto3" json:"revert_of,omitempty"`
// The numeric Change-Id of the change that this change was cherry-picked from.
CherryPickOfChange int64 `protobuf:"varint,16,opt,name=cherry_pick_of_change,json=cherryPickOfChange,proto3" json:"cherry_pick_of_change,omitempty"`
// The users who have been added in and removed from the change.
Reviewers *ReviewerStatusMap `protobuf:"bytes,17,opt,name=reviewers,proto3" json:"reviewers,omitempty"`
// The SHA-1 of the NoteDb meta ref.
MetaRevId string `protobuf:"bytes,18,opt,name=meta_rev_id,json=metaRevId,proto3" json:"meta_rev_id,omitempty"`
// The evaluation results of the submit requirements for this change.
SubmitRequirements []*SubmitRequirementResultInfo `protobuf:"bytes,20,rep,name=submit_requirements,json=submitRequirements,proto3" json:"submit_requirements,omitempty"`
// The subject of the change (header line of the commit message).
Subject string `protobuf:"bytes,22,opt,name=subject,proto3" json:"subject,omitempty"`
// The name of the target branch. The refs/heads/ prefix is omitted.
Branch string `protobuf:"bytes,23,opt,name=branch,proto3" json:"branch,omitempty"`
}
func (x *ChangeInfo) Reset() {
*x = ChangeInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ChangeInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ChangeInfo) ProtoMessage() {}
func (x *ChangeInfo) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ChangeInfo.ProtoReflect.Descriptor instead.
func (*ChangeInfo) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{6}
}
func (x *ChangeInfo) GetNumber() int64 {
if x != nil {
return x.Number
}
return 0
}
func (x *ChangeInfo) GetOwner() *AccountInfo {
if x != nil {
return x.Owner
}
return nil
}
func (x *ChangeInfo) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
func (x *ChangeInfo) GetRef() string {
if x != nil {
return x.Ref
}
return ""
}
func (x *ChangeInfo) GetStatus() ChangeStatus {
if x != nil {
return x.Status
}
return ChangeStatus_CHANGE_STATUS_INVALID
}
func (x *ChangeInfo) GetCurrentRevision() string {
if x != nil {
return x.CurrentRevision
}
return ""
}
func (x *ChangeInfo) GetRevisions() map[string]*RevisionInfo {
if x != nil {
return x.Revisions
}
return nil
}
func (x *ChangeInfo) GetLabels() map[string]*LabelInfo {
if x != nil {
return x.Labels
}
return nil
}
func (x *ChangeInfo) GetMessages() []*ChangeMessageInfo {
if x != nil {
return x.Messages
}
return nil
}
// Deprecated: Marked as deprecated in go.chromium.org/luci/common/proto/gerrit/gerrit.proto.
func (x *ChangeInfo) GetRequirements() []*Requirement {
if x != nil {
return x.Requirements
}
return nil
}
func (x *ChangeInfo) GetSubmittable() bool {
if x != nil {
return x.Submittable
}
return false
}
func (x *ChangeInfo) GetIsPrivate() bool {
if x != nil {
return x.IsPrivate
}
return false
}
func (x *ChangeInfo) GetHashtags() []string {
if x != nil {
return x.Hashtags
}
return nil
}
func (x *ChangeInfo) GetCreated() *timestamppb.Timestamp {
if x != nil {
return x.Created
}
return nil
}
func (x *ChangeInfo) GetUpdated() *timestamppb.Timestamp {
if x != nil {
return x.Updated
}
return nil
}
func (x *ChangeInfo) GetSubmitted() *timestamppb.Timestamp {
if x != nil {
return x.Submitted
}
return nil
}
func (x *ChangeInfo) GetRevertOf() int64 {
if x != nil {
return x.RevertOf
}
return 0
}
func (x *ChangeInfo) GetCherryPickOfChange() int64 {
if x != nil {
return x.CherryPickOfChange
}
return 0
}
func (x *ChangeInfo) GetReviewers() *ReviewerStatusMap {
if x != nil {
return x.Reviewers
}
return nil
}
func (x *ChangeInfo) GetMetaRevId() string {
if x != nil {
return x.MetaRevId
}
return ""
}
func (x *ChangeInfo) GetSubmitRequirements() []*SubmitRequirementResultInfo {
if x != nil {
return x.SubmitRequirements
}
return nil
}
func (x *ChangeInfo) GetSubject() string {
if x != nil {
return x.Subject
}
return ""
}
func (x *ChangeInfo) GetBranch() string {
if x != nil {
return x.Branch
}
return ""
}
// ReviewerStatusMap is a map that maps a reviewer state to a list of
// AccountInfo(s).
//
// ReviewerState includes REVIEWER, CC, and REMOVED, and this struct
// defines a field for each of then.
type ReviewerStatusMap struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The users who have been added to the change and voted.
Reviewers []*AccountInfo `protobuf:"bytes,1,rep,name=reviewers,proto3" json:"reviewers,omitempty"`
// The users who have been added to the change but haven't voted yet.
Ccs []*AccountInfo `protobuf:"bytes,2,rep,name=ccs,proto3" json:"ccs,omitempty"`
// The users who have been removed from the change.
Removed []*AccountInfo `protobuf:"bytes,3,rep,name=removed,proto3" json:"removed,omitempty"`
}
func (x *ReviewerStatusMap) Reset() {
*x = ReviewerStatusMap{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ReviewerStatusMap) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ReviewerStatusMap) ProtoMessage() {}
func (x *ReviewerStatusMap) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ReviewerStatusMap.ProtoReflect.Descriptor instead.
func (*ReviewerStatusMap) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{7}
}
func (x *ReviewerStatusMap) GetReviewers() []*AccountInfo {
if x != nil {
return x.Reviewers
}
return nil
}
func (x *ReviewerStatusMap) GetCcs() []*AccountInfo {
if x != nil {
return x.Ccs
}
return nil
}
func (x *ReviewerStatusMap) GetRemoved() []*AccountInfo {
if x != nil {
return x.Removed
}
return nil
}
// Information about a patch set.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#revision-info
type RevisionInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The kind of this patch set.
Kind RevisionInfo_Kind `protobuf:"varint,1,opt,name=kind,proto3,enum=gerrit.RevisionInfo_Kind" json:"kind,omitempty"`
// The patch set number.
Number int32 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
// The uploader of this patch set.
Uploader *AccountInfo `protobuf:"bytes,3,opt,name=uploader,proto3" json:"uploader,omitempty"`
// The Git reference for the patch set.
Ref string `protobuf:"bytes,4,opt,name=ref,proto3" json:"ref,omitempty"`
// The timestamp of when the patch set was created.
Created *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=created,proto3" json:"created,omitempty"`
// The description (aka title) of this patchset, as displayed in the patchset
// selector menu.
//
// Gerrit distinguishes empty string and no value, but here both are clamped
// into "".
//
// This is not CL description, aka Git commit message, which is stored in
// `commit.message`.
Description string `protobuf:"bytes,8,opt,name=description,proto3" json:"description,omitempty"`
// The commit metadata for the patchset.
//
// Only set if commit information is requested.
Commit *CommitInfo `protobuf:"bytes,5,opt,name=commit,proto3" json:"commit,omitempty"`
// A map of file paths to FileInfos.
//
// Only set if file information is requested.
Files map[string]*FileInfo `protobuf:"bytes,6,rep,name=files,proto3" json:"files,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *RevisionInfo) Reset() {
*x = RevisionInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RevisionInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RevisionInfo) ProtoMessage() {}
func (x *RevisionInfo) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RevisionInfo.ProtoReflect.Descriptor instead.
func (*RevisionInfo) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{8}
}
func (x *RevisionInfo) GetKind() RevisionInfo_Kind {
if x != nil {
return x.Kind
}
return RevisionInfo_KIND_INVALID
}
func (x *RevisionInfo) GetNumber() int32 {
if x != nil {
return x.Number
}
return 0
}
func (x *RevisionInfo) GetUploader() *AccountInfo {
if x != nil {
return x.Uploader
}
return nil
}
func (x *RevisionInfo) GetRef() string {
if x != nil {
return x.Ref
}
return ""
}
func (x *RevisionInfo) GetCreated() *timestamppb.Timestamp {
if x != nil {
return x.Created
}
return nil
}
func (x *RevisionInfo) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *RevisionInfo) GetCommit() *CommitInfo {
if x != nil {
return x.Commit
}
return nil
}
func (x *RevisionInfo) GetFiles() map[string]*FileInfo {
if x != nil {
return x.Files
}
return nil
}
// The CommitInfo entity contains information about a commit.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#commit-info
type CommitInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The commit ID. Not set if included in a RevisionInfo entity that is
// contained in a map which has the commit ID as key.
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Parents []*CommitInfo_Parent `protobuf:"bytes,2,rep,name=parents,proto3" json:"parents,omitempty"`
// The commit message.
// It is not set when CommitInfo is part of the GetRelatedChangesResponse.
Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
// The author of the commit as a GitPersonInfo entity.
Author *GitPersonInfo `protobuf:"bytes,4,opt,name=author,proto3" json:"author,omitempty"`
}
func (x *CommitInfo) Reset() {
*x = CommitInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CommitInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CommitInfo) ProtoMessage() {}
func (x *CommitInfo) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CommitInfo.ProtoReflect.Descriptor instead.
func (*CommitInfo) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{9}
}
func (x *CommitInfo) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *CommitInfo) GetParents() []*CommitInfo_Parent {
if x != nil {
return x.Parents
}
return nil
}
func (x *CommitInfo) GetMessage() string {
if x != nil {
return x.Message
}
return ""
}
func (x *CommitInfo) GetAuthor() *GitPersonInfo {
if x != nil {
return x.Author
}
return nil
}
// Information about a Label.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#label-info
type LabelInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Whether the label is optional.
Optional bool `protobuf:"varint,1,opt,name=optional,proto3" json:"optional,omitempty"`
// One user who approved this label on the change.
//
// Only set if LABELS are requested.
Approved *AccountInfo `protobuf:"bytes,2,opt,name=approved,proto3" json:"approved,omitempty"`
// One user who rejected this label on the change.
//
// Only set if LABELS are requested.
Rejected *AccountInfo `protobuf:"bytes,3,opt,name=rejected,proto3" json:"rejected,omitempty"`
// One user who recommended this label on the change.
//
// Only set if LABELS are requested.
Recommended *AccountInfo `protobuf:"bytes,4,opt,name=recommended,proto3" json:"recommended,omitempty"`
// One user who disliked this label on the change.
//
// Only set if LABELS are requested.
Disliked *AccountInfo `protobuf:"bytes,5,opt,name=disliked,proto3" json:"disliked,omitempty"`
// If true, the label blocks submit operation.
//
// Only set if LABELS are requested.
Blocking bool `protobuf:"varint,6,opt,name=blocking,proto3" json:"blocking,omitempty"`
// The voting value of the user who recommended/disliked this label on the
// change if it is not "+1"/"-1".
//
// Only set if LABELS are requested.
Value int32 `protobuf:"varint,7,opt,name=value,proto3" json:"value,omitempty"`
// The default voting value for the label.
//
// Only set if LABELS are requested.
DefaultValue int32 `protobuf:"varint,8,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"`
// List of all votes for this label.
//
// Items in this list may not represent actual votes cast by users; if a user
// votes on any label, a corresponding ApprovalInfo will appear in this list
// for all labels.
//
// Only set if DETAILED_LABELS are requested.
All []*ApprovalInfo `protobuf:"bytes,9,rep,name=all,proto3" json:"all,omitempty"`
// A map of all values that are allowed for this label to their descriptions.
//
// Only set if DETAILED_LABELS are requested.
Values map[int32]string `protobuf:"bytes,10,rep,name=values,proto3" json:"values,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *LabelInfo) Reset() {
*x = LabelInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LabelInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LabelInfo) ProtoMessage() {}
func (x *LabelInfo) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LabelInfo.ProtoReflect.Descriptor instead.
func (*LabelInfo) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{10}
}
func (x *LabelInfo) GetOptional() bool {
if x != nil {
return x.Optional
}
return false
}
func (x *LabelInfo) GetApproved() *AccountInfo {
if x != nil {
return x.Approved
}
return nil
}
func (x *LabelInfo) GetRejected() *AccountInfo {
if x != nil {
return x.Rejected
}
return nil
}
func (x *LabelInfo) GetRecommended() *AccountInfo {
if x != nil {
return x.Recommended
}
return nil
}
func (x *LabelInfo) GetDisliked() *AccountInfo {
if x != nil {
return x.Disliked
}
return nil
}
func (x *LabelInfo) GetBlocking() bool {
if x != nil {
return x.Blocking
}
return false
}
func (x *LabelInfo) GetValue() int32 {
if x != nil {
return x.Value
}
return 0
}
func (x *LabelInfo) GetDefaultValue() int32 {
if x != nil {
return x.DefaultValue
}
return 0
}
func (x *LabelInfo) GetAll() []*ApprovalInfo {
if x != nil {
return x.All
}
return nil
}
func (x *LabelInfo) GetValues() map[int32]string {
if x != nil {
return x.Values
}
return nil
}
// Information about an approval from a user for a label on a change.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#approval-info
type ApprovalInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// User who did the approval.
User *AccountInfo `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"`
// The vote that the user has given for the label.
Value int32 `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
// The range of votes the user is authorized to vote on that label.
//
// If absent, the user is not permitted to vote on that label.
PermittedVotingRange *VotingRangeInfo `protobuf:"bytes,3,opt,name=permitted_voting_range,json=permittedVotingRange,proto3" json:"permitted_voting_range,omitempty"`
// The time and date describing when the approval was made.
Date *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=date,proto3" json:"date,omitempty"`
// Value of the tag field from ReviewInput set while posting the review.
Tag string `protobuf:"bytes,5,opt,name=tag,proto3" json:"tag,omitempty"`
// If true, this vote was made after the change was submitted.
PostSubmit bool `protobuf:"varint,6,opt,name=post_submit,json=postSubmit,proto3" json:"post_submit,omitempty"`
}
func (x *ApprovalInfo) Reset() {
*x = ApprovalInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ApprovalInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ApprovalInfo) ProtoMessage() {}
func (x *ApprovalInfo) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ApprovalInfo.ProtoReflect.Descriptor instead.
func (*ApprovalInfo) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{11}
}
func (x *ApprovalInfo) GetUser() *AccountInfo {
if x != nil {
return x.User
}
return nil
}
func (x *ApprovalInfo) GetValue() int32 {
if x != nil {
return x.Value
}
return 0
}
func (x *ApprovalInfo) GetPermittedVotingRange() *VotingRangeInfo {
if x != nil {
return x.PermittedVotingRange
}
return nil
}
func (x *ApprovalInfo) GetDate() *timestamppb.Timestamp {
if x != nil {
return x.Date
}
return nil
}
func (x *ApprovalInfo) GetTag() string {
if x != nil {
return x.Tag
}
return ""
}
func (x *ApprovalInfo) GetPostSubmit() bool {
if x != nil {
return x.PostSubmit
}
return false
}
// VotingRangeInfo describes the continuous voting range from min to max values.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#voting-range-info
type VotingRangeInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The minimum voting value, inclusive.
Min int32 `protobuf:"varint,1,opt,name=min,proto3" json:"min,omitempty"`
// The maximum voting value, inclusive.
Max int32 `protobuf:"varint,2,opt,name=max,proto3" json:"max,omitempty"`
}
func (x *VotingRangeInfo) Reset() {
*x = VotingRangeInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *VotingRangeInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VotingRangeInfo) ProtoMessage() {}
func (x *VotingRangeInfo) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VotingRangeInfo.ProtoReflect.Descriptor instead.
func (*VotingRangeInfo) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{12}
}
func (x *VotingRangeInfo) GetMin() int32 {
if x != nil {
return x.Min
}
return 0
}
func (x *VotingRangeInfo) GetMax() int32 {
if x != nil {
return x.Max
}
return 0
}
// Information about a message attached to change.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#change-message-info
type ChangeMessageInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The ID of the message
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// Author of the message.
//
// Unset if written by the Gerrit system.
Author *AccountInfo `protobuf:"bytes,2,opt,name=author,proto3" json:"author,omitempty"`
// Real author of the message.
//
// Set if the message was posted on behalf of another user.
RealAuthor *AccountInfo `protobuf:"bytes,3,opt,name=real_author,json=realAuthor,proto3" json:"real_author,omitempty"`
// The timestamp this message was posted.
Date *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=date,proto3" json:"date,omitempty"`
// The text left by the user.
Message string `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"`
// Value of the tag field from ReviewInput set while posting the review
Tag string `protobuf:"bytes,6,opt,name=tag,proto3" json:"tag,omitempty"`
}
func (x *ChangeMessageInfo) Reset() {
*x = ChangeMessageInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ChangeMessageInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ChangeMessageInfo) ProtoMessage() {}
func (x *ChangeMessageInfo) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ChangeMessageInfo.ProtoReflect.Descriptor instead.
func (*ChangeMessageInfo) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{13}
}
func (x *ChangeMessageInfo) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *ChangeMessageInfo) GetAuthor() *AccountInfo {
if x != nil {
return x.Author
}
return nil
}
func (x *ChangeMessageInfo) GetRealAuthor() *AccountInfo {
if x != nil {
return x.RealAuthor
}
return nil
}
func (x *ChangeMessageInfo) GetDate() *timestamppb.Timestamp {
if x != nil {
return x.Date
}
return nil
}
func (x *ChangeMessageInfo) GetMessage() string {
if x != nil {
return x.Message
}
return ""
}
func (x *ChangeMessageInfo) GetTag() string {
if x != nil {
return x.Tag
}
return ""
}
// The Requirement entity contains information about a requirement relative to a
// change.
//
// The requirement explains what has to happen before the change will be
// submittable, e.g. owners CR+2 vote.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#requirement
type Requirement struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Status Requirement_Status `protobuf:"varint,1,opt,name=status,proto3,enum=gerrit.Requirement_Status" json:"status,omitempty"`
// A human readable reason.
FallbackText string `protobuf:"bytes,2,opt,name=fallback_text,json=fallbackText,proto3" json:"fallback_text,omitempty"`
// Alphanumerical (plus hyphens or underscores) string to identify what the
// requirement is and why it was triggered. Can be seen as a class:
// requirements sharing the same type were created for a similar reason, and
// the data structure will follow one set of rules.
Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
}
func (x *Requirement) Reset() {
*x = Requirement{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Requirement) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Requirement) ProtoMessage() {}
func (x *Requirement) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Requirement.ProtoReflect.Descriptor instead.
func (*Requirement) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{14}
}
func (x *Requirement) GetStatus() Requirement_Status {
if x != nil {
return x.Status
}
return Requirement_REQUIREMENT_STATUS_UNSPECIFIED
}
func (x *Requirement) GetFallbackText() string {
if x != nil {
return x.FallbackText
}
return ""
}
func (x *Requirement) GetType() string {
if x != nil {
return x.Type
}
return ""
}
// Information about a file in a patch set.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#file-info
type FileInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Status of the file.
Status FileInfo_Status `protobuf:"varint,1,opt,name=status,proto3,enum=gerrit.FileInfo_Status" json:"status,omitempty"`
// Whether the file is binary.
Binary bool `protobuf:"varint,2,opt,name=binary,proto3" json:"binary,omitempty"`
// The old file path; only set if renamed or copied.
OldPath string `protobuf:"bytes,3,opt,name=old_path,json=oldPath,proto3" json:"old_path,omitempty"`
// Number of lines inserted.
LinesInserted int32 `protobuf:"varint,4,opt,name=lines_inserted,json=linesInserted,proto3" json:"lines_inserted,omitempty"`
// Number of lines deleted.
LinesDeleted int32 `protobuf:"varint,5,opt,name=lines_deleted,json=linesDeleted,proto3" json:"lines_deleted,omitempty"`
// Number of bytes by which the file size increased/decreased.
SizeDelta int64 `protobuf:"varint,6,opt,name=size_delta,json=sizeDelta,proto3" json:"size_delta,omitempty"`
// File size in bytes.
Size int64 `protobuf:"varint,7,opt,name=size,proto3" json:"size,omitempty"`
}
func (x *FileInfo) Reset() {
*x = FileInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FileInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FileInfo) ProtoMessage() {}
func (x *FileInfo) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FileInfo.ProtoReflect.Descriptor instead.
func (*FileInfo) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{15}
}
func (x *FileInfo) GetStatus() FileInfo_Status {
if x != nil {
return x.Status
}
return FileInfo_M
}
func (x *FileInfo) GetBinary() bool {
if x != nil {
return x.Binary
}
return false
}
func (x *FileInfo) GetOldPath() string {
if x != nil {
return x.OldPath
}
return ""
}
func (x *FileInfo) GetLinesInserted() int32 {
if x != nil {
return x.LinesInserted
}
return 0
}
func (x *FileInfo) GetLinesDeleted() int32 {
if x != nil {
return x.LinesDeleted
}
return 0
}
func (x *FileInfo) GetSizeDelta() int64 {
if x != nil {
return x.SizeDelta
}
return 0
}
func (x *FileInfo) GetSize() int64 {
if x != nil {
return x.Size
}
return 0
}
// Information for creating a new change.
//
// Fields are a subset of:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#change-input
type CreateChangeRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
// Ref to base the new change at. e.g. refs/heads/master
Ref string `protobuf:"bytes,2,opt,name=ref,proto3" json:"ref,omitempty"`
Subject string `protobuf:"bytes,3,opt,name=subject,proto3" json:"subject,omitempty"`
// 40-digit hex SHA-1 of the git commit which will be the parent commit of the
// newly created change. If set, it must be a merged commit on the destination
// branch.
BaseCommit string `protobuf:"bytes,4,opt,name=base_commit,json=baseCommit,proto3" json:"base_commit,omitempty"`
Notify Notify `protobuf:"varint,5,opt,name=notify,proto3,enum=gerrit.Notify" json:"notify,omitempty"`
}
func (x *CreateChangeRequest) Reset() {
*x = CreateChangeRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CreateChangeRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CreateChangeRequest) ProtoMessage() {}
func (x *CreateChangeRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CreateChangeRequest.ProtoReflect.Descriptor instead.
func (*CreateChangeRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{16}
}
func (x *CreateChangeRequest) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
func (x *CreateChangeRequest) GetRef() string {
if x != nil {
return x.Ref
}
return ""
}
func (x *CreateChangeRequest) GetSubject() string {
if x != nil {
return x.Subject
}
return ""
}
func (x *CreateChangeRequest) GetBaseCommit() string {
if x != nil {
return x.BaseCommit
}
return ""
}
func (x *CreateChangeRequest) GetNotify() Notify {
if x != nil {
return x.Notify
}
return Notify_NOTIFY_UNSPECIFIED
}
// Information to submit a change.
//
// This is a placeholder to support the arguments from:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#submit-change
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#submit-input
type SubmitChangeRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The change number.
Number int64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
// The project of this change. For example, "chromium/src".
//
// Optional, but recommended for better routing and faster RPC execution.
Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"`
}
func (x *SubmitChangeRequest) Reset() {
*x = SubmitChangeRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SubmitChangeRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SubmitChangeRequest) ProtoMessage() {}
func (x *SubmitChangeRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SubmitChangeRequest.ProtoReflect.Descriptor instead.
func (*SubmitChangeRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{17}
}
func (x *SubmitChangeRequest) GetNumber() int64 {
if x != nil {
return x.Number
}
return 0
}
func (x *SubmitChangeRequest) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
// Information to submit a specific revision of a change.
//
// Fields encode the path arguments of
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#submit-revision
type SubmitRevisionRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The change number.
Number int64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
// Unique ID that identifies one revision of this change.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#revision-id
RevisionId string `protobuf:"bytes,2,opt,name=revision_id,json=revisionId,proto3" json:"revision_id,omitempty"`
// The project of this change. For example, "chromium/src".
//
// Optional, but recommended for better routing and faster RPC execution.
Project string `protobuf:"bytes,5,opt,name=project,proto3" json:"project,omitempty"`
}
func (x *SubmitRevisionRequest) Reset() {
*x = SubmitRevisionRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SubmitRevisionRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SubmitRevisionRequest) ProtoMessage() {}
func (x *SubmitRevisionRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[18]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SubmitRevisionRequest.ProtoReflect.Descriptor instead.
func (*SubmitRevisionRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{18}
}
func (x *SubmitRevisionRequest) GetNumber() int64 {
if x != nil {
return x.Number
}
return 0
}
func (x *SubmitRevisionRequest) GetRevisionId() string {
if x != nil {
return x.RevisionId
}
return ""
}
func (x *SubmitRevisionRequest) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
// Information about the change status after submitting.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#submit-info
type SubmitInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The status of the change after submitting is MERGED.
Status ChangeStatus `protobuf:"varint,1,opt,name=status,proto3,enum=gerrit.ChangeStatus" json:"status,omitempty"`
}
func (x *SubmitInfo) Reset() {
*x = SubmitInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SubmitInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SubmitInfo) ProtoMessage() {}
func (x *SubmitInfo) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[19]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SubmitInfo.ProtoReflect.Descriptor instead.
func (*SubmitInfo) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{19}
}
func (x *SubmitInfo) GetStatus() ChangeStatus {
if x != nil {
return x.Status
}
return ChangeStatus_CHANGE_STATUS_INVALID
}
// Information for changing contents of single file in a change edit.
//
// Fields encode the path arguments of
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#put-edit-file
type ChangeEditFileContentRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The change number.
Number int64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
// The project of this change. For example, "chromium/src".
//
// Optional, but recommended for better routing and faster RPC execution.
Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"`
// Path to the file to edit inside the project.
FilePath string `protobuf:"bytes,3,opt,name=file_path,json=filePath,proto3" json:"file_path,omitempty"`
// New content of the file. Overwrites existing contents entirely.
Content []byte `protobuf:"bytes,4,opt,name=content,proto3" json:"content,omitempty"`
}
func (x *ChangeEditFileContentRequest) Reset() {
*x = ChangeEditFileContentRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ChangeEditFileContentRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ChangeEditFileContentRequest) ProtoMessage() {}
func (x *ChangeEditFileContentRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[20]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ChangeEditFileContentRequest.ProtoReflect.Descriptor instead.
func (*ChangeEditFileContentRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{20}
}
func (x *ChangeEditFileContentRequest) GetNumber() int64 {
if x != nil {
return x.Number
}
return 0
}
func (x *ChangeEditFileContentRequest) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
func (x *ChangeEditFileContentRequest) GetFilePath() string {
if x != nil {
return x.FilePath
}
return ""
}
func (x *ChangeEditFileContentRequest) GetContent() []byte {
if x != nil {
return x.Content
}
return nil
}
// Information for deleting contents of single file in a change edit.
//
// Fields encode the path arguments of
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#delete-edit-file
type DeleteEditFileContentRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The change number.
Number int64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
// The project of this change. For example, "chromium/src".
//
// Optional, but recommended for better routing and faster RPC execution.
Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"`
// Path to the file to edit inside the project.
FilePath string `protobuf:"bytes,3,opt,name=file_path,json=filePath,proto3" json:"file_path,omitempty"`
}
func (x *DeleteEditFileContentRequest) Reset() {
*x = DeleteEditFileContentRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeleteEditFileContentRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeleteEditFileContentRequest) ProtoMessage() {}
func (x *DeleteEditFileContentRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[21]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DeleteEditFileContentRequest.ProtoReflect.Descriptor instead.
func (*DeleteEditFileContentRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{21}
}
func (x *DeleteEditFileContentRequest) GetNumber() int64 {
if x != nil {
return x.Number
}
return 0
}
func (x *DeleteEditFileContentRequest) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
func (x *DeleteEditFileContentRequest) GetFilePath() string {
if x != nil {
return x.FilePath
}
return ""
}
// Information for publishing a change edit.
//
// This is a placeholder to support the arguments from:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#publish-edit
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#publish-change-edit-input
type ChangeEditPublishRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The change number.
Number int64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
// The project of this change. For example, "chromium/src".
//
// Optional, but recommended for better routing and faster RPC execution.
Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"`
}
func (x *ChangeEditPublishRequest) Reset() {
*x = ChangeEditPublishRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ChangeEditPublishRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ChangeEditPublishRequest) ProtoMessage() {}
func (x *ChangeEditPublishRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[22]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ChangeEditPublishRequest.ProtoReflect.Descriptor instead.
func (*ChangeEditPublishRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{22}
}
func (x *ChangeEditPublishRequest) GetNumber() int64 {
if x != nil {
return x.Number
}
return 0
}
func (x *ChangeEditPublishRequest) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
// Information for reverting a change.
//
// Fields are a subset of arguments from:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#revert-change
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#revert-input
type RevertChangeRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The change number.
Number int64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
// The project of this change. For example, "chromium/src".
//
// Optional, but recommended for better routing and faster RPC execution.
Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"`
// Message to be added as review comment to the change when reverting the change.
//
// Optional
Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
}
func (x *RevertChangeRequest) Reset() {
*x = RevertChangeRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RevertChangeRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RevertChangeRequest) ProtoMessage() {}
func (x *RevertChangeRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[23]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RevertChangeRequest.ProtoReflect.Descriptor instead.
func (*RevertChangeRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{23}
}
func (x *RevertChangeRequest) GetNumber() int64 {
if x != nil {
return x.Number
}
return 0
}
func (x *RevertChangeRequest) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
func (x *RevertChangeRequest) GetMessage() string {
if x != nil {
return x.Message
}
return ""
}
// Information for abandoning a change.
//
// Fields are a subset of arguments from:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#abandon-change
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#abandon-input
type AbandonChangeRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The change number.
Number int64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
// The project of this change. For example, "chromium/src".
//
// Optional, but recommended for better routing and faster RPC execution.
Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"`
Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
}
func (x *AbandonChangeRequest) Reset() {
*x = AbandonChangeRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AbandonChangeRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AbandonChangeRequest) ProtoMessage() {}
func (x *AbandonChangeRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[24]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AbandonChangeRequest.ProtoReflect.Descriptor instead.
func (*AbandonChangeRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{24}
}
func (x *AbandonChangeRequest) GetNumber() int64 {
if x != nil {
return x.Number
}
return 0
}
func (x *AbandonChangeRequest) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
func (x *AbandonChangeRequest) GetMessage() string {
if x != nil {
return x.Message
}
return ""
}
// Information for adding a reviewer.
//
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#add-reviewer
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#reviewer-input
type AddReviewerRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The change number.
Number int64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
// The project of this change. For example, "chromium/src".
//
// Optional, but recommended for better routing and faster RPC execution.
Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"`
// The ID of a single account or group to review the change.
//
// https://gerrit-review.googlesource.com/Documentation/rest-api-accounts.html#account-id
Reviewer string `protobuf:"bytes,3,opt,name=reviewer,proto3" json:"reviewer,omitempty"`
// The state to add reviewer in, defaults to REVIEWER.
State AddReviewerRequest_State `protobuf:"varint,4,opt,name=state,proto3,enum=gerrit.AddReviewerRequest_State" json:"state,omitempty"`
// Whether adding the reviewer is confirmed.
Confirmed bool `protobuf:"varint,5,opt,name=confirmed,proto3" json:"confirmed,omitempty"`
// Defines who should be notified after reviewer is added, defaults to ALL.
Notify Notify `protobuf:"varint,6,opt,name=notify,proto3,enum=gerrit.Notify" json:"notify,omitempty"`
}
func (x *AddReviewerRequest) Reset() {
*x = AddReviewerRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AddReviewerRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AddReviewerRequest) ProtoMessage() {}
func (x *AddReviewerRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[25]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AddReviewerRequest.ProtoReflect.Descriptor instead.
func (*AddReviewerRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{25}
}
func (x *AddReviewerRequest) GetNumber() int64 {
if x != nil {
return x.Number
}
return 0
}
func (x *AddReviewerRequest) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
func (x *AddReviewerRequest) GetReviewer() string {
if x != nil {
return x.Reviewer
}
return ""
}
func (x *AddReviewerRequest) GetState() AddReviewerRequest_State {
if x != nil {
return x.State
}
return AddReviewerRequest_ADD_REVIEWER_STATE_UNSPECIFIED
}
func (x *AddReviewerRequest) GetConfirmed() bool {
if x != nil {
return x.Confirmed
}
return false
}
func (x *AddReviewerRequest) GetNotify() Notify {
if x != nil {
return x.Notify
}
return Notify_NOTIFY_UNSPECIFIED
}
// Information about a reviewer. A superset of information from AccountInfo.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#reviewer-info
type ReviewerInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The detailed account information about a reviewer.
Account *AccountInfo `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"`
// The approvals as a map of label names to approval values.
Approvals map[string]int32 `protobuf:"bytes,2,rep,name=approvals,proto3" json:"approvals,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}
func (x *ReviewerInfo) Reset() {
*x = ReviewerInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ReviewerInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ReviewerInfo) ProtoMessage() {}
func (x *ReviewerInfo) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[26]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ReviewerInfo.ProtoReflect.Descriptor instead.
func (*ReviewerInfo) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{26}
}
func (x *ReviewerInfo) GetAccount() *AccountInfo {
if x != nil {
return x.Account
}
return nil
}
func (x *ReviewerInfo) GetApprovals() map[string]int32 {
if x != nil {
return x.Approvals
}
return nil
}
// The result of adding a reviewer to a change
//
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#add-reviewer
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#add-reviewer-result
type AddReviewerResult struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The Account ID from the AddReviewerRequest.reviewer field
//
// https://gerrit-review.googlesource.com/Documentation/rest-api-accounts.html#account-id
Input string `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"`
// The newly added reviewers
// If a group is added as a reviewer (or cc)
// all group members are added.
Reviewers []*ReviewerInfo `protobuf:"bytes,2,rep,name=reviewers,proto3" json:"reviewers,omitempty"`
// The newly cc'd accounts
Ccs []*ReviewerInfo `protobuf:"bytes,3,rep,name=ccs,proto3" json:"ccs,omitempty"`
// The error message
Error string `protobuf:"bytes,4,opt,name=error,proto3" json:"error,omitempty"`
// Whether adding the reviewer requires confirmation
Confirm bool `protobuf:"varint,5,opt,name=confirm,proto3" json:"confirm,omitempty"`
}
func (x *AddReviewerResult) Reset() {
*x = AddReviewerResult{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AddReviewerResult) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AddReviewerResult) ProtoMessage() {}
func (x *AddReviewerResult) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[27]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AddReviewerResult.ProtoReflect.Descriptor instead.
func (*AddReviewerResult) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{27}
}
func (x *AddReviewerResult) GetInput() string {
if x != nil {
return x.Input
}
return ""
}
func (x *AddReviewerResult) GetReviewers() []*ReviewerInfo {
if x != nil {
return x.Reviewers
}
return nil
}
func (x *AddReviewerResult) GetCcs() []*ReviewerInfo {
if x != nil {
return x.Ccs
}
return nil
}
func (x *AddReviewerResult) GetError() string {
if x != nil {
return x.Error
}
return ""
}
func (x *AddReviewerResult) GetConfirm() bool {
if x != nil {
return x.Confirm
}
return false
}
type DeleteReviewerRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The change number.
Number int64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
// The project of this change. For example, "chromium/src".
//
// Optional, but recommended for better routing and faster RPC execution.
Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"`
// The ID of a single account or group to review the change.
//
// https://gerrit-review.googlesource.com/Documentation/rest-api-accounts.html#account-id
AccountId string `protobuf:"bytes,3,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"`
}
func (x *DeleteReviewerRequest) Reset() {
*x = DeleteReviewerRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeleteReviewerRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeleteReviewerRequest) ProtoMessage() {}
func (x *DeleteReviewerRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[28]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DeleteReviewerRequest.ProtoReflect.Descriptor instead.
func (*DeleteReviewerRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{28}
}
func (x *DeleteReviewerRequest) GetNumber() int64 {
if x != nil {
return x.Number
}
return 0
}
func (x *DeleteReviewerRequest) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
func (x *DeleteReviewerRequest) GetAccountId() string {
if x != nil {
return x.AccountId
}
return ""
}
// Information to set various review bits on a change
//
// Fields are a subset of arguments from:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#set-review
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#review-input
type SetReviewRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The change number.
Number int64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
// The project of this change. For example, "chromium/src".
//
// Optional, but recommended for better routing and faster RPC execution.
Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"`
// Unique ID for the revision to query.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#revision-id
RevisionId string `protobuf:"bytes,3,opt,name=revision_id,json=revisionId,proto3" json:"revision_id,omitempty"`
// Message to be added to the change along with this review.
Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message,omitempty"`
// labels to add, e.g.:
//
// {
// "Code-Review": -1,
// "Verified": 1,
// }
Labels map[string]int32 `protobuf:"bytes,5,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
// Tag to be applied to the review comment message, votes, and inline
// comments.
//
// Tags may be used by CI or other automated systems to distinguish them
// from human reviews. Votes/comments that contain tag with 'autogenerated:'
// prefix can be filtered out in the web UI.
Tag string `protobuf:"bytes,6,opt,name=tag,proto3" json:"tag,omitempty"`
// Notify defines to whom email notifications should be sent.
Notify Notify `protobuf:"varint,7,opt,name=notify,proto3,enum=gerrit.Notify" json:"notify,omitempty"`
// NotifyDetails contains additional information about whom to notify.
//
// These notifications are sent out even if `notify` options disables normal
// notifications.
NotifyDetails *NotifyDetails `protobuf:"bytes,8,opt,name=notify_details,json=notifyDetails,proto3" json:"notify_details,omitempty"`
// The account_id that the review should be posted on behalf of.
//
// To use this option the caller must have been granted labelAs-NAME
// permission for all keys of labels.
OnBehalfOf int64 `protobuf:"varint,9,opt,name=on_behalf_of,json=onBehalfOf,proto3" json:"on_behalf_of,omitempty"`
// If true, then start review.
// It is an error for both ready and work_in_progress to be true at the same
// time.
Ready bool `protobuf:"varint,10,opt,name=ready,proto3" json:"ready,omitempty"`
// If true, mark the change as work in progress.
// It is an error for both ready and work_in_progress to be true at the same
// time.
WorkInProgress bool `protobuf:"varint,11,opt,name=work_in_progress,json=workInProgress,proto3" json:"work_in_progress,omitempty"`
// list of AttentionSetInput entities to add to the attention set. Users that
// are not reviewers, ccs, owner, or uploader are silently ignored.
AddToAttentionSet []*AttentionSetInput `protobuf:"bytes,12,rep,name=add_to_attention_set,json=addToAttentionSet,proto3" json:"add_to_attention_set,omitempty"`
// list of AttentionSetInput entities to remove from the attention set.
RemoveFromAttentionSet []*AttentionSetInput `protobuf:"bytes,13,rep,name=remove_from_attention_set,json=removeFromAttentionSet,proto3" json:"remove_from_attention_set,omitempty"`
// If true, ignore all automatic attention set rules described in the
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#attention-set
//
// Updates in add_to_attention_set and remove_from_attention_set are not
// ignored.
IgnoreAutomaticAttentionSetRules bool `protobuf:"varint,14,opt,name=ignore_automatic_attention_set_rules,json=ignoreAutomaticAttentionSetRules,proto3" json:"ignore_automatic_attention_set_rules,omitempty"`
// list of ReviewerInput entities representing reviewers that should be
// added to the change.
Reviewers []*ReviewerInput `protobuf:"bytes,15,rep,name=reviewers,proto3" json:"reviewers,omitempty"`
}
func (x *SetReviewRequest) Reset() {
*x = SetReviewRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SetReviewRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SetReviewRequest) ProtoMessage() {}
func (x *SetReviewRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[29]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SetReviewRequest.ProtoReflect.Descriptor instead.
func (*SetReviewRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{29}
}
func (x *SetReviewRequest) GetNumber() int64 {
if x != nil {
return x.Number
}
return 0
}
func (x *SetReviewRequest) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
func (x *SetReviewRequest) GetRevisionId() string {
if x != nil {
return x.RevisionId
}
return ""
}
func (x *SetReviewRequest) GetMessage() string {
if x != nil {
return x.Message
}
return ""
}
func (x *SetReviewRequest) GetLabels() map[string]int32 {
if x != nil {
return x.Labels
}
return nil
}
func (x *SetReviewRequest) GetTag() string {
if x != nil {
return x.Tag
}
return ""
}
func (x *SetReviewRequest) GetNotify() Notify {
if x != nil {
return x.Notify
}
return Notify_NOTIFY_UNSPECIFIED
}
func (x *SetReviewRequest) GetNotifyDetails() *NotifyDetails {
if x != nil {
return x.NotifyDetails
}
return nil
}
func (x *SetReviewRequest) GetOnBehalfOf() int64 {
if x != nil {
return x.OnBehalfOf
}
return 0
}
func (x *SetReviewRequest) GetReady() bool {
if x != nil {
return x.Ready
}
return false
}
func (x *SetReviewRequest) GetWorkInProgress() bool {
if x != nil {
return x.WorkInProgress
}
return false
}
func (x *SetReviewRequest) GetAddToAttentionSet() []*AttentionSetInput {
if x != nil {
return x.AddToAttentionSet
}
return nil
}
func (x *SetReviewRequest) GetRemoveFromAttentionSet() []*AttentionSetInput {
if x != nil {
return x.RemoveFromAttentionSet
}
return nil
}
func (x *SetReviewRequest) GetIgnoreAutomaticAttentionSetRules() bool {
if x != nil {
return x.IgnoreAutomaticAttentionSetRules
}
return false
}
func (x *SetReviewRequest) GetReviewers() []*ReviewerInput {
if x != nil {
return x.Reviewers
}
return nil
}
// Information to add reviewers to a change.
//
// Fields are a subset of arguments from:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#reviewer-input
type ReviewerInput struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The ID of a single account or group to review the change.
//
// https://gerrit-review.googlesource.com/Documentation/rest-api-accounts.html#account-id
Reviewer string `protobuf:"bytes,1,opt,name=reviewer,proto3" json:"reviewer,omitempty"`
// Optional - Add reviewer in this state.
//
// Possible reviewer states are REVIEWER and CC. If not given,
// Gerrit defaults to REVIEWER.
State ReviewerInput_State `protobuf:"varint,2,opt,name=state,proto3,enum=gerrit.ReviewerInput_State" json:"state,omitempty"`
}
func (x *ReviewerInput) Reset() {
*x = ReviewerInput{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ReviewerInput) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ReviewerInput) ProtoMessage() {}
func (x *ReviewerInput) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[30]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ReviewerInput.ProtoReflect.Descriptor instead.
func (*ReviewerInput) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{30}
}
func (x *ReviewerInput) GetReviewer() string {
if x != nil {
return x.Reviewer
}
return ""
}
func (x *ReviewerInput) GetState() ReviewerInput_State {
if x != nil {
return x.State
}
return ReviewerInput_REVIEWER_INPUT_STATE_UNSPECIFIED
}
// Information returned by a SetReview RPC.
//
// Fields are a subset of:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#review-result
type ReviewResult struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Map of labels to values after the review was posted. Null if any reviewer
// additions were rejected.
Labels map[string]int32 `protobuf:"bytes,1,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
// Map of account or group identifier to ReviewerResult representing
// the outcome of adding a reviewer.
//
// Absent if no reviewer additions were requested.
Reviewers map[string]*AddReviewerResult `protobuf:"bytes,2,rep,name=reviewers,proto3" json:"reviewers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *ReviewResult) Reset() {
*x = ReviewResult{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[31]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ReviewResult) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ReviewResult) ProtoMessage() {}
func (x *ReviewResult) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[31]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ReviewResult.ProtoReflect.Descriptor instead.
func (*ReviewResult) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{31}
}
func (x *ReviewResult) GetLabels() map[string]int32 {
if x != nil {
return x.Labels
}
return nil
}
func (x *ReviewResult) GetReviewers() map[string]*AddReviewerResult {
if x != nil {
return x.Reviewers
}
return nil
}
// Information to add/remove a user from the attention set of a change.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#attention-set-input
type AttentionSetRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The change number.
Number int64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
// The project of this change. For example, "chromium/src".
//
// Optional, but recommended for better routing and faster RPC execution.
Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"`
Input *AttentionSetInput `protobuf:"bytes,6,opt,name=input,proto3" json:"input,omitempty"`
}
func (x *AttentionSetRequest) Reset() {
*x = AttentionSetRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[32]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AttentionSetRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AttentionSetRequest) ProtoMessage() {}
func (x *AttentionSetRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[32]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AttentionSetRequest.ProtoReflect.Descriptor instead.
func (*AttentionSetRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{32}
}
func (x *AttentionSetRequest) GetNumber() int64 {
if x != nil {
return x.Number
}
return 0
}
func (x *AttentionSetRequest) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
func (x *AttentionSetRequest) GetInput() *AttentionSetInput {
if x != nil {
return x.Input
}
return nil
}
// Information to add/remove a user from the attention set.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#attention-set-input
type AttentionSetInput struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// A unique identifier for an account.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-accounts.html#account-id
User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"`
// The justification for adding/removing the user.
Reason string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"`
// Defines who should be notified after change is created, defaults to OWNER.
Notify Notify `protobuf:"varint,3,opt,name=notify,proto3,enum=gerrit.Notify" json:"notify,omitempty"`
// NotifyDetails contains additional information about whom to notify.
//
// These notifications are sent out even if `notify` options disables normal
// notifications.
NotifyDetails *NotifyDetails `protobuf:"bytes,4,opt,name=notify_details,json=notifyDetails,proto3" json:"notify_details,omitempty"`
}
func (x *AttentionSetInput) Reset() {
*x = AttentionSetInput{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[33]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AttentionSetInput) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AttentionSetInput) ProtoMessage() {}
func (x *AttentionSetInput) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[33]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AttentionSetInput.ProtoReflect.Descriptor instead.
func (*AttentionSetInput) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{33}
}
func (x *AttentionSetInput) GetUser() string {
if x != nil {
return x.User
}
return ""
}
func (x *AttentionSetInput) GetReason() string {
if x != nil {
return x.Reason
}
return ""
}
func (x *AttentionSetInput) GetNotify() Notify {
if x != nil {
return x.Notify
}
return Notify_NOTIFY_UNSPECIFIED
}
func (x *AttentionSetInput) GetNotifyDetails() *NotifyDetails {
if x != nil {
return x.NotifyDetails
}
return nil
}
type GetMergeableRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The change number.
Number int64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
// The project of this change. For example, "chromium/src".
//
// Optional, but recommended for better routing and faster RPC execution.
Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"`
// Unique ID for the revision to query.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#revision-id
RevisionId string `protobuf:"bytes,3,opt,name=revision_id,json=revisionId,proto3" json:"revision_id,omitempty"`
// The source to merge from, e.g. a complete or abbreviated commit SHA-1, a
// complete reference name, a short reference name under refs/heads,
// refs/tags, or refs/remotes namespace, etc.
Source string `protobuf:"bytes,4,opt,name=source,proto3" json:"source,omitempty"`
// The strategy of the merge.
Strategy MergeableStrategy `protobuf:"varint,5,opt,name=strategy,proto3,enum=gerrit.MergeableStrategy" json:"strategy,omitempty"`
}
func (x *GetMergeableRequest) Reset() {
*x = GetMergeableRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[34]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetMergeableRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetMergeableRequest) ProtoMessage() {}
func (x *GetMergeableRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[34]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetMergeableRequest.ProtoReflect.Descriptor instead.
func (*GetMergeableRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{34}
}
func (x *GetMergeableRequest) GetNumber() int64 {
if x != nil {
return x.Number
}
return 0
}
func (x *GetMergeableRequest) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
func (x *GetMergeableRequest) GetRevisionId() string {
if x != nil {
return x.RevisionId
}
return ""
}
func (x *GetMergeableRequest) GetSource() string {
if x != nil {
return x.Source
}
return ""
}
func (x *GetMergeableRequest) GetStrategy() MergeableStrategy {
if x != nil {
return x.Strategy
}
return MergeableStrategy_MERGEABLE_STRATEGY_UNSPECIFIED
}
// Contains information about the mergeability of a change.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#mergeable-info
type MergeableInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Submit type used for this change.
SubmitType MergeableInfo_SubmitType `protobuf:"varint,1,opt,name=submit_type,json=submitType,proto3,enum=gerrit.MergeableInfo_SubmitType" json:"submit_type,omitempty"`
// The strategy of the merge.
Strategy MergeableStrategy `protobuf:"varint,2,opt,name=strategy,proto3,enum=gerrit.MergeableStrategy" json:"strategy,omitempty"`
// true if this change is cleanly mergeable, false otherwise.
Mergeable bool `protobuf:"varint,3,opt,name=mergeable,proto3" json:"mergeable,omitempty"`
// true if this change is already merged, false otherwise.
CommitMerged bool `protobuf:"varint,4,opt,name=commit_merged,json=commitMerged,proto3" json:"commit_merged,omitempty"`
// true if the content of this change is already merged, false otherwise.
ContentMerged bool `protobuf:"varint,5,opt,name=content_merged,json=contentMerged,proto3" json:"content_merged,omitempty"`
// A list of paths with conflicts.
Conflicts []string `protobuf:"bytes,6,rep,name=conflicts,proto3" json:"conflicts,omitempty"`
// A list of other branch names where this change could merge cleanly.
MergeableInto []string `protobuf:"bytes,7,rep,name=mergeable_into,json=mergeableInto,proto3" json:"mergeable_into,omitempty"`
}
func (x *MergeableInfo) Reset() {
*x = MergeableInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[35]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MergeableInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MergeableInfo) ProtoMessage() {}
func (x *MergeableInfo) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[35]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MergeableInfo.ProtoReflect.Descriptor instead.
func (*MergeableInfo) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{35}
}
func (x *MergeableInfo) GetSubmitType() MergeableInfo_SubmitType {
if x != nil {
return x.SubmitType
}
return MergeableInfo_SUBMIT_TYPE_UNSPECIFIED
}
func (x *MergeableInfo) GetStrategy() MergeableStrategy {
if x != nil {
return x.Strategy
}
return MergeableStrategy_MERGEABLE_STRATEGY_UNSPECIFIED
}
func (x *MergeableInfo) GetMergeable() bool {
if x != nil {
return x.Mergeable
}
return false
}
func (x *MergeableInfo) GetCommitMerged() bool {
if x != nil {
return x.CommitMerged
}
return false
}
func (x *MergeableInfo) GetContentMerged() bool {
if x != nil {
return x.ContentMerged
}
return false
}
func (x *MergeableInfo) GetConflicts() []string {
if x != nil {
return x.Conflicts
}
return nil
}
func (x *MergeableInfo) GetMergeableInto() []string {
if x != nil {
return x.MergeableInto
}
return nil
}
// Information for requesting the files in a change.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#list-files
type ListFilesRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Change number.
Number int64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
// The project of this change. For example, "chromium/src".
//
// Optional, but recommended for better routing and faster RPC execution.
Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"`
// Unique ID for the revision to query.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#revision-id
RevisionId string `protobuf:"bytes,3,opt,name=revision_id,json=revisionId,proto3" json:"revision_id,omitempty"`
// Changes the response to return a list of all files (modified or unmodified)
// that contain this substring in the path name.
SubstringQuery string `protobuf:"bytes,4,opt,name=substring_query,json=substringQuery,proto3" json:"substring_query,omitempty"`
// For merge commits only, this requests a diff of files against a parent
// revision. Use value 1 to compare against a CL's target ref.
Parent int64 `protobuf:"varint,5,opt,name=parent,proto3" json:"parent,omitempty"`
// Can either be a revision id or a patchset number. It changes the response
// to return a map of the files which are different in this commit compared
// to the given revision. The revision must correspond to a patch set in the
// change.
Base string `protobuf:"bytes,6,opt,name=base,proto3" json:"base,omitempty"`
}
func (x *ListFilesRequest) Reset() {
*x = ListFilesRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[36]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListFilesRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListFilesRequest) ProtoMessage() {}
func (x *ListFilesRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[36]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListFilesRequest.ProtoReflect.Descriptor instead.
func (*ListFilesRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{36}
}
func (x *ListFilesRequest) GetNumber() int64 {
if x != nil {
return x.Number
}
return 0
}
func (x *ListFilesRequest) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
func (x *ListFilesRequest) GetRevisionId() string {
if x != nil {
return x.RevisionId
}
return ""
}
func (x *ListFilesRequest) GetSubstringQuery() string {
if x != nil {
return x.SubstringQuery
}
return ""
}
func (x *ListFilesRequest) GetParent() int64 {
if x != nil {
return x.Parent
}
return 0
}
func (x *ListFilesRequest) GetBase() string {
if x != nil {
return x.Base
}
return ""
}
// Information about the files in a change.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#list-files
type ListFilesResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// A map of file paths to FileInfos.
Files map[string]*FileInfo `protobuf:"bytes,1,rep,name=files,proto3" json:"files,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *ListFilesResponse) Reset() {
*x = ListFilesResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[37]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListFilesResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListFilesResponse) ProtoMessage() {}
func (x *ListFilesResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[37]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListFilesResponse.ProtoReflect.Descriptor instead.
func (*ListFilesResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{37}
}
func (x *ListFilesResponse) GetFiles() map[string]*FileInfo {
if x != nil {
return x.Files
}
return nil
}
// Information for requesting the related changes of a change.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#get-related-changes
type GetRelatedChangesRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Change number.
Number int64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
// The project of this change. For example, "chromium/src".
//
// Optional, but recommended for better routing and faster RPC execution.
Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"`
// Unique ID for the revision to query.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#revision-id
RevisionId string `protobuf:"bytes,3,opt,name=revision_id,json=revisionId,proto3" json:"revision_id,omitempty"`
}
func (x *GetRelatedChangesRequest) Reset() {
*x = GetRelatedChangesRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[38]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetRelatedChangesRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetRelatedChangesRequest) ProtoMessage() {}
func (x *GetRelatedChangesRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[38]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetRelatedChangesRequest.ProtoReflect.Descriptor instead.
func (*GetRelatedChangesRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{38}
}
func (x *GetRelatedChangesRequest) GetNumber() int64 {
if x != nil {
return x.Number
}
return 0
}
func (x *GetRelatedChangesRequest) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
func (x *GetRelatedChangesRequest) GetRevisionId() string {
if x != nil {
return x.RevisionId
}
return ""
}
// Information about related changes of a specific change's revision.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#related-changes-info
type GetRelatedChangesResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// A list of describing the related changes.
//
// Sorted by git commit order, newest to oldest. Empty if there are no related
// changes.
Changes []*GetRelatedChangesResponse_ChangeAndCommit `protobuf:"bytes,1,rep,name=changes,proto3" json:"changes,omitempty"`
}
func (x *GetRelatedChangesResponse) Reset() {
*x = GetRelatedChangesResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[39]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetRelatedChangesResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetRelatedChangesResponse) ProtoMessage() {}
func (x *GetRelatedChangesResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[39]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetRelatedChangesResponse.ProtoReflect.Descriptor instead.
func (*GetRelatedChangesResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{39}
}
func (x *GetRelatedChangesResponse) GetChanges() []*GetRelatedChangesResponse_ChangeAndCommit {
if x != nil {
return x.Changes
}
return nil
}
// Information for requesting the projects on a host.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/cmd-ls-projects.html
type ListProjectsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Limit results to projects with any of the specified refs, e.g.: refs/heads/main.
// Ref SHA1 will be included in the results.
Refs []string `protobuf:"bytes,1,rep,name=refs,proto3" json:"refs,omitempty"`
}
func (x *ListProjectsRequest) Reset() {
*x = ListProjectsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[40]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListProjectsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListProjectsRequest) ProtoMessage() {}
func (x *ListProjectsRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[40]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListProjectsRequest.ProtoReflect.Descriptor instead.
func (*ListProjectsRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{40}
}
func (x *ListProjectsRequest) GetRefs() []string {
if x != nil {
return x.Refs
}
return nil
}
// Describes a link to an external site
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#web-link-info
type WebLinkInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The link name
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Link URL
Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"`
// URL to link icon
ImageUrl string `protobuf:"bytes,3,opt,name=image_url,json=imageUrl,proto3" json:"image_url,omitempty"`
}
func (x *WebLinkInfo) Reset() {
*x = WebLinkInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[41]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *WebLinkInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*WebLinkInfo) ProtoMessage() {}
func (x *WebLinkInfo) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[41]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use WebLinkInfo.ProtoReflect.Descriptor instead.
func (*WebLinkInfo) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{41}
}
func (x *WebLinkInfo) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *WebLinkInfo) GetUrl() string {
if x != nil {
return x.Url
}
return ""
}
func (x *WebLinkInfo) GetImageUrl() string {
if x != nil {
return x.ImageUrl
}
return ""
}
// Information about individual projects.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-projects.html#project-info
type ProjectInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The project name
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// The name of the parent project
Parent string `protobuf:"bytes,2,opt,name=parent,proto3" json:"parent,omitempty"`
// The description of the project
Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
// The state of the project
State ProjectInfo_State `protobuf:"varint,4,opt,name=state,proto3,enum=gerrit.ProjectInfo_State" json:"state,omitempty"`
// Map of ref names to HEAD revisions
Refs map[string]string `protobuf:"bytes,5,rep,name=refs,proto3" json:"refs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
// List of links to the project in external sites
WebLinks []*WebLinkInfo `protobuf:"bytes,6,rep,name=web_links,json=webLinks,proto3" json:"web_links,omitempty"`
}
func (x *ProjectInfo) Reset() {
*x = ProjectInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[42]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ProjectInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ProjectInfo) ProtoMessage() {}
func (x *ProjectInfo) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[42]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ProjectInfo.ProtoReflect.Descriptor instead.
func (*ProjectInfo) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{42}
}
func (x *ProjectInfo) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *ProjectInfo) GetParent() string {
if x != nil {
return x.Parent
}
return ""
}
func (x *ProjectInfo) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *ProjectInfo) GetState() ProjectInfo_State {
if x != nil {
return x.State
}
return ProjectInfo_PROJECT_STATE_UNSPECIFIED
}
func (x *ProjectInfo) GetRefs() map[string]string {
if x != nil {
return x.Refs
}
return nil
}
func (x *ProjectInfo) GetWebLinks() []*WebLinkInfo {
if x != nil {
return x.WebLinks
}
return nil
}
// Information about the projects on a host.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-projects.html#project-info
type ListProjectsResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// A map of project names to ProjectInfo entries, sorted by project name.
Projects map[string]*ProjectInfo `protobuf:"bytes,1,rep,name=Projects,proto3" json:"Projects,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *ListProjectsResponse) Reset() {
*x = ListProjectsResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[43]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListProjectsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListProjectsResponse) ProtoMessage() {}
func (x *ListProjectsResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[43]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListProjectsResponse.ProtoReflect.Descriptor instead.
func (*ListProjectsResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{43}
}
func (x *ListProjectsResponse) GetProjects() map[string]*ProjectInfo {
if x != nil {
return x.Projects
}
return nil
}
// Information to request information about a branch.
type RefInfoRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The project name
Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
// The ref ID (eg: refs/heads/main).
Ref string `protobuf:"bytes,2,opt,name=ref,proto3" json:"ref,omitempty"`
}
func (x *RefInfoRequest) Reset() {
*x = RefInfoRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[44]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RefInfoRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RefInfoRequest) ProtoMessage() {}
func (x *RefInfoRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[44]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RefInfoRequest.ProtoReflect.Descriptor instead.
func (*RefInfoRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{44}
}
func (x *RefInfoRequest) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
func (x *RefInfoRequest) GetRef() string {
if x != nil {
return x.Ref
}
return ""
}
// Information about a branch.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-projects.html#branch-info
type RefInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The ref of the branch
Ref string `protobuf:"bytes,1,opt,name=ref,proto3" json:"ref,omitempty"`
// The revision the branch points to
Revision string `protobuf:"bytes,2,opt,name=revision,proto3" json:"revision,omitempty"`
}
func (x *RefInfo) Reset() {
*x = RefInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[45]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RefInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RefInfo) ProtoMessage() {}
func (x *RefInfo) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[45]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RefInfo.ProtoReflect.Descriptor instead.
func (*RefInfo) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{45}
}
func (x *RefInfo) GetRef() string {
if x != nil {
return x.Ref
}
return ""
}
func (x *RefInfo) GetRevision() string {
if x != nil {
return x.Revision
}
return ""
}
// Options when requesting information about an account
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-accounts.html#details
type AccountOptions struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Include account details in the response
Details bool `protobuf:"varint,1,opt,name=details,proto3" json:"details,omitempty"`
// Include all registered emails
// Requires the caller to have Modify Account global capability
AllEmails bool `protobuf:"varint,2,opt,name=all_emails,json=allEmails,proto3" json:"all_emails,omitempty"`
}
func (x *AccountOptions) Reset() {
*x = AccountOptions{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[46]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AccountOptions) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AccountOptions) ProtoMessage() {}
func (x *AccountOptions) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[46]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AccountOptions.ProtoReflect.Descriptor instead.
func (*AccountOptions) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{46}
}
func (x *AccountOptions) GetDetails() bool {
if x != nil {
return x.Details
}
return false
}
func (x *AccountOptions) GetAllEmails() bool {
if x != nil {
return x.AllEmails
}
return false
}
// Information to request the list of OWNERS for a file/folder in a branch
type ListFileOwnersRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The project name
Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
// The ref ID (eg: refs/heads/main)
Ref string `protobuf:"bytes,2,opt,name=ref,proto3" json:"ref,omitempty"`
// Path (relative to the repo root) to the file/folder in question
Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
// Options about how much detail to return in the AccountInfo
Options *AccountOptions `protobuf:"bytes,4,opt,name=options,proto3" json:"options,omitempty"`
}
func (x *ListFileOwnersRequest) Reset() {
*x = ListFileOwnersRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[47]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListFileOwnersRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListFileOwnersRequest) ProtoMessage() {}
func (x *ListFileOwnersRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[47]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListFileOwnersRequest.ProtoReflect.Descriptor instead.
func (*ListFileOwnersRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{47}
}
func (x *ListFileOwnersRequest) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
func (x *ListFileOwnersRequest) GetRef() string {
if x != nil {
return x.Ref
}
return ""
}
func (x *ListFileOwnersRequest) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
func (x *ListFileOwnersRequest) GetOptions() *AccountOptions {
if x != nil {
return x.Options
}
return nil
}
// Information about a single OWNER
// NOTE: Gerrit OwnerInfo provides other fields beyond account,
// which can be added later.
type OwnerInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Account *AccountInfo `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"`
}
func (x *OwnerInfo) Reset() {
*x = OwnerInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[48]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *OwnerInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*OwnerInfo) ProtoMessage() {}
func (x *OwnerInfo) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[48]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use OwnerInfo.ProtoReflect.Descriptor instead.
func (*OwnerInfo) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{48}
}
func (x *OwnerInfo) GetAccount() *AccountInfo {
if x != nil {
return x.Account
}
return nil
}
// Code OWNERS for a particular request
type ListOwnersResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The account(s) who are OWNERS
Owners []*OwnerInfo `protobuf:"bytes,1,rep,name=owners,proto3" json:"owners,omitempty"`
}
func (x *ListOwnersResponse) Reset() {
*x = ListOwnersResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[49]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListOwnersResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListOwnersResponse) ProtoMessage() {}
func (x *ListOwnersResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[49]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListOwnersResponse.ProtoReflect.Descriptor instead.
func (*ListOwnersResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{49}
}
func (x *ListOwnersResponse) GetOwners() []*OwnerInfo {
if x != nil {
return x.Owners
}
return nil
}
type EmailInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"`
Preferred bool `protobuf:"varint,2,opt,name=preferred,proto3" json:"preferred,omitempty"`
PendingConfirmation bool `protobuf:"varint,3,opt,name=pending_confirmation,json=pendingConfirmation,proto3" json:"pending_confirmation,omitempty"`
}
func (x *EmailInfo) Reset() {
*x = EmailInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[50]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EmailInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EmailInfo) ProtoMessage() {}
func (x *EmailInfo) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[50]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EmailInfo.ProtoReflect.Descriptor instead.
func (*EmailInfo) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{50}
}
func (x *EmailInfo) GetEmail() string {
if x != nil {
return x.Email
}
return ""
}
func (x *EmailInfo) GetPreferred() bool {
if x != nil {
return x.Preferred
}
return false
}
func (x *EmailInfo) GetPendingConfirmation() bool {
if x != nil {
return x.PendingConfirmation
}
return false
}
type ListAccountEmailsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// user email address.
Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"`
}
func (x *ListAccountEmailsRequest) Reset() {
*x = ListAccountEmailsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[51]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListAccountEmailsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListAccountEmailsRequest) ProtoMessage() {}
func (x *ListAccountEmailsRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[51]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListAccountEmailsRequest.ProtoReflect.Descriptor instead.
func (*ListAccountEmailsRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{51}
}
func (x *ListAccountEmailsRequest) GetEmail() string {
if x != nil {
return x.Email
}
return ""
}
type ListAccountEmailsResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Emails []*EmailInfo `protobuf:"bytes,1,rep,name=emails,proto3" json:"emails,omitempty"`
}
func (x *ListAccountEmailsResponse) Reset() {
*x = ListAccountEmailsResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[52]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListAccountEmailsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListAccountEmailsResponse) ProtoMessage() {}
func (x *ListAccountEmailsResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[52]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListAccountEmailsResponse.ProtoReflect.Descriptor instead.
func (*ListAccountEmailsResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{52}
}
func (x *ListAccountEmailsResponse) GetEmails() []*EmailInfo {
if x != nil {
return x.Emails
}
return nil
}
type GetPureRevertRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The change number.
Number int64 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
// The project of this change. For example, "chromium/src".
//
// Optional, but recommended for better routing and faster RPC execution.
Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"`
}
func (x *GetPureRevertRequest) Reset() {
*x = GetPureRevertRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[53]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetPureRevertRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetPureRevertRequest) ProtoMessage() {}
func (x *GetPureRevertRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[53]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetPureRevertRequest.ProtoReflect.Descriptor instead.
func (*GetPureRevertRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{53}
}
func (x *GetPureRevertRequest) GetNumber() int64 {
if x != nil {
return x.Number
}
return 0
}
func (x *GetPureRevertRequest) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
// Information about the result of a pure revert check.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#pure-revert-info
type PureRevertInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Outcome of the check as boolean.
IsPureRevert bool `protobuf:"varint,1,opt,name=is_pure_revert,json=isPureRevert,proto3" json:"is_pure_revert,omitempty"`
}
func (x *PureRevertInfo) Reset() {
*x = PureRevertInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[54]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PureRevertInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PureRevertInfo) ProtoMessage() {}
func (x *PureRevertInfo) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[54]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PureRevertInfo.ProtoReflect.Descriptor instead.
func (*PureRevertInfo) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{54}
}
func (x *PureRevertInfo) GetIsPureRevert() bool {
if x != nil {
return x.IsPureRevert
}
return false
}
// The SubmitRequirementResultInfo describes the result of evaluating a submit
// requirement on a change.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#submit-requirement-result-info
type SubmitRequirementResultInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Name of The submit requirement.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Description of the submit requirement.
Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
// Status describing the result of evaluating the submit requirement.
Status SubmitRequirementResultInfo_Status `protobuf:"varint,3,opt,name=status,proto3,enum=gerrit.SubmitRequirementResultInfo_Status" json:"status,omitempty"`
// True if this submit requirement result was created from a legacy
// SubmitRecord.
IsLegacy bool `protobuf:"varint,4,opt,name=is_legacy,json=isLegacy,proto3" json:"is_legacy,omitempty"`
// SubmitRequirementExpressionInfo containing the result of evaluating
// the applicability expression.
//
// Not set if the submit requirement did not define an applicability
// expression. Note that the following fields are always omitted in
// `applicability_expression_result`.
// - `expression`
// - `passing_atoms`
// - `failing_atoms`
ApplicabilityExpressionResult *SubmitRequirementExpressionInfo `protobuf:"bytes,5,opt,name=applicability_expression_result,json=applicabilityExpressionResult,proto3" json:"applicability_expression_result,omitempty"`
// SubmitRequirementExpressionInfo containing the result of evaluating
// the submittability expression.
//
// Not set if the submit requirement does not apply.
SubmittabilityExpressionResult *SubmitRequirementExpressionInfo `protobuf:"bytes,6,opt,name=submittability_expression_result,json=submittabilityExpressionResult,proto3" json:"submittability_expression_result,omitempty"`
// SubmitRequirementExpressionInfo containing the result of evaluating
// the override expression.
//
// Not set if the submit requirement did not define an override expression or
// if it does not apply.
OverrideExpressionResult *SubmitRequirementExpressionInfo `protobuf:"bytes,7,opt,name=override_expression_result,json=overrideExpressionResult,proto3" json:"override_expression_result,omitempty"`
}
func (x *SubmitRequirementResultInfo) Reset() {
*x = SubmitRequirementResultInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[55]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SubmitRequirementResultInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SubmitRequirementResultInfo) ProtoMessage() {}
func (x *SubmitRequirementResultInfo) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[55]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SubmitRequirementResultInfo.ProtoReflect.Descriptor instead.
func (*SubmitRequirementResultInfo) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{55}
}
func (x *SubmitRequirementResultInfo) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *SubmitRequirementResultInfo) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *SubmitRequirementResultInfo) GetStatus() SubmitRequirementResultInfo_Status {
if x != nil {
return x.Status
}
return SubmitRequirementResultInfo_SUBMIT_REQUIREMENT_STATUS_UNSPECIFIED
}
func (x *SubmitRequirementResultInfo) GetIsLegacy() bool {
if x != nil {
return x.IsLegacy
}
return false
}
func (x *SubmitRequirementResultInfo) GetApplicabilityExpressionResult() *SubmitRequirementExpressionInfo {
if x != nil {
return x.ApplicabilityExpressionResult
}
return nil
}
func (x *SubmitRequirementResultInfo) GetSubmittabilityExpressionResult() *SubmitRequirementExpressionInfo {
if x != nil {
return x.SubmittabilityExpressionResult
}
return nil
}
func (x *SubmitRequirementResultInfo) GetOverrideExpressionResult() *SubmitRequirementExpressionInfo {
if x != nil {
return x.OverrideExpressionResult
}
return nil
}
// The SubmitRequirementExpressionInfo describes the result of evaluating
// a single submit requirement expression, for example label:code-review=+2.
type SubmitRequirementExpressionInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Expression of the submit requirement.
// e.g., branch:refs/heads/foo and label:verified=+1.
Expression string `protobuf:"bytes,1,opt,name=expression,proto3" json:"expression,omitempty"`
// True if the submit requirement is fulfilled for the change.
Fulfilled bool `protobuf:"varint,2,opt,name=fulfilled,proto3" json:"fulfilled,omitempty"`
// List of passing atoms.
// e.g., ["branch:refs/heads/foo"]
PassingAtoms []string `protobuf:"bytes,3,rep,name=passing_atoms,json=passingAtoms,proto3" json:"passing_atoms,omitempty"`
// List of failing atoms. This is similar to passing_atoms except that
// it contains a list of the predicates that are not fulfilled for the change.
FailingAtoms []string `protobuf:"bytes,4,rep,name=failing_atoms,json=failingAtoms,proto3" json:"failing_atoms,omitempty"`
// If evaluating the submit requirement failed, this field will contains
// an error message describing why it failed.
ErrorMessage string `protobuf:"bytes,5,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
}
func (x *SubmitRequirementExpressionInfo) Reset() {
*x = SubmitRequirementExpressionInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[56]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SubmitRequirementExpressionInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SubmitRequirementExpressionInfo) ProtoMessage() {}
func (x *SubmitRequirementExpressionInfo) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[56]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SubmitRequirementExpressionInfo.ProtoReflect.Descriptor instead.
func (*SubmitRequirementExpressionInfo) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{56}
}
func (x *SubmitRequirementExpressionInfo) GetExpression() string {
if x != nil {
return x.Expression
}
return ""
}
func (x *SubmitRequirementExpressionInfo) GetFulfilled() bool {
if x != nil {
return x.Fulfilled
}
return false
}
func (x *SubmitRequirementExpressionInfo) GetPassingAtoms() []string {
if x != nil {
return x.PassingAtoms
}
return nil
}
func (x *SubmitRequirementExpressionInfo) GetFailingAtoms() []string {
if x != nil {
return x.FailingAtoms
}
return nil
}
func (x *SubmitRequirementExpressionInfo) GetErrorMessage() string {
if x != nil {
return x.ErrorMessage
}
return ""
}
// Information to retrieve the diff between two historical states of a change.
//
// If `old is omitted, the parent of the `meta` SHA-1 is used.
// If `meta` is omitted, the current state of the change is used.
// If both are omitted, the difference between the current state of the change
// and its previous state is returned.
type GetMetaDiffRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The Gerrit project.
// Specifying this field is optional, but encouraged because it requires less
// work on the Gerrit side.
Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
// Change number.
Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"`
// The SHA-1 of the old state to retrieve the diff to the state specified by
// `meta`.
Old string `protobuf:"bytes,3,opt,name=old,proto3" json:"old,omitempty"`
// The SHA-1 of the new state to retrieve the diff to the state specified by
// `old`.
Meta string `protobuf:"bytes,4,opt,name=meta,proto3" json:"meta,omitempty"`
// What to include in `old_change_info` and `new_change_info` of the response.
Options []QueryOption `protobuf:"varint,5,rep,packed,name=options,proto3,enum=gerrit.QueryOption" json:"options,omitempty"`
}
func (x *GetMetaDiffRequest) Reset() {
*x = GetMetaDiffRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[57]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetMetaDiffRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetMetaDiffRequest) ProtoMessage() {}
func (x *GetMetaDiffRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[57]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetMetaDiffRequest.ProtoReflect.Descriptor instead.
func (*GetMetaDiffRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{57}
}
func (x *GetMetaDiffRequest) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
func (x *GetMetaDiffRequest) GetNumber() int64 {
if x != nil {
return x.Number
}
return 0
}
func (x *GetMetaDiffRequest) GetOld() string {
if x != nil {
return x.Old
}
return ""
}
func (x *GetMetaDiffRequest) GetMeta() string {
if x != nil {
return x.Meta
}
return ""
}
func (x *GetMetaDiffRequest) GetOptions() []QueryOption {
if x != nil {
return x.Options
}
return nil
}
// Difference between two historical states of a change.
type MetaDiff struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Change props added between the two states.
Added *ChangeInfo `protobuf:"bytes,1,opt,name=added,proto3" json:"added,omitempty"`
// Change props removed between the two states.
Removed *ChangeInfo `protobuf:"bytes,2,opt,name=removed,proto3" json:"removed,omitempty"`
// ChangeInfo of the old state.
OldChangeInfo *ChangeInfo `protobuf:"bytes,3,opt,name=old_change_info,json=oldChangeInfo,proto3" json:"old_change_info,omitempty"`
// ChangeInfo of the new state.
NewChangeInfo *ChangeInfo `protobuf:"bytes,4,opt,name=new_change_info,json=newChangeInfo,proto3" json:"new_change_info,omitempty"`
}
func (x *MetaDiff) Reset() {
*x = MetaDiff{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[58]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MetaDiff) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MetaDiff) ProtoMessage() {}
func (x *MetaDiff) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[58]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MetaDiff.ProtoReflect.Descriptor instead.
func (*MetaDiff) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{58}
}
func (x *MetaDiff) GetAdded() *ChangeInfo {
if x != nil {
return x.Added
}
return nil
}
func (x *MetaDiff) GetRemoved() *ChangeInfo {
if x != nil {
return x.Removed
}
return nil
}
func (x *MetaDiff) GetOldChangeInfo() *ChangeInfo {
if x != nil {
return x.OldChangeInfo
}
return nil
}
func (x *MetaDiff) GetNewChangeInfo() *ChangeInfo {
if x != nil {
return x.NewChangeInfo
}
return nil
}
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#notify-info
type NotifyDetails_Info struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// IDs of the accounts that will be notified.
Accounts []int64 `protobuf:"varint,1,rep,packed,name=accounts,proto3" json:"accounts,omitempty"`
}
func (x *NotifyDetails_Info) Reset() {
*x = NotifyDetails_Info{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[59]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *NotifyDetails_Info) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*NotifyDetails_Info) ProtoMessage() {}
func (x *NotifyDetails_Info) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[59]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use NotifyDetails_Info.ProtoReflect.Descriptor instead.
func (*NotifyDetails_Info) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{0, 0}
}
func (x *NotifyDetails_Info) GetAccounts() []int64 {
if x != nil {
return x.Accounts
}
return nil
}
type NotifyDetails_Recipient struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
RecipientType NotifyDetails_RecipientType `protobuf:"varint,1,opt,name=recipient_type,json=recipientType,proto3,enum=gerrit.NotifyDetails_RecipientType" json:"recipient_type,omitempty"`
Info *NotifyDetails_Info `protobuf:"bytes,2,opt,name=info,proto3" json:"info,omitempty"`
}
func (x *NotifyDetails_Recipient) Reset() {
*x = NotifyDetails_Recipient{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[60]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *NotifyDetails_Recipient) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*NotifyDetails_Recipient) ProtoMessage() {}
func (x *NotifyDetails_Recipient) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[60]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use NotifyDetails_Recipient.ProtoReflect.Descriptor instead.
func (*NotifyDetails_Recipient) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{0, 1}
}
func (x *NotifyDetails_Recipient) GetRecipientType() NotifyDetails_RecipientType {
if x != nil {
return x.RecipientType
}
return NotifyDetails_RECIPIENT_TYPE_UNSPECIFIED
}
func (x *NotifyDetails_Recipient) GetInfo() *NotifyDetails_Info {
if x != nil {
return x.Info
}
return nil
}
type CommitInfo_Parent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // TODO(tandrii): add subject when necessary.
}
func (x *CommitInfo_Parent) Reset() {
*x = CommitInfo_Parent{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[64]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CommitInfo_Parent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CommitInfo_Parent) ProtoMessage() {}
func (x *CommitInfo_Parent) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[64]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CommitInfo_Parent.ProtoReflect.Descriptor instead.
func (*CommitInfo_Parent) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{9, 0}
}
func (x *CommitInfo_Parent) GetId() string {
if x != nil {
return x.Id
}
return ""
}
// Contains information about a related change and commit.
//
// Source of truth:
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#related-change-and-commit-info
type GetRelatedChangesResponse_ChangeAndCommit struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The project of the change or commit.
Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
// The commit as a CommitInfo entity.
Commit *CommitInfo `protobuf:"bytes,2,opt,name=commit,proto3" json:"commit,omitempty"`
// Optional. The change number.
Number int64 `protobuf:"varint,3,opt,name=number,proto3" json:"number,omitempty"`
// Optional. The patchset number.
Patchset int64 `protobuf:"varint,4,opt,name=patchset,proto3" json:"patchset,omitempty"`
// Optional. The current patchset number.
CurrentPatchset int64 `protobuf:"varint,5,opt,name=current_patchset,json=currentPatchset,proto3" json:"current_patchset,omitempty"`
// Optional. The status of the change.
Status ChangeStatus `protobuf:"varint,6,opt,name=status,proto3,enum=gerrit.ChangeStatus" json:"status,omitempty"`
}
func (x *GetRelatedChangesResponse_ChangeAndCommit) Reset() {
*x = GetRelatedChangesResponse_ChangeAndCommit{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[71]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetRelatedChangesResponse_ChangeAndCommit) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetRelatedChangesResponse_ChangeAndCommit) ProtoMessage() {}
func (x *GetRelatedChangesResponse_ChangeAndCommit) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[71]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetRelatedChangesResponse_ChangeAndCommit.ProtoReflect.Descriptor instead.
func (*GetRelatedChangesResponse_ChangeAndCommit) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP(), []int{39, 0}
}
func (x *GetRelatedChangesResponse_ChangeAndCommit) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
func (x *GetRelatedChangesResponse_ChangeAndCommit) GetCommit() *CommitInfo {
if x != nil {
return x.Commit
}
return nil
}
func (x *GetRelatedChangesResponse_ChangeAndCommit) GetNumber() int64 {
if x != nil {
return x.Number
}
return 0
}
func (x *GetRelatedChangesResponse_ChangeAndCommit) GetPatchset() int64 {
if x != nil {
return x.Patchset
}
return 0
}
func (x *GetRelatedChangesResponse_ChangeAndCommit) GetCurrentPatchset() int64 {
if x != nil {
return x.CurrentPatchset
}
return 0
}
func (x *GetRelatedChangesResponse_ChangeAndCommit) GetStatus() ChangeStatus {
if x != nil {
return x.Status
}
return ChangeStatus_CHANGE_STATUS_INVALID
}
var File_go_chromium_org_luci_common_proto_gerrit_gerrit_proto protoreflect.FileDescriptor
var file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDesc = []byte{
0x0a, 0x35, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72,
0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2f, 0x67, 0x65, 0x72, 0x72, 0x69,
0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x1a,
0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69,
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf5, 0x02,
0x0a, 0x0d, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12,
0x3f, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x4e, 0x6f, 0x74,
0x69, 0x66, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x52, 0x65, 0x63, 0x69, 0x70,
0x69, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73,
0x1a, 0x22, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f,
0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f,
0x75, 0x6e, 0x74, 0x73, 0x1a, 0x87, 0x01, 0x0a, 0x09, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65,
0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x5f,
0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x65, 0x72,
0x72, 0x69, 0x74, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
0x73, 0x2e, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52,
0x0d, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e,
0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x44, 0x65, 0x74, 0x61,
0x69, 0x6c, 0x73, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x75,
0x0a, 0x0d, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12,
0x1e, 0x0a, 0x1a, 0x52, 0x45, 0x43, 0x49, 0x50, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50,
0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12,
0x15, 0x0a, 0x11, 0x52, 0x45, 0x43, 0x49, 0x50, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50,
0x45, 0x5f, 0x54, 0x4f, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x43, 0x49, 0x50, 0x49,
0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x43, 0x10, 0x02, 0x12, 0x16, 0x0a,
0x12, 0x52, 0x45, 0x43, 0x49, 0x50, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f,
0x42, 0x43, 0x43, 0x10, 0x03, 0x22, 0x87, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68,
0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05,
0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65,
0x72, 0x79, 0x12, 0x2d, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20,
0x03, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x51, 0x75, 0x65,
0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03,
0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65,
0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22,
0x66, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74,
0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x63, 0x68, 0x61,
0x6e, 0x67, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x63, 0x68, 0x61,
0x6e, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6d, 0x6f, 0x72, 0x65,
0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43,
0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06,
0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x75,
0x6d, 0x62, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x51,
0x75, 0x65, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69,
0x6f, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x03,
0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a,
0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x65, 0x74,
0x61, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66,
0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x73,
0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x18,
0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79,
0x45, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61,
0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61,
0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64,
0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49,
0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52,
0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0x39, 0x0a, 0x0d, 0x47, 0x69, 0x74, 0x50, 0x65, 0x72, 0x73,
0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d,
0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c,
0x22, 0x97, 0x09, 0x0a, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12,
0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e,
0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x6f, 0x77, 0x6e,
0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20,
0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x10, 0x0a, 0x03,
0x72, 0x65, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x2c,
0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14,
0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74,
0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x29, 0x0a, 0x10,
0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e,
0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52,
0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x09, 0x72, 0x65, 0x76, 0x69, 0x73,
0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x65, 0x72,
0x72, 0x69, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52,
0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x72,
0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x36, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65,
0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69,
0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x61, 0x62,
0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73,
0x12, 0x35, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e,
0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x6d,
0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x69,
0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e,
0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65,
0x6e, 0x74, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d,
0x65, 0x6e, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x61,
0x62, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69,
0x74, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x69,
0x76, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x50, 0x72,
0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67,
0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x68, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67,
0x73, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0b, 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, 0x34, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74,
0x65, 0x64, 0x18, 0x0c, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x38, 0x0a,
0x09, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x18, 0x15, 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, 0x73, 0x75,
0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x76, 0x65, 0x72,
0x74, 0x5f, 0x6f, 0x66, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x72, 0x65, 0x76, 0x65,
0x72, 0x74, 0x4f, 0x66, 0x12, 0x31, 0x0a, 0x15, 0x63, 0x68, 0x65, 0x72, 0x72, 0x79, 0x5f, 0x70,
0x69, 0x63, 0x6b, 0x5f, 0x6f, 0x66, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x10, 0x20,
0x01, 0x28, 0x03, 0x52, 0x12, 0x63, 0x68, 0x65, 0x72, 0x72, 0x79, 0x50, 0x69, 0x63, 0x6b, 0x4f,
0x66, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x09, 0x72, 0x65, 0x76, 0x69, 0x65,
0x77, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x65, 0x72,
0x72, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74,
0x75, 0x73, 0x4d, 0x61, 0x70, 0x52, 0x09, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x73,
0x12, 0x1e, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x76, 0x5f, 0x69, 0x64, 0x18,
0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x76, 0x49, 0x64,
0x12, 0x54, 0x0a, 0x13, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69,
0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e,
0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71,
0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x49, 0x6e,
0x66, 0x6f, 0x52, 0x12, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72,
0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63,
0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74,
0x12, 0x16, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09,
0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x1a, 0x52, 0x0a, 0x0e, 0x52, 0x65, 0x76, 0x69,
0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x65,
0x72, 0x72, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66,
0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4c, 0x0a, 0x0b,
0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x27, 0x0a,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67,
0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9c, 0x01, 0x0a, 0x11, 0x52,
0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x61, 0x70,
0x12, 0x31, 0x0a, 0x09, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x63,
0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77,
0x65, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x03, 0x63, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x13, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e,
0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x63, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x07, 0x72, 0x65,
0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x65,
0x72, 0x72, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f,
0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x22, 0x9b, 0x04, 0x0a, 0x0c, 0x52, 0x65,
0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2d, 0x0a, 0x04, 0x6b, 0x69,
0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69,
0x74, 0x2e, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4b,
0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d,
0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65,
0x72, 0x12, 0x2f, 0x0a, 0x08, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x63,
0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64,
0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
0x03, 0x72, 0x65, 0x66, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18,
0x07, 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, 0x20, 0x0a, 0x0b, 0x64, 0x65,
0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52,
0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x06,
0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67,
0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f,
0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x35, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65,
0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74,
0x2e, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x69,
0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x1a,
0x4a, 0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
0x26, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10,
0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f,
0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7a, 0x0a, 0x04, 0x4b,
0x69, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x0c, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x49, 0x4e, 0x56, 0x41,
0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x10,
0x01, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x52, 0x49, 0x56, 0x49, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x42,
0x41, 0x53, 0x45, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x4d, 0x45, 0x52, 0x47, 0x45, 0x5f, 0x46,
0x49, 0x52, 0x53, 0x54, 0x5f, 0x50, 0x41, 0x52, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41,
0x54, 0x45, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x4f, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f,
0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x5f, 0x43,
0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x05, 0x22, 0xb4, 0x01, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d,
0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x33, 0x0a, 0x07, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74,
0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x61, 0x72, 0x65,
0x6e, 0x74, 0x52, 0x07, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d,
0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65,
0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x18,
0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x47,
0x69, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x61, 0x75,
0x74, 0x68, 0x6f, 0x72, 0x1a, 0x18, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x0e,
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xe2,
0x03, 0x0a, 0x09, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08,
0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08,
0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x2f, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x72,
0x6f, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x65, 0x72,
0x72, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52,
0x08, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x08, 0x72, 0x65, 0x6a,
0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x65,
0x72, 0x72, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f,
0x52, 0x08, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x0b, 0x72, 0x65,
0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x13, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65,
0x64, 0x12, 0x2f, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x6c, 0x69, 0x6b, 0x65, 0x64, 0x18, 0x05, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x63,
0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6c, 0x69, 0x6b,
0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x06,
0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x14,
0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x64, 0x65, 0x66,
0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x03, 0x61, 0x6c, 0x6c,
0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e,
0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x61, 0x6c,
0x6c, 0x12, 0x35, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c,
0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x56, 0x61, 0x6c, 0x75,
0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
0x20, 0x01, 0x28, 0x05, 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, 0xff, 0x01, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c,
0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x63, 0x6f,
0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x14, 0x0a,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x12, 0x4d, 0x0a, 0x16, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64,
0x5f, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x56, 0x6f, 0x74,
0x69, 0x6e, 0x67, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x14, 0x70, 0x65,
0x72, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x6e,
0x67, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 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, 0x04, 0x64, 0x61,
0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
0x03, 0x74, 0x61, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x75, 0x62,
0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x74, 0x53,
0x75, 0x62, 0x6d, 0x69, 0x74, 0x22, 0x35, 0x0a, 0x0f, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x52,
0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18,
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61,
0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x22, 0xe2, 0x01, 0x0a,
0x11, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e,
0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
0x69, 0x64, 0x12, 0x2b, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x63, 0x6f,
0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x12,
0x34, 0x0a, 0x0b, 0x72, 0x65, 0x61, 0x6c, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x18, 0x03,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x41, 0x63,
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x72, 0x65, 0x61, 0x6c, 0x41,
0x75, 0x74, 0x68, 0x6f, 0x72, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 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,
0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12,
0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61,
0x67, 0x22, 0x89, 0x02, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e,
0x74, 0x12, 0x32, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0e, 0x32, 0x1a, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x69,
0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73,
0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63,
0x6b, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x61,
0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x54, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79,
0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x8c,
0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x1e, 0x52, 0x45, 0x51,
0x55, 0x49, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f,
0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a,
0x15, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41,
0x54, 0x55, 0x53, 0x5f, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x52, 0x45, 0x51, 0x55,
0x49, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e,
0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x52, 0x45,
0x51, 0x55, 0x49, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53,
0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x22, 0xa1, 0x02,
0x0a, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74,
0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x67, 0x65, 0x72,
0x72, 0x69, 0x74, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x61,
0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x62,
0x69, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x62, 0x69, 0x6e,
0x61, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18,
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x6c, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x25,
0x0a, 0x0e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64,
0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x49, 0x6e, 0x73,
0x65, 0x72, 0x74, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x64,
0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6c, 0x69,
0x6e, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69,
0x7a, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09,
0x73, 0x69, 0x7a, 0x65, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a,
0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x32, 0x0a,
0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x05, 0x0a, 0x01, 0x4d, 0x10, 0x00, 0x12, 0x05,
0x0a, 0x01, 0x41, 0x10, 0x01, 0x12, 0x05, 0x0a, 0x01, 0x44, 0x10, 0x02, 0x12, 0x05, 0x0a, 0x01,
0x52, 0x10, 0x03, 0x12, 0x05, 0x0a, 0x01, 0x43, 0x10, 0x04, 0x12, 0x05, 0x0a, 0x01, 0x57, 0x10,
0x05, 0x22, 0xa4, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e,
0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f,
0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a,
0x65, 0x63, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74,
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12,
0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x04,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
0x12, 0x26, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e,
0x32, 0x0e, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79,
0x52, 0x06, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x22, 0x47, 0x0a, 0x13, 0x53, 0x75, 0x62, 0x6d,
0x69, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65,
0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
0x74, 0x22, 0x6a, 0x0a, 0x15, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73,
0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75,
0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62,
0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69,
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f,
0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x05,
0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x3a, 0x0a,
0x0a, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x06, 0x73,
0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x67, 0x65,
0x72, 0x72, 0x69, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75,
0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x1c, 0x43, 0x68,
0x61, 0x6e, 0x67, 0x65, 0x45, 0x64, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74,
0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75,
0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62,
0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1b, 0x0a, 0x09,
0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e,
0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74,
0x65, 0x6e, 0x74, 0x22, 0x6d, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x64, 0x69,
0x74, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20,
0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70,
0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72,
0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61,
0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61,
0x74, 0x68, 0x22, 0x4c, 0x0a, 0x18, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x64, 0x69, 0x74,
0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16,
0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06,
0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
0x22, 0x61, 0x0a, 0x13, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65,
0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12,
0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73,
0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73,
0x61, 0x67, 0x65, 0x22, 0x62, 0x0a, 0x14, 0x41, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x43, 0x68,
0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e,
0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x75, 0x6d,
0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x18, 0x0a,
0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xc9, 0x02, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x52,
0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16,
0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06,
0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01,
0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x05,
0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x67, 0x65,
0x72, 0x72, 0x69, 0x74, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73,
0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65,
0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d,
0x65, 0x64, 0x12, 0x26, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x4e, 0x6f, 0x74, 0x69,
0x66, 0x79, 0x52, 0x06, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x22, 0x67, 0x0a, 0x05, 0x53, 0x74,
0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x44, 0x44, 0x5f, 0x52, 0x45, 0x56, 0x49, 0x45,
0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x44, 0x44, 0x5f, 0x52,
0x45, 0x56, 0x49, 0x45, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45,
0x56, 0x49, 0x45, 0x57, 0x45, 0x52, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x44, 0x44, 0x5f,
0x52, 0x45, 0x56, 0x49, 0x45, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43,
0x43, 0x10, 0x02, 0x22, 0xbe, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72,
0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2d, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x41,
0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f,
0x75, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x73,
0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e,
0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x70, 0x70,
0x72, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x61, 0x70, 0x70,
0x72, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x1a, 0x3c, 0x0a, 0x0e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76,
0x61, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x3a, 0x02, 0x38, 0x01, 0x22, 0xb5, 0x01, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x52, 0x65, 0x76, 0x69,
0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e,
0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74,
0x12, 0x32, 0x0a, 0x09, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x76,
0x69, 0x65, 0x77, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x72, 0x65, 0x76, 0x69, 0x65,
0x77, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x03, 0x63, 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x14, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x76, 0x69, 0x65,
0x77, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x63, 0x63, 0x73, 0x12, 0x14, 0x0a, 0x05,
0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72,
0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x18, 0x05, 0x20,
0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x22, 0x68, 0x0a, 0x15,
0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18,
0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a,
0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75,
0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63,
0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0xf9, 0x05, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x52, 0x65,
0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e,
0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x75, 0x6d,
0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1f, 0x0a,
0x0b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x18,
0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65,
0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69,
0x74, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06,
0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x06, 0x20,
0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x26, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x69,
0x66, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69,
0x74, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x06, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79,
0x12, 0x3c, 0x0a, 0x0e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69,
0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69,
0x74, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52,
0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x20,
0x0a, 0x0c, 0x6f, 0x6e, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x6f, 0x66, 0x18, 0x09,
0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6f, 0x6e, 0x42, 0x65, 0x68, 0x61, 0x6c, 0x66, 0x4f, 0x66,
0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52,
0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69,
0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08,
0x52, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73,
0x12, 0x4a, 0x0a, 0x14, 0x61, 0x64, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6e,
0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19,
0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f,
0x6e, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x11, 0x61, 0x64, 0x64, 0x54, 0x6f,
0x41, 0x74, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x12, 0x54, 0x0a, 0x19,
0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x74, 0x74, 0x65,
0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x19, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x6e, 0x74, 0x69,
0x6f, 0x6e, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x16, 0x72, 0x65, 0x6d, 0x6f,
0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x41, 0x74, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x53,
0x65, 0x74, 0x12, 0x4e, 0x0a, 0x24, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x61, 0x75, 0x74,
0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e,
0x5f, 0x73, 0x65, 0x74, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08,
0x52, 0x20, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69,
0x63, 0x41, 0x74, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x52, 0x75, 0x6c,
0x65, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x73, 0x18,
0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x52,
0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x09, 0x72, 0x65,
0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c,
0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
0x38, 0x01, 0x22, 0xcd, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x49,
0x6e, 0x70, 0x75, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72,
0x12, 0x31, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32,
0x1b, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x65,
0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74,
0x61, 0x74, 0x65, 0x22, 0x6d, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x20,
0x52, 0x45, 0x56, 0x49, 0x45, 0x57, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x5f, 0x53,
0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x52, 0x45, 0x56, 0x49, 0x45, 0x57, 0x45, 0x52, 0x5f, 0x49,
0x4e, 0x50, 0x55, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x56, 0x49, 0x45,
0x57, 0x45, 0x52, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x45, 0x56, 0x49, 0x45, 0x57, 0x45,
0x52, 0x5f, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x43,
0x10, 0x02, 0x22, 0x9f, 0x02, 0x0a, 0x0c, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73,
0x75, 0x6c, 0x74, 0x12, 0x38, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x76,
0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x41, 0x0a,
0x09, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x23, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77,
0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x73,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x73,
0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x57, 0x0a, 0x0e, 0x52,
0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 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,
0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x76, 0x69, 0x65,
0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x3a, 0x02, 0x38, 0x01, 0x22, 0x78, 0x0a, 0x13, 0x41, 0x74, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f,
0x6e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e,
0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x75, 0x6d,
0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x2f, 0x0a,
0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67,
0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x53,
0x65, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x22, 0xa5,
0x01, 0x0a, 0x11, 0x41, 0x74, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x49,
0x6e, 0x70, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73,
0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e,
0x12, 0x26, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e,
0x32, 0x0e, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79,
0x52, 0x06, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x3c, 0x0a, 0x0e, 0x6e, 0x6f, 0x74, 0x69,
0x66, 0x79, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x15, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79,
0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x44,
0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0xb7, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4d, 0x65,
0x72, 0x67, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16,
0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06,
0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18,
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x49,
0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x73, 0x74, 0x72,
0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x65,
0x72, 0x72, 0x69, 0x74, 0x2e, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74,
0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79,
0x22, 0xe2, 0x03, 0x0a, 0x0d, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e,
0x66, 0x6f, 0x12, 0x41, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x5f, 0x74, 0x79, 0x70,
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74,
0x2e, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x53,
0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69,
0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67,
0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74,
0x2e, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65,
0x67, 0x79, 0x52, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x1c, 0x0a, 0x09,
0x6d, 0x65, 0x72, 0x67, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
0x09, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f,
0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
0x08, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x64, 0x12,
0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x72, 0x67, 0x65,
0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
0x4d, 0x65, 0x72, 0x67, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69,
0x63, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x6c,
0x69, 0x63, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x61, 0x62, 0x6c,
0x65, 0x5f, 0x69, 0x6e, 0x74, 0x6f, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x65,
0x72, 0x67, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x6f, 0x22, 0xa7, 0x01, 0x0a, 0x0a,
0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x55,
0x42, 0x4d, 0x49, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x45, 0x52, 0x47, 0x45,
0x5f, 0x49, 0x46, 0x5f, 0x4e, 0x45, 0x43, 0x45, 0x53, 0x53, 0x41, 0x52, 0x59, 0x10, 0x01, 0x12,
0x15, 0x0a, 0x11, 0x46, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x5f,
0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x45, 0x42, 0x41, 0x53, 0x45,
0x5f, 0x49, 0x46, 0x5f, 0x4e, 0x45, 0x43, 0x45, 0x53, 0x53, 0x41, 0x52, 0x59, 0x10, 0x03, 0x12,
0x11, 0x0a, 0x0d, 0x52, 0x45, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x41, 0x4c, 0x57, 0x41, 0x59, 0x53,
0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x4d, 0x45, 0x52, 0x47, 0x45, 0x5f, 0x41, 0x4c, 0x57, 0x41,
0x59, 0x53, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x48, 0x45, 0x52, 0x52, 0x59, 0x5f, 0x50,
0x49, 0x43, 0x4b, 0x10, 0x06, 0x22, 0xba, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69,
0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75,
0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62,
0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1f, 0x0a, 0x0b,
0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0a, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x27, 0x0a,
0x0f, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79,
0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, 0x6e,
0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x12,
0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x61,
0x73, 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65,
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74,
0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x66,
0x69, 0x6c, 0x65, 0x73, 0x1a, 0x4a, 0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74,
0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x03, 0x6b, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x46, 0x69, 0x6c,
0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
0x22, 0x6d, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68,
0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06,
0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x75,
0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1f,
0x0a, 0x0b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22,
0xcf, 0x02, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68,
0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a,
0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31,
0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74,
0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
0x74, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x1a, 0xe4, 0x01, 0x0a, 0x0f, 0x43,
0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x18,
0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x2a, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d,
0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69,
0x74, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f,
0x6d, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03,
0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08,
0x70, 0x61, 0x74, 0x63, 0x68, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08,
0x70, 0x61, 0x74, 0x63, 0x68, 0x73, 0x65, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x75, 0x72, 0x72,
0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x63, 0x68, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01,
0x28, 0x03, 0x52, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x63, 0x68,
0x73, 0x65, 0x74, 0x12, 0x2c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x43, 0x68, 0x61,
0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
0x73, 0x22, 0x29, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x66, 0x73,
0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x72, 0x65, 0x66, 0x73, 0x22, 0x50, 0x0a, 0x0b,
0x57, 0x65, 0x62, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e,
0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72,
0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03,
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x22, 0xa3,
0x03, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12,
0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 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, 0x2f, 0x0a, 0x05,
0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x65,
0x72, 0x72, 0x69, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f,
0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x31, 0x0a,
0x04, 0x72, 0x65, 0x66, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x65,
0x72, 0x72, 0x69, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f,
0x2e, 0x52, 0x65, 0x66, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x72, 0x65, 0x66, 0x73,
0x12, 0x30, 0x0a, 0x09, 0x77, 0x65, 0x62, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x06, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x57, 0x65, 0x62,
0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x77, 0x65, 0x62, 0x4c, 0x69, 0x6e,
0x6b, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x52, 0x65, 0x66, 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, 0x77, 0x0a, 0x05, 0x53,
0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x5f,
0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45,
0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x53,
0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x1b, 0x0a,
0x17, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52,
0x45, 0x41, 0x44, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x52,
0x4f, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x48, 0x49, 0x44, 0x44,
0x45, 0x4e, 0x10, 0x03, 0x22, 0xb0, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f,
0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a,
0x08, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x2a, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f,
0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x72,
0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x50, 0x72, 0x6f,
0x6a, 0x65, 0x63, 0x74, 0x73, 0x1a, 0x50, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
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, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74,
0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3c, 0x0a, 0x0e, 0x52, 0x65, 0x66, 0x49, 0x6e,
0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f,
0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a,
0x65, 0x63, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x03, 0x72, 0x65, 0x66, 0x22, 0x37, 0x0a, 0x07, 0x52, 0x65, 0x66, 0x49, 0x6e, 0x66, 0x6f,
0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72,
0x65, 0x66, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x49,
0x0a, 0x0e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
0x08, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c,
0x6c, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09,
0x61, 0x6c, 0x6c, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x89, 0x01, 0x0a, 0x15, 0x4c, 0x69,
0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x10, 0x0a,
0x03, 0x72, 0x65, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12,
0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70,
0x61, 0x74, 0x68, 0x12, 0x30, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x41, 0x63,
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x3a, 0x0a, 0x09, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x6e,
0x66, 0x6f, 0x12, 0x2d, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x63,
0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
0x74, 0x22, 0x3f, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x6f, 0x77, 0x6e, 0x65, 0x72,
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74,
0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x77, 0x6e, 0x65,
0x72, 0x73, 0x22, 0x72, 0x0a, 0x09, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12,
0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72,
0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72,
0x72, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x14, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63,
0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
0x08, 0x52, 0x13, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72,
0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x30, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63,
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x46, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74,
0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x18,
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x45,
0x6d, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x73,
0x22, 0x48, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x75, 0x72, 0x65, 0x52, 0x65, 0x76, 0x65, 0x72,
0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62,
0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x36, 0x0a, 0x0e, 0x50, 0x75,
0x72, 0x65, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0e,
0x69, 0x73, 0x5f, 0x70, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x72, 0x74, 0x18, 0x01,
0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x50, 0x75, 0x72, 0x65, 0x52, 0x65, 0x76, 0x65,
0x72, 0x74, 0x22, 0x90, 0x05, 0x0a, 0x1b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71,
0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x49, 0x6e,
0x66, 0x6f, 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, 0x42, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69,
0x74, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d,
0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74,
0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09,
0x69, 0x73, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52,
0x08, 0x69, 0x73, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x6f, 0x0a, 0x1f, 0x61, 0x70, 0x70,
0x6c, 0x69, 0x63, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65,
0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x53, 0x75, 0x62, 0x6d,
0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x70,
0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x1d, 0x61, 0x70, 0x70,
0x6c, 0x69, 0x63, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73,
0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x71, 0x0a, 0x20, 0x73, 0x75,
0x62, 0x6d, 0x69, 0x74, 0x74, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x78, 0x70,
0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x06,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x53, 0x75,
0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x45,
0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x1e, 0x73,
0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x45, 0x78, 0x70,
0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x65, 0x0a,
0x1a, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73,
0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x27, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69,
0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x70, 0x72,
0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x18, 0x6f, 0x76, 0x65, 0x72,
0x72, 0x69, 0x64, 0x65, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65,
0x73, 0x75, 0x6c, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
0x29, 0x0a, 0x25, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x54, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52,
0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53,
0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x41,
0x54, 0x49, 0x53, 0x46, 0x49, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53,
0x41, 0x54, 0x49, 0x53, 0x46, 0x49, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x56,
0x45, 0x52, 0x52, 0x49, 0x44, 0x44, 0x45, 0x4e, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x4f,
0x54, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x04, 0x12, 0x09,
0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x4f, 0x52,
0x43, 0x45, 0x44, 0x10, 0x06, 0x22, 0xce, 0x01, 0x0a, 0x1f, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74,
0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65,
0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70,
0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65,
0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x75, 0x6c,
0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x75,
0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x61, 0x73, 0x73, 0x69,
0x6e, 0x67, 0x5f, 0x61, 0x74, 0x6f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c,
0x70, 0x61, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x41, 0x74, 0x6f, 0x6d, 0x73, 0x12, 0x23, 0x0a, 0x0d,
0x66, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x74, 0x6f, 0x6d, 0x73, 0x18, 0x04, 0x20,
0x03, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x41, 0x74, 0x6f, 0x6d,
0x73, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61,
0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d,
0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x65,
0x74, 0x61, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a,
0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65,
0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12,
0x10, 0x0a, 0x03, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x6c,
0x64, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
0x04, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x2d, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e,
0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74,
0x69, 0x6f, 0x6e, 0x73, 0x22, 0xda, 0x01, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x69, 0x66,
0x66, 0x12, 0x28, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x12, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x61, 0x64, 0x64, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x07, 0x72,
0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67,
0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f,
0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x0f, 0x6f, 0x6c, 0x64,
0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e,
0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6f, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67,
0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x0f, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x68, 0x61,
0x6e, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e,
0x66, 0x6f, 0x52, 0x0d, 0x6e, 0x65, 0x77, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66,
0x6f, 0x2a, 0x89, 0x04, 0x0a, 0x0b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f,
0x6e, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50,
0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x41, 0x42,
0x45, 0x4c, 0x53, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x45, 0x54, 0x41, 0x49, 0x4c, 0x45,
0x44, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x53, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x55,
0x52, 0x52, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x04,
0x12, 0x11, 0x0a, 0x0d, 0x41, 0x4c, 0x4c, 0x5f, 0x52, 0x45, 0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e,
0x53, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x54, 0x5f, 0x43,
0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x4c, 0x4c, 0x5f, 0x43,
0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x53, 0x10, 0x20, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x55, 0x52, 0x52,
0x45, 0x4e, 0x54, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x53, 0x10, 0x40, 0x12, 0x0e, 0x0a, 0x09, 0x41,
0x4c, 0x4c, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x53, 0x10, 0x80, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x44,
0x45, 0x54, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x53,
0x10, 0x80, 0x02, 0x12, 0x15, 0x0a, 0x10, 0x52, 0x45, 0x56, 0x49, 0x45, 0x57, 0x45, 0x52, 0x5f,
0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x53, 0x10, 0x80, 0x04, 0x12, 0x0d, 0x0a, 0x08, 0x4d, 0x45,
0x53, 0x53, 0x41, 0x47, 0x45, 0x53, 0x10, 0x80, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x43, 0x55, 0x52,
0x52, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x80, 0x10, 0x12,
0x13, 0x0a, 0x0e, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e,
0x53, 0x10, 0x80, 0x20, 0x12, 0x0d, 0x0a, 0x08, 0x52, 0x45, 0x56, 0x49, 0x45, 0x57, 0x45, 0x44,
0x10, 0x80, 0x40, 0x12, 0x14, 0x0a, 0x0e, 0x53, 0x4b, 0x49, 0x50, 0x5f, 0x4d, 0x45, 0x52, 0x47,
0x45, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x80, 0x80, 0x01, 0x12, 0x11, 0x0a, 0x0b, 0x53, 0x55, 0x42,
0x4d, 0x49, 0x54, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x80, 0x80, 0x02, 0x12, 0x0f, 0x0a, 0x09,
0x57, 0x45, 0x42, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x53, 0x10, 0x80, 0x80, 0x04, 0x12, 0x0b, 0x0a,
0x05, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x10, 0x80, 0x80, 0x08, 0x12, 0x14, 0x0a, 0x0e, 0x43, 0x4f,
0x4d, 0x4d, 0x49, 0x54, 0x5f, 0x46, 0x4f, 0x4f, 0x54, 0x45, 0x52, 0x53, 0x10, 0x80, 0x80, 0x10,
0x12, 0x17, 0x0a, 0x11, 0x50, 0x55, 0x53, 0x48, 0x5f, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49,
0x43, 0x41, 0x54, 0x45, 0x53, 0x10, 0x80, 0x80, 0x20, 0x12, 0x12, 0x0a, 0x0c, 0x54, 0x52, 0x41,
0x43, 0x4b, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x44, 0x53, 0x10, 0x80, 0x80, 0x40, 0x12, 0x18, 0x0a,
0x11, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x41, 0x4e,
0x44, 0x53, 0x10, 0x80, 0x80, 0x80, 0x01, 0x12, 0x1a, 0x0a, 0x13, 0x53, 0x55, 0x42, 0x4d, 0x49,
0x54, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x53, 0x10, 0x80,
0x80, 0x80, 0x02, 0x12, 0x18, 0x0a, 0x10, 0x4d, 0x41, 0x58, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59,
0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x80, 0x80, 0x80, 0x80, 0x04, 0x2a, 0x6f, 0x0a,
0x06, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x16, 0x0a, 0x12, 0x4e, 0x4f, 0x54, 0x49, 0x46,
0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12,
0x0f, 0x0a, 0x0b, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01,
0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x5f, 0x4f, 0x57, 0x4e, 0x45, 0x52,
0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x5f, 0x4f, 0x57, 0x4e,
0x45, 0x52, 0x5f, 0x52, 0x45, 0x56, 0x49, 0x45, 0x57, 0x45, 0x52, 0x53, 0x10, 0x03, 0x12, 0x0e,
0x0a, 0x0a, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x04, 0x2a, 0x4d,
0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x19,
0x0a, 0x15, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f,
0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x45, 0x57,
0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x45, 0x52, 0x47, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0d,
0x0a, 0x09, 0x41, 0x42, 0x41, 0x4e, 0x44, 0x4f, 0x4e, 0x45, 0x44, 0x10, 0x03, 0x2a, 0x85, 0x01,
0x0a, 0x11, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x72, 0x61, 0x74,
0x65, 0x67, 0x79, 0x12, 0x22, 0x0a, 0x1e, 0x4d, 0x45, 0x52, 0x47, 0x45, 0x41, 0x42, 0x4c, 0x45,
0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x45, 0x43, 0x55, 0x52,
0x53, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x53, 0x4f, 0x4c, 0x56,
0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x49, 0x4d, 0x50, 0x4c, 0x45, 0x5f, 0x54, 0x57,
0x4f, 0x5f, 0x57, 0x41, 0x59, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x52, 0x45, 0x10, 0x03, 0x12,
0x08, 0x0a, 0x04, 0x4f, 0x55, 0x52, 0x53, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x48, 0x45,
0x49, 0x52, 0x53, 0x10, 0x05, 0x32, 0xf3, 0x0c, 0x0a, 0x06, 0x47, 0x65, 0x72, 0x72, 0x69, 0x74,
0x12, 0x49, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73,
0x12, 0x1b, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72,
0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e,
0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65,
0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0a, 0x47,
0x65, 0x74, 0x52, 0x65, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x65, 0x72, 0x72,
0x69, 0x74, 0x2e, 0x52, 0x65, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x1a, 0x0f, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x66, 0x49, 0x6e,
0x66, 0x6f, 0x12, 0x4b, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x77,
0x6e, 0x65, 0x72, 0x73, 0x12, 0x1d, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x4c, 0x69,
0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73,
0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
0x58, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6d,
0x61, 0x69, 0x6c, 0x73, 0x12, 0x20, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x4c, 0x69,
0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e,
0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6d, 0x61, 0x69, 0x6c,
0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x4c, 0x69, 0x73,
0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x1a, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69,
0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x4c, 0x69,
0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x39, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x18,
0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67,
0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69,
0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x42, 0x0a, 0x0c,
0x47, 0x65, 0x74, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1b, 0x2e, 0x67,
0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x61, 0x62,
0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x67, 0x65, 0x72, 0x72,
0x69, 0x74, 0x2e, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f,
0x12, 0x40, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x18, 0x2e,
0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74,
0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x12, 0x58, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64,
0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x20, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74,
0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67,
0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x65, 0x72, 0x72,
0x69, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61,
0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0d,
0x47, 0x65, 0x74, 0x50, 0x75, 0x72, 0x65, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x12, 0x1c, 0x2e,
0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x75, 0x72, 0x65, 0x52, 0x65,
0x76, 0x65, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x65,
0x72, 0x72, 0x69, 0x74, 0x2e, 0x50, 0x75, 0x72, 0x65, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x49,
0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x69,
0x66, 0x66, 0x12, 0x1a, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4d,
0x65, 0x74, 0x61, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10,
0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x69, 0x66, 0x66,
0x12, 0x3f, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
0x12, 0x1b, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e,
0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x66,
0x6f, 0x12, 0x55, 0x0a, 0x15, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x64, 0x69, 0x74, 0x46,
0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x2e, 0x67, 0x65, 0x72,
0x72, 0x69, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x64, 0x69, 0x74, 0x46, 0x69,
0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x55, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65,
0x74, 0x65, 0x45, 0x64, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
0x74, 0x12, 0x24, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
0x65, 0x45, 0x64, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12,
0x4d, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x64, 0x69, 0x74, 0x50, 0x75, 0x62,
0x6c, 0x69, 0x73, 0x68, 0x12, 0x20, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x43, 0x68,
0x61, 0x6e, 0x67, 0x65, 0x45, 0x64, 0x69, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x44,
0x0a, 0x0b, 0x41, 0x64, 0x64, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x12, 0x1a, 0x2e,
0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77,
0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x65, 0x72, 0x72,
0x69, 0x74, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65,
0x73, 0x75, 0x6c, 0x74, 0x12, 0x47, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65,
0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e,
0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3b, 0x0a,
0x09, 0x53, 0x65, 0x74, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x12, 0x18, 0x2e, 0x67, 0x65, 0x72,
0x72, 0x69, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x52, 0x65,
0x76, 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x45, 0x0a, 0x11, 0x41, 0x64,
0x64, 0x54, 0x6f, 0x41, 0x74, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x12,
0x1b, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x6e, 0x74, 0x69,
0x6f, 0x6e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x67,
0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66,
0x6f, 0x12, 0x3f, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67,
0x65, 0x12, 0x1b, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69,
0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12,
0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e,
0x66, 0x6f, 0x12, 0x3f, 0x0a, 0x0c, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x43, 0x68, 0x61, 0x6e,
0x67, 0x65, 0x12, 0x1b, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x76, 0x65,
0x72, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
0x12, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49,
0x6e, 0x66, 0x6f, 0x12, 0x41, 0x0a, 0x0d, 0x41, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x43, 0x68,
0x61, 0x6e, 0x67, 0x65, 0x12, 0x1c, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x41, 0x62,
0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x12, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e,
0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x43, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74,
0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69,
0x74, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74,
0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x33, 0x5a, 0x31, 0x67,
0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c,
0x75, 0x63, 0x69, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x2f, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x3b, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x70, 0x62,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescOnce sync.Once
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescData = file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDesc
)
func file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescGZIP() []byte {
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescOnce.Do(func() {
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescData)
})
return file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDescData
}
var file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes = make([]protoimpl.EnumInfo, 13)
var file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes = make([]protoimpl.MessageInfo, 74)
var file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_goTypes = []interface{}{
(QueryOption)(0), // 0: gerrit.QueryOption
(Notify)(0), // 1: gerrit.Notify
(ChangeStatus)(0), // 2: gerrit.ChangeStatus
(MergeableStrategy)(0), // 3: gerrit.MergeableStrategy
(NotifyDetails_RecipientType)(0), // 4: gerrit.NotifyDetails.RecipientType
(RevisionInfo_Kind)(0), // 5: gerrit.RevisionInfo.Kind
(Requirement_Status)(0), // 6: gerrit.Requirement.Status
(FileInfo_Status)(0), // 7: gerrit.FileInfo.Status
(AddReviewerRequest_State)(0), // 8: gerrit.AddReviewerRequest.State
(ReviewerInput_State)(0), // 9: gerrit.ReviewerInput.State
(MergeableInfo_SubmitType)(0), // 10: gerrit.MergeableInfo.SubmitType
(ProjectInfo_State)(0), // 11: gerrit.ProjectInfo.State
(SubmitRequirementResultInfo_Status)(0), // 12: gerrit.SubmitRequirementResultInfo.Status
(*NotifyDetails)(nil), // 13: gerrit.NotifyDetails
(*ListChangesRequest)(nil), // 14: gerrit.ListChangesRequest
(*ListChangesResponse)(nil), // 15: gerrit.ListChangesResponse
(*GetChangeRequest)(nil), // 16: gerrit.GetChangeRequest
(*AccountInfo)(nil), // 17: gerrit.AccountInfo
(*GitPersonInfo)(nil), // 18: gerrit.GitPersonInfo
(*ChangeInfo)(nil), // 19: gerrit.ChangeInfo
(*ReviewerStatusMap)(nil), // 20: gerrit.ReviewerStatusMap
(*RevisionInfo)(nil), // 21: gerrit.RevisionInfo
(*CommitInfo)(nil), // 22: gerrit.CommitInfo
(*LabelInfo)(nil), // 23: gerrit.LabelInfo
(*ApprovalInfo)(nil), // 24: gerrit.ApprovalInfo
(*VotingRangeInfo)(nil), // 25: gerrit.VotingRangeInfo
(*ChangeMessageInfo)(nil), // 26: gerrit.ChangeMessageInfo
(*Requirement)(nil), // 27: gerrit.Requirement
(*FileInfo)(nil), // 28: gerrit.FileInfo
(*CreateChangeRequest)(nil), // 29: gerrit.CreateChangeRequest
(*SubmitChangeRequest)(nil), // 30: gerrit.SubmitChangeRequest
(*SubmitRevisionRequest)(nil), // 31: gerrit.SubmitRevisionRequest
(*SubmitInfo)(nil), // 32: gerrit.SubmitInfo
(*ChangeEditFileContentRequest)(nil), // 33: gerrit.ChangeEditFileContentRequest
(*DeleteEditFileContentRequest)(nil), // 34: gerrit.DeleteEditFileContentRequest
(*ChangeEditPublishRequest)(nil), // 35: gerrit.ChangeEditPublishRequest
(*RevertChangeRequest)(nil), // 36: gerrit.RevertChangeRequest
(*AbandonChangeRequest)(nil), // 37: gerrit.AbandonChangeRequest
(*AddReviewerRequest)(nil), // 38: gerrit.AddReviewerRequest
(*ReviewerInfo)(nil), // 39: gerrit.ReviewerInfo
(*AddReviewerResult)(nil), // 40: gerrit.AddReviewerResult
(*DeleteReviewerRequest)(nil), // 41: gerrit.DeleteReviewerRequest
(*SetReviewRequest)(nil), // 42: gerrit.SetReviewRequest
(*ReviewerInput)(nil), // 43: gerrit.ReviewerInput
(*ReviewResult)(nil), // 44: gerrit.ReviewResult
(*AttentionSetRequest)(nil), // 45: gerrit.AttentionSetRequest
(*AttentionSetInput)(nil), // 46: gerrit.AttentionSetInput
(*GetMergeableRequest)(nil), // 47: gerrit.GetMergeableRequest
(*MergeableInfo)(nil), // 48: gerrit.MergeableInfo
(*ListFilesRequest)(nil), // 49: gerrit.ListFilesRequest
(*ListFilesResponse)(nil), // 50: gerrit.ListFilesResponse
(*GetRelatedChangesRequest)(nil), // 51: gerrit.GetRelatedChangesRequest
(*GetRelatedChangesResponse)(nil), // 52: gerrit.GetRelatedChangesResponse
(*ListProjectsRequest)(nil), // 53: gerrit.ListProjectsRequest
(*WebLinkInfo)(nil), // 54: gerrit.WebLinkInfo
(*ProjectInfo)(nil), // 55: gerrit.ProjectInfo
(*ListProjectsResponse)(nil), // 56: gerrit.ListProjectsResponse
(*RefInfoRequest)(nil), // 57: gerrit.RefInfoRequest
(*RefInfo)(nil), // 58: gerrit.RefInfo
(*AccountOptions)(nil), // 59: gerrit.AccountOptions
(*ListFileOwnersRequest)(nil), // 60: gerrit.ListFileOwnersRequest
(*OwnerInfo)(nil), // 61: gerrit.OwnerInfo
(*ListOwnersResponse)(nil), // 62: gerrit.ListOwnersResponse
(*EmailInfo)(nil), // 63: gerrit.EmailInfo
(*ListAccountEmailsRequest)(nil), // 64: gerrit.ListAccountEmailsRequest
(*ListAccountEmailsResponse)(nil), // 65: gerrit.ListAccountEmailsResponse
(*GetPureRevertRequest)(nil), // 66: gerrit.GetPureRevertRequest
(*PureRevertInfo)(nil), // 67: gerrit.PureRevertInfo
(*SubmitRequirementResultInfo)(nil), // 68: gerrit.SubmitRequirementResultInfo
(*SubmitRequirementExpressionInfo)(nil), // 69: gerrit.SubmitRequirementExpressionInfo
(*GetMetaDiffRequest)(nil), // 70: gerrit.GetMetaDiffRequest
(*MetaDiff)(nil), // 71: gerrit.MetaDiff
(*NotifyDetails_Info)(nil), // 72: gerrit.NotifyDetails.Info
(*NotifyDetails_Recipient)(nil), // 73: gerrit.NotifyDetails.Recipient
nil, // 74: gerrit.ChangeInfo.RevisionsEntry
nil, // 75: gerrit.ChangeInfo.LabelsEntry
nil, // 76: gerrit.RevisionInfo.FilesEntry
(*CommitInfo_Parent)(nil), // 77: gerrit.CommitInfo.Parent
nil, // 78: gerrit.LabelInfo.ValuesEntry
nil, // 79: gerrit.ReviewerInfo.ApprovalsEntry
nil, // 80: gerrit.SetReviewRequest.LabelsEntry
nil, // 81: gerrit.ReviewResult.LabelsEntry
nil, // 82: gerrit.ReviewResult.ReviewersEntry
nil, // 83: gerrit.ListFilesResponse.FilesEntry
(*GetRelatedChangesResponse_ChangeAndCommit)(nil), // 84: gerrit.GetRelatedChangesResponse.ChangeAndCommit
nil, // 85: gerrit.ProjectInfo.RefsEntry
nil, // 86: gerrit.ListProjectsResponse.ProjectsEntry
(*timestamppb.Timestamp)(nil), // 87: google.protobuf.Timestamp
(*emptypb.Empty)(nil), // 88: google.protobuf.Empty
}
var file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_depIdxs = []int32{
73, // 0: gerrit.NotifyDetails.recipients:type_name -> gerrit.NotifyDetails.Recipient
0, // 1: gerrit.ListChangesRequest.options:type_name -> gerrit.QueryOption
19, // 2: gerrit.ListChangesResponse.changes:type_name -> gerrit.ChangeInfo
0, // 3: gerrit.GetChangeRequest.options:type_name -> gerrit.QueryOption
17, // 4: gerrit.ChangeInfo.owner:type_name -> gerrit.AccountInfo
2, // 5: gerrit.ChangeInfo.status:type_name -> gerrit.ChangeStatus
74, // 6: gerrit.ChangeInfo.revisions:type_name -> gerrit.ChangeInfo.RevisionsEntry
75, // 7: gerrit.ChangeInfo.labels:type_name -> gerrit.ChangeInfo.LabelsEntry
26, // 8: gerrit.ChangeInfo.messages:type_name -> gerrit.ChangeMessageInfo
27, // 9: gerrit.ChangeInfo.requirements:type_name -> gerrit.Requirement
87, // 10: gerrit.ChangeInfo.created:type_name -> google.protobuf.Timestamp
87, // 11: gerrit.ChangeInfo.updated:type_name -> google.protobuf.Timestamp
87, // 12: gerrit.ChangeInfo.submitted:type_name -> google.protobuf.Timestamp
20, // 13: gerrit.ChangeInfo.reviewers:type_name -> gerrit.ReviewerStatusMap
68, // 14: gerrit.ChangeInfo.submit_requirements:type_name -> gerrit.SubmitRequirementResultInfo
17, // 15: gerrit.ReviewerStatusMap.reviewers:type_name -> gerrit.AccountInfo
17, // 16: gerrit.ReviewerStatusMap.ccs:type_name -> gerrit.AccountInfo
17, // 17: gerrit.ReviewerStatusMap.removed:type_name -> gerrit.AccountInfo
5, // 18: gerrit.RevisionInfo.kind:type_name -> gerrit.RevisionInfo.Kind
17, // 19: gerrit.RevisionInfo.uploader:type_name -> gerrit.AccountInfo
87, // 20: gerrit.RevisionInfo.created:type_name -> google.protobuf.Timestamp
22, // 21: gerrit.RevisionInfo.commit:type_name -> gerrit.CommitInfo
76, // 22: gerrit.RevisionInfo.files:type_name -> gerrit.RevisionInfo.FilesEntry
77, // 23: gerrit.CommitInfo.parents:type_name -> gerrit.CommitInfo.Parent
18, // 24: gerrit.CommitInfo.author:type_name -> gerrit.GitPersonInfo
17, // 25: gerrit.LabelInfo.approved:type_name -> gerrit.AccountInfo
17, // 26: gerrit.LabelInfo.rejected:type_name -> gerrit.AccountInfo
17, // 27: gerrit.LabelInfo.recommended:type_name -> gerrit.AccountInfo
17, // 28: gerrit.LabelInfo.disliked:type_name -> gerrit.AccountInfo
24, // 29: gerrit.LabelInfo.all:type_name -> gerrit.ApprovalInfo
78, // 30: gerrit.LabelInfo.values:type_name -> gerrit.LabelInfo.ValuesEntry
17, // 31: gerrit.ApprovalInfo.user:type_name -> gerrit.AccountInfo
25, // 32: gerrit.ApprovalInfo.permitted_voting_range:type_name -> gerrit.VotingRangeInfo
87, // 33: gerrit.ApprovalInfo.date:type_name -> google.protobuf.Timestamp
17, // 34: gerrit.ChangeMessageInfo.author:type_name -> gerrit.AccountInfo
17, // 35: gerrit.ChangeMessageInfo.real_author:type_name -> gerrit.AccountInfo
87, // 36: gerrit.ChangeMessageInfo.date:type_name -> google.protobuf.Timestamp
6, // 37: gerrit.Requirement.status:type_name -> gerrit.Requirement.Status
7, // 38: gerrit.FileInfo.status:type_name -> gerrit.FileInfo.Status
1, // 39: gerrit.CreateChangeRequest.notify:type_name -> gerrit.Notify
2, // 40: gerrit.SubmitInfo.status:type_name -> gerrit.ChangeStatus
8, // 41: gerrit.AddReviewerRequest.state:type_name -> gerrit.AddReviewerRequest.State
1, // 42: gerrit.AddReviewerRequest.notify:type_name -> gerrit.Notify
17, // 43: gerrit.ReviewerInfo.account:type_name -> gerrit.AccountInfo
79, // 44: gerrit.ReviewerInfo.approvals:type_name -> gerrit.ReviewerInfo.ApprovalsEntry
39, // 45: gerrit.AddReviewerResult.reviewers:type_name -> gerrit.ReviewerInfo
39, // 46: gerrit.AddReviewerResult.ccs:type_name -> gerrit.ReviewerInfo
80, // 47: gerrit.SetReviewRequest.labels:type_name -> gerrit.SetReviewRequest.LabelsEntry
1, // 48: gerrit.SetReviewRequest.notify:type_name -> gerrit.Notify
13, // 49: gerrit.SetReviewRequest.notify_details:type_name -> gerrit.NotifyDetails
46, // 50: gerrit.SetReviewRequest.add_to_attention_set:type_name -> gerrit.AttentionSetInput
46, // 51: gerrit.SetReviewRequest.remove_from_attention_set:type_name -> gerrit.AttentionSetInput
43, // 52: gerrit.SetReviewRequest.reviewers:type_name -> gerrit.ReviewerInput
9, // 53: gerrit.ReviewerInput.state:type_name -> gerrit.ReviewerInput.State
81, // 54: gerrit.ReviewResult.labels:type_name -> gerrit.ReviewResult.LabelsEntry
82, // 55: gerrit.ReviewResult.reviewers:type_name -> gerrit.ReviewResult.ReviewersEntry
46, // 56: gerrit.AttentionSetRequest.input:type_name -> gerrit.AttentionSetInput
1, // 57: gerrit.AttentionSetInput.notify:type_name -> gerrit.Notify
13, // 58: gerrit.AttentionSetInput.notify_details:type_name -> gerrit.NotifyDetails
3, // 59: gerrit.GetMergeableRequest.strategy:type_name -> gerrit.MergeableStrategy
10, // 60: gerrit.MergeableInfo.submit_type:type_name -> gerrit.MergeableInfo.SubmitType
3, // 61: gerrit.MergeableInfo.strategy:type_name -> gerrit.MergeableStrategy
83, // 62: gerrit.ListFilesResponse.files:type_name -> gerrit.ListFilesResponse.FilesEntry
84, // 63: gerrit.GetRelatedChangesResponse.changes:type_name -> gerrit.GetRelatedChangesResponse.ChangeAndCommit
11, // 64: gerrit.ProjectInfo.state:type_name -> gerrit.ProjectInfo.State
85, // 65: gerrit.ProjectInfo.refs:type_name -> gerrit.ProjectInfo.RefsEntry
54, // 66: gerrit.ProjectInfo.web_links:type_name -> gerrit.WebLinkInfo
86, // 67: gerrit.ListProjectsResponse.Projects:type_name -> gerrit.ListProjectsResponse.ProjectsEntry
59, // 68: gerrit.ListFileOwnersRequest.options:type_name -> gerrit.AccountOptions
17, // 69: gerrit.OwnerInfo.account:type_name -> gerrit.AccountInfo
61, // 70: gerrit.ListOwnersResponse.owners:type_name -> gerrit.OwnerInfo
63, // 71: gerrit.ListAccountEmailsResponse.emails:type_name -> gerrit.EmailInfo
12, // 72: gerrit.SubmitRequirementResultInfo.status:type_name -> gerrit.SubmitRequirementResultInfo.Status
69, // 73: gerrit.SubmitRequirementResultInfo.applicability_expression_result:type_name -> gerrit.SubmitRequirementExpressionInfo
69, // 74: gerrit.SubmitRequirementResultInfo.submittability_expression_result:type_name -> gerrit.SubmitRequirementExpressionInfo
69, // 75: gerrit.SubmitRequirementResultInfo.override_expression_result:type_name -> gerrit.SubmitRequirementExpressionInfo
0, // 76: gerrit.GetMetaDiffRequest.options:type_name -> gerrit.QueryOption
19, // 77: gerrit.MetaDiff.added:type_name -> gerrit.ChangeInfo
19, // 78: gerrit.MetaDiff.removed:type_name -> gerrit.ChangeInfo
19, // 79: gerrit.MetaDiff.old_change_info:type_name -> gerrit.ChangeInfo
19, // 80: gerrit.MetaDiff.new_change_info:type_name -> gerrit.ChangeInfo
4, // 81: gerrit.NotifyDetails.Recipient.recipient_type:type_name -> gerrit.NotifyDetails.RecipientType
72, // 82: gerrit.NotifyDetails.Recipient.info:type_name -> gerrit.NotifyDetails.Info
21, // 83: gerrit.ChangeInfo.RevisionsEntry.value:type_name -> gerrit.RevisionInfo
23, // 84: gerrit.ChangeInfo.LabelsEntry.value:type_name -> gerrit.LabelInfo
28, // 85: gerrit.RevisionInfo.FilesEntry.value:type_name -> gerrit.FileInfo
40, // 86: gerrit.ReviewResult.ReviewersEntry.value:type_name -> gerrit.AddReviewerResult
28, // 87: gerrit.ListFilesResponse.FilesEntry.value:type_name -> gerrit.FileInfo
22, // 88: gerrit.GetRelatedChangesResponse.ChangeAndCommit.commit:type_name -> gerrit.CommitInfo
2, // 89: gerrit.GetRelatedChangesResponse.ChangeAndCommit.status:type_name -> gerrit.ChangeStatus
55, // 90: gerrit.ListProjectsResponse.ProjectsEntry.value:type_name -> gerrit.ProjectInfo
53, // 91: gerrit.Gerrit.ListProjects:input_type -> gerrit.ListProjectsRequest
57, // 92: gerrit.Gerrit.GetRefInfo:input_type -> gerrit.RefInfoRequest
60, // 93: gerrit.Gerrit.ListFileOwners:input_type -> gerrit.ListFileOwnersRequest
64, // 94: gerrit.Gerrit.ListAccountEmails:input_type -> gerrit.ListAccountEmailsRequest
14, // 95: gerrit.Gerrit.ListChanges:input_type -> gerrit.ListChangesRequest
16, // 96: gerrit.Gerrit.GetChange:input_type -> gerrit.GetChangeRequest
47, // 97: gerrit.Gerrit.GetMergeable:input_type -> gerrit.GetMergeableRequest
49, // 98: gerrit.Gerrit.ListFiles:input_type -> gerrit.ListFilesRequest
51, // 99: gerrit.Gerrit.GetRelatedChanges:input_type -> gerrit.GetRelatedChangesRequest
66, // 100: gerrit.Gerrit.GetPureRevert:input_type -> gerrit.GetPureRevertRequest
70, // 101: gerrit.Gerrit.GetMetaDiff:input_type -> gerrit.GetMetaDiffRequest
29, // 102: gerrit.Gerrit.CreateChange:input_type -> gerrit.CreateChangeRequest
33, // 103: gerrit.Gerrit.ChangeEditFileContent:input_type -> gerrit.ChangeEditFileContentRequest
34, // 104: gerrit.Gerrit.DeleteEditFileContent:input_type -> gerrit.DeleteEditFileContentRequest
35, // 105: gerrit.Gerrit.ChangeEditPublish:input_type -> gerrit.ChangeEditPublishRequest
38, // 106: gerrit.Gerrit.AddReviewer:input_type -> gerrit.AddReviewerRequest
41, // 107: gerrit.Gerrit.DeleteReviewer:input_type -> gerrit.DeleteReviewerRequest
42, // 108: gerrit.Gerrit.SetReview:input_type -> gerrit.SetReviewRequest
45, // 109: gerrit.Gerrit.AddToAttentionSet:input_type -> gerrit.AttentionSetRequest
30, // 110: gerrit.Gerrit.SubmitChange:input_type -> gerrit.SubmitChangeRequest
36, // 111: gerrit.Gerrit.RevertChange:input_type -> gerrit.RevertChangeRequest
37, // 112: gerrit.Gerrit.AbandonChange:input_type -> gerrit.AbandonChangeRequest
31, // 113: gerrit.Gerrit.SubmitRevision:input_type -> gerrit.SubmitRevisionRequest
56, // 114: gerrit.Gerrit.ListProjects:output_type -> gerrit.ListProjectsResponse
58, // 115: gerrit.Gerrit.GetRefInfo:output_type -> gerrit.RefInfo
62, // 116: gerrit.Gerrit.ListFileOwners:output_type -> gerrit.ListOwnersResponse
65, // 117: gerrit.Gerrit.ListAccountEmails:output_type -> gerrit.ListAccountEmailsResponse
15, // 118: gerrit.Gerrit.ListChanges:output_type -> gerrit.ListChangesResponse
19, // 119: gerrit.Gerrit.GetChange:output_type -> gerrit.ChangeInfo
48, // 120: gerrit.Gerrit.GetMergeable:output_type -> gerrit.MergeableInfo
50, // 121: gerrit.Gerrit.ListFiles:output_type -> gerrit.ListFilesResponse
52, // 122: gerrit.Gerrit.GetRelatedChanges:output_type -> gerrit.GetRelatedChangesResponse
67, // 123: gerrit.Gerrit.GetPureRevert:output_type -> gerrit.PureRevertInfo
71, // 124: gerrit.Gerrit.GetMetaDiff:output_type -> gerrit.MetaDiff
19, // 125: gerrit.Gerrit.CreateChange:output_type -> gerrit.ChangeInfo
88, // 126: gerrit.Gerrit.ChangeEditFileContent:output_type -> google.protobuf.Empty
88, // 127: gerrit.Gerrit.DeleteEditFileContent:output_type -> google.protobuf.Empty
88, // 128: gerrit.Gerrit.ChangeEditPublish:output_type -> google.protobuf.Empty
40, // 129: gerrit.Gerrit.AddReviewer:output_type -> gerrit.AddReviewerResult
88, // 130: gerrit.Gerrit.DeleteReviewer:output_type -> google.protobuf.Empty
44, // 131: gerrit.Gerrit.SetReview:output_type -> gerrit.ReviewResult
17, // 132: gerrit.Gerrit.AddToAttentionSet:output_type -> gerrit.AccountInfo
19, // 133: gerrit.Gerrit.SubmitChange:output_type -> gerrit.ChangeInfo
19, // 134: gerrit.Gerrit.RevertChange:output_type -> gerrit.ChangeInfo
19, // 135: gerrit.Gerrit.AbandonChange:output_type -> gerrit.ChangeInfo
32, // 136: gerrit.Gerrit.SubmitRevision:output_type -> gerrit.SubmitInfo
114, // [114:137] is the sub-list for method output_type
91, // [91:114] is the sub-list for method input_type
91, // [91:91] is the sub-list for extension type_name
91, // [91:91] is the sub-list for extension extendee
0, // [0:91] is the sub-list for field type_name
}
func init() { file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_init() }
func file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_init() {
if File_go_chromium_org_luci_common_proto_gerrit_gerrit_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*NotifyDetails); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListChangesRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListChangesResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetChangeRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AccountInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GitPersonInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ChangeInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ReviewerStatusMap); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RevisionInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CommitInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LabelInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ApprovalInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*VotingRangeInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ChangeMessageInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Requirement); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FileInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CreateChangeRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SubmitChangeRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SubmitRevisionRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SubmitInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ChangeEditFileContentRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeleteEditFileContentRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ChangeEditPublishRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RevertChangeRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AbandonChangeRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AddReviewerRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ReviewerInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AddReviewerResult); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeleteReviewerRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SetReviewRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ReviewerInput); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ReviewResult); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AttentionSetRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AttentionSetInput); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetMergeableRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MergeableInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListFilesRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListFilesResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetRelatedChangesRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetRelatedChangesResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListProjectsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*WebLinkInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ProjectInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListProjectsResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RefInfoRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RefInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AccountOptions); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListFileOwnersRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*OwnerInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListOwnersResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EmailInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListAccountEmailsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListAccountEmailsResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetPureRevertRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PureRevertInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SubmitRequirementResultInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SubmitRequirementExpressionInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetMetaDiffRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MetaDiff); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*NotifyDetails_Info); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*NotifyDetails_Recipient); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CommitInfo_Parent); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetRelatedChangesResponse_ChangeAndCommit); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDesc,
NumEnums: 13,
NumMessages: 74,
NumExtensions: 0,
NumServices: 1,
},
GoTypes: file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_goTypes,
DependencyIndexes: file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_depIdxs,
EnumInfos: file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_enumTypes,
MessageInfos: file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_msgTypes,
}.Build()
File_go_chromium_org_luci_common_proto_gerrit_gerrit_proto = out.File
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_rawDesc = nil
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_goTypes = nil
file_go_chromium_org_luci_common_proto_gerrit_gerrit_proto_depIdxs = nil
}