blob: 3ef81f7449b1432fdbbd415816951ead3a716849 [file] [log] [blame]
// Copyright 2022 The LUCI Authors. All rights reserved.
// Use of this source code is governed under the Apache License, Version 2.0
// that can be found in the LICENSE file.
// 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/swarming/proto/api_v2/swarming.proto
package apipb
import (
status "google.golang.org/genproto/googleapis/rpc/status"
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)
)
// Use one of the values in this enum to query for tasks in one of the
// specified state.
//
// Use 'ALL' to not use any filtering based on task state.
//
// As an example, this enum enables querying for all tasks with state COMPLETED
// but non-zero exit code via COMPLETED_FAILURE.
//
// Do not confuse StateQuery and TaskState. StateQuery is to query tasks
// via the API. TaskState is the current task state.
type StateQuery int32
const (
// Query for all tasks currently TaskState.PENDING.
StateQuery_QUERY_PENDING StateQuery = 0
// Query for all tasks currently TaskState.RUNNING. This includes tasks
// currently in the overhead phase; mapping input files or archiving outputs
// back to the server.
StateQuery_QUERY_RUNNING StateQuery = 1
// Query for all tasks currently TaskState.PENDING or TaskState.RUNNING. This
// is the query for the 'active' tasks.
StateQuery_QUERY_PENDING_RUNNING StateQuery = 2
// Query for all tasks that completed normally as TaskState.COMPLETED,
// independent of the process exit code.
StateQuery_QUERY_COMPLETED StateQuery = 3
// Query for all tasks that completed normally as TaskState.COMPLETED and that
// had exit code 0.
StateQuery_QUERY_COMPLETED_SUCCESS StateQuery = 4
// Query for all tasks that completed normally as TaskState.COMPLETED and that
// had exit code not 0.
StateQuery_QUERY_COMPLETED_FAILURE StateQuery = 5
// Query for all tasks that are TaskState.EXPIRED.
StateQuery_QUERY_EXPIRED StateQuery = 6
// Query for all tasks that are TaskState.TIMED_OUT.
StateQuery_QUERY_TIMED_OUT StateQuery = 7
// Query for all tasks that are TaskState.BOT_DIED.
StateQuery_QUERY_BOT_DIED StateQuery = 8
// Query for all tasks that are TaskState.CANCELED.
StateQuery_QUERY_CANCELED StateQuery = 9
// Query for all tasks, independent of the task state.
//
// In hindsight, this constant should have been the value 0. Sorry, the
// original author was young and foolish.
StateQuery_QUERY_ALL StateQuery = 10
// Query for all tasks that are TaskState.COMPLETED but that actually didn't
// run due to TaskProperties.idempotent being True *and* that a previous task
// with the exact same TaskProperties had successfully run before, aka
// COMPLETED_SUCCESS.
StateQuery_QUERY_DEDUPED StateQuery = 11
// Query for all tasks that are TaskState.KILLED.
StateQuery_QUERY_KILLED StateQuery = 12
// Query for all tasks that are TaskState.NO_RESOURCE.
StateQuery_QUERY_NO_RESOURCE StateQuery = 13
// Query for all tasks that are TaskState.CLIENT_ERROR.
StateQuery_QUERY_CLIENT_ERROR StateQuery = 14
)
// Enum value maps for StateQuery.
var (
StateQuery_name = map[int32]string{
0: "QUERY_PENDING",
1: "QUERY_RUNNING",
2: "QUERY_PENDING_RUNNING",
3: "QUERY_COMPLETED",
4: "QUERY_COMPLETED_SUCCESS",
5: "QUERY_COMPLETED_FAILURE",
6: "QUERY_EXPIRED",
7: "QUERY_TIMED_OUT",
8: "QUERY_BOT_DIED",
9: "QUERY_CANCELED",
10: "QUERY_ALL",
11: "QUERY_DEDUPED",
12: "QUERY_KILLED",
13: "QUERY_NO_RESOURCE",
14: "QUERY_CLIENT_ERROR",
}
StateQuery_value = map[string]int32{
"QUERY_PENDING": 0,
"QUERY_RUNNING": 1,
"QUERY_PENDING_RUNNING": 2,
"QUERY_COMPLETED": 3,
"QUERY_COMPLETED_SUCCESS": 4,
"QUERY_COMPLETED_FAILURE": 5,
"QUERY_EXPIRED": 6,
"QUERY_TIMED_OUT": 7,
"QUERY_BOT_DIED": 8,
"QUERY_CANCELED": 9,
"QUERY_ALL": 10,
"QUERY_DEDUPED": 11,
"QUERY_KILLED": 12,
"QUERY_NO_RESOURCE": 13,
"QUERY_CLIENT_ERROR": 14,
}
)
func (x StateQuery) Enum() *StateQuery {
p := new(StateQuery)
*p = x
return p
}
func (x StateQuery) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (StateQuery) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes[0].Descriptor()
}
func (StateQuery) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes[0]
}
func (x StateQuery) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use StateQuery.Descriptor instead.
func (StateQuery) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{0}
}
// Flag to sort returned tasks. The natural sort is CREATED_TS.
type SortQuery int32
const (
SortQuery_QUERY_CREATED_TS SortQuery = 0
SortQuery_QUERY_COMPLETED_TS SortQuery = 2
SortQuery_QUERY_ABANDONED_TS SortQuery = 3
SortQuery_QUERY_STARTED_TS SortQuery = 4
)
// Enum value maps for SortQuery.
var (
SortQuery_name = map[int32]string{
0: "QUERY_CREATED_TS",
2: "QUERY_COMPLETED_TS",
3: "QUERY_ABANDONED_TS",
4: "QUERY_STARTED_TS",
}
SortQuery_value = map[string]int32{
"QUERY_CREATED_TS": 0,
"QUERY_COMPLETED_TS": 2,
"QUERY_ABANDONED_TS": 3,
"QUERY_STARTED_TS": 4,
}
)
func (x SortQuery) Enum() *SortQuery {
p := new(SortQuery)
*p = x
return p
}
func (x SortQuery) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (SortQuery) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes[1].Descriptor()
}
func (SortQuery) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes[1]
}
func (x SortQuery) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use SortQuery.Descriptor instead.
func (SortQuery) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{1}
}
type NullableBool int32
const (
NullableBool_NULL NullableBool = 0
NullableBool_FALSE NullableBool = 1
NullableBool_TRUE NullableBool = 2
)
// Enum value maps for NullableBool.
var (
NullableBool_name = map[int32]string{
0: "NULL",
1: "FALSE",
2: "TRUE",
}
NullableBool_value = map[string]int32{
"NULL": 0,
"FALSE": 1,
"TRUE": 2,
}
)
func (x NullableBool) Enum() *NullableBool {
p := new(NullableBool)
*p = x
return p
}
func (x NullableBool) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (NullableBool) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes[2].Descriptor()
}
func (NullableBool) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes[2]
}
func (x NullableBool) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use NullableBool.Descriptor instead.
func (NullableBool) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{2}
}
// Represents the current task state.
//
// Some states are still mutable: PENDING and RUNNING. The others are final and
// will not change afterward.
//
// A task is guaranteed to be in exactly one state at any point of time.
//
// Do not confuse StateQuery and TaskState. StateQuery is to query tasks
// via the API. TaskState is the current task state.
//
// As you read the following constants, astute readers may wonder why these
// constants look like a bitmask. This is because of historical reasons and this
// is effectively an enum, not a bitmask.
type TaskState int32
const (
// Invalid state, do not use.
TaskState_INVALID TaskState = 0
// The task is currently running. This is in fact 3 phases: the initial
// overhead to fetch input files, the actual task running, and the tear down
// overhead to archive output files to the server.
TaskState_RUNNING TaskState = 16
// The task is currently pending. This means that no bot reaped the task. It
// will stay in this state until either a task reaps it or the expiration
// elapsed. The task pending expiration is specified as
// TaskSlice.expiration_secs, one per task slice.
TaskState_PENDING TaskState = 32
// The task is not pending anymore, and never ran due to lack of capacity. This
// means that other higher priority tasks ran instead and that not enough bots
// were available to run this task for TaskSlice.expiration_secs seconds.
TaskState_EXPIRED TaskState = 48
// The task ran for longer than the allowed time in
// TaskProperties.execution_timeout_secs or TaskProperties.io_timeout_secs.
// This means the bot forcefully killed the task process as described in the
// graceful termination dance in the documentation.
TaskState_TIMED_OUT TaskState = 64
// The task ran but the bot had an internal failure, unrelated to the task
// itself. It can be due to the server being unavailable to get task update,
// the host on which the bot is running crashing or rebooting, etc.
TaskState_BOT_DIED TaskState = 80
// The task never ran, and was manually cancelled via the 'cancel' API before
// it was reaped.
TaskState_CANCELED TaskState = 96
// The task ran and completed normally. The task process exit code may be 0 or
// another value.
TaskState_COMPLETED TaskState = 112
// The task ran but was manually killed via the 'cancel' API. This means the
// bot forcefully killed the task process as described in the graceful
// termination dance in the documentation.
TaskState_KILLED TaskState = 128
// The task was never set to PENDING and was immediately refused, as the server
// determined that there is no bot capacity to run this task. This happens
// because no bot exposes a superset of the requested task dimensions.
//
// Set TaskSlice.wait_for_capacity to True to force the server to keep the task
// slice pending even in this case. Generally speaking, the task will
// eventually switch to EXPIRED, as there's no bot to run it. That said, there
// are situations where it is known that in some not-too-distant future a wild
// bot will appear that will be able to run this task.
TaskState_NO_RESOURCE TaskState = 256
// The task run into an issue that was caused by the client. It can be due to
// a bad CIPD or CAS package. Retrying the task with the same parameters will
// not change the result.
TaskState_CLIENT_ERROR TaskState = 512
)
// Enum value maps for TaskState.
var (
TaskState_name = map[int32]string{
0: "INVALID",
16: "RUNNING",
32: "PENDING",
48: "EXPIRED",
64: "TIMED_OUT",
80: "BOT_DIED",
96: "CANCELED",
112: "COMPLETED",
128: "KILLED",
256: "NO_RESOURCE",
512: "CLIENT_ERROR",
}
TaskState_value = map[string]int32{
"INVALID": 0,
"RUNNING": 16,
"PENDING": 32,
"EXPIRED": 48,
"TIMED_OUT": 64,
"BOT_DIED": 80,
"CANCELED": 96,
"COMPLETED": 112,
"KILLED": 128,
"NO_RESOURCE": 256,
"CLIENT_ERROR": 512,
}
)
func (x TaskState) Enum() *TaskState {
p := new(TaskState)
*p = x
return p
}
func (x TaskState) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (TaskState) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes[3].Descriptor()
}
func (TaskState) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes[3]
}
func (x TaskState) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use TaskState.Descriptor instead.
func (TaskState) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{3}
}
type Containment_ContainmentType int32
const (
// Historical value, not specified. Containment may or may not be used.
Containment_NOT_SPECIFIED Containment_ContainmentType = 0
// No containment, the default for now.
Containment_NONE Containment_ContainmentType = 1
// Use the containment appropriate on the platform.
Containment_AUTO Containment_ContainmentType = 2
// Use Job Object on Windows. Will fail if used on other platforms.
Containment_JOB_OBJECT Containment_ContainmentType = 3
)
// Enum value maps for Containment_ContainmentType.
var (
Containment_ContainmentType_name = map[int32]string{
0: "NOT_SPECIFIED",
1: "NONE",
2: "AUTO",
3: "JOB_OBJECT",
}
Containment_ContainmentType_value = map[string]int32{
"NOT_SPECIFIED": 0,
"NONE": 1,
"AUTO": 2,
"JOB_OBJECT": 3,
}
)
func (x Containment_ContainmentType) Enum() *Containment_ContainmentType {
p := new(Containment_ContainmentType)
*p = x
return p
}
func (x Containment_ContainmentType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Containment_ContainmentType) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes[4].Descriptor()
}
func (Containment_ContainmentType) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes[4]
}
func (x Containment_ContainmentType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Containment_ContainmentType.Descriptor instead.
func (Containment_ContainmentType) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{11, 0}
}
// Controls the application of the pool's TaskTemplate to the creation of this
// task. By default this will automatically select the pool's preference for
// template, but you can also instruct swarming to prefer/prevent the
// application of canary templates, as well as skipping the template
// altogether.
type NewTaskRequest_PoolTaskTemplateField int32
const (
NewTaskRequest_AUTO NewTaskRequest_PoolTaskTemplateField = 0
NewTaskRequest_CANARY_PREFER NewTaskRequest_PoolTaskTemplateField = 1
NewTaskRequest_CANARY_NEVER NewTaskRequest_PoolTaskTemplateField = 2
NewTaskRequest_SKIP NewTaskRequest_PoolTaskTemplateField = 3
)
// Enum value maps for NewTaskRequest_PoolTaskTemplateField.
var (
NewTaskRequest_PoolTaskTemplateField_name = map[int32]string{
0: "AUTO",
1: "CANARY_PREFER",
2: "CANARY_NEVER",
3: "SKIP",
}
NewTaskRequest_PoolTaskTemplateField_value = map[string]int32{
"AUTO": 0,
"CANARY_PREFER": 1,
"CANARY_NEVER": 2,
"SKIP": 3,
}
)
func (x NewTaskRequest_PoolTaskTemplateField) Enum() *NewTaskRequest_PoolTaskTemplateField {
p := new(NewTaskRequest_PoolTaskTemplateField)
*p = x
return p
}
func (x NewTaskRequest_PoolTaskTemplateField) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (NewTaskRequest_PoolTaskTemplateField) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes[5].Descriptor()
}
func (NewTaskRequest_PoolTaskTemplateField) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes[5]
}
func (x NewTaskRequest_PoolTaskTemplateField) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use NewTaskRequest_PoolTaskTemplateField.Descriptor instead.
func (NewTaskRequest_PoolTaskTemplateField) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{16, 0}
}
// Represents a mapping of string to a string.
//
// If the StringPair is itself repeated inside another message, the list
// must be sorted by key and the keys must be unique.
type StringPair struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}
func (x *StringPair) Reset() {
*x = StringPair{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StringPair) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StringPair) ProtoMessage() {}
func (x *StringPair) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 StringPair.ProtoReflect.Descriptor instead.
func (*StringPair) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{0}
}
func (x *StringPair) GetKey() string {
if x != nil {
return x.Key
}
return ""
}
func (x *StringPair) GetValue() string {
if x != nil {
return x.Value
}
return ""
}
// Represents a mapping of string to a list of strings.
//
// If the StringListPair is itself repeated inside another message, the list
// must be sorted by key and the keys must be unique.
type StringListPair struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
// All the values for this key. values must be sorted. Human readable.
//
// This string should make sense to a user in the context of 'key'.
Value []string `protobuf:"bytes,2,rep,name=value,proto3" json:"value,omitempty"`
}
func (x *StringListPair) Reset() {
*x = StringListPair{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StringListPair) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StringListPair) ProtoMessage() {}
func (x *StringListPair) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 StringListPair.ProtoReflect.Descriptor instead.
func (*StringListPair) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{1}
}
func (x *StringListPair) GetKey() string {
if x != nil {
return x.Key
}
return ""
}
func (x *StringListPair) GetValue() []string {
if x != nil {
return x.Value
}
return nil
}
// Public details about the server.
type ServerDetails struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ServerVersion string `protobuf:"bytes,1,opt,name=server_version,json=serverVersion,proto3" json:"server_version,omitempty"`
BotVersion string `protobuf:"bytes,2,opt,name=bot_version,json=botVersion,proto3" json:"bot_version,omitempty"`
// Deprecated: Marked as deprecated in go.chromium.org/luci/swarming/proto/api_v2/swarming.proto.
MachineProviderTemplate string `protobuf:"bytes,3,opt,name=machine_provider_template,json=machineProviderTemplate,proto3" json:"machine_provider_template,omitempty"`
DisplayServerUrlTemplate string `protobuf:"bytes,4,opt,name=display_server_url_template,json=displayServerUrlTemplate,proto3" json:"display_server_url_template,omitempty"`
// Deprecated: Marked as deprecated in go.chromium.org/luci/swarming/proto/api_v2/swarming.proto.
LuciConfig string `protobuf:"bytes,5,opt,name=luci_config,json=luciConfig,proto3" json:"luci_config,omitempty"`
CasViewerServer string `protobuf:"bytes,6,opt,name=cas_viewer_server,json=casViewerServer,proto3" json:"cas_viewer_server,omitempty"`
}
func (x *ServerDetails) Reset() {
*x = ServerDetails{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ServerDetails) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ServerDetails) ProtoMessage() {}
func (x *ServerDetails) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 ServerDetails.ProtoReflect.Descriptor instead.
func (*ServerDetails) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{2}
}
func (x *ServerDetails) GetServerVersion() string {
if x != nil {
return x.ServerVersion
}
return ""
}
func (x *ServerDetails) GetBotVersion() string {
if x != nil {
return x.BotVersion
}
return ""
}
// Deprecated: Marked as deprecated in go.chromium.org/luci/swarming/proto/api_v2/swarming.proto.
func (x *ServerDetails) GetMachineProviderTemplate() string {
if x != nil {
return x.MachineProviderTemplate
}
return ""
}
func (x *ServerDetails) GetDisplayServerUrlTemplate() string {
if x != nil {
return x.DisplayServerUrlTemplate
}
return ""
}
// Deprecated: Marked as deprecated in go.chromium.org/luci/swarming/proto/api_v2/swarming.proto.
func (x *ServerDetails) GetLuciConfig() string {
if x != nil {
return x.LuciConfig
}
return ""
}
func (x *ServerDetails) GetCasViewerServer() string {
if x != nil {
return x.CasViewerServer
}
return ""
}
// An opaque token that can be used to bootstrap a new bot.
type BootstrapToken struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
BootstrapToken string `protobuf:"bytes,1,opt,name=bootstrap_token,json=bootstrapToken,proto3" json:"bootstrap_token,omitempty"`
}
func (x *BootstrapToken) Reset() {
*x = BootstrapToken{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BootstrapToken) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BootstrapToken) ProtoMessage() {}
func (x *BootstrapToken) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 BootstrapToken.ProtoReflect.Descriptor instead.
func (*BootstrapToken) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{3}
}
func (x *BootstrapToken) GetBootstrapToken() string {
if x != nil {
return x.BootstrapToken
}
return ""
}
// Actions the caller is permitted to perform over a resource.
//
// The subject of an action is either a bot, a task or a bunch of pools, as
// specified in the PermissionsRequest message. Pools as specified indirectly
// via "pool:<name>" tags.
//
// This methods exists primarily to be used by the Web UI e.g. to hide
// inaccessible elements.
type ClientPermissions struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// True if allowed to delete the specified bot.
DeleteBot bool `protobuf:"varint,1,opt,name=delete_bot,json=deleteBot,proto3" json:"delete_bot,omitempty"`
// True if allowed to delete bots in all specified pools.
DeleteBots bool `protobuf:"varint,2,opt,name=delete_bots,json=deleteBots,proto3" json:"delete_bots,omitempty"`
// True if allowed to terminate the specified bot.
TerminateBot bool `protobuf:"varint,3,opt,name=terminate_bot,json=terminateBot,proto3" json:"terminate_bot,omitempty"`
// Not used, always false.
//
// Deprecated: Marked as deprecated in go.chromium.org/luci/swarming/proto/api_v2/swarming.proto.
GetConfigs bool `protobuf:"varint,4,opt,name=get_configs,json=getConfigs,proto3" json:"get_configs,omitempty"`
// Not used, always false.
//
// Deprecated: Marked as deprecated in go.chromium.org/luci/swarming/proto/api_v2/swarming.proto.
PutConfigs bool `protobuf:"varint,5,opt,name=put_configs,json=putConfigs,proto3" json:"put_configs,omitempty"`
// True if allowed to cancel the specified task.
CancelTask bool `protobuf:"varint,6,opt,name=cancel_task,json=cancelTask,proto3" json:"cancel_task,omitempty"`
// True if allowed to request a bot bootstrap token.
GetBootstrapToken bool `protobuf:"varint,7,opt,name=get_bootstrap_token,json=getBootstrapToken,proto3" json:"get_bootstrap_token,omitempty"`
// True if allowed to cancel tasks in all specified pools.
CancelTasks bool `protobuf:"varint,8,opt,name=cancel_tasks,json=cancelTasks,proto3" json:"cancel_tasks,omitempty"`
// All known pools in which the caller is permitted to list all bots.
ListBots []string `protobuf:"bytes,9,rep,name=list_bots,json=listBots,proto3" json:"list_bots,omitempty"`
// All known pools in which the caller is permitted to list all tasks.
ListTasks []string `protobuf:"bytes,10,rep,name=list_tasks,json=listTasks,proto3" json:"list_tasks,omitempty"`
}
func (x *ClientPermissions) Reset() {
*x = ClientPermissions{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ClientPermissions) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ClientPermissions) ProtoMessage() {}
func (x *ClientPermissions) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 ClientPermissions.ProtoReflect.Descriptor instead.
func (*ClientPermissions) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{4}
}
func (x *ClientPermissions) GetDeleteBot() bool {
if x != nil {
return x.DeleteBot
}
return false
}
func (x *ClientPermissions) GetDeleteBots() bool {
if x != nil {
return x.DeleteBots
}
return false
}
func (x *ClientPermissions) GetTerminateBot() bool {
if x != nil {
return x.TerminateBot
}
return false
}
// Deprecated: Marked as deprecated in go.chromium.org/luci/swarming/proto/api_v2/swarming.proto.
func (x *ClientPermissions) GetGetConfigs() bool {
if x != nil {
return x.GetConfigs
}
return false
}
// Deprecated: Marked as deprecated in go.chromium.org/luci/swarming/proto/api_v2/swarming.proto.
func (x *ClientPermissions) GetPutConfigs() bool {
if x != nil {
return x.PutConfigs
}
return false
}
func (x *ClientPermissions) GetCancelTask() bool {
if x != nil {
return x.CancelTask
}
return false
}
func (x *ClientPermissions) GetGetBootstrapToken() bool {
if x != nil {
return x.GetBootstrapToken
}
return false
}
func (x *ClientPermissions) GetCancelTasks() bool {
if x != nil {
return x.CancelTasks
}
return false
}
func (x *ClientPermissions) GetListBots() []string {
if x != nil {
return x.ListBots
}
return nil
}
func (x *ClientPermissions) GetListTasks() []string {
if x != nil {
return x.ListTasks
}
return nil
}
// This is a [Digest][build.bazel.remote.execution.v2.Digest] of a blob on
// RBE-CAS. See the explanations at the original definition.
// pylint: disable=line-too-long
// https://github.com/bazelbuild/remote-apis/blob/77cfb44a88577a7ade5dd2400425f6d50469ec6d/build/bazel/remote/execution/v2/remote_execution.proto#L753-L791
type Digest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
SizeBytes int64 `protobuf:"varint,2,opt,name=size_bytes,json=sizeBytes,proto3" json:"size_bytes,omitempty"`
}
func (x *Digest) Reset() {
*x = Digest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Digest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Digest) ProtoMessage() {}
func (x *Digest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 Digest.ProtoReflect.Descriptor instead.
func (*Digest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{5}
}
func (x *Digest) GetHash() string {
if x != nil {
return x.Hash
}
return ""
}
func (x *Digest) GetSizeBytes() int64 {
if x != nil {
return x.SizeBytes
}
return 0
}
type CASReference struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Full name of RBE-CAS instance. `projects/{project_id}/instances/{instance}`.
// e.g. projects/chromium-swarm/instances/default_instance
CasInstance string `protobuf:"bytes,1,opt,name=cas_instance,json=casInstance,proto3" json:"cas_instance,omitempty"`
// CAS Digest consists of hash and size bytes.
Digest *Digest `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
}
func (x *CASReference) Reset() {
*x = CASReference{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CASReference) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CASReference) ProtoMessage() {}
func (x *CASReference) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 CASReference.ProtoReflect.Descriptor instead.
func (*CASReference) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{6}
}
func (x *CASReference) GetCasInstance() string {
if x != nil {
return x.CasInstance
}
return ""
}
func (x *CASReference) GetDigest() *Digest {
if x != nil {
return x.Digest
}
return nil
}
type CipdPackage struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// A CIPD package to install in the run dir before task execution."""
// A template of a full CIPD package name, e.g.
// "infra/tools/authutil/${platform}"
// See also cipd.ALL_PARAMS.
PackageName string `protobuf:"bytes,1,opt,name=package_name,json=packageName,proto3" json:"package_name,omitempty"`
// Valid package version for all packages matched by package name.
Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
// Path to dir, relative to the root dir, where to install the package.
// If empty, the package will be installed a the root of the mapped directory.
// If file names in the package and in the isolate clash, it will cause a
// failure.
Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
}
func (x *CipdPackage) Reset() {
*x = CipdPackage{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CipdPackage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CipdPackage) ProtoMessage() {}
func (x *CipdPackage) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 CipdPackage.ProtoReflect.Descriptor instead.
func (*CipdPackage) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{7}
}
func (x *CipdPackage) GetPackageName() string {
if x != nil {
return x.PackageName
}
return ""
}
func (x *CipdPackage) GetVersion() string {
if x != nil {
return x.Version
}
return ""
}
func (x *CipdPackage) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
// Defines CIPD packages to install in task run directory.
type CipdInput struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// URL of the CIPD server. Must start with "https://" or "http://".
// This field or its subfields are optional if default cipd client is defined
// in the server config.
Server string `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"`
// CIPD package of CIPD client to use.
// client_package.version is required.
// This field is optional is default value is defined in the server config.
// client_package.path must be empty.
ClientPackage *CipdPackage `protobuf:"bytes,2,opt,name=client_package,json=clientPackage,proto3" json:"client_package,omitempty"`
// List of CIPD packages to install.
Packages []*CipdPackage `protobuf:"bytes,3,rep,name=packages,proto3" json:"packages,omitempty"`
}
func (x *CipdInput) Reset() {
*x = CipdInput{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CipdInput) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CipdInput) ProtoMessage() {}
func (x *CipdInput) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 CipdInput.ProtoReflect.Descriptor instead.
func (*CipdInput) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{8}
}
func (x *CipdInput) GetServer() string {
if x != nil {
return x.Server
}
return ""
}
func (x *CipdInput) GetClientPackage() *CipdPackage {
if x != nil {
return x.ClientPackage
}
return nil
}
func (x *CipdInput) GetPackages() []*CipdPackage {
if x != nil {
return x.Packages
}
return nil
}
// Defines pinned CIPD packages that were installed during the task.
type CipdPins struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The pinned package + version of the CIPD client that was actually used.
ClientPackage *CipdPackage `protobuf:"bytes,1,opt,name=client_package,json=clientPackage,proto3" json:"client_package,omitempty"`
// List of CIPD packages that were installed in the task with fully resolved
// package names and versions.
Packages []*CipdPackage `protobuf:"bytes,2,rep,name=packages,proto3" json:"packages,omitempty"`
}
func (x *CipdPins) Reset() {
*x = CipdPins{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CipdPins) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CipdPins) ProtoMessage() {}
func (x *CipdPins) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 CipdPins.ProtoReflect.Descriptor instead.
func (*CipdPins) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{9}
}
func (x *CipdPins) GetClientPackage() *CipdPackage {
if x != nil {
return x.ClientPackage
}
return nil
}
func (x *CipdPins) GetPackages() []*CipdPackage {
if x != nil {
return x.Packages
}
return nil
}
// Describes a named cache that should be present on the bot.
//
// A CacheEntry in a task specified that the task prefers the cache to be present
// on the bot. A symlink to the cache directory is created at <run_dir>/|path|.
// If cache is not present on the machine, the directory is empty.
// If the tasks makes any changes to the contents of the cache directory, they
// are persisted on the machine. If another task runs on the same machine and
// requests the same named cache, even if mapped to a different path, it will see
// the changes.
type CacheEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Unique name of the cache. Required. Length is limited to 4096.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Relative path to the directory that will be linked to the named cache.
// Required.
// A path cannot be shared among multiple caches or CIPD installations.
// A task will fail if a file/dir with the same name already exists.
Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
}
func (x *CacheEntry) Reset() {
*x = CacheEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CacheEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CacheEntry) ProtoMessage() {}
func (x *CacheEntry) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 CacheEntry.ProtoReflect.Descriptor instead.
func (*CacheEntry) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{10}
}
func (x *CacheEntry) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *CacheEntry) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
// Defines the type of "sandbox" to run the task process in.
//
// Unimplemented.
type Containment struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Lowers the priority of the task process when started. Doesn't require
// containment. This gives the bot a chance to survive when the task starts an
// overwhelming number of children processes.
LowerPriority bool `protobuf:"varint,1,opt,name=lower_priority,json=lowerPriority,proto3" json:"lower_priority,omitempty"`
// Defines the type of containment used.
ContainmentType Containment_ContainmentType `protobuf:"varint,2,opt,name=containment_type,json=containmentType,proto3,enum=swarming.v2.Containment_ContainmentType" json:"containment_type,omitempty"`
// Limits the number of concurrent active processes.
LimitProcesses int64 `protobuf:"varint,3,opt,name=limit_processes,json=limitProcesses,proto3" json:"limit_processes,omitempty"`
// Limits the total amount of memory allocated by processes.
LimitTotalCommittedMemory int64 `protobuf:"varint,4,opt,name=limit_total_committed_memory,json=limitTotalCommittedMemory,proto3" json:"limit_total_committed_memory,omitempty"`
}
func (x *Containment) Reset() {
*x = Containment{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Containment) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Containment) ProtoMessage() {}
func (x *Containment) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 Containment.ProtoReflect.Descriptor instead.
func (*Containment) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{11}
}
func (x *Containment) GetLowerPriority() bool {
if x != nil {
return x.LowerPriority
}
return false
}
func (x *Containment) GetContainmentType() Containment_ContainmentType {
if x != nil {
return x.ContainmentType
}
return Containment_NOT_SPECIFIED
}
func (x *Containment) GetLimitProcesses() int64 {
if x != nil {
return x.LimitProcesses
}
return 0
}
func (x *Containment) GetLimitTotalCommittedMemory() int64 {
if x != nil {
return x.LimitTotalCommittedMemory
}
return 0
}
// Important metadata about a particular task.
type TaskProperties struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Specifies named caches to map into the working directory. These caches
// outlives the task, which can then be reused by tasks later used on this bot
// that request the same named cache.
Caches []*CacheEntry `protobuf:"bytes,1,rep,name=caches,proto3" json:"caches,omitempty"`
// CIPD packages to install. These packages are meant to be software that is
// needed (a dependency) to the task being run. Unlike isolated files, the CIPD
// packages do not expire from the server.
CipdInput *CipdInput `protobuf:"bytes,2,opt,name=cipd_input,json=cipdInput,proto3" json:"cipd_input,omitempty"`
// Command to run. This has priority over a command specified in the isolated
// files.
Command []string `protobuf:"bytes,3,rep,name=command,proto3" json:"command,omitempty"`
// Relative working directory to start the 'command' in, defaults to the root
// mapped directory or what is provided in the isolated file, if any.
RelativeCwd string `protobuf:"bytes,4,opt,name=relative_cwd,json=relativeCwd,proto3" json:"relative_cwd,omitempty"`
// Dimensions are what is used to determine which bot can run the task. The
// bot must have all the matching dimensions, even for repeated keys with
// multiple different values. It is a logical AND, all values must match.
//
// It should have been a StringListPair but this would be a breaking change.
Dimensions []*StringPair `protobuf:"bytes,5,rep,name=dimensions,proto3" json:"dimensions,omitempty"`
// Environment variables to set when running the task.
Env []*StringPair `protobuf:"bytes,6,rep,name=env,proto3" json:"env,omitempty"`
// Swarming-root relative paths to prepend to a given environment variable.
//
// These allow you to put certain subdirectories of the task into PATH,
// PYTHONPATH, or other PATH-like environment variables. The order of
// operations is:
// - Turn slashes into native-platform slashes.
// - Make the path absolute
// - Prepend it to the current value of the envvar using the os-native list
// separator (i.e. `;` on windows, `:` on POSIX).
//
// Each envvar can have multiple paths to prepend. They will be prepended in
// the order seen here.
//
// For example, if env_prefixes was:
//
// [("PATH", ["foo", "bar"]),
// ("CUSTOMPATH", ["custom"])]
//
// The task would see:
//
// PATH=/path/to/swarming/rundir/foo:/path/to/swarming/rundir/bar:$PATH
// CUSTOMPATH=/path/to/swarming/rundir/custom
//
// The path should always be specified here with forward-slashes, and it must
// not attempt to escape the swarming root (i.e. must not contain `..`).
//
// These are applied AFTER evaluating `env` entries.
EnvPrefixes []*StringListPair `protobuf:"bytes,7,rep,name=env_prefixes,json=envPrefixes,proto3" json:"env_prefixes,omitempty"`
// Maximum number of seconds the task can run before its process is forcibly
// terminated and the task results in TIMED_OUT.
ExecutionTimeoutSecs int32 `protobuf:"varint,8,opt,name=execution_timeout_secs,json=executionTimeoutSecs,proto3" json:"execution_timeout_secs,omitempty"`
// Number of second to give the child process after a SIGTERM before sending a
// SIGKILL. See doc/Bot.md#timeout-handling
GracePeriodSecs int32 `protobuf:"varint,9,opt,name=grace_period_secs,json=gracePeriodSecs,proto3" json:"grace_period_secs,omitempty"`
// True if the task does not access any service through the network and is
// believed to be 100% reproducible with the same outcome. In the case of a
// successful task, previous results will be reused if possible.
Idempotent bool `protobuf:"varint,10,opt,name=idempotent,proto3" json:"idempotent,omitempty"`
// Digest of the input root uploaded to RBE-CAS.
// This MUST be digest of [build.bazel.remote.execution.v2.Directory].
CasInputRoot *CASReference `protobuf:"bytes,11,opt,name=cas_input_root,json=casInputRoot,proto3" json:"cas_input_root,omitempty"`
// Maximum number of seconds the task may be silent (no output to stdout nor
// stderr) before it is considered hung and it forcibly terminated early and
// the task results in TIMED_OUT.
IoTimeoutSecs int32 `protobuf:"varint,12,opt,name=io_timeout_secs,json=ioTimeoutSecs,proto3" json:"io_timeout_secs,omitempty"`
// Paths in the working directory to archive back.
Outputs []string `protobuf:"bytes,13,rep,name=outputs,proto3" json:"outputs,omitempty"`
// Secret bytes to provide to the task. Cannot be retrieved back.
SecretBytes []byte `protobuf:"bytes,14,opt,name=secret_bytes,json=secretBytes,proto3" json:"secret_bytes,omitempty"`
// Containment of the task processes.
Containment *Containment `protobuf:"bytes,15,opt,name=containment,proto3" json:"containment,omitempty"`
}
func (x *TaskProperties) Reset() {
*x = TaskProperties{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskProperties) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskProperties) ProtoMessage() {}
func (x *TaskProperties) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 TaskProperties.ProtoReflect.Descriptor instead.
func (*TaskProperties) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{12}
}
func (x *TaskProperties) GetCaches() []*CacheEntry {
if x != nil {
return x.Caches
}
return nil
}
func (x *TaskProperties) GetCipdInput() *CipdInput {
if x != nil {
return x.CipdInput
}
return nil
}
func (x *TaskProperties) GetCommand() []string {
if x != nil {
return x.Command
}
return nil
}
func (x *TaskProperties) GetRelativeCwd() string {
if x != nil {
return x.RelativeCwd
}
return ""
}
func (x *TaskProperties) GetDimensions() []*StringPair {
if x != nil {
return x.Dimensions
}
return nil
}
func (x *TaskProperties) GetEnv() []*StringPair {
if x != nil {
return x.Env
}
return nil
}
func (x *TaskProperties) GetEnvPrefixes() []*StringListPair {
if x != nil {
return x.EnvPrefixes
}
return nil
}
func (x *TaskProperties) GetExecutionTimeoutSecs() int32 {
if x != nil {
return x.ExecutionTimeoutSecs
}
return 0
}
func (x *TaskProperties) GetGracePeriodSecs() int32 {
if x != nil {
return x.GracePeriodSecs
}
return 0
}
func (x *TaskProperties) GetIdempotent() bool {
if x != nil {
return x.Idempotent
}
return false
}
func (x *TaskProperties) GetCasInputRoot() *CASReference {
if x != nil {
return x.CasInputRoot
}
return nil
}
func (x *TaskProperties) GetIoTimeoutSecs() int32 {
if x != nil {
return x.IoTimeoutSecs
}
return 0
}
func (x *TaskProperties) GetOutputs() []string {
if x != nil {
return x.Outputs
}
return nil
}
func (x *TaskProperties) GetSecretBytes() []byte {
if x != nil {
return x.SecretBytes
}
return nil
}
func (x *TaskProperties) GetContainment() *Containment {
if x != nil {
return x.Containment
}
return nil
}
// Defines a possible task execution for a task request to be run on the
// Swarming infrastructure.
//
// This is one of the possible fallback on a task request.
type TaskSlice struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The property of the task to try to run.
//
// If there is no bot that can serve this properties.dimensions when this task
// slice is enqueued, it is immediately denied. This can trigger if:
// - There is no bot with these dimensions currently known.
// - Bots that could run this task are either all dead or quarantined.
// Swarming considers a bot dead if it hasn't pinged in the last N minutes
// (currently 10 minutes).
Properties *TaskProperties `protobuf:"bytes,1,opt,name=properties,proto3" json:"properties,omitempty"`
// Maximum of seconds the task slice may stay PENDING.
//
// If this task request slice is not scheduled after waiting this long, the
// next one will be processed. If this slice is the last one, the task state
// will be set to EXPIRED.
ExpirationSecs int32 `protobuf:"varint,2,opt,name=expiration_secs,json=expirationSecs,proto3" json:"expiration_secs,omitempty"`
// When a task is scheduled and there are currently no bots available to run
// the task, the TaskSlice can either be PENDING, or be denied immediately.
// When denied, the next TaskSlice is enqueued, and if there's no following
// TaskSlice, the task state is set to NO_RESOURCE. This should normally be
// set to False to avoid unnecessary waiting.
WaitForCapacity bool `protobuf:"varint,3,opt,name=wait_for_capacity,json=waitForCapacity,proto3" json:"wait_for_capacity,omitempty"`
}
func (x *TaskSlice) Reset() {
*x = TaskSlice{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskSlice) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskSlice) ProtoMessage() {}
func (x *TaskSlice) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 TaskSlice.ProtoReflect.Descriptor instead.
func (*TaskSlice) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{13}
}
func (x *TaskSlice) GetProperties() *TaskProperties {
if x != nil {
return x.Properties
}
return nil
}
func (x *TaskSlice) GetExpirationSecs() int32 {
if x != nil {
return x.ExpirationSecs
}
return 0
}
func (x *TaskSlice) GetWaitForCapacity() bool {
if x != nil {
return x.WaitForCapacity
}
return false
}
type SwarmingTaskBackendConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Task priority, the lower the more important.
//
// Valid values are between 1 and 255.
Priority int32 `protobuf:"varint,1,opt,name=priority,proto3" json:"priority,omitempty"`
// Maximum delay (in seconds) between bot pings before the bot is considered
// dead while running a task.
//
// When a task is running, the bot sends update to the server every
// few seconds. In some cases, like when the system is overloaded,
// the bot may be preempted and delayed in sending its updates.
// After the delay specified here, the server will claim the bot to
// be dead and will forcibly abort the task as BOT_DIED. This is to
// catch system wide issues like a BSOD.
BotPingTolerance int64 `protobuf:"varint,2,opt,name=bot_ping_tolerance,json=botPingTolerance,proto3" json:"bot_ping_tolerance,omitempty"`
// Parent Swarming task run ID of the process requesting this task.
//
// This field is set on the children tasks when a Swarming task creates
// children Swarming tasks.
//
// This points to the TaskResult.run_id (ending with '1', '2' or more).
ParentRunId string `protobuf:"bytes,3,opt,name=parent_run_id,json=parentRunId,proto3" json:"parent_run_id,omitempty"`
// Defines what OAuth2 credentials the task uses when calling other services.
//
// Possible values are:
// - 'none': do not use a task service account at all, this is the default.
// - 'bot': use bot's own account, works only if bots authenticate with
// OAuth2.
// - <some email>: use this specific service account if it is allowed in the
// pool (via 'allowed_service_account' pools.cfg setting) and configured
// in the token server's service_accounts.cfg.
//
// Note that the service account name is specified outside of task properties,
// and thus it is possible to have two tasks with different service accounts,
// but identical properties hash (so one can be deduped). If this is
// unsuitable use 'idempotent=False' or include a service account name in
// properties separately.
ServiceAccount string `protobuf:"bytes,4,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
// When a task is scheduled and there are currently no bots available to run
// the task, the TaskSlice can either be PENDING, or be denied immediately.
// When denied, the next TaskSlice is enqueued, and if there's no following
// TaskSlice, the task state is set to NO_RESOURCE. This should normally be
// set to False to avoid unnecessary waiting.
WaitForCapacity bool `protobuf:"varint,5,opt,name=wait_for_capacity,json=waitForCapacity,proto3" json:"wait_for_capacity,omitempty"`
// CIPD package of the agent binary that should be called to run the task
// command. Note that it will end with "${platform}"
AgentBinaryCipdPkg string `protobuf:"bytes,6,opt,name=agent_binary_cipd_pkg,json=agentBinaryCipdPkg,proto3" json:"agent_binary_cipd_pkg,omitempty"`
// CIPD package tag or ref of the agent binary.
AgentBinaryCipdVers string `protobuf:"bytes,7,opt,name=agent_binary_cipd_vers,json=agentBinaryCipdVers,proto3" json:"agent_binary_cipd_vers,omitempty"`
// Name of the file within the CIPD package and should be used to construct
// the task command line.
AgentBinaryCipdFilename string `protobuf:"bytes,8,opt,name=agent_binary_cipd_filename,json=agentBinaryCipdFilename,proto3" json:"agent_binary_cipd_filename,omitempty"`
// Name of the CIPD server.
AgentBinaryCipdServer string `protobuf:"bytes,9,opt,name=agent_binary_cipd_server,json=agentBinaryCipdServer,proto3" json:"agent_binary_cipd_server,omitempty"`
// Tags are 'key:value' strings that describes what the task is about.
// This can later be leveraged to search for kinds of tasks per tag.
Tags []string `protobuf:"bytes,10,rep,name=tags,proto3" json:"tags,omitempty"`
// Customized name of the task.
TaskName string `protobuf:"bytes,11,opt,name=task_name,json=taskName,proto3" json:"task_name,omitempty"`
}
func (x *SwarmingTaskBackendConfig) Reset() {
*x = SwarmingTaskBackendConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SwarmingTaskBackendConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SwarmingTaskBackendConfig) ProtoMessage() {}
func (x *SwarmingTaskBackendConfig) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 SwarmingTaskBackendConfig.ProtoReflect.Descriptor instead.
func (*SwarmingTaskBackendConfig) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{14}
}
func (x *SwarmingTaskBackendConfig) GetPriority() int32 {
if x != nil {
return x.Priority
}
return 0
}
func (x *SwarmingTaskBackendConfig) GetBotPingTolerance() int64 {
if x != nil {
return x.BotPingTolerance
}
return 0
}
func (x *SwarmingTaskBackendConfig) GetParentRunId() string {
if x != nil {
return x.ParentRunId
}
return ""
}
func (x *SwarmingTaskBackendConfig) GetServiceAccount() string {
if x != nil {
return x.ServiceAccount
}
return ""
}
func (x *SwarmingTaskBackendConfig) GetWaitForCapacity() bool {
if x != nil {
return x.WaitForCapacity
}
return false
}
func (x *SwarmingTaskBackendConfig) GetAgentBinaryCipdPkg() string {
if x != nil {
return x.AgentBinaryCipdPkg
}
return ""
}
func (x *SwarmingTaskBackendConfig) GetAgentBinaryCipdVers() string {
if x != nil {
return x.AgentBinaryCipdVers
}
return ""
}
func (x *SwarmingTaskBackendConfig) GetAgentBinaryCipdFilename() string {
if x != nil {
return x.AgentBinaryCipdFilename
}
return ""
}
func (x *SwarmingTaskBackendConfig) GetAgentBinaryCipdServer() string {
if x != nil {
return x.AgentBinaryCipdServer
}
return ""
}
func (x *SwarmingTaskBackendConfig) GetTags() []string {
if x != nil {
return x.Tags
}
return nil
}
func (x *SwarmingTaskBackendConfig) GetTaskName() string {
if x != nil {
return x.TaskName
}
return ""
}
// Swarming:ResultDB integration configuration for a task.
// See NewTaskRequest.resultdb for more details.
type ResultDBCfg struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// If True and this task is not deduplicated, create
// "task-{swarming_hostname}-{run_id}" invocation for this task,
// provide its update token to the task subprocess via LUCI_CONTEXT
// and finalize the invocation when the task is done.
// If the task is deduplicated, then TaskResult.invocation_name will be the
// invocation name of the original task.
// Swarming:ResultDB integration is off by default, but it may change in the
// future.
Enable bool `protobuf:"varint,1,opt,name=enable,proto3" json:"enable,omitempty"`
}
func (x *ResultDBCfg) Reset() {
*x = ResultDBCfg{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ResultDBCfg) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ResultDBCfg) ProtoMessage() {}
func (x *ResultDBCfg) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 ResultDBCfg.ProtoReflect.Descriptor instead.
func (*ResultDBCfg) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{15}
}
func (x *ResultDBCfg) GetEnable() bool {
if x != nil {
return x.Enable
}
return false
}
// Description of a new task request as described by the client.
// This message is used to create a new task.
type NewTaskRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// DEPRECATED. Use task_slices[0].expiration_secs.
ExpirationSecs int32 `protobuf:"varint,1,opt,name=expiration_secs,json=expirationSecs,proto3" json:"expiration_secs,omitempty"`
// Task name for display purpose.
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
// Parent Swarming run ID of the process requesting this task. This is to tell
// the server about reentrancy: when a task creates children Swarming tasks, so
// that the tree of tasks can be presented in the UI; the parent task will list
// all the children tasks that were triggered.
ParentTaskId string `protobuf:"bytes,3,opt,name=parent_task_id,json=parentTaskId,proto3" json:"parent_task_id,omitempty"`
// Task priority, the lower the more important.
Priority int32 `protobuf:"varint,4,opt,name=priority,proto3" json:"priority,omitempty"`
// DEPRECATED. Use task_slices[0].properties.
Properties *TaskProperties `protobuf:"bytes,5,opt,name=properties,proto3" json:"properties,omitempty"`
// Slice of TaskSlice, along their scheduling parameters. Cannot be used at the
// same time as properties and expiration_secs.
//
// This defines all the various possible task execution for a task request to
// be run on the Swarming infrastructure. They are processed in order, and it
// is guaranteed that at most one of these will be processed.
TaskSlices []*TaskSlice `protobuf:"bytes,6,rep,name=task_slices,json=taskSlices,proto3" json:"task_slices,omitempty"`
// Tags are 'key:value' strings that describes what the task is about. This can
// later be leveraged to search for kinds of tasks per tag.
Tags []string `protobuf:"bytes,7,rep,name=tags,proto3" json:"tags,omitempty"`
// User on which behalf this task is run, if relevant. Not validated.
User string `protobuf:"bytes,8,opt,name=user,proto3" json:"user,omitempty"`
// Defines what OAuth2 credentials the task uses when calling other services.
//
// Possible values are:
// - 'none': do not use a task service account at all, this is the default.
// - 'bot': use bot's own account, works only if bots authenticate with
// OAuth2.
// - <some email>: use this specific service account if it is allowed in the
// pool (via 'allowed_service_account' pools.cfg setting) and configured
// in the token server's service_accounts.cfg.
//
// Note that the service account name is specified outside of task properties,
// and thus it is possible to have two tasks with different service accounts,
// but identical properties hash (so one can be deduped). If this is unsuitable
// use 'idempotent=False' or include a service account name in properties
// separately.
ServiceAccount string `protobuf:"bytes,9,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
// Full topic name to post task state updates to, e.g.
// "projects/<id>/topics/<id>".
PubsubTopic string `protobuf:"bytes,10,opt,name=pubsub_topic,json=pubsubTopic,proto3" json:"pubsub_topic,omitempty"`
// Secret string to put into "auth_token" attribute of PubSub message.
PubsubAuthToken string `protobuf:"bytes,11,opt,name=pubsub_auth_token,json=pubsubAuthToken,proto3" json:"pubsub_auth_token,omitempty"`
// Will be but into "userdata" fields of PubSub message.
PubsubUserdata string `protobuf:"bytes,12,opt,name=pubsub_userdata,json=pubsubUserdata,proto3" json:"pubsub_userdata,omitempty"`
// Only evaluate the task, as if we were going to schedule it, but don't
// actually schedule it. This will return the TaskRequest, but without
// a task_id.
EvaluateOnly bool `protobuf:"varint,13,opt,name=evaluate_only,json=evaluateOnly,proto3" json:"evaluate_only,omitempty"`
PoolTaskTemplate NewTaskRequest_PoolTaskTemplateField `protobuf:"varint,14,opt,name=pool_task_template,json=poolTaskTemplate,proto3,enum=swarming.v2.NewTaskRequest_PoolTaskTemplateField" json:"pool_task_template,omitempty"`
// Maximum delay between bot pings before the bot is considered dead
// while running a task.
BotPingToleranceSecs int32 `protobuf:"varint,15,opt,name=bot_ping_tolerance_secs,json=botPingToleranceSecs,proto3" json:"bot_ping_tolerance_secs,omitempty"`
// This is used to make new task request idempotent in best effort.
// If new request has request_uuid field, it checks memcache before scheduling
// actual task to check there is already the task triggered by same request
// previously.
RequestUuid string `protobuf:"bytes,16,opt,name=request_uuid,json=requestUuid,proto3" json:"request_uuid,omitempty"`
// Configuration of Swarming:ResultDB integration.
Resultdb *ResultDBCfg `protobuf:"bytes,17,opt,name=resultdb,proto3" json:"resultdb,omitempty"`
// Task realm.
// See api/swarming.proto for more details.
Realm string `protobuf:"bytes,18,opt,name=realm,proto3" json:"realm,omitempty"`
}
func (x *NewTaskRequest) Reset() {
*x = NewTaskRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *NewTaskRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*NewTaskRequest) ProtoMessage() {}
func (x *NewTaskRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 NewTaskRequest.ProtoReflect.Descriptor instead.
func (*NewTaskRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{16}
}
func (x *NewTaskRequest) GetExpirationSecs() int32 {
if x != nil {
return x.ExpirationSecs
}
return 0
}
func (x *NewTaskRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *NewTaskRequest) GetParentTaskId() string {
if x != nil {
return x.ParentTaskId
}
return ""
}
func (x *NewTaskRequest) GetPriority() int32 {
if x != nil {
return x.Priority
}
return 0
}
func (x *NewTaskRequest) GetProperties() *TaskProperties {
if x != nil {
return x.Properties
}
return nil
}
func (x *NewTaskRequest) GetTaskSlices() []*TaskSlice {
if x != nil {
return x.TaskSlices
}
return nil
}
func (x *NewTaskRequest) GetTags() []string {
if x != nil {
return x.Tags
}
return nil
}
func (x *NewTaskRequest) GetUser() string {
if x != nil {
return x.User
}
return ""
}
func (x *NewTaskRequest) GetServiceAccount() string {
if x != nil {
return x.ServiceAccount
}
return ""
}
func (x *NewTaskRequest) GetPubsubTopic() string {
if x != nil {
return x.PubsubTopic
}
return ""
}
func (x *NewTaskRequest) GetPubsubAuthToken() string {
if x != nil {
return x.PubsubAuthToken
}
return ""
}
func (x *NewTaskRequest) GetPubsubUserdata() string {
if x != nil {
return x.PubsubUserdata
}
return ""
}
func (x *NewTaskRequest) GetEvaluateOnly() bool {
if x != nil {
return x.EvaluateOnly
}
return false
}
func (x *NewTaskRequest) GetPoolTaskTemplate() NewTaskRequest_PoolTaskTemplateField {
if x != nil {
return x.PoolTaskTemplate
}
return NewTaskRequest_AUTO
}
func (x *NewTaskRequest) GetBotPingToleranceSecs() int32 {
if x != nil {
return x.BotPingToleranceSecs
}
return 0
}
func (x *NewTaskRequest) GetRequestUuid() string {
if x != nil {
return x.RequestUuid
}
return ""
}
func (x *NewTaskRequest) GetResultdb() *ResultDBCfg {
if x != nil {
return x.Resultdb
}
return nil
}
func (x *NewTaskRequest) GetRealm() string {
if x != nil {
return x.Realm
}
return ""
}
// Description of a task request as registered by the server.
// This message is used when retrieving information about an existing task.
// See NewTaskRequest for more details.
type TaskRequestResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
ExpirationSecs int32 `protobuf:"varint,2,opt,name=expiration_secs,json=expirationSecs,proto3" json:"expiration_secs,omitempty"`
Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
ParentTaskId string `protobuf:"bytes,4,opt,name=parent_task_id,json=parentTaskId,proto3" json:"parent_task_id,omitempty"`
Priority int32 `protobuf:"varint,5,opt,name=priority,proto3" json:"priority,omitempty"`
// For some amount of time, the properties will be copied into the
// task_slices and vice-versa, to give time to the clients to update.
// Eventually, only task_slices will be supported.
Properties *TaskProperties `protobuf:"bytes,6,opt,name=properties,proto3" json:"properties,omitempty"`
Tags []string `protobuf:"bytes,7,rep,name=tags,proto3" json:"tags,omitempty"`
CreatedTs *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=created_ts,json=createdTs,proto3" json:"created_ts,omitempty"`
User string `protobuf:"bytes,9,opt,name=user,proto3" json:"user,omitempty"`
// User name of whoever posted this task, extracted from the credentials.
Authenticated string `protobuf:"bytes,10,opt,name=authenticated,proto3" json:"authenticated,omitempty"`
TaskSlices []*TaskSlice `protobuf:"bytes,11,rep,name=task_slices,json=taskSlices,proto3" json:"task_slices,omitempty"`
// Indicates what OAuth2 credentials the task uses when calling other services.
ServiceAccount string `protobuf:"bytes,12,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
Realm string `protobuf:"bytes,13,opt,name=realm,proto3" json:"realm,omitempty"`
// Configuration of Swarming:ResultDB integration.
Resultdb *ResultDBCfg `protobuf:"bytes,14,opt,name=resultdb,proto3" json:"resultdb,omitempty"`
PubsubTopic string `protobuf:"bytes,15,opt,name=pubsub_topic,json=pubsubTopic,proto3" json:"pubsub_topic,omitempty"`
PubsubUserdata string `protobuf:"bytes,16,opt,name=pubsub_userdata,json=pubsubUserdata,proto3" json:"pubsub_userdata,omitempty"`
BotPingToleranceSecs int32 `protobuf:"varint,17,opt,name=bot_ping_tolerance_secs,json=botPingToleranceSecs,proto3" json:"bot_ping_tolerance_secs,omitempty"`
RbeInstance string `protobuf:"bytes,18,opt,name=rbe_instance,json=rbeInstance,proto3" json:"rbe_instance,omitempty"`
}
func (x *TaskRequestResponse) Reset() {
*x = TaskRequestResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskRequestResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskRequestResponse) ProtoMessage() {}
func (x *TaskRequestResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 TaskRequestResponse.ProtoReflect.Descriptor instead.
func (*TaskRequestResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{17}
}
func (x *TaskRequestResponse) GetTaskId() string {
if x != nil {
return x.TaskId
}
return ""
}
func (x *TaskRequestResponse) GetExpirationSecs() int32 {
if x != nil {
return x.ExpirationSecs
}
return 0
}
func (x *TaskRequestResponse) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *TaskRequestResponse) GetParentTaskId() string {
if x != nil {
return x.ParentTaskId
}
return ""
}
func (x *TaskRequestResponse) GetPriority() int32 {
if x != nil {
return x.Priority
}
return 0
}
func (x *TaskRequestResponse) GetProperties() *TaskProperties {
if x != nil {
return x.Properties
}
return nil
}
func (x *TaskRequestResponse) GetTags() []string {
if x != nil {
return x.Tags
}
return nil
}
func (x *TaskRequestResponse) GetCreatedTs() *timestamppb.Timestamp {
if x != nil {
return x.CreatedTs
}
return nil
}
func (x *TaskRequestResponse) GetUser() string {
if x != nil {
return x.User
}
return ""
}
func (x *TaskRequestResponse) GetAuthenticated() string {
if x != nil {
return x.Authenticated
}
return ""
}
func (x *TaskRequestResponse) GetTaskSlices() []*TaskSlice {
if x != nil {
return x.TaskSlices
}
return nil
}
func (x *TaskRequestResponse) GetServiceAccount() string {
if x != nil {
return x.ServiceAccount
}
return ""
}
func (x *TaskRequestResponse) GetRealm() string {
if x != nil {
return x.Realm
}
return ""
}
func (x *TaskRequestResponse) GetResultdb() *ResultDBCfg {
if x != nil {
return x.Resultdb
}
return nil
}
func (x *TaskRequestResponse) GetPubsubTopic() string {
if x != nil {
return x.PubsubTopic
}
return ""
}
func (x *TaskRequestResponse) GetPubsubUserdata() string {
if x != nil {
return x.PubsubUserdata
}
return ""
}
func (x *TaskRequestResponse) GetBotPingToleranceSecs() int32 {
if x != nil {
return x.BotPingToleranceSecs
}
return 0
}
func (x *TaskRequestResponse) GetRbeInstance() string {
if x != nil {
return x.RbeInstance
}
return ""
}
// Request to cancel one task.
type TaskCancelRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
KillRunning bool `protobuf:"varint,2,opt,name=kill_running,json=killRunning,proto3" json:"kill_running,omitempty"`
}
func (x *TaskCancelRequest) Reset() {
*x = TaskCancelRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskCancelRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskCancelRequest) ProtoMessage() {}
func (x *TaskCancelRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 TaskCancelRequest.ProtoReflect.Descriptor instead.
func (*TaskCancelRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{18}
}
func (x *TaskCancelRequest) GetTaskId() string {
if x != nil {
return x.TaskId
}
return ""
}
func (x *TaskCancelRequest) GetKillRunning() bool {
if x != nil {
return x.KillRunning
}
return false
}
// Request to cancel some subset of pending/running tasks.
type TasksCancelRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Number of items to cancel per request. limit must be in [1..1000].
Limit int32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"`
// Previous call would have returned a cursor if there were more tasks to kill.
Cursor string `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor,omitempty"`
// Any task which contains one or more of tags will be cancelled.
Tags []string `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags,omitempty"`
// Kill running tasks if set. Otherwise running tasks will be ignored.
KillRunning bool `protobuf:"varint,4,opt,name=kill_running,json=killRunning,proto3" json:"kill_running,omitempty"`
// Only tasks later or equal to start will be cancelled. No effect if unset.
Start *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=start,proto3" json:"start,omitempty"`
// Only tasks earlier or equal to end will be cancelled. No effect if unset.
End *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=end,proto3" json:"end,omitempty"`
}
func (x *TasksCancelRequest) Reset() {
*x = TasksCancelRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TasksCancelRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TasksCancelRequest) ProtoMessage() {}
func (x *TasksCancelRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 TasksCancelRequest.ProtoReflect.Descriptor instead.
func (*TasksCancelRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{19}
}
func (x *TasksCancelRequest) GetLimit() int32 {
if x != nil {
return x.Limit
}
return 0
}
func (x *TasksCancelRequest) GetCursor() string {
if x != nil {
return x.Cursor
}
return ""
}
func (x *TasksCancelRequest) GetTags() []string {
if x != nil {
return x.Tags
}
return nil
}
func (x *TasksCancelRequest) GetKillRunning() bool {
if x != nil {
return x.KillRunning
}
return false
}
func (x *TasksCancelRequest) GetStart() *timestamppb.Timestamp {
if x != nil {
return x.Start
}
return nil
}
func (x *TasksCancelRequest) GetEnd() *timestamppb.Timestamp {
if x != nil {
return x.End
}
return nil
}
type OperationStats struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Duration in seconds.
Duration float32 `protobuf:"fixed32,1,opt,name=duration,proto3" json:"duration,omitempty"`
}
func (x *OperationStats) Reset() {
*x = OperationStats{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *OperationStats) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*OperationStats) ProtoMessage() {}
func (x *OperationStats) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 OperationStats.ProtoReflect.Descriptor instead.
func (*OperationStats) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{20}
}
func (x *OperationStats) GetDuration() float32 {
if x != nil {
return x.Duration
}
return 0
}
type CASOperationStats struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Duration in seconds.
Duration float32 `protobuf:"fixed32,1,opt,name=duration,proto3" json:"duration,omitempty"`
InitialNumberItems int32 `protobuf:"varint,2,opt,name=initial_number_items,json=initialNumberItems,proto3" json:"initial_number_items,omitempty"`
InitialSize int64 `protobuf:"varint,3,opt,name=initial_size,json=initialSize,proto3" json:"initial_size,omitempty"`
// These buffers are compressed as deflate'd delta-encoded varints. They are
// all the items for an isolated operation, which can scale in the 100k range.
// So can be large! See //client/utils/large.py for the code to handle these.
ItemsCold []byte `protobuf:"bytes,4,opt,name=items_cold,json=itemsCold,proto3" json:"items_cold,omitempty"`
ItemsHot []byte `protobuf:"bytes,5,opt,name=items_hot,json=itemsHot,proto3" json:"items_hot,omitempty"`
// Corresponding summaries; for each list above, sum of the number of files
// and the sum bytes of the files.
NumItemsCold int64 `protobuf:"varint,6,opt,name=num_items_cold,json=numItemsCold,proto3" json:"num_items_cold,omitempty"`
TotalBytesItemsCold int64 `protobuf:"varint,7,opt,name=total_bytes_items_cold,json=totalBytesItemsCold,proto3" json:"total_bytes_items_cold,omitempty"`
NumItemsHot int64 `protobuf:"varint,8,opt,name=num_items_hot,json=numItemsHot,proto3" json:"num_items_hot,omitempty"`
TotalBytesItemsHot int64 `protobuf:"varint,9,opt,name=total_bytes_items_hot,json=totalBytesItemsHot,proto3" json:"total_bytes_items_hot,omitempty"`
}
func (x *CASOperationStats) Reset() {
*x = CASOperationStats{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CASOperationStats) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CASOperationStats) ProtoMessage() {}
func (x *CASOperationStats) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 CASOperationStats.ProtoReflect.Descriptor instead.
func (*CASOperationStats) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{21}
}
func (x *CASOperationStats) GetDuration() float32 {
if x != nil {
return x.Duration
}
return 0
}
func (x *CASOperationStats) GetInitialNumberItems() int32 {
if x != nil {
return x.InitialNumberItems
}
return 0
}
func (x *CASOperationStats) GetInitialSize() int64 {
if x != nil {
return x.InitialSize
}
return 0
}
func (x *CASOperationStats) GetItemsCold() []byte {
if x != nil {
return x.ItemsCold
}
return nil
}
func (x *CASOperationStats) GetItemsHot() []byte {
if x != nil {
return x.ItemsHot
}
return nil
}
func (x *CASOperationStats) GetNumItemsCold() int64 {
if x != nil {
return x.NumItemsCold
}
return 0
}
func (x *CASOperationStats) GetTotalBytesItemsCold() int64 {
if x != nil {
return x.TotalBytesItemsCold
}
return 0
}
func (x *CASOperationStats) GetNumItemsHot() int64 {
if x != nil {
return x.NumItemsHot
}
return 0
}
func (x *CASOperationStats) GetTotalBytesItemsHot() int64 {
if x != nil {
return x.TotalBytesItemsHot
}
return 0
}
// Performance stats of task execution.
// See task_result.PerformanceStats for details.
type PerformanceStats struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
BotOverhead float32 `protobuf:"fixed32,1,opt,name=bot_overhead,json=botOverhead,proto3" json:"bot_overhead,omitempty"`
IsolatedDownload *CASOperationStats `protobuf:"bytes,2,opt,name=isolated_download,json=isolatedDownload,proto3" json:"isolated_download,omitempty"`
IsolatedUpload *CASOperationStats `protobuf:"bytes,3,opt,name=isolated_upload,json=isolatedUpload,proto3" json:"isolated_upload,omitempty"`
PackageInstallation *OperationStats `protobuf:"bytes,4,opt,name=package_installation,json=packageInstallation,proto3" json:"package_installation,omitempty"`
CacheTrim *OperationStats `protobuf:"bytes,5,opt,name=cache_trim,json=cacheTrim,proto3" json:"cache_trim,omitempty"`
NamedCachesInstall *OperationStats `protobuf:"bytes,6,opt,name=named_caches_install,json=namedCachesInstall,proto3" json:"named_caches_install,omitempty"`
NamedCachesUninstall *OperationStats `protobuf:"bytes,7,opt,name=named_caches_uninstall,json=namedCachesUninstall,proto3" json:"named_caches_uninstall,omitempty"`
Cleanup *OperationStats `protobuf:"bytes,8,opt,name=cleanup,proto3" json:"cleanup,omitempty"`
}
func (x *PerformanceStats) Reset() {
*x = PerformanceStats{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PerformanceStats) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PerformanceStats) ProtoMessage() {}
func (x *PerformanceStats) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 PerformanceStats.ProtoReflect.Descriptor instead.
func (*PerformanceStats) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{22}
}
func (x *PerformanceStats) GetBotOverhead() float32 {
if x != nil {
return x.BotOverhead
}
return 0
}
func (x *PerformanceStats) GetIsolatedDownload() *CASOperationStats {
if x != nil {
return x.IsolatedDownload
}
return nil
}
func (x *PerformanceStats) GetIsolatedUpload() *CASOperationStats {
if x != nil {
return x.IsolatedUpload
}
return nil
}
func (x *PerformanceStats) GetPackageInstallation() *OperationStats {
if x != nil {
return x.PackageInstallation
}
return nil
}
func (x *PerformanceStats) GetCacheTrim() *OperationStats {
if x != nil {
return x.CacheTrim
}
return nil
}
func (x *PerformanceStats) GetNamedCachesInstall() *OperationStats {
if x != nil {
return x.NamedCachesInstall
}
return nil
}
func (x *PerformanceStats) GetNamedCachesUninstall() *OperationStats {
if x != nil {
return x.NamedCachesUninstall
}
return nil
}
func (x *PerformanceStats) GetCleanup() *OperationStats {
if x != nil {
return x.Cleanup
}
return nil
}
// Result of a request to cancel a task.
type CancelResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// True if the cancellation succeeded. Either the task atomically changed
// from PENDING to CANCELED or it was RUNNING and killing bit has been set.
Canceled bool `protobuf:"varint,1,opt,name=canceled,proto3" json:"canceled,omitempty"`
// True if the task was running while it was canceled.
WasRunning bool `protobuf:"varint,2,opt,name=was_running,json=wasRunning,proto3" json:"was_running,omitempty"`
}
func (x *CancelResponse) Reset() {
*x = CancelResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CancelResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CancelResponse) ProtoMessage() {}
func (x *CancelResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 CancelResponse.ProtoReflect.Descriptor instead.
func (*CancelResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{23}
}
func (x *CancelResponse) GetCanceled() bool {
if x != nil {
return x.Canceled
}
return false
}
func (x *CancelResponse) GetWasRunning() bool {
if x != nil {
return x.WasRunning
}
return false
}
// Result of canceling some subset of pending tasks.
type TasksCancelResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Cursor string `protobuf:"bytes,1,opt,name=cursor,proto3" json:"cursor,omitempty"`
Now *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=now,proto3" json:"now,omitempty"`
Matched int32 `protobuf:"varint,3,opt,name=matched,proto3" json:"matched,omitempty"`
}
func (x *TasksCancelResponse) Reset() {
*x = TasksCancelResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TasksCancelResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TasksCancelResponse) ProtoMessage() {}
func (x *TasksCancelResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 TasksCancelResponse.ProtoReflect.Descriptor instead.
func (*TasksCancelResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{24}
}
func (x *TasksCancelResponse) GetCursor() string {
if x != nil {
return x.Cursor
}
return ""
}
func (x *TasksCancelResponse) GetNow() *timestamppb.Timestamp {
if x != nil {
return x.Now
}
return nil
}
func (x *TasksCancelResponse) GetMatched() int32 {
if x != nil {
return x.Matched
}
return 0
}
// A task's output as a bytestring
type TaskOutputResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Output []byte `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"`
// Current state of the task (e.g. PENDING, RUNNING, COMPLETED, EXPIRED, etc).
State TaskState `protobuf:"varint,2,opt,name=state,proto3,enum=swarming.v2.TaskState" json:"state,omitempty"`
}
func (x *TaskOutputResponse) Reset() {
*x = TaskOutputResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskOutputResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskOutputResponse) ProtoMessage() {}
func (x *TaskOutputResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 TaskOutputResponse.ProtoReflect.Descriptor instead.
func (*TaskOutputResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{25}
}
func (x *TaskOutputResponse) GetOutput() []byte {
if x != nil {
return x.Output
}
return nil
}
func (x *TaskOutputResponse) GetState() TaskState {
if x != nil {
return x.State
}
return TaskState_INVALID
}
// ResultDB properties of a completed task.
type ResultDBInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// ResultDB hostname, e.g. "results.api.cr.dev"
Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
// Name of the task's ResultDB invocation.
//
// For example "invocations/task-chromium-swarm.appspot.com-deadbeef1".
// Unset if Swarming:ResultDB integration was not enabled for this task.
//
// If the task was deduplicated, this equals invocation name of the original
// task.
Invocation string `protobuf:"bytes,2,opt,name=invocation,proto3" json:"invocation,omitempty"`
}
func (x *ResultDBInfo) Reset() {
*x = ResultDBInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ResultDBInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ResultDBInfo) ProtoMessage() {}
func (x *ResultDBInfo) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 ResultDBInfo.ProtoReflect.Descriptor instead.
func (*ResultDBInfo) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{26}
}
func (x *ResultDBInfo) GetHostname() string {
if x != nil {
return x.Hostname
}
return ""
}
func (x *ResultDBInfo) GetInvocation() string {
if x != nil {
return x.Invocation
}
return ""
}
// Representation of the TaskResultSummary or TaskRunResult ndb model.
type TaskResultResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Summary task ID (ending with '0') when creating a new task.
TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
// Time when the task was abandoned instead of normal completion (e.g.
// EXPIRED, BOT_DIED, KILLED).
//
// The same key cannot be repeated.
BotDimensions []*StringListPair `protobuf:"bytes,2,rep,name=bot_dimensions,json=botDimensions,proto3" json:"bot_dimensions,omitempty"`
// Unique ID of the bot.
BotId string `protobuf:"bytes,3,opt,name=bot_id,json=botId,proto3" json:"bot_id,omitempty"`
// Time the bot became ready for a next task.
BotIdleSinceTs *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=bot_idle_since_ts,json=botIdleSinceTs,proto3" json:"bot_idle_since_ts,omitempty"`
// Hash of the bot code which ran the task.
BotVersion string `protobuf:"bytes,5,opt,name=bot_version,json=botVersion,proto3" json:"bot_version,omitempty"`
// The cloud project id where the bot saves its logs.
BotLogsCloudProject string `protobuf:"bytes,6,opt,name=bot_logs_cloud_project,json=botLogsCloudProject,proto3" json:"bot_logs_cloud_project,omitempty"`
// Time the task completed normally. Only one of abandoned_ts or completed_ts
// can be set except for state == KILLED.
//
// In case of KILLED, completed_ts is the time the task completed.
CompletedTs *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=completed_ts,json=completedTs,proto3" json:"completed_ts,omitempty"`
// $ saved for task with state DEDUPED.
CostSavedUsd float32 `protobuf:"fixed32,9,opt,name=cost_saved_usd,json=costSavedUsd,proto3" json:"cost_saved_usd,omitempty"`
// Time the task was requested.
CreatedTs *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=created_ts,json=createdTs,proto3" json:"created_ts,omitempty"`
// Task ID which results was reused for state DEDUPED.
DedupedFrom string `protobuf:"bytes,11,opt,name=deduped_from,json=dedupedFrom,proto3" json:"deduped_from,omitempty"`
// Duration of the task in seconds. This excludes overheads.
Duration float32 `protobuf:"fixed32,12,opt,name=duration,proto3" json:"duration,omitempty"`
// Process exit code if relevant. May be forcibly set to -1 in exceptional
// cases.
ExitCode int64 `protobuf:"varint,13,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"`
// True if exit_code != 0.
Failure bool `protobuf:"varint,14,opt,name=failure,proto3" json:"failure,omitempty"`
// True if state is BOT_DIED.
InternalFailure bool `protobuf:"varint,15,opt,name=internal_failure,json=internalFailure,proto3" json:"internal_failure,omitempty"`
// Time the results was last updated in the DB.
ModifiedTs *timestamppb.Timestamp `protobuf:"bytes,16,opt,name=modified_ts,json=modifiedTs,proto3" json:"modified_ts,omitempty"`
// CAS Digest of the output root uploaded to RBE-CAS.
// This MUST be digest of [build.bazel.remote.execution.v2.Directory].
CasOutputRoot *CASReference `protobuf:"bytes,17,opt,name=cas_output_root,json=casOutputRoot,proto3" json:"cas_output_root,omitempty"`
// Server versions that touched this task.
ServerVersions []string `protobuf:"bytes,18,rep,name=server_versions,json=serverVersions,proto3" json:"server_versions,omitempty"`
// Time the task started being run by a bot.
StartedTs *timestamppb.Timestamp `protobuf:"bytes,19,opt,name=started_ts,json=startedTs,proto3" json:"started_ts,omitempty"`
// Current state of the task (e.g. PENDING, RUNNING, COMPLETED, EXPIRED, etc).
State TaskState `protobuf:"varint,20,opt,name=state,proto3,enum=swarming.v2.TaskState" json:"state,omitempty"`
// In the case of KILLED, this records the time the user requested the task to
// stop.
AbandonedTs *timestamppb.Timestamp `protobuf:"bytes,21,opt,name=abandoned_ts,json=abandonedTs,proto3" json:"abandoned_ts,omitempty"`
// Can be multiple values only in TaskResultSummary.
CostsUsd []float32 `protobuf:"fixed32,22,rep,packed,name=costs_usd,json=costsUsd,proto3" json:"costs_usd,omitempty"`
// Name of the task. Only set when requesting task ID summary, ending with '0'.
Name string `protobuf:"bytes,23,opt,name=name,proto3" json:"name,omitempty"`
// Tags associated with the task when it was requested. Only set when
// requesting task ID summary, ending with '0'.
Tags []string `protobuf:"bytes,24,rep,name=tags,proto3" json:"tags,omitempty"`
// User on behalf this task was requested. Only set when requesting task ID
// summary, ending with '0'.
User string `protobuf:"bytes,25,opt,name=user,proto3" json:"user,omitempty"`
// Statistics about overhead for an isolated task. Only sent when requested.
PerformanceStats *PerformanceStats `protobuf:"bytes,26,opt,name=performance_stats,json=performanceStats,proto3" json:"performance_stats,omitempty"`
// Listing of the ACTUAL pinned CipdPackages that the task used. These can vary
// from the input packages if the inputs included non-identity versions (e.g. a
// ref like "latest").
CipdPins *CipdPins `protobuf:"bytes,27,opt,name=cipd_pins,json=cipdPins,proto3" json:"cipd_pins,omitempty"`
// Actual executed task id that this task represents. For deduped tasks, it is
// the same value as deduped_from. This value can be empty if there is no
// execution, for example the task was cancelled.
RunId string `protobuf:"bytes,28,opt,name=run_id,json=runId,proto3" json:"run_id,omitempty"`
// Index in the TaskRequest.task_slices (TaskSlice instance) that this result
// represents. This is updated when a TaskSlice is enqueued to run.
//
// The TaskSlice contains a TaskProperties, which defines what is run.
CurrentTaskSlice int32 `protobuf:"varint,29,opt,name=current_task_slice,json=currentTaskSlice,proto3" json:"current_task_slice,omitempty"`
// ResultDB related information.
// None if the integration was not enabled for this task.
ResultdbInfo *ResultDBInfo `protobuf:"bytes,30,opt,name=resultdb_info,json=resultdbInfo,proto3" json:"resultdb_info,omitempty"`
// Reported missing CAS packages on CLIENT_ERROR state
MissingCas []*CASReference `protobuf:"bytes,31,rep,name=missing_cas,json=missingCas,proto3" json:"missing_cas,omitempty"`
// Reported missing CIPD packages on CLIENT_ERROR state
MissingCipd []*CipdPackage `protobuf:"bytes,32,rep,name=missing_cipd,json=missingCipd,proto3" json:"missing_cipd,omitempty"`
}
func (x *TaskResultResponse) Reset() {
*x = TaskResultResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskResultResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskResultResponse) ProtoMessage() {}
func (x *TaskResultResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 TaskResultResponse.ProtoReflect.Descriptor instead.
func (*TaskResultResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{27}
}
func (x *TaskResultResponse) GetTaskId() string {
if x != nil {
return x.TaskId
}
return ""
}
func (x *TaskResultResponse) GetBotDimensions() []*StringListPair {
if x != nil {
return x.BotDimensions
}
return nil
}
func (x *TaskResultResponse) GetBotId() string {
if x != nil {
return x.BotId
}
return ""
}
func (x *TaskResultResponse) GetBotIdleSinceTs() *timestamppb.Timestamp {
if x != nil {
return x.BotIdleSinceTs
}
return nil
}
func (x *TaskResultResponse) GetBotVersion() string {
if x != nil {
return x.BotVersion
}
return ""
}
func (x *TaskResultResponse) GetBotLogsCloudProject() string {
if x != nil {
return x.BotLogsCloudProject
}
return ""
}
func (x *TaskResultResponse) GetCompletedTs() *timestamppb.Timestamp {
if x != nil {
return x.CompletedTs
}
return nil
}
func (x *TaskResultResponse) GetCostSavedUsd() float32 {
if x != nil {
return x.CostSavedUsd
}
return 0
}
func (x *TaskResultResponse) GetCreatedTs() *timestamppb.Timestamp {
if x != nil {
return x.CreatedTs
}
return nil
}
func (x *TaskResultResponse) GetDedupedFrom() string {
if x != nil {
return x.DedupedFrom
}
return ""
}
func (x *TaskResultResponse) GetDuration() float32 {
if x != nil {
return x.Duration
}
return 0
}
func (x *TaskResultResponse) GetExitCode() int64 {
if x != nil {
return x.ExitCode
}
return 0
}
func (x *TaskResultResponse) GetFailure() bool {
if x != nil {
return x.Failure
}
return false
}
func (x *TaskResultResponse) GetInternalFailure() bool {
if x != nil {
return x.InternalFailure
}
return false
}
func (x *TaskResultResponse) GetModifiedTs() *timestamppb.Timestamp {
if x != nil {
return x.ModifiedTs
}
return nil
}
func (x *TaskResultResponse) GetCasOutputRoot() *CASReference {
if x != nil {
return x.CasOutputRoot
}
return nil
}
func (x *TaskResultResponse) GetServerVersions() []string {
if x != nil {
return x.ServerVersions
}
return nil
}
func (x *TaskResultResponse) GetStartedTs() *timestamppb.Timestamp {
if x != nil {
return x.StartedTs
}
return nil
}
func (x *TaskResultResponse) GetState() TaskState {
if x != nil {
return x.State
}
return TaskState_INVALID
}
func (x *TaskResultResponse) GetAbandonedTs() *timestamppb.Timestamp {
if x != nil {
return x.AbandonedTs
}
return nil
}
func (x *TaskResultResponse) GetCostsUsd() []float32 {
if x != nil {
return x.CostsUsd
}
return nil
}
func (x *TaskResultResponse) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *TaskResultResponse) GetTags() []string {
if x != nil {
return x.Tags
}
return nil
}
func (x *TaskResultResponse) GetUser() string {
if x != nil {
return x.User
}
return ""
}
func (x *TaskResultResponse) GetPerformanceStats() *PerformanceStats {
if x != nil {
return x.PerformanceStats
}
return nil
}
func (x *TaskResultResponse) GetCipdPins() *CipdPins {
if x != nil {
return x.CipdPins
}
return nil
}
func (x *TaskResultResponse) GetRunId() string {
if x != nil {
return x.RunId
}
return ""
}
func (x *TaskResultResponse) GetCurrentTaskSlice() int32 {
if x != nil {
return x.CurrentTaskSlice
}
return 0
}
func (x *TaskResultResponse) GetResultdbInfo() *ResultDBInfo {
if x != nil {
return x.ResultdbInfo
}
return nil
}
func (x *TaskResultResponse) GetMissingCas() []*CASReference {
if x != nil {
return x.MissingCas
}
return nil
}
func (x *TaskResultResponse) GetMissingCipd() []*CipdPackage {
if x != nil {
return x.MissingCipd
}
return nil
}
// Only holds states. Used in the 'get_states' RPC.
type TaskStates struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
States []TaskState `protobuf:"varint,1,rep,packed,name=states,proto3,enum=swarming.v2.TaskState" json:"states,omitempty"`
}
func (x *TaskStates) Reset() {
*x = TaskStates{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskStates) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskStates) ProtoMessage() {}
func (x *TaskStates) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 TaskStates.ProtoReflect.Descriptor instead.
func (*TaskStates) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{28}
}
func (x *TaskStates) GetStates() []TaskState {
if x != nil {
return x.States
}
return nil
}
// Wraps a list of TaskResult.
type TaskListResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Cursor string `protobuf:"bytes,1,opt,name=cursor,proto3" json:"cursor,omitempty"`
Items []*TaskResultResponse `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"`
Now *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=now,proto3" json:"now,omitempty"`
}
func (x *TaskListResponse) Reset() {
*x = TaskListResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskListResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskListResponse) ProtoMessage() {}
func (x *TaskListResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 TaskListResponse.ProtoReflect.Descriptor instead.
func (*TaskListResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{29}
}
func (x *TaskListResponse) GetCursor() string {
if x != nil {
return x.Cursor
}
return ""
}
func (x *TaskListResponse) GetItems() []*TaskResultResponse {
if x != nil {
return x.Items
}
return nil
}
func (x *TaskListResponse) GetNow() *timestamppb.Timestamp {
if x != nil {
return x.Now
}
return nil
}
// Wraps a list of TaskRequest.
type TaskRequestsResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Cursor string `protobuf:"bytes,1,opt,name=cursor,proto3" json:"cursor,omitempty"`
Items []*TaskRequestResponse `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"`
Now *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=now,proto3" json:"now,omitempty"`
}
func (x *TaskRequestsResponse) Reset() {
*x = TaskRequestsResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskRequestsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskRequestsResponse) ProtoMessage() {}
func (x *TaskRequestsResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 TaskRequestsResponse.ProtoReflect.Descriptor instead.
func (*TaskRequestsResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{30}
}
func (x *TaskRequestsResponse) GetCursor() string {
if x != nil {
return x.Cursor
}
return ""
}
func (x *TaskRequestsResponse) GetItems() []*TaskRequestResponse {
if x != nil {
return x.Items
}
return nil
}
func (x *TaskRequestsResponse) GetNow() *timestamppb.Timestamp {
if x != nil {
return x.Now
}
return nil
}
// Returns the count, as requested.
type TasksCount struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Count int32 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
Now *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=now,proto3" json:"now,omitempty"`
}
func (x *TasksCount) Reset() {
*x = TasksCount{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[31]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TasksCount) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TasksCount) ProtoMessage() {}
func (x *TasksCount) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 TasksCount.ProtoReflect.Descriptor instead.
func (*TasksCount) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{31}
}
func (x *TasksCount) GetCount() int32 {
if x != nil {
return x.Count
}
return 0
}
func (x *TasksCount) GetNow() *timestamppb.Timestamp {
if x != nil {
return x.Now
}
return nil
}
// Provides the ID of the requested TaskRequest.
type TaskRequestMetadataResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
Request *TaskRequestResponse `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"`
// Set to finished task result in case task was deduplicated.
TaskResult *TaskResultResponse `protobuf:"bytes,3,opt,name=task_result,json=taskResult,proto3" json:"task_result,omitempty"`
}
func (x *TaskRequestMetadataResponse) Reset() {
*x = TaskRequestMetadataResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[32]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskRequestMetadataResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskRequestMetadataResponse) ProtoMessage() {}
func (x *TaskRequestMetadataResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 TaskRequestMetadataResponse.ProtoReflect.Descriptor instead.
func (*TaskRequestMetadataResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{32}
}
func (x *TaskRequestMetadataResponse) GetTaskId() string {
if x != nil {
return x.TaskId
}
return ""
}
func (x *TaskRequestMetadataResponse) GetRequest() *TaskRequestResponse {
if x != nil {
return x.Request
}
return nil
}
func (x *TaskRequestMetadataResponse) GetTaskResult() *TaskResultResponse {
if x != nil {
return x.TaskResult
}
return nil
}
// Representation of the BotInfo ndb model.
type BotInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
BotId string `protobuf:"bytes,1,opt,name=bot_id,json=botId,proto3" json:"bot_id,omitempty"`
TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
ExternalIp string `protobuf:"bytes,3,opt,name=external_ip,json=externalIp,proto3" json:"external_ip,omitempty"`
AuthenticatedAs string `protobuf:"bytes,4,opt,name=authenticated_as,json=authenticatedAs,proto3" json:"authenticated_as,omitempty"`
FirstSeenTs *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=first_seen_ts,json=firstSeenTs,proto3" json:"first_seen_ts,omitempty"`
IsDead bool `protobuf:"varint,6,opt,name=is_dead,json=isDead,proto3" json:"is_dead,omitempty"`
LastSeenTs *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=last_seen_ts,json=lastSeenTs,proto3" json:"last_seen_ts,omitempty"`
Quarantined bool `protobuf:"varint,8,opt,name=quarantined,proto3" json:"quarantined,omitempty"`
MaintenanceMsg string `protobuf:"bytes,9,opt,name=maintenance_msg,json=maintenanceMsg,proto3" json:"maintenance_msg,omitempty"`
Dimensions []*StringListPair `protobuf:"bytes,10,rep,name=dimensions,proto3" json:"dimensions,omitempty"`
TaskName string `protobuf:"bytes,11,opt,name=task_name,json=taskName,proto3" json:"task_name,omitempty"`
Version string `protobuf:"bytes,12,opt,name=version,proto3" json:"version,omitempty"`
// Encoded as json since it's an arbitrary dict.
State string `protobuf:"bytes,13,opt,name=state,proto3" json:"state,omitempty"`
Deleted bool `protobuf:"varint,14,opt,name=deleted,proto3" json:"deleted,omitempty"`
}
func (x *BotInfo) Reset() {
*x = BotInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[33]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BotInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BotInfo) ProtoMessage() {}
func (x *BotInfo) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 BotInfo.ProtoReflect.Descriptor instead.
func (*BotInfo) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{33}
}
func (x *BotInfo) GetBotId() string {
if x != nil {
return x.BotId
}
return ""
}
func (x *BotInfo) GetTaskId() string {
if x != nil {
return x.TaskId
}
return ""
}
func (x *BotInfo) GetExternalIp() string {
if x != nil {
return x.ExternalIp
}
return ""
}
func (x *BotInfo) GetAuthenticatedAs() string {
if x != nil {
return x.AuthenticatedAs
}
return ""
}
func (x *BotInfo) GetFirstSeenTs() *timestamppb.Timestamp {
if x != nil {
return x.FirstSeenTs
}
return nil
}
func (x *BotInfo) GetIsDead() bool {
if x != nil {
return x.IsDead
}
return false
}
func (x *BotInfo) GetLastSeenTs() *timestamppb.Timestamp {
if x != nil {
return x.LastSeenTs
}
return nil
}
func (x *BotInfo) GetQuarantined() bool {
if x != nil {
return x.Quarantined
}
return false
}
func (x *BotInfo) GetMaintenanceMsg() string {
if x != nil {
return x.MaintenanceMsg
}
return ""
}
func (x *BotInfo) GetDimensions() []*StringListPair {
if x != nil {
return x.Dimensions
}
return nil
}
func (x *BotInfo) GetTaskName() string {
if x != nil {
return x.TaskName
}
return ""
}
func (x *BotInfo) GetVersion() string {
if x != nil {
return x.Version
}
return ""
}
func (x *BotInfo) GetState() string {
if x != nil {
return x.State
}
return ""
}
func (x *BotInfo) GetDeleted() bool {
if x != nil {
return x.Deleted
}
return false
}
// Wraps a list of BotInfo.
type BotInfoListResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Cursor string `protobuf:"bytes,1,opt,name=cursor,proto3" json:"cursor,omitempty"`
Items []*BotInfo `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"`
Now *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=now,proto3" json:"now,omitempty"`
DeathTimeout int32 `protobuf:"varint,4,opt,name=death_timeout,json=deathTimeout,proto3" json:"death_timeout,omitempty"`
}
func (x *BotInfoListResponse) Reset() {
*x = BotInfoListResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[34]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BotInfoListResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BotInfoListResponse) ProtoMessage() {}
func (x *BotInfoListResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 BotInfoListResponse.ProtoReflect.Descriptor instead.
func (*BotInfoListResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{34}
}
func (x *BotInfoListResponse) GetCursor() string {
if x != nil {
return x.Cursor
}
return ""
}
func (x *BotInfoListResponse) GetItems() []*BotInfo {
if x != nil {
return x.Items
}
return nil
}
func (x *BotInfoListResponse) GetNow() *timestamppb.Timestamp {
if x != nil {
return x.Now
}
return nil
}
func (x *BotInfoListResponse) GetDeathTimeout() int32 {
if x != nil {
return x.DeathTimeout
}
return 0
}
// Returns the count, as requested.
type BotsCount struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Now *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=now,proto3" json:"now,omitempty"`
Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
Quarantined int32 `protobuf:"varint,3,opt,name=quarantined,proto3" json:"quarantined,omitempty"`
Maintenance int32 `protobuf:"varint,4,opt,name=maintenance,proto3" json:"maintenance,omitempty"`
Dead int32 `protobuf:"varint,5,opt,name=dead,proto3" json:"dead,omitempty"`
Busy int32 `protobuf:"varint,6,opt,name=busy,proto3" json:"busy,omitempty"`
}
func (x *BotsCount) Reset() {
*x = BotsCount{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[35]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BotsCount) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BotsCount) ProtoMessage() {}
func (x *BotsCount) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 BotsCount.ProtoReflect.Descriptor instead.
func (*BotsCount) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{35}
}
func (x *BotsCount) GetNow() *timestamppb.Timestamp {
if x != nil {
return x.Now
}
return nil
}
func (x *BotsCount) GetCount() int32 {
if x != nil {
return x.Count
}
return 0
}
func (x *BotsCount) GetQuarantined() int32 {
if x != nil {
return x.Quarantined
}
return 0
}
func (x *BotsCount) GetMaintenance() int32 {
if x != nil {
return x.Maintenance
}
return 0
}
func (x *BotsCount) GetDead() int32 {
if x != nil {
return x.Dead
}
return 0
}
func (x *BotsCount) GetBusy() int32 {
if x != nil {
return x.Busy
}
return 0
}
// Returns all the dimensions and dimension possibilities in the fleet.
type BotsDimensions struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
BotsDimensions []*StringListPair `protobuf:"bytes,1,rep,name=bots_dimensions,json=botsDimensions,proto3" json:"bots_dimensions,omitempty"`
// Time at which this summary was calculated.
Ts *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=ts,proto3" json:"ts,omitempty"`
}
func (x *BotsDimensions) Reset() {
*x = BotsDimensions{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[36]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BotsDimensions) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BotsDimensions) ProtoMessage() {}
func (x *BotsDimensions) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 BotsDimensions.ProtoReflect.Descriptor instead.
func (*BotsDimensions) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{36}
}
func (x *BotsDimensions) GetBotsDimensions() []*StringListPair {
if x != nil {
return x.BotsDimensions
}
return nil
}
func (x *BotsDimensions) GetTs() *timestamppb.Timestamp {
if x != nil {
return x.Ts
}
return nil
}
type BotEventResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// google.protobuf.Timestamp of this event.
Ts *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=ts,proto3" json:"ts,omitempty"`
// Type of event.
EventType string `protobuf:"bytes,2,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"`
// Message included in the event.
Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
// Bot dimensions at that moment.
Dimensions []*StringListPair `protobuf:"bytes,4,rep,name=dimensions,proto3" json:"dimensions,omitempty"`
// Bot state at that moment, encoded as json.
State string `protobuf:"bytes,5,opt,name=state,proto3" json:"state,omitempty"`
// IP address as seen by the HTTP handler.
ExternalIp string `protobuf:"bytes,6,opt,name=external_ip,json=externalIp,proto3" json:"external_ip,omitempty"`
// Bot identity as seen by the HTTP handler.
AuthenticatedAs string `protobuf:"bytes,7,opt,name=authenticated_as,json=authenticatedAs,proto3" json:"authenticated_as,omitempty"`
// Version of swarming_bot.zip the bot is currently running.
Version string `protobuf:"bytes,8,opt,name=version,proto3" json:"version,omitempty"`
// If True, the bot is not accepting task due to being quarantined.
Quarantined bool `protobuf:"varint,9,opt,name=quarantined,proto3" json:"quarantined,omitempty"`
// If set, the bot is rejecting tasks due to maintenance.
MaintenanceMsg string `protobuf:"bytes,10,opt,name=maintenance_msg,json=maintenanceMsg,proto3" json:"maintenance_msg,omitempty"`
// Affected by event_type == 'request_task', 'task_completed', 'task_error'.
TaskId string `protobuf:"bytes,11,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
}
func (x *BotEventResponse) Reset() {
*x = BotEventResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[37]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BotEventResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BotEventResponse) ProtoMessage() {}
func (x *BotEventResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 BotEventResponse.ProtoReflect.Descriptor instead.
func (*BotEventResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{37}
}
func (x *BotEventResponse) GetTs() *timestamppb.Timestamp {
if x != nil {
return x.Ts
}
return nil
}
func (x *BotEventResponse) GetEventType() string {
if x != nil {
return x.EventType
}
return ""
}
func (x *BotEventResponse) GetMessage() string {
if x != nil {
return x.Message
}
return ""
}
func (x *BotEventResponse) GetDimensions() []*StringListPair {
if x != nil {
return x.Dimensions
}
return nil
}
func (x *BotEventResponse) GetState() string {
if x != nil {
return x.State
}
return ""
}
func (x *BotEventResponse) GetExternalIp() string {
if x != nil {
return x.ExternalIp
}
return ""
}
func (x *BotEventResponse) GetAuthenticatedAs() string {
if x != nil {
return x.AuthenticatedAs
}
return ""
}
func (x *BotEventResponse) GetVersion() string {
if x != nil {
return x.Version
}
return ""
}
func (x *BotEventResponse) GetQuarantined() bool {
if x != nil {
return x.Quarantined
}
return false
}
func (x *BotEventResponse) GetMaintenanceMsg() string {
if x != nil {
return x.MaintenanceMsg
}
return ""
}
func (x *BotEventResponse) GetTaskId() string {
if x != nil {
return x.TaskId
}
return ""
}
type BotEventsResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Cursor string `protobuf:"bytes,1,opt,name=cursor,proto3" json:"cursor,omitempty"`
Items []*BotEventResponse `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"`
Now *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=now,proto3" json:"now,omitempty"`
}
func (x *BotEventsResponse) Reset() {
*x = BotEventsResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[38]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BotEventsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BotEventsResponse) ProtoMessage() {}
func (x *BotEventsResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 BotEventsResponse.ProtoReflect.Descriptor instead.
func (*BotEventsResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{38}
}
func (x *BotEventsResponse) GetCursor() string {
if x != nil {
return x.Cursor
}
return ""
}
func (x *BotEventsResponse) GetItems() []*BotEventResponse {
if x != nil {
return x.Items
}
return nil
}
func (x *BotEventsResponse) GetNow() *timestamppb.Timestamp {
if x != nil {
return x.Now
}
return nil
}
// Indicates whether a bot was deleted.
type DeleteResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Deleted bool `protobuf:"varint,1,opt,name=deleted,proto3" json:"deleted,omitempty"`
}
func (x *DeleteResponse) Reset() {
*x = DeleteResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[39]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeleteResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeleteResponse) ProtoMessage() {}
func (x *DeleteResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 DeleteResponse.ProtoReflect.Descriptor instead.
func (*DeleteResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{39}
}
func (x *DeleteResponse) GetDeleted() bool {
if x != nil {
return x.Deleted
}
return false
}
// Returns the pseudo taskid to wait for the bot to shut down.
type TerminateResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
}
func (x *TerminateResponse) Reset() {
*x = TerminateResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[40]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TerminateResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TerminateResponse) ProtoMessage() {}
func (x *TerminateResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 TerminateResponse.ProtoReflect.Descriptor instead.
func (*TerminateResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{40}
}
func (x *TerminateResponse) GetTaskId() string {
if x != nil {
return x.TaskId
}
return ""
}
type BotRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
BotId string `protobuf:"bytes,1,opt,name=bot_id,json=botId,proto3" json:"bot_id,omitempty"`
}
func (x *BotRequest) Reset() {
*x = BotRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[41]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BotRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BotRequest) ProtoMessage() {}
func (x *BotRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 BotRequest.ProtoReflect.Descriptor instead.
func (*BotRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{41}
}
func (x *BotRequest) GetBotId() string {
if x != nil {
return x.BotId
}
return ""
}
type TerminateRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Id of bot to terminate.
BotId string `protobuf:"bytes,1,opt,name=bot_id,json=botId,proto3" json:"bot_id,omitempty"`
// Reason why the termination was created.
Reason string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"`
}
func (x *TerminateRequest) Reset() {
*x = TerminateRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[42]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TerminateRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TerminateRequest) ProtoMessage() {}
func (x *TerminateRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 TerminateRequest.ProtoReflect.Descriptor instead.
func (*TerminateRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{42}
}
func (x *TerminateRequest) GetBotId() string {
if x != nil {
return x.BotId
}
return ""
}
func (x *TerminateRequest) GetReason() string {
if x != nil {
return x.Reason
}
return ""
}
type BotEventsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
BotId string `protobuf:"bytes,1,opt,name=bot_id,json=botId,proto3" json:"bot_id,omitempty"`
Limit int32 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"`
Cursor string `protobuf:"bytes,3,opt,name=cursor,proto3" json:"cursor,omitempty"`
Start *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=start,proto3" json:"start,omitempty"`
End *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=end,proto3" json:"end,omitempty"`
}
func (x *BotEventsRequest) Reset() {
*x = BotEventsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[43]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BotEventsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BotEventsRequest) ProtoMessage() {}
func (x *BotEventsRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 BotEventsRequest.ProtoReflect.Descriptor instead.
func (*BotEventsRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{43}
}
func (x *BotEventsRequest) GetBotId() string {
if x != nil {
return x.BotId
}
return ""
}
func (x *BotEventsRequest) GetLimit() int32 {
if x != nil {
return x.Limit
}
return 0
}
func (x *BotEventsRequest) GetCursor() string {
if x != nil {
return x.Cursor
}
return ""
}
func (x *BotEventsRequest) GetStart() *timestamppb.Timestamp {
if x != nil {
return x.Start
}
return nil
}
func (x *BotEventsRequest) GetEnd() *timestamppb.Timestamp {
if x != nil {
return x.End
}
return nil
}
type BotTasksRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
BotId string `protobuf:"bytes,1,opt,name=bot_id,json=botId,proto3" json:"bot_id,omitempty"`
Limit int32 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"`
Cursor string `protobuf:"bytes,3,opt,name=cursor,proto3" json:"cursor,omitempty"`
Start *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=start,proto3" json:"start,omitempty"`
End *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=end,proto3" json:"end,omitempty"`
State StateQuery `protobuf:"varint,6,opt,name=state,proto3,enum=swarming.v2.StateQuery" json:"state,omitempty"`
Sort SortQuery `protobuf:"varint,7,opt,name=sort,proto3,enum=swarming.v2.SortQuery" json:"sort,omitempty"`
IncludePerformanceStats bool `protobuf:"varint,8,opt,name=include_performance_stats,json=includePerformanceStats,proto3" json:"include_performance_stats,omitempty"`
}
func (x *BotTasksRequest) Reset() {
*x = BotTasksRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[44]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BotTasksRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BotTasksRequest) ProtoMessage() {}
func (x *BotTasksRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 BotTasksRequest.ProtoReflect.Descriptor instead.
func (*BotTasksRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{44}
}
func (x *BotTasksRequest) GetBotId() string {
if x != nil {
return x.BotId
}
return ""
}
func (x *BotTasksRequest) GetLimit() int32 {
if x != nil {
return x.Limit
}
return 0
}
func (x *BotTasksRequest) GetCursor() string {
if x != nil {
return x.Cursor
}
return ""
}
func (x *BotTasksRequest) GetStart() *timestamppb.Timestamp {
if x != nil {
return x.Start
}
return nil
}
func (x *BotTasksRequest) GetEnd() *timestamppb.Timestamp {
if x != nil {
return x.End
}
return nil
}
func (x *BotTasksRequest) GetState() StateQuery {
if x != nil {
return x.State
}
return StateQuery_QUERY_PENDING
}
func (x *BotTasksRequest) GetSort() SortQuery {
if x != nil {
return x.Sort
}
return SortQuery_QUERY_CREATED_TS
}
func (x *BotTasksRequest) GetIncludePerformanceStats() bool {
if x != nil {
return x.IncludePerformanceStats
}
return false
}
type BotsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Limit int32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"`
Cursor string `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor,omitempty"`
Dimensions []*StringPair `protobuf:"bytes,3,rep,name=dimensions,proto3" json:"dimensions,omitempty"`
Quarantined NullableBool `protobuf:"varint,4,opt,name=quarantined,proto3,enum=swarming.v2.NullableBool" json:"quarantined,omitempty"`
InMaintenance NullableBool `protobuf:"varint,5,opt,name=in_maintenance,json=inMaintenance,proto3,enum=swarming.v2.NullableBool" json:"in_maintenance,omitempty"`
IsDead NullableBool `protobuf:"varint,6,opt,name=is_dead,json=isDead,proto3,enum=swarming.v2.NullableBool" json:"is_dead,omitempty"`
IsBusy NullableBool `protobuf:"varint,7,opt,name=is_busy,json=isBusy,proto3,enum=swarming.v2.NullableBool" json:"is_busy,omitempty"`
}
func (x *BotsRequest) Reset() {
*x = BotsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[45]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BotsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BotsRequest) ProtoMessage() {}
func (x *BotsRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 BotsRequest.ProtoReflect.Descriptor instead.
func (*BotsRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{45}
}
func (x *BotsRequest) GetLimit() int32 {
if x != nil {
return x.Limit
}
return 0
}
func (x *BotsRequest) GetCursor() string {
if x != nil {
return x.Cursor
}
return ""
}
func (x *BotsRequest) GetDimensions() []*StringPair {
if x != nil {
return x.Dimensions
}
return nil
}
func (x *BotsRequest) GetQuarantined() NullableBool {
if x != nil {
return x.Quarantined
}
return NullableBool_NULL
}
func (x *BotsRequest) GetInMaintenance() NullableBool {
if x != nil {
return x.InMaintenance
}
return NullableBool_NULL
}
func (x *BotsRequest) GetIsDead() NullableBool {
if x != nil {
return x.IsDead
}
return NullableBool_NULL
}
func (x *BotsRequest) GetIsBusy() NullableBool {
if x != nil {
return x.IsBusy
}
return NullableBool_NULL
}
type BotsCountRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Dimensions []*StringPair `protobuf:"bytes,1,rep,name=dimensions,proto3" json:"dimensions,omitempty"`
}
func (x *BotsCountRequest) Reset() {
*x = BotsCountRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[46]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BotsCountRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BotsCountRequest) ProtoMessage() {}
func (x *BotsCountRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 BotsCountRequest.ProtoReflect.Descriptor instead.
func (*BotsCountRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{46}
}
func (x *BotsCountRequest) GetDimensions() []*StringPair {
if x != nil {
return x.Dimensions
}
return nil
}
type BotsDimensionsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Pool string `protobuf:"bytes,1,opt,name=pool,proto3" json:"pool,omitempty"`
}
func (x *BotsDimensionsRequest) Reset() {
*x = BotsDimensionsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[47]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BotsDimensionsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BotsDimensionsRequest) ProtoMessage() {}
func (x *BotsDimensionsRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 BotsDimensionsRequest.ProtoReflect.Descriptor instead.
func (*BotsDimensionsRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{47}
}
func (x *BotsDimensionsRequest) GetPool() string {
if x != nil {
return x.Pool
}
return ""
}
type PermissionsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
BotId string `protobuf:"bytes,1,opt,name=bot_id,json=botId,proto3" json:"bot_id,omitempty"`
TaskId string `protobuf:"bytes,2,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
Tags []string `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags,omitempty"`
}
func (x *PermissionsRequest) Reset() {
*x = PermissionsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[48]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PermissionsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PermissionsRequest) ProtoMessage() {}
func (x *PermissionsRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 PermissionsRequest.ProtoReflect.Descriptor instead.
func (*PermissionsRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{48}
}
func (x *PermissionsRequest) GetBotId() string {
if x != nil {
return x.BotId
}
return ""
}
func (x *PermissionsRequest) GetTaskId() string {
if x != nil {
return x.TaskId
}
return ""
}
func (x *PermissionsRequest) GetTags() []string {
if x != nil {
return x.Tags
}
return nil
}
type TaskStatesRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
TaskId []string `protobuf:"bytes,1,rep,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
}
func (x *TaskStatesRequest) Reset() {
*x = TaskStatesRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[49]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskStatesRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskStatesRequest) ProtoMessage() {}
func (x *TaskStatesRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 TaskStatesRequest.ProtoReflect.Descriptor instead.
func (*TaskStatesRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{49}
}
func (x *TaskStatesRequest) GetTaskId() []string {
if x != nil {
return x.TaskId
}
return nil
}
type TasksWithPerfRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Limit int32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"`
Cursor string `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor,omitempty"`
// These were floats in the legacy protorpc api
Start *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=start,proto3" json:"start,omitempty"`
End *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=end,proto3" json:"end,omitempty"`
State StateQuery `protobuf:"varint,5,opt,name=state,proto3,enum=swarming.v2.StateQuery" json:"state,omitempty"`
Sort SortQuery `protobuf:"varint,6,opt,name=sort,proto3,enum=swarming.v2.SortQuery" json:"sort,omitempty"`
Tags []string `protobuf:"bytes,7,rep,name=tags,proto3" json:"tags,omitempty"`
IncludePerformanceStats bool `protobuf:"varint,8,opt,name=include_performance_stats,json=includePerformanceStats,proto3" json:"include_performance_stats,omitempty"`
}
func (x *TasksWithPerfRequest) Reset() {
*x = TasksWithPerfRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[50]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TasksWithPerfRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TasksWithPerfRequest) ProtoMessage() {}
func (x *TasksWithPerfRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 TasksWithPerfRequest.ProtoReflect.Descriptor instead.
func (*TasksWithPerfRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{50}
}
func (x *TasksWithPerfRequest) GetLimit() int32 {
if x != nil {
return x.Limit
}
return 0
}
func (x *TasksWithPerfRequest) GetCursor() string {
if x != nil {
return x.Cursor
}
return ""
}
func (x *TasksWithPerfRequest) GetStart() *timestamppb.Timestamp {
if x != nil {
return x.Start
}
return nil
}
func (x *TasksWithPerfRequest) GetEnd() *timestamppb.Timestamp {
if x != nil {
return x.End
}
return nil
}
func (x *TasksWithPerfRequest) GetState() StateQuery {
if x != nil {
return x.State
}
return StateQuery_QUERY_PENDING
}
func (x *TasksWithPerfRequest) GetSort() SortQuery {
if x != nil {
return x.Sort
}
return SortQuery_QUERY_CREATED_TS
}
func (x *TasksWithPerfRequest) GetTags() []string {
if x != nil {
return x.Tags
}
return nil
}
func (x *TasksWithPerfRequest) GetIncludePerformanceStats() bool {
if x != nil {
return x.IncludePerformanceStats
}
return false
}
type TasksRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Limit int32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"`
Cursor string `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor,omitempty"`
// These were floats in the legacy protorpc api
Start *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=start,proto3" json:"start,omitempty"`
End *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=end,proto3" json:"end,omitempty"`
State StateQuery `protobuf:"varint,5,opt,name=state,proto3,enum=swarming.v2.StateQuery" json:"state,omitempty"`
Sort SortQuery `protobuf:"varint,6,opt,name=sort,proto3,enum=swarming.v2.SortQuery" json:"sort,omitempty"`
Tags []string `protobuf:"bytes,7,rep,name=tags,proto3" json:"tags,omitempty"`
}
func (x *TasksRequest) Reset() {
*x = TasksRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[51]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TasksRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TasksRequest) ProtoMessage() {}
func (x *TasksRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 TasksRequest.ProtoReflect.Descriptor instead.
func (*TasksRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{51}
}
func (x *TasksRequest) GetLimit() int32 {
if x != nil {
return x.Limit
}
return 0
}
func (x *TasksRequest) GetCursor() string {
if x != nil {
return x.Cursor
}
return ""
}
func (x *TasksRequest) GetStart() *timestamppb.Timestamp {
if x != nil {
return x.Start
}
return nil
}
func (x *TasksRequest) GetEnd() *timestamppb.Timestamp {
if x != nil {
return x.End
}
return nil
}
func (x *TasksRequest) GetState() StateQuery {
if x != nil {
return x.State
}
return StateQuery_QUERY_PENDING
}
func (x *TasksRequest) GetSort() SortQuery {
if x != nil {
return x.Sort
}
return SortQuery_QUERY_CREATED_TS
}
func (x *TasksRequest) GetTags() []string {
if x != nil {
return x.Tags
}
return nil
}
type TasksCountRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Start *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"`
End *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"`
State StateQuery `protobuf:"varint,3,opt,name=state,proto3,enum=swarming.v2.StateQuery" json:"state,omitempty"`
Tags []string `protobuf:"bytes,4,rep,name=tags,proto3" json:"tags,omitempty"`
}
func (x *TasksCountRequest) Reset() {
*x = TasksCountRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[52]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TasksCountRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TasksCountRequest) ProtoMessage() {}
func (x *TasksCountRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 TasksCountRequest.ProtoReflect.Descriptor instead.
func (*TasksCountRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{52}
}
func (x *TasksCountRequest) GetStart() *timestamppb.Timestamp {
if x != nil {
return x.Start
}
return nil
}
func (x *TasksCountRequest) GetEnd() *timestamppb.Timestamp {
if x != nil {
return x.End
}
return nil
}
func (x *TasksCountRequest) GetState() StateQuery {
if x != nil {
return x.State
}
return StateQuery_QUERY_PENDING
}
func (x *TasksCountRequest) GetTags() []string {
if x != nil {
return x.Tags
}
return nil
}
type TaskIdRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
}
func (x *TaskIdRequest) Reset() {
*x = TaskIdRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[53]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskIdRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskIdRequest) ProtoMessage() {}
func (x *TaskIdRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 TaskIdRequest.ProtoReflect.Descriptor instead.
func (*TaskIdRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{53}
}
func (x *TaskIdRequest) GetTaskId() string {
if x != nil {
return x.TaskId
}
return ""
}
type TaskIdWithOffsetRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
Offset int64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"`
Length int64 `protobuf:"varint,3,opt,name=length,proto3" json:"length,omitempty"`
}
func (x *TaskIdWithOffsetRequest) Reset() {
*x = TaskIdWithOffsetRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[54]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskIdWithOffsetRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskIdWithOffsetRequest) ProtoMessage() {}
func (x *TaskIdWithOffsetRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 TaskIdWithOffsetRequest.ProtoReflect.Descriptor instead.
func (*TaskIdWithOffsetRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{54}
}
func (x *TaskIdWithOffsetRequest) GetTaskId() string {
if x != nil {
return x.TaskId
}
return ""
}
func (x *TaskIdWithOffsetRequest) GetOffset() int64 {
if x != nil {
return x.Offset
}
return 0
}
func (x *TaskIdWithOffsetRequest) GetLength() int64 {
if x != nil {
return x.Length
}
return 0
}
type TaskIdWithPerfRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
IncludePerformanceStats bool `protobuf:"varint,2,opt,name=include_performance_stats,json=includePerformanceStats,proto3" json:"include_performance_stats,omitempty"`
}
func (x *TaskIdWithPerfRequest) Reset() {
*x = TaskIdWithPerfRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[55]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskIdWithPerfRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskIdWithPerfRequest) ProtoMessage() {}
func (x *TaskIdWithPerfRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 TaskIdWithPerfRequest.ProtoReflect.Descriptor instead.
func (*TaskIdWithPerfRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{55}
}
func (x *TaskIdWithPerfRequest) GetTaskId() string {
if x != nil {
return x.TaskId
}
return ""
}
func (x *TaskIdWithPerfRequest) GetIncludePerformanceStats() bool {
if x != nil {
return x.IncludePerformanceStats
}
return false
}
type BatchGetResultRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// One or more task IDs (ending with '0'), must have no duplicates.
TaskIds []string `protobuf:"bytes,1,rep,name=task_ids,json=taskIds,proto3" json:"task_ids,omitempty"`
// If true, populate `performance_stats` in the output.
IncludePerformanceStats bool `protobuf:"varint,2,opt,name=include_performance_stats,json=includePerformanceStats,proto3" json:"include_performance_stats,omitempty"`
}
func (x *BatchGetResultRequest) Reset() {
*x = BatchGetResultRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[56]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BatchGetResultRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BatchGetResultRequest) ProtoMessage() {}
func (x *BatchGetResultRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 BatchGetResultRequest.ProtoReflect.Descriptor instead.
func (*BatchGetResultRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{56}
}
func (x *BatchGetResultRequest) GetTaskIds() []string {
if x != nil {
return x.TaskIds
}
return nil
}
func (x *BatchGetResultRequest) GetIncludePerformanceStats() bool {
if x != nil {
return x.IncludePerformanceStats
}
return false
}
type BatchGetResultResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Task results or errors, in the same order as `task_ids` in the request.
Results []*BatchGetResultResponse_ResultOrError `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
}
func (x *BatchGetResultResponse) Reset() {
*x = BatchGetResultResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[57]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BatchGetResultResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BatchGetResultResponse) ProtoMessage() {}
func (x *BatchGetResultResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 BatchGetResultResponse.ProtoReflect.Descriptor instead.
func (*BatchGetResultResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{57}
}
func (x *BatchGetResultResponse) GetResults() []*BatchGetResultResponse_ResultOrError {
if x != nil {
return x.Results
}
return nil
}
// Outcome of fetching one task's result.
type BatchGetResultResponse_ResultOrError struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
// Types that are assignable to Outcome:
//
// *BatchGetResultResponse_ResultOrError_Result
// *BatchGetResultResponse_ResultOrError_Error
Outcome isBatchGetResultResponse_ResultOrError_Outcome `protobuf_oneof:"outcome"`
}
func (x *BatchGetResultResponse_ResultOrError) Reset() {
*x = BatchGetResultResponse_ResultOrError{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[58]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BatchGetResultResponse_ResultOrError) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BatchGetResultResponse_ResultOrError) ProtoMessage() {}
func (x *BatchGetResultResponse_ResultOrError) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_api_v2_swarming_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 BatchGetResultResponse_ResultOrError.ProtoReflect.Descriptor instead.
func (*BatchGetResultResponse_ResultOrError) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP(), []int{57, 0}
}
func (x *BatchGetResultResponse_ResultOrError) GetTaskId() string {
if x != nil {
return x.TaskId
}
return ""
}
func (m *BatchGetResultResponse_ResultOrError) GetOutcome() isBatchGetResultResponse_ResultOrError_Outcome {
if m != nil {
return m.Outcome
}
return nil
}
func (x *BatchGetResultResponse_ResultOrError) GetResult() *TaskResultResponse {
if x, ok := x.GetOutcome().(*BatchGetResultResponse_ResultOrError_Result); ok {
return x.Result
}
return nil
}
func (x *BatchGetResultResponse_ResultOrError) GetError() *status.Status {
if x, ok := x.GetOutcome().(*BatchGetResultResponse_ResultOrError_Error); ok {
return x.Error
}
return nil
}
type isBatchGetResultResponse_ResultOrError_Outcome interface {
isBatchGetResultResponse_ResultOrError_Outcome()
}
type BatchGetResultResponse_ResultOrError_Result struct {
Result *TaskResultResponse `protobuf:"bytes,2,opt,name=result,proto3,oneof"`
}
type BatchGetResultResponse_ResultOrError_Error struct {
Error *status.Status `protobuf:"bytes,3,opt,name=error,proto3,oneof"`
}
func (*BatchGetResultResponse_ResultOrError_Result) isBatchGetResultResponse_ResultOrError_Outcome() {
}
func (*BatchGetResultResponse_ResultOrError_Error) isBatchGetResultResponse_ResultOrError_Outcome() {}
var File_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto protoreflect.FileDescriptor
var file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDesc = []byte{
0x0a, 0x39, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72,
0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2f,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x32, 0x2f, 0x73, 0x77, 0x61,
0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x73, 0x77, 0x61,
0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 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, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72,
0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
0x34, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x12, 0x10, 0x0a,
0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x38, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c,
0x69, 0x73, 0x74, 0x50, 0x61, 0x69, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22,
0xa7, 0x02, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73,
0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65,
0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x6f, 0x74, 0x5f,
0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62,
0x6f, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x19, 0x6d, 0x61, 0x63,
0x68, 0x69, 0x6e, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x65,
0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01,
0x52, 0x17, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65,
0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x3d, 0x0a, 0x1b, 0x64, 0x69, 0x73,
0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x5f,
0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18,
0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c,
0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0b, 0x6c, 0x75, 0x63, 0x69,
0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18,
0x01, 0x52, 0x0a, 0x6c, 0x75, 0x63, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2a, 0x0a,
0x11, 0x63, 0x61, 0x73, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x72, 0x76,
0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x61, 0x73, 0x56, 0x69, 0x65,
0x77, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x22, 0x39, 0x0a, 0x0e, 0x42, 0x6f, 0x6f,
0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x62,
0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x54,
0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xf2, 0x02, 0x0a, 0x11, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50,
0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65,
0x6c, 0x65, 0x74, 0x65, 0x5f, 0x62, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09,
0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x6f, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x6c,
0x65, 0x74, 0x65, 0x5f, 0x62, 0x6f, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a,
0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x6f, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x65,
0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
0x08, 0x52, 0x0c, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x74, 0x12,
0x23, 0x0a, 0x0b, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x04,
0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x67, 0x65, 0x74, 0x43, 0x6f, 0x6e,
0x66, 0x69, 0x67, 0x73, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
0x69, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x70,
0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x6e,
0x63, 0x65, 0x6c, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a,
0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2e, 0x0a, 0x13, 0x67, 0x65,
0x74, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x74, 0x6f, 0x6b, 0x65,
0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x67, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x74,
0x73, 0x74, 0x72, 0x61, 0x70, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x61,
0x6e, 0x63, 0x65, 0x6c, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08,
0x52, 0x0b, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1b, 0x0a,
0x09, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x62, 0x6f, 0x74, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09,
0x52, 0x08, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x6f, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x69,
0x73, 0x74, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09,
0x6c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x3b, 0x0a, 0x06, 0x44, 0x69, 0x67,
0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x7a, 0x65, 0x5f,
0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x69, 0x7a,
0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x5e, 0x0a, 0x0c, 0x43, 0x41, 0x53, 0x52, 0x65, 0x66,
0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x61, 0x73, 0x5f, 0x69, 0x6e,
0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x61,
0x73, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x64, 0x69, 0x67,
0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x77, 0x61, 0x72,
0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x06,
0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x22, 0x5e, 0x0a, 0x0b, 0x43, 0x69, 0x70, 0x64, 0x50, 0x61,
0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x63,
0x6b, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73,
0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69,
0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x9a, 0x01, 0x0a, 0x09, 0x43, 0x69, 0x70, 0x64, 0x49,
0x6e, 0x70, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x0e,
0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e,
0x76, 0x32, 0x2e, 0x43, 0x69, 0x70, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x0d,
0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x34, 0x0a,
0x08, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x18, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x69,
0x70, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x61,
0x67, 0x65, 0x73, 0x22, 0x81, 0x01, 0x0a, 0x08, 0x43, 0x69, 0x70, 0x64, 0x50, 0x69, 0x6e, 0x73,
0x12, 0x3f, 0x0a, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61,
0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d,
0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x69, 0x70, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61,
0x67, 0x65, 0x52, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67,
0x65, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76,
0x32, 0x2e, 0x43, 0x69, 0x70, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x08, 0x70,
0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x22, 0x34, 0x0a, 0x0a, 0x43, 0x61, 0x63, 0x68, 0x65,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74,
0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0xbd, 0x02,
0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a,
0x0e, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18,
0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6f,
0x72, 0x69, 0x74, 0x79, 0x12, 0x53, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x6d,
0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28,
0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e,
0x74, 0x61, 0x69, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6c, 0x69, 0x6d,
0x69, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01,
0x28, 0x03, 0x52, 0x0e, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
0x65, 0x73, 0x12, 0x3f, 0x0a, 0x1c, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x74, 0x6f, 0x74, 0x61,
0x6c, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x6f,
0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x19, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x54,
0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x6d,
0x6f, 0x72, 0x79, 0x22, 0x48, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x6d, 0x65,
0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x4f, 0x54, 0x5f, 0x53, 0x50,
0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e,
0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x55, 0x54, 0x4f, 0x10, 0x02, 0x12, 0x0e, 0x0a,
0x0a, 0x4a, 0x4f, 0x42, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x03, 0x22, 0xbd, 0x05,
0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73,
0x12, 0x2f, 0x0a, 0x06, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x17, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43,
0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x63, 0x61, 0x63, 0x68, 0x65,
0x73, 0x12, 0x35, 0x0a, 0x0a, 0x63, 0x69, 0x70, 0x64, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67,
0x2e, 0x76, 0x32, 0x2e, 0x43, 0x69, 0x70, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x09, 0x63,
0x69, 0x70, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d,
0x61, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61,
0x6e, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63,
0x77, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69,
0x76, 0x65, 0x43, 0x77, 0x64, 0x12, 0x37, 0x0a, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69,
0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x77, 0x61, 0x72,
0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61,
0x69, 0x72, 0x52, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x29,
0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x77,
0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67,
0x50, 0x61, 0x69, 0x72, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x3e, 0x0a, 0x0c, 0x65, 0x6e, 0x76,
0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74,
0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x65, 0x6e,
0x76, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x65, 0x78, 0x65,
0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73,
0x65, 0x63, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x65, 0x78, 0x65, 0x63, 0x75,
0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x73, 0x12,
0x2a, 0x0a, 0x11, 0x67, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f,
0x73, 0x65, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x63,
0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 0x65, 0x63, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x69,
0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52,
0x0a, 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x0e, 0x63,
0x61, 0x73, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x0b, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76,
0x32, 0x2e, 0x43, 0x41, 0x53, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0c,
0x63, 0x61, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x26, 0x0a, 0x0f,
0x69, 0x6f, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18,
0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x69, 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
0x53, 0x65, 0x63, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18,
0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x21,
0x0a, 0x0c, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0e,
0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x42, 0x79, 0x74, 0x65,
0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x6d, 0x65, 0x6e, 0x74,
0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e,
0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x6d, 0x65, 0x6e, 0x74,
0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9d, 0x01,
0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x70,
0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61,
0x73, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0a, 0x70, 0x72,
0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x69,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
0x05, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63,
0x73, 0x12, 0x2a, 0x0a, 0x11, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x63, 0x61,
0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x77, 0x61,
0x69, 0x74, 0x46, 0x6f, 0x72, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x22, 0xed, 0x03,
0x0a, 0x19, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x42, 0x61,
0x63, 0x6b, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x70,
0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70,
0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x2c, 0x0a, 0x12, 0x62, 0x6f, 0x74, 0x5f, 0x70,
0x69, 0x6e, 0x67, 0x5f, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x03, 0x52, 0x10, 0x62, 0x6f, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6c, 0x65,
0x72, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f,
0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61,
0x72, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72,
0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75,
0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x63,
0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x77,
0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x31,
0x0a, 0x15, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x63,
0x69, 0x70, 0x64, 0x5f, 0x70, 0x6b, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61,
0x67, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x43, 0x69, 0x70, 0x64, 0x50, 0x6b,
0x67, 0x12, 0x33, 0x0a, 0x16, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x69, 0x6e, 0x61, 0x72,
0x79, 0x5f, 0x63, 0x69, 0x70, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28,
0x09, 0x52, 0x13, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x43, 0x69,
0x70, 0x64, 0x56, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x1a, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f,
0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x69, 0x70, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65,
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, 0x67, 0x65, 0x6e,
0x74, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x43, 0x69, 0x70, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x6e,
0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x69, 0x6e,
0x61, 0x72, 0x79, 0x5f, 0x63, 0x69, 0x70, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18,
0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x6e, 0x61,
0x72, 0x79, 0x43, 0x69, 0x70, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04,
0x74, 0x61, 0x67, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73,
0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20,
0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x25, 0x0a,
0x0b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x44, 0x42, 0x43, 0x66, 0x67, 0x12, 0x16, 0x0a, 0x06,
0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x6e,
0x61, 0x62, 0x6c, 0x65, 0x22, 0xcc, 0x06, 0x0a, 0x0e, 0x4e, 0x65, 0x77, 0x54, 0x61, 0x73, 0x6b,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x73,
0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74,
0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x61,
0x72, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72,
0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72,
0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x3b, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,
0x74, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x77, 0x61,
0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f,
0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
0x69, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x0b, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x6c, 0x69, 0x63,
0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d,
0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65,
0x52, 0x0a, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04,
0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73,
0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
0x75, 0x73, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f,
0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73,
0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a,
0x0c, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x0a, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x54, 0x6f, 0x70, 0x69, 0x63,
0x12, 0x2a, 0x0a, 0x11, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f,
0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x75, 0x62,
0x73, 0x75, 0x62, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x27, 0x0a, 0x0f,
0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x18,
0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x55, 0x73, 0x65,
0x72, 0x64, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74,
0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x65, 0x76,
0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x5f, 0x0a, 0x12, 0x70, 0x6f,
0x6f, 0x6c, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e,
0x67, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x65, 0x77, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x6d, 0x70,
0x6c, 0x61, 0x74, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x10, 0x70, 0x6f, 0x6f, 0x6c, 0x54,
0x61, 0x73, 0x6b, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x17, 0x62,
0x6f, 0x74, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63,
0x65, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x62, 0x6f,
0x74, 0x50, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x65,
0x63, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x75, 0x75,
0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x55, 0x75, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64,
0x62, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69,
0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x44, 0x42, 0x43, 0x66,
0x67, 0x52, 0x08, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x12, 0x14, 0x0a, 0x05, 0x72,
0x65, 0x61, 0x6c, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x61, 0x6c,
0x6d, 0x22, 0x50, 0x0a, 0x15, 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x6d,
0x70, 0x6c, 0x61, 0x74, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x55,
0x54, 0x4f, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x41, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x50,
0x52, 0x45, 0x46, 0x45, 0x52, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x41, 0x4e, 0x41, 0x52,
0x59, 0x5f, 0x4e, 0x45, 0x56, 0x45, 0x52, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x4b, 0x49,
0x50, 0x10, 0x03, 0x22, 0xc7, 0x05, 0x0a, 0x13, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74,
0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61,
0x73, 0x6b, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x65,
0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x73, 0x12, 0x12, 0x0a,
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
0x65, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x61, 0x73, 0x6b,
0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e,
0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72,
0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72,
0x69, 0x74, 0x79, 0x12, 0x3b, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,
0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69,
0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72,
0x74, 0x69, 0x65, 0x73, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73,
0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04,
0x74, 0x61, 0x67, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f,
0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x73, 0x12,
0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75,
0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63,
0x61, 0x74, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x68,
0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x74, 0x61, 0x73,
0x6b, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16,
0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73,
0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x52, 0x0a, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x6c, 0x69, 0x63,
0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63,
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72,
0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72,
0x65, 0x61, 0x6c, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x61, 0x6c,
0x6d, 0x12, 0x34, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x18, 0x0e, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76,
0x32, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x44, 0x42, 0x43, 0x66, 0x67, 0x52, 0x08, 0x72,
0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x75, 0x62, 0x73, 0x75,
0x62, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70,
0x75, 0x62, 0x73, 0x75, 0x62, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x75,
0x62, 0x73, 0x75, 0x62, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x55, 0x73, 0x65, 0x72, 0x64,
0x61, 0x74, 0x61, 0x12, 0x35, 0x0a, 0x17, 0x62, 0x6f, 0x74, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f,
0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x11,
0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x62, 0x6f, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6c,
0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x65, 0x63, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x62,
0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0b, 0x72, 0x62, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x4f, 0x0a,
0x11, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6b,
0x69, 0x6c, 0x6c, 0x5f, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28,
0x08, 0x52, 0x0b, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0xd9,
0x01, 0x0a, 0x12, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01,
0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63,
0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72,
0x73, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6b, 0x69, 0x6c, 0x6c, 0x5f,
0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6b,
0x69, 0x6c, 0x6c, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x74,
0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x03,
0x65, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x2c, 0x0a, 0x0e, 0x4f, 0x70,
0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08,
0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08,
0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xf2, 0x02, 0x0a, 0x11, 0x43, 0x41, 0x53,
0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x1a,
0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02,
0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e,
0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x69, 0x74, 0x65,
0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61,
0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c,
0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01,
0x28, 0x03, 0x52, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x12,
0x1d, 0x0a, 0x0a, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20,
0x01, 0x28, 0x0c, 0x52, 0x09, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x43, 0x6f, 0x6c, 0x64, 0x12, 0x1b,
0x0a, 0x09, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5f, 0x68, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28,
0x0c, 0x52, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x48, 0x6f, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6e,
0x75, 0x6d, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x64, 0x18, 0x06, 0x20,
0x01, 0x28, 0x03, 0x52, 0x0c, 0x6e, 0x75, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x43, 0x6f, 0x6c,
0x64, 0x12, 0x33, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73,
0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28,
0x03, 0x52, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x49, 0x74, 0x65,
0x6d, 0x73, 0x43, 0x6f, 0x6c, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x6e, 0x75, 0x6d, 0x5f, 0x69, 0x74,
0x65, 0x6d, 0x73, 0x5f, 0x68, 0x6f, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6e,
0x75, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x48, 0x6f, 0x74, 0x12, 0x31, 0x0a, 0x15, 0x74, 0x6f,
0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5f,
0x68, 0x6f, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c,
0x42, 0x79, 0x74, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x48, 0x6f, 0x74, 0x22, 0xb0, 0x04,
0x0a, 0x10, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61,
0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6f, 0x74, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x65,
0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x62, 0x6f, 0x74, 0x4f, 0x76, 0x65,
0x72, 0x68, 0x65, 0x61, 0x64, 0x12, 0x4b, 0x0a, 0x11, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x65,
0x64, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x1e, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43,
0x41, 0x53, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73,
0x52, 0x10, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f,
0x61, 0x64, 0x12, 0x47, 0x0a, 0x0f, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75,
0x70, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x77,
0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x41, 0x53, 0x4f, 0x70, 0x65,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0e, 0x69, 0x73, 0x6f,
0x6c, 0x61, 0x74, 0x65, 0x64, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x4e, 0x0a, 0x14, 0x70,
0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72,
0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x13, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x49,
0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x0a, 0x63,
0x61, 0x63, 0x68, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x70,
0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x09, 0x63, 0x61,
0x63, 0x68, 0x65, 0x54, 0x72, 0x69, 0x6d, 0x12, 0x4d, 0x0a, 0x14, 0x6e, 0x61, 0x6d, 0x65, 0x64,
0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x18,
0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67,
0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61,
0x74, 0x73, 0x52, 0x12, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x73, 0x49,
0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x12, 0x51, 0x0a, 0x16, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f,
0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x5f, 0x75, 0x6e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c,
0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e,
0x67, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74,
0x61, 0x74, 0x73, 0x52, 0x14, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x73,
0x55, 0x6e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x12, 0x35, 0x0a, 0x07, 0x63, 0x6c, 0x65,
0x61, 0x6e, 0x75, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x77, 0x61,
0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x07, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70,
0x22, 0x4d, 0x0a, 0x0e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x65, 0x64, 0x12, 0x1f,
0x0a, 0x0b, 0x77, 0x61, 0x73, 0x5f, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20,
0x01, 0x28, 0x08, 0x52, 0x0a, 0x77, 0x61, 0x73, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x22,
0x75, 0x0a, 0x13, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x2c,
0x0a, 0x03, 0x6e, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x6e, 0x6f, 0x77, 0x12, 0x18, 0x0a, 0x07,
0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d,
0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x22, 0x5a, 0x0a, 0x12, 0x54, 0x61, 0x73, 0x6b, 0x4f, 0x75,
0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06,
0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6f, 0x75,
0x74, 0x70, 0x75, 0x74, 0x12, 0x2c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76,
0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61,
0x74, 0x65, 0x22, 0x4a, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x44, 0x42, 0x49, 0x6e,
0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e,
0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa7,
0x0b, 0x0a, 0x12, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x42,
0x0a, 0x0e, 0x62, 0x6f, 0x74, 0x5f, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73,
0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e,
0x67, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x50,
0x61, 0x69, 0x72, 0x52, 0x0d, 0x62, 0x6f, 0x74, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f,
0x6e, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
0x28, 0x09, 0x52, 0x05, 0x62, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x11, 0x62, 0x6f, 0x74,
0x5f, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x73, 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, 0x0e, 0x62, 0x6f, 0x74, 0x49, 0x64, 0x6c, 0x65, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x54, 0x73,
0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x6f, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18,
0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6f, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
0x6e, 0x12, 0x33, 0x0a, 0x16, 0x62, 0x6f, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x63, 0x6c,
0x6f, 0x75, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28,
0x09, 0x52, 0x13, 0x62, 0x6f, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x50,
0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65,
0x74, 0x65, 0x64, 0x5f, 0x74, 0x73, 0x18, 0x08, 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, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65,
0x74, 0x65, 0x64, 0x54, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x61,
0x76, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x63,
0x6f, 0x73, 0x74, 0x53, 0x61, 0x76, 0x65, 0x64, 0x55, 0x73, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63,
0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65,
0x61, 0x74, 0x65, 0x64, 0x54, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x64, 0x75, 0x70, 0x65,
0x64, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65,
0x64, 0x75, 0x70, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f,
0x64, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f,
0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x0e, 0x20,
0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x29, 0x0a, 0x10,
0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65,
0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x69, 0x66,
0x69, 0x65, 0x64, 0x5f, 0x74, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69,
0x65, 0x64, 0x54, 0x73, 0x12, 0x41, 0x0a, 0x0f, 0x63, 0x61, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x70,
0x75, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x41, 0x53, 0x52,
0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0d, 0x63, 0x61, 0x73, 0x4f, 0x75, 0x74,
0x70, 0x75, 0x74, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65,
0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09,
0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73,
0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x73, 0x18, 0x13,
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, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x54, 0x73, 0x12, 0x2c, 0x0a, 0x05, 0x73,
0x74, 0x61, 0x74, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x73, 0x77, 0x61,
0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61,
0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x61, 0x62, 0x61,
0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x73, 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, 0x0b, 0x61, 0x62, 0x61,
0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x64, 0x54, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x73, 0x74,
0x73, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x16, 0x20, 0x03, 0x28, 0x02, 0x52, 0x08, 0x63, 0x6f, 0x73,
0x74, 0x73, 0x55, 0x73, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x17, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67,
0x73, 0x18, 0x18, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x12, 0x0a,
0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65,
0x72, 0x12, 0x4a, 0x0a, 0x11, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65,
0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73,
0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x66, 0x6f,
0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x10, 0x70, 0x65, 0x72,
0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x32, 0x0a,
0x09, 0x63, 0x69, 0x70, 0x64, 0x5f, 0x70, 0x69, 0x6e, 0x73, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x15, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43,
0x69, 0x70, 0x64, 0x50, 0x69, 0x6e, 0x73, 0x52, 0x08, 0x63, 0x69, 0x70, 0x64, 0x50, 0x69, 0x6e,
0x73, 0x12, 0x15, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28,
0x09, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x75, 0x72, 0x72,
0x65, 0x6e, 0x74, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x18, 0x1d,
0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73,
0x6b, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
0x64, 0x62, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x75,
0x6c, 0x74, 0x44, 0x42, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
0x64, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x0b, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e,
0x67, 0x5f, 0x63, 0x61, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x77,
0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x41, 0x53, 0x52, 0x65, 0x66,
0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0a, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43,
0x61, 0x73, 0x12, 0x3b, 0x0a, 0x0c, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x69,
0x70, 0x64, 0x18, 0x20, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d,
0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x69, 0x70, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61,
0x67, 0x65, 0x52, 0x0b, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x69, 0x70, 0x64, 0x4a,
0x04, 0x08, 0x07, 0x10, 0x08, 0x52, 0x11, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x5f,
0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x73, 0x22, 0x3c, 0x0a, 0x0a, 0x54, 0x61, 0x73, 0x6b,
0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73,
0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e,
0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x06,
0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x10, 0x54, 0x61, 0x73, 0x6b, 0x4c,
0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63,
0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72,
0x73, 0x6f, 0x72, 0x12, 0x35, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32,
0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2c, 0x0a, 0x03, 0x6e, 0x6f,
0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
0x61, 0x6d, 0x70, 0x52, 0x03, 0x6e, 0x6f, 0x77, 0x22, 0x94, 0x01, 0x0a, 0x14, 0x54, 0x61, 0x73,
0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x36, 0x0a, 0x05, 0x69, 0x74, 0x65,
0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d,
0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d,
0x73, 0x12, 0x2c, 0x0a, 0x03, 0x6e, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x6e, 0x6f, 0x77, 0x22,
0x50, 0x0a, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a,
0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f,
0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x6e, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x6e, 0x6f,
0x77, 0x22, 0xb4, 0x01, 0x0a, 0x1b, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x07, 0x72, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x77,
0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x72,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x72,
0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x77,
0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65,
0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x74, 0x61,
0x73, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x8b, 0x04, 0x0a, 0x07, 0x42, 0x6f, 0x74,
0x49, 0x6e, 0x66, 0x6f, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74,
0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61,
0x73, 0x6b, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
0x5f, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72,
0x6e, 0x61, 0x6c, 0x49, 0x70, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74,
0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
0x0f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x41, 0x73,
0x12, 0x3e, 0x0a, 0x0d, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x5f, 0x74,
0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
0x61, 0x6d, 0x70, 0x52, 0x0b, 0x66, 0x69, 0x72, 0x73, 0x74, 0x53, 0x65, 0x65, 0x6e, 0x54, 0x73,
0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28,
0x08, 0x52, 0x06, 0x69, 0x73, 0x44, 0x65, 0x61, 0x64, 0x12, 0x3c, 0x0a, 0x0c, 0x6c, 0x61, 0x73,
0x74, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x5f, 0x74, 0x73, 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, 0x0a, 0x6c, 0x61, 0x73,
0x74, 0x53, 0x65, 0x65, 0x6e, 0x54, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x61, 0x72, 0x61,
0x6e, 0x74, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x71, 0x75,
0x61, 0x72, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x69,
0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x09, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0e, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d,
0x73, 0x67, 0x12, 0x3b, 0x0a, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73,
0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e,
0x67, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x50,
0x61, 0x69, 0x72, 0x52, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12,
0x1b, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01,
0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07,
0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76,
0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07,
0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64,
0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0xac, 0x01, 0x0a, 0x13, 0x42, 0x6f, 0x74, 0x49, 0x6e,
0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16,
0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x2a, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18,
0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67,
0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x69, 0x74, 0x65,
0x6d, 0x73, 0x12, 0x2c, 0x0a, 0x03, 0x6e, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x6e, 0x6f, 0x77,
0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75,
0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x64, 0x65, 0x61, 0x74, 0x68, 0x54, 0x69,
0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0xbb, 0x01, 0x0a, 0x09, 0x42, 0x6f, 0x74, 0x73, 0x43, 0x6f,
0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x6e, 0x6f, 0x77, 0x18, 0x01, 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, 0x03, 0x6e, 0x6f,
0x77, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x61, 0x72, 0x61,
0x6e, 0x74, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x71, 0x75,
0x61, 0x72, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x69,
0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b,
0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64,
0x65, 0x61, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x64, 0x65, 0x61, 0x64, 0x12,
0x12, 0x0a, 0x04, 0x62, 0x75, 0x73, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x62,
0x75, 0x73, 0x79, 0x22, 0x82, 0x01, 0x0a, 0x0e, 0x42, 0x6f, 0x74, 0x73, 0x44, 0x69, 0x6d, 0x65,
0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x44, 0x0a, 0x0f, 0x62, 0x6f, 0x74, 0x73, 0x5f, 0x64,
0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74,
0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0e, 0x62, 0x6f,
0x74, 0x73, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x02,
0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
0x74, 0x61, 0x6d, 0x70, 0x52, 0x02, 0x74, 0x73, 0x22, 0x94, 0x03, 0x0a, 0x10, 0x42, 0x6f, 0x74,
0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a,
0x02, 0x74, 0x73, 0x18, 0x01, 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, 0x02, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65,
0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65,
0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 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, 0x3b, 0x0a, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73,
0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e,
0x67, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x50,
0x61, 0x69, 0x72, 0x52, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12,
0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61,
0x6c, 0x5f, 0x69, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65,
0x72, 0x6e, 0x61, 0x6c, 0x49, 0x70, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e,
0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x41,
0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01,
0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x71,
0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08,
0x52, 0x0b, 0x71, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x64, 0x12, 0x27, 0x0a,
0x0f, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x73, 0x67,
0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61,
0x6e, 0x63, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69,
0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22,
0x8e, 0x01, 0x0a, 0x11, 0x42, 0x6f, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x33, 0x0a,
0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73,
0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6f, 0x74, 0x45, 0x76,
0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 0x69, 0x74, 0x65,
0x6d, 0x73, 0x12, 0x2c, 0x0a, 0x03, 0x6e, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x6e, 0x6f, 0x77,
0x22, 0x2a, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0x2c, 0x0a, 0x11,
0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x23, 0x0a, 0x0a, 0x42, 0x6f,
0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x6f, 0x74, 0x5f,
0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x6f, 0x74, 0x49, 0x64, 0x22,
0x41, 0x0a, 0x10, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65,
0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73,
0x6f, 0x6e, 0x22, 0xb7, 0x01, 0x0a, 0x10, 0x42, 0x6f, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x6f, 0x74, 0x5f, 0x69,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x14,
0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c,
0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x03,
0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x30, 0x0a, 0x05,
0x73, 0x74, 0x61, 0x72, 0x74, 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, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c,
0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0xcd, 0x02, 0x0a,
0x0f, 0x42, 0x6f, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x12, 0x15, 0x0a, 0x06, 0x62, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x05, 0x62, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74,
0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a,
0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63,
0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 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, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x05,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06,
0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e,
0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x05, 0x73,
0x74, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x16, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32,
0x2e, 0x53, 0x6f, 0x72, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74,
0x12, 0x3a, 0x0a, 0x19, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x66,
0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x08, 0x20,
0x01, 0x28, 0x08, 0x52, 0x17, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x65, 0x72, 0x66,
0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, 0xdb, 0x02, 0x0a,
0x0b, 0x42, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05,
0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d,
0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x37, 0x0a, 0x0a, 0x64, 0x69,
0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17,
0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x72,
0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69,
0x6f, 0x6e, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x71, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x69, 0x6e,
0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d,
0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42,
0x6f, 0x6f, 0x6c, 0x52, 0x0b, 0x71, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x64,
0x12, 0x40, 0x0a, 0x0e, 0x69, 0x6e, 0x5f, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e,
0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d,
0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42,
0x6f, 0x6f, 0x6c, 0x52, 0x0d, 0x69, 0x6e, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e,
0x63, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x18, 0x06, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76,
0x32, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x06,
0x69, 0x73, 0x44, 0x65, 0x61, 0x64, 0x12, 0x32, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x62, 0x75, 0x73,
0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69,
0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x6f,
0x6f, 0x6c, 0x52, 0x06, 0x69, 0x73, 0x42, 0x75, 0x73, 0x79, 0x22, 0x4b, 0x0a, 0x10, 0x42, 0x6f,
0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37,
0x0a, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32,
0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0a, 0x64, 0x69, 0x6d,
0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x2b, 0x0a, 0x15, 0x42, 0x6f, 0x74, 0x73, 0x44,
0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
0x70, 0x6f, 0x6f, 0x6c, 0x22, 0x58, 0x0a, 0x12, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69,
0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x6f,
0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x6f, 0x74, 0x49,
0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61,
0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0x2c,
0x0a, 0x11, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01,
0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0xcf, 0x02, 0x0a,
0x14, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x57, 0x69, 0x74, 0x68, 0x50, 0x65, 0x72, 0x66, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01,
0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63,
0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72,
0x73, 0x6f, 0x72, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05,
0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03,
0x65, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x17, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32,
0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x05, 0x73, 0x74, 0x61,
0x74, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e,
0x32, 0x16, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x53,
0x6f, 0x72, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x12,
0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61,
0x67, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x70, 0x65,
0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18,
0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x65,
0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, 0x8b,
0x02, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x30, 0x0a,
0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12,
0x2c, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x2d, 0x0a,
0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x73,
0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65,
0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x04,
0x73, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x73, 0x77, 0x61,
0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x6f, 0x72, 0x74, 0x51, 0x75, 0x65,
0x72, 0x79, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73,
0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0xb6, 0x01, 0x0a,
0x11, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 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, 0x05, 0x73,
0x74, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x65,
0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
0x0e, 0x32, 0x17, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e,
0x53, 0x74, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74,
0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52,
0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0x28, 0x0a, 0x0d, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22,
0x62, 0x0a, 0x17, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x57, 0x69, 0x74, 0x68, 0x4f, 0x66, 0x66,
0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61,
0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x73,
0x6b, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20,
0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c,
0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6c, 0x65, 0x6e,
0x67, 0x74, 0x68, 0x22, 0x6c, 0x0a, 0x15, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x57, 0x69, 0x74,
0x68, 0x50, 0x65, 0x72, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07,
0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74,
0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65,
0x5f, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61,
0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64,
0x65, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74,
0x73, 0x22, 0x6e, 0x0a, 0x15, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73,
0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x61,
0x73, 0x6b, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x61,
0x73, 0x6b, 0x49, 0x64, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65,
0x5f, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61,
0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64,
0x65, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74,
0x73, 0x22, 0x82, 0x02, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x65,
0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x07,
0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e,
0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x74, 0x63,
0x68, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4f, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72,
0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x9a, 0x01, 0x0a, 0x0d, 0x52, 0x65,
0x73, 0x75, 0x6c, 0x74, 0x4f, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x74,
0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61,
0x73, 0x6b, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e,
0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12,
0x2a, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74,
0x75, 0x73, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x6f,
0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x2a, 0xcf, 0x02, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x65,
0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x11, 0x0a, 0x0d, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x50,
0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x51, 0x55, 0x45, 0x52,
0x59, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x51,
0x55, 0x45, 0x52, 0x59, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x55, 0x4e,
0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f,
0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x51,
0x55, 0x45, 0x52, 0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x5f, 0x53,
0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x51, 0x55, 0x45, 0x52,
0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x5f, 0x46, 0x41, 0x49, 0x4c,
0x55, 0x52, 0x45, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x45,
0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x51, 0x55, 0x45, 0x52,
0x59, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x10, 0x07, 0x12, 0x12, 0x0a,
0x0e, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x42, 0x4f, 0x54, 0x5f, 0x44, 0x49, 0x45, 0x44, 0x10,
0x08, 0x12, 0x12, 0x0a, 0x0e, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45,
0x4c, 0x45, 0x44, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x41,
0x4c, 0x4c, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x44, 0x45,
0x44, 0x55, 0x50, 0x45, 0x44, 0x10, 0x0b, 0x12, 0x10, 0x0a, 0x0c, 0x51, 0x55, 0x45, 0x52, 0x59,
0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x0c, 0x12, 0x15, 0x0a, 0x11, 0x51, 0x55, 0x45,
0x52, 0x59, 0x5f, 0x4e, 0x4f, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x0d,
0x12, 0x16, 0x0a, 0x12, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54,
0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x0e, 0x2a, 0x6d, 0x0a, 0x09, 0x53, 0x6f, 0x72, 0x74,
0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x10, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x43,
0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x54, 0x53, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x51,
0x55, 0x45, 0x52, 0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x5f, 0x54,
0x53, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x41, 0x42, 0x41,
0x4e, 0x44, 0x4f, 0x4e, 0x45, 0x44, 0x5f, 0x54, 0x53, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x51,
0x55, 0x45, 0x52, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x54, 0x53, 0x10,
0x04, 0x22, 0x04, 0x08, 0x01, 0x10, 0x01, 0x2a, 0x2d, 0x0a, 0x0c, 0x4e, 0x75, 0x6c, 0x6c, 0x61,
0x62, 0x6c, 0x65, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x55, 0x4c, 0x4c, 0x10,
0x00, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x41, 0x4c, 0x53, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04,
0x54, 0x52, 0x55, 0x45, 0x10, 0x02, 0x2a, 0xab, 0x01, 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x53,
0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10,
0x00, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x10, 0x12, 0x0b,
0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x20, 0x12, 0x0b, 0x0a, 0x07, 0x45,
0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x30, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x49, 0x4d, 0x45,
0x44, 0x5f, 0x4f, 0x55, 0x54, 0x10, 0x40, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x4f, 0x54, 0x5f, 0x44,
0x49, 0x45, 0x44, 0x10, 0x50, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45,
0x44, 0x10, 0x60, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44,
0x10, 0x70, 0x12, 0x0b, 0x0a, 0x06, 0x4b, 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x80, 0x01, 0x12,
0x10, 0x0a, 0x0b, 0x4e, 0x4f, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x80,
0x02, 0x12, 0x11, 0x0a, 0x0c, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f,
0x52, 0x10, 0x80, 0x04, 0x32, 0xcf, 0x04, 0x0a, 0x04, 0x42, 0x6f, 0x74, 0x73, 0x12, 0x37, 0x0a,
0x06, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x74, 0x12, 0x17, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69,
0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x1a, 0x14, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42,
0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x41, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
0x42, 0x6f, 0x74, 0x12, 0x17, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76,
0x32, 0x2e, 0x42, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x73,
0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0d, 0x4c, 0x69, 0x73,
0x74, 0x42, 0x6f, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1d, 0x2e, 0x73, 0x77, 0x61,
0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6f, 0x74, 0x45, 0x76, 0x65, 0x6e,
0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x77, 0x61, 0x72,
0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6f, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74,
0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0c, 0x54, 0x65, 0x72,
0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x74, 0x12, 0x1d, 0x2e, 0x73, 0x77, 0x61, 0x72,
0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74,
0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d,
0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74,
0x42, 0x6f, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1c, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d,
0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6f, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e,
0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6f, 0x74,
0x73, 0x12, 0x18, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e,
0x42, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x77,
0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6f, 0x74, 0x49, 0x6e, 0x66,
0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a,
0x09, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x6f, 0x74, 0x73, 0x12, 0x1d, 0x2e, 0x73, 0x77, 0x61,
0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6f, 0x74, 0x73, 0x43, 0x6f, 0x75,
0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x73, 0x77, 0x61, 0x72,
0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6f, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e,
0x74, 0x12, 0x53, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x74, 0x44, 0x69, 0x6d, 0x65, 0x6e,
0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x22, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67,
0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6f, 0x74, 0x73, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f,
0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72,
0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6f, 0x74, 0x73, 0x44, 0x69, 0x6d, 0x65,
0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x32, 0xf6, 0x06, 0x0a, 0x05, 0x54, 0x61, 0x73, 0x6b, 0x73,
0x12, 0x50, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x22, 0x2e,
0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b,
0x49, 0x64, 0x57, 0x69, 0x74, 0x68, 0x50, 0x65, 0x72, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e,
0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x12, 0x59, 0x0a, 0x0e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x65,
0x73, 0x75, 0x6c, 0x74, 0x12, 0x22, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e,
0x76, 0x32, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c,
0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d,
0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x52,
0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a,
0x0a, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x2e, 0x73, 0x77,
0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69,
0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0a, 0x43, 0x61, 0x6e,
0x63, 0x65, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1e, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69,
0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69,
0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x64, 0x6f, 0x75,
0x74, 0x12, 0x24, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e,
0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x57, 0x69, 0x74, 0x68, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69,
0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x07, 0x4e, 0x65, 0x77, 0x54,
0x61, 0x73, 0x6b, 0x12, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76,
0x32, 0x2e, 0x4e, 0x65, 0x77, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x1a, 0x28, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54,
0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x09, 0x4c, 0x69,
0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x21, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69,
0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x57, 0x69, 0x74, 0x68, 0x50,
0x65, 0x72, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x77, 0x61,
0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73,
0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0e, 0x4c, 0x69, 0x73,
0x74, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x73, 0x77,
0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74,
0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x73, 0x77,
0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74,
0x61, 0x74, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x19, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d,
0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76,
0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c,
0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1f, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67,
0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e,
0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x43, 0x6f, 0x75, 0x6e,
0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1e, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e,
0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e,
0x67, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x32,
0xe0, 0x01, 0x0a, 0x08, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x40, 0x0a, 0x0a,
0x47, 0x65, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32,
0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x3f,
0x0a, 0x08, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
0x74, 0x79, 0x1a, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32,
0x2e, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12,
0x51, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,
0x73, 0x12, 0x1f, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32, 0x2e,
0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x32,
0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f,
0x6e, 0x73, 0x42, 0x32, 0x5a, 0x30, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75,
0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x73, 0x77, 0x61, 0x72, 0x6d,
0x69, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x32,
0x3b, 0x61, 0x70, 0x69, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescOnce sync.Once
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescData = file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDesc
)
func file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescGZIP() []byte {
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescOnce.Do(func() {
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescData)
})
return file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDescData
}
var file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes = make([]protoimpl.EnumInfo, 6)
var file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes = make([]protoimpl.MessageInfo, 59)
var file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_goTypes = []interface{}{
(StateQuery)(0), // 0: swarming.v2.StateQuery
(SortQuery)(0), // 1: swarming.v2.SortQuery
(NullableBool)(0), // 2: swarming.v2.NullableBool
(TaskState)(0), // 3: swarming.v2.TaskState
(Containment_ContainmentType)(0), // 4: swarming.v2.Containment.ContainmentType
(NewTaskRequest_PoolTaskTemplateField)(0), // 5: swarming.v2.NewTaskRequest.PoolTaskTemplateField
(*StringPair)(nil), // 6: swarming.v2.StringPair
(*StringListPair)(nil), // 7: swarming.v2.StringListPair
(*ServerDetails)(nil), // 8: swarming.v2.ServerDetails
(*BootstrapToken)(nil), // 9: swarming.v2.BootstrapToken
(*ClientPermissions)(nil), // 10: swarming.v2.ClientPermissions
(*Digest)(nil), // 11: swarming.v2.Digest
(*CASReference)(nil), // 12: swarming.v2.CASReference
(*CipdPackage)(nil), // 13: swarming.v2.CipdPackage
(*CipdInput)(nil), // 14: swarming.v2.CipdInput
(*CipdPins)(nil), // 15: swarming.v2.CipdPins
(*CacheEntry)(nil), // 16: swarming.v2.CacheEntry
(*Containment)(nil), // 17: swarming.v2.Containment
(*TaskProperties)(nil), // 18: swarming.v2.TaskProperties
(*TaskSlice)(nil), // 19: swarming.v2.TaskSlice
(*SwarmingTaskBackendConfig)(nil), // 20: swarming.v2.SwarmingTaskBackendConfig
(*ResultDBCfg)(nil), // 21: swarming.v2.ResultDBCfg
(*NewTaskRequest)(nil), // 22: swarming.v2.NewTaskRequest
(*TaskRequestResponse)(nil), // 23: swarming.v2.TaskRequestResponse
(*TaskCancelRequest)(nil), // 24: swarming.v2.TaskCancelRequest
(*TasksCancelRequest)(nil), // 25: swarming.v2.TasksCancelRequest
(*OperationStats)(nil), // 26: swarming.v2.OperationStats
(*CASOperationStats)(nil), // 27: swarming.v2.CASOperationStats
(*PerformanceStats)(nil), // 28: swarming.v2.PerformanceStats
(*CancelResponse)(nil), // 29: swarming.v2.CancelResponse
(*TasksCancelResponse)(nil), // 30: swarming.v2.TasksCancelResponse
(*TaskOutputResponse)(nil), // 31: swarming.v2.TaskOutputResponse
(*ResultDBInfo)(nil), // 32: swarming.v2.ResultDBInfo
(*TaskResultResponse)(nil), // 33: swarming.v2.TaskResultResponse
(*TaskStates)(nil), // 34: swarming.v2.TaskStates
(*TaskListResponse)(nil), // 35: swarming.v2.TaskListResponse
(*TaskRequestsResponse)(nil), // 36: swarming.v2.TaskRequestsResponse
(*TasksCount)(nil), // 37: swarming.v2.TasksCount
(*TaskRequestMetadataResponse)(nil), // 38: swarming.v2.TaskRequestMetadataResponse
(*BotInfo)(nil), // 39: swarming.v2.BotInfo
(*BotInfoListResponse)(nil), // 40: swarming.v2.BotInfoListResponse
(*BotsCount)(nil), // 41: swarming.v2.BotsCount
(*BotsDimensions)(nil), // 42: swarming.v2.BotsDimensions
(*BotEventResponse)(nil), // 43: swarming.v2.BotEventResponse
(*BotEventsResponse)(nil), // 44: swarming.v2.BotEventsResponse
(*DeleteResponse)(nil), // 45: swarming.v2.DeleteResponse
(*TerminateResponse)(nil), // 46: swarming.v2.TerminateResponse
(*BotRequest)(nil), // 47: swarming.v2.BotRequest
(*TerminateRequest)(nil), // 48: swarming.v2.TerminateRequest
(*BotEventsRequest)(nil), // 49: swarming.v2.BotEventsRequest
(*BotTasksRequest)(nil), // 50: swarming.v2.BotTasksRequest
(*BotsRequest)(nil), // 51: swarming.v2.BotsRequest
(*BotsCountRequest)(nil), // 52: swarming.v2.BotsCountRequest
(*BotsDimensionsRequest)(nil), // 53: swarming.v2.BotsDimensionsRequest
(*PermissionsRequest)(nil), // 54: swarming.v2.PermissionsRequest
(*TaskStatesRequest)(nil), // 55: swarming.v2.TaskStatesRequest
(*TasksWithPerfRequest)(nil), // 56: swarming.v2.TasksWithPerfRequest
(*TasksRequest)(nil), // 57: swarming.v2.TasksRequest
(*TasksCountRequest)(nil), // 58: swarming.v2.TasksCountRequest
(*TaskIdRequest)(nil), // 59: swarming.v2.TaskIdRequest
(*TaskIdWithOffsetRequest)(nil), // 60: swarming.v2.TaskIdWithOffsetRequest
(*TaskIdWithPerfRequest)(nil), // 61: swarming.v2.TaskIdWithPerfRequest
(*BatchGetResultRequest)(nil), // 62: swarming.v2.BatchGetResultRequest
(*BatchGetResultResponse)(nil), // 63: swarming.v2.BatchGetResultResponse
(*BatchGetResultResponse_ResultOrError)(nil), // 64: swarming.v2.BatchGetResultResponse.ResultOrError
(*timestamppb.Timestamp)(nil), // 65: google.protobuf.Timestamp
(*status.Status)(nil), // 66: google.rpc.Status
(*emptypb.Empty)(nil), // 67: google.protobuf.Empty
}
var file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_depIdxs = []int32{
11, // 0: swarming.v2.CASReference.digest:type_name -> swarming.v2.Digest
13, // 1: swarming.v2.CipdInput.client_package:type_name -> swarming.v2.CipdPackage
13, // 2: swarming.v2.CipdInput.packages:type_name -> swarming.v2.CipdPackage
13, // 3: swarming.v2.CipdPins.client_package:type_name -> swarming.v2.CipdPackage
13, // 4: swarming.v2.CipdPins.packages:type_name -> swarming.v2.CipdPackage
4, // 5: swarming.v2.Containment.containment_type:type_name -> swarming.v2.Containment.ContainmentType
16, // 6: swarming.v2.TaskProperties.caches:type_name -> swarming.v2.CacheEntry
14, // 7: swarming.v2.TaskProperties.cipd_input:type_name -> swarming.v2.CipdInput
6, // 8: swarming.v2.TaskProperties.dimensions:type_name -> swarming.v2.StringPair
6, // 9: swarming.v2.TaskProperties.env:type_name -> swarming.v2.StringPair
7, // 10: swarming.v2.TaskProperties.env_prefixes:type_name -> swarming.v2.StringListPair
12, // 11: swarming.v2.TaskProperties.cas_input_root:type_name -> swarming.v2.CASReference
17, // 12: swarming.v2.TaskProperties.containment:type_name -> swarming.v2.Containment
18, // 13: swarming.v2.TaskSlice.properties:type_name -> swarming.v2.TaskProperties
18, // 14: swarming.v2.NewTaskRequest.properties:type_name -> swarming.v2.TaskProperties
19, // 15: swarming.v2.NewTaskRequest.task_slices:type_name -> swarming.v2.TaskSlice
5, // 16: swarming.v2.NewTaskRequest.pool_task_template:type_name -> swarming.v2.NewTaskRequest.PoolTaskTemplateField
21, // 17: swarming.v2.NewTaskRequest.resultdb:type_name -> swarming.v2.ResultDBCfg
18, // 18: swarming.v2.TaskRequestResponse.properties:type_name -> swarming.v2.TaskProperties
65, // 19: swarming.v2.TaskRequestResponse.created_ts:type_name -> google.protobuf.Timestamp
19, // 20: swarming.v2.TaskRequestResponse.task_slices:type_name -> swarming.v2.TaskSlice
21, // 21: swarming.v2.TaskRequestResponse.resultdb:type_name -> swarming.v2.ResultDBCfg
65, // 22: swarming.v2.TasksCancelRequest.start:type_name -> google.protobuf.Timestamp
65, // 23: swarming.v2.TasksCancelRequest.end:type_name -> google.protobuf.Timestamp
27, // 24: swarming.v2.PerformanceStats.isolated_download:type_name -> swarming.v2.CASOperationStats
27, // 25: swarming.v2.PerformanceStats.isolated_upload:type_name -> swarming.v2.CASOperationStats
26, // 26: swarming.v2.PerformanceStats.package_installation:type_name -> swarming.v2.OperationStats
26, // 27: swarming.v2.PerformanceStats.cache_trim:type_name -> swarming.v2.OperationStats
26, // 28: swarming.v2.PerformanceStats.named_caches_install:type_name -> swarming.v2.OperationStats
26, // 29: swarming.v2.PerformanceStats.named_caches_uninstall:type_name -> swarming.v2.OperationStats
26, // 30: swarming.v2.PerformanceStats.cleanup:type_name -> swarming.v2.OperationStats
65, // 31: swarming.v2.TasksCancelResponse.now:type_name -> google.protobuf.Timestamp
3, // 32: swarming.v2.TaskOutputResponse.state:type_name -> swarming.v2.TaskState
7, // 33: swarming.v2.TaskResultResponse.bot_dimensions:type_name -> swarming.v2.StringListPair
65, // 34: swarming.v2.TaskResultResponse.bot_idle_since_ts:type_name -> google.protobuf.Timestamp
65, // 35: swarming.v2.TaskResultResponse.completed_ts:type_name -> google.protobuf.Timestamp
65, // 36: swarming.v2.TaskResultResponse.created_ts:type_name -> google.protobuf.Timestamp
65, // 37: swarming.v2.TaskResultResponse.modified_ts:type_name -> google.protobuf.Timestamp
12, // 38: swarming.v2.TaskResultResponse.cas_output_root:type_name -> swarming.v2.CASReference
65, // 39: swarming.v2.TaskResultResponse.started_ts:type_name -> google.protobuf.Timestamp
3, // 40: swarming.v2.TaskResultResponse.state:type_name -> swarming.v2.TaskState
65, // 41: swarming.v2.TaskResultResponse.abandoned_ts:type_name -> google.protobuf.Timestamp
28, // 42: swarming.v2.TaskResultResponse.performance_stats:type_name -> swarming.v2.PerformanceStats
15, // 43: swarming.v2.TaskResultResponse.cipd_pins:type_name -> swarming.v2.CipdPins
32, // 44: swarming.v2.TaskResultResponse.resultdb_info:type_name -> swarming.v2.ResultDBInfo
12, // 45: swarming.v2.TaskResultResponse.missing_cas:type_name -> swarming.v2.CASReference
13, // 46: swarming.v2.TaskResultResponse.missing_cipd:type_name -> swarming.v2.CipdPackage
3, // 47: swarming.v2.TaskStates.states:type_name -> swarming.v2.TaskState
33, // 48: swarming.v2.TaskListResponse.items:type_name -> swarming.v2.TaskResultResponse
65, // 49: swarming.v2.TaskListResponse.now:type_name -> google.protobuf.Timestamp
23, // 50: swarming.v2.TaskRequestsResponse.items:type_name -> swarming.v2.TaskRequestResponse
65, // 51: swarming.v2.TaskRequestsResponse.now:type_name -> google.protobuf.Timestamp
65, // 52: swarming.v2.TasksCount.now:type_name -> google.protobuf.Timestamp
23, // 53: swarming.v2.TaskRequestMetadataResponse.request:type_name -> swarming.v2.TaskRequestResponse
33, // 54: swarming.v2.TaskRequestMetadataResponse.task_result:type_name -> swarming.v2.TaskResultResponse
65, // 55: swarming.v2.BotInfo.first_seen_ts:type_name -> google.protobuf.Timestamp
65, // 56: swarming.v2.BotInfo.last_seen_ts:type_name -> google.protobuf.Timestamp
7, // 57: swarming.v2.BotInfo.dimensions:type_name -> swarming.v2.StringListPair
39, // 58: swarming.v2.BotInfoListResponse.items:type_name -> swarming.v2.BotInfo
65, // 59: swarming.v2.BotInfoListResponse.now:type_name -> google.protobuf.Timestamp
65, // 60: swarming.v2.BotsCount.now:type_name -> google.protobuf.Timestamp
7, // 61: swarming.v2.BotsDimensions.bots_dimensions:type_name -> swarming.v2.StringListPair
65, // 62: swarming.v2.BotsDimensions.ts:type_name -> google.protobuf.Timestamp
65, // 63: swarming.v2.BotEventResponse.ts:type_name -> google.protobuf.Timestamp
7, // 64: swarming.v2.BotEventResponse.dimensions:type_name -> swarming.v2.StringListPair
43, // 65: swarming.v2.BotEventsResponse.items:type_name -> swarming.v2.BotEventResponse
65, // 66: swarming.v2.BotEventsResponse.now:type_name -> google.protobuf.Timestamp
65, // 67: swarming.v2.BotEventsRequest.start:type_name -> google.protobuf.Timestamp
65, // 68: swarming.v2.BotEventsRequest.end:type_name -> google.protobuf.Timestamp
65, // 69: swarming.v2.BotTasksRequest.start:type_name -> google.protobuf.Timestamp
65, // 70: swarming.v2.BotTasksRequest.end:type_name -> google.protobuf.Timestamp
0, // 71: swarming.v2.BotTasksRequest.state:type_name -> swarming.v2.StateQuery
1, // 72: swarming.v2.BotTasksRequest.sort:type_name -> swarming.v2.SortQuery
6, // 73: swarming.v2.BotsRequest.dimensions:type_name -> swarming.v2.StringPair
2, // 74: swarming.v2.BotsRequest.quarantined:type_name -> swarming.v2.NullableBool
2, // 75: swarming.v2.BotsRequest.in_maintenance:type_name -> swarming.v2.NullableBool
2, // 76: swarming.v2.BotsRequest.is_dead:type_name -> swarming.v2.NullableBool
2, // 77: swarming.v2.BotsRequest.is_busy:type_name -> swarming.v2.NullableBool
6, // 78: swarming.v2.BotsCountRequest.dimensions:type_name -> swarming.v2.StringPair
65, // 79: swarming.v2.TasksWithPerfRequest.start:type_name -> google.protobuf.Timestamp
65, // 80: swarming.v2.TasksWithPerfRequest.end:type_name -> google.protobuf.Timestamp
0, // 81: swarming.v2.TasksWithPerfRequest.state:type_name -> swarming.v2.StateQuery
1, // 82: swarming.v2.TasksWithPerfRequest.sort:type_name -> swarming.v2.SortQuery
65, // 83: swarming.v2.TasksRequest.start:type_name -> google.protobuf.Timestamp
65, // 84: swarming.v2.TasksRequest.end:type_name -> google.protobuf.Timestamp
0, // 85: swarming.v2.TasksRequest.state:type_name -> swarming.v2.StateQuery
1, // 86: swarming.v2.TasksRequest.sort:type_name -> swarming.v2.SortQuery
65, // 87: swarming.v2.TasksCountRequest.start:type_name -> google.protobuf.Timestamp
65, // 88: swarming.v2.TasksCountRequest.end:type_name -> google.protobuf.Timestamp
0, // 89: swarming.v2.TasksCountRequest.state:type_name -> swarming.v2.StateQuery
64, // 90: swarming.v2.BatchGetResultResponse.results:type_name -> swarming.v2.BatchGetResultResponse.ResultOrError
33, // 91: swarming.v2.BatchGetResultResponse.ResultOrError.result:type_name -> swarming.v2.TaskResultResponse
66, // 92: swarming.v2.BatchGetResultResponse.ResultOrError.error:type_name -> google.rpc.Status
47, // 93: swarming.v2.Bots.GetBot:input_type -> swarming.v2.BotRequest
47, // 94: swarming.v2.Bots.DeleteBot:input_type -> swarming.v2.BotRequest
49, // 95: swarming.v2.Bots.ListBotEvents:input_type -> swarming.v2.BotEventsRequest
48, // 96: swarming.v2.Bots.TerminateBot:input_type -> swarming.v2.TerminateRequest
50, // 97: swarming.v2.Bots.ListBotTasks:input_type -> swarming.v2.BotTasksRequest
51, // 98: swarming.v2.Bots.ListBots:input_type -> swarming.v2.BotsRequest
52, // 99: swarming.v2.Bots.CountBots:input_type -> swarming.v2.BotsCountRequest
53, // 100: swarming.v2.Bots.GetBotDimensions:input_type -> swarming.v2.BotsDimensionsRequest
61, // 101: swarming.v2.Tasks.GetResult:input_type -> swarming.v2.TaskIdWithPerfRequest
62, // 102: swarming.v2.Tasks.BatchGetResult:input_type -> swarming.v2.BatchGetResultRequest
59, // 103: swarming.v2.Tasks.GetRequest:input_type -> swarming.v2.TaskIdRequest
24, // 104: swarming.v2.Tasks.CancelTask:input_type -> swarming.v2.TaskCancelRequest
60, // 105: swarming.v2.Tasks.GetStdout:input_type -> swarming.v2.TaskIdWithOffsetRequest
22, // 106: swarming.v2.Tasks.NewTask:input_type -> swarming.v2.NewTaskRequest
56, // 107: swarming.v2.Tasks.ListTasks:input_type -> swarming.v2.TasksWithPerfRequest
55, // 108: swarming.v2.Tasks.ListTaskStates:input_type -> swarming.v2.TaskStatesRequest
57, // 109: swarming.v2.Tasks.ListTaskRequests:input_type -> swarming.v2.TasksRequest
25, // 110: swarming.v2.Tasks.CancelTasks:input_type -> swarming.v2.TasksCancelRequest
58, // 111: swarming.v2.Tasks.CountTasks:input_type -> swarming.v2.TasksCountRequest
67, // 112: swarming.v2.Swarming.GetDetails:input_type -> google.protobuf.Empty
67, // 113: swarming.v2.Swarming.GetToken:input_type -> google.protobuf.Empty
54, // 114: swarming.v2.Swarming.GetPermissions:input_type -> swarming.v2.PermissionsRequest
39, // 115: swarming.v2.Bots.GetBot:output_type -> swarming.v2.BotInfo
45, // 116: swarming.v2.Bots.DeleteBot:output_type -> swarming.v2.DeleteResponse
44, // 117: swarming.v2.Bots.ListBotEvents:output_type -> swarming.v2.BotEventsResponse
46, // 118: swarming.v2.Bots.TerminateBot:output_type -> swarming.v2.TerminateResponse
35, // 119: swarming.v2.Bots.ListBotTasks:output_type -> swarming.v2.TaskListResponse
40, // 120: swarming.v2.Bots.ListBots:output_type -> swarming.v2.BotInfoListResponse
41, // 121: swarming.v2.Bots.CountBots:output_type -> swarming.v2.BotsCount
42, // 122: swarming.v2.Bots.GetBotDimensions:output_type -> swarming.v2.BotsDimensions
33, // 123: swarming.v2.Tasks.GetResult:output_type -> swarming.v2.TaskResultResponse
63, // 124: swarming.v2.Tasks.BatchGetResult:output_type -> swarming.v2.BatchGetResultResponse
23, // 125: swarming.v2.Tasks.GetRequest:output_type -> swarming.v2.TaskRequestResponse
29, // 126: swarming.v2.Tasks.CancelTask:output_type -> swarming.v2.CancelResponse
31, // 127: swarming.v2.Tasks.GetStdout:output_type -> swarming.v2.TaskOutputResponse
38, // 128: swarming.v2.Tasks.NewTask:output_type -> swarming.v2.TaskRequestMetadataResponse
35, // 129: swarming.v2.Tasks.ListTasks:output_type -> swarming.v2.TaskListResponse
34, // 130: swarming.v2.Tasks.ListTaskStates:output_type -> swarming.v2.TaskStates
36, // 131: swarming.v2.Tasks.ListTaskRequests:output_type -> swarming.v2.TaskRequestsResponse
30, // 132: swarming.v2.Tasks.CancelTasks:output_type -> swarming.v2.TasksCancelResponse
37, // 133: swarming.v2.Tasks.CountTasks:output_type -> swarming.v2.TasksCount
8, // 134: swarming.v2.Swarming.GetDetails:output_type -> swarming.v2.ServerDetails
9, // 135: swarming.v2.Swarming.GetToken:output_type -> swarming.v2.BootstrapToken
10, // 136: swarming.v2.Swarming.GetPermissions:output_type -> swarming.v2.ClientPermissions
115, // [115:137] is the sub-list for method output_type
93, // [93:115] is the sub-list for method input_type
93, // [93:93] is the sub-list for extension type_name
93, // [93:93] is the sub-list for extension extendee
0, // [0:93] is the sub-list for field type_name
}
func init() { file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_init() }
func file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_init() {
if File_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StringPair); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StringListPair); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ServerDetails); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BootstrapToken); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ClientPermissions); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Digest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CASReference); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CipdPackage); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CipdInput); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CipdPins); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CacheEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Containment); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskProperties); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskSlice); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SwarmingTaskBackendConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ResultDBCfg); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*NewTaskRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskRequestResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskCancelRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TasksCancelRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*OperationStats); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CASOperationStats); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PerformanceStats); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CancelResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TasksCancelResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskOutputResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ResultDBInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskResultResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskStates); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskListResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskRequestsResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TasksCount); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskRequestMetadataResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BotInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BotInfoListResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BotsCount); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BotsDimensions); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BotEventResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BotEventsResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeleteResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TerminateResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BotRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TerminateRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BotEventsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BotTasksRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BotsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BotsCountRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BotsDimensionsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PermissionsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskStatesRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TasksWithPerfRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TasksRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TasksCountRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskIdRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskIdWithOffsetRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskIdWithPerfRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BatchGetResultRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BatchGetResultResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BatchGetResultResponse_ResultOrError); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes[58].OneofWrappers = []interface{}{
(*BatchGetResultResponse_ResultOrError_Result)(nil),
(*BatchGetResultResponse_ResultOrError_Error)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDesc,
NumEnums: 6,
NumMessages: 59,
NumExtensions: 0,
NumServices: 3,
},
GoTypes: file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_goTypes,
DependencyIndexes: file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_depIdxs,
EnumInfos: file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_enumTypes,
MessageInfos: file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_msgTypes,
}.Build()
File_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto = out.File
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_rawDesc = nil
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_goTypes = nil
file_go_chromium_org_luci_swarming_proto_api_v2_swarming_proto_depIdxs = nil
}