// Copyright 2022 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 // protoc v3.21.9 // source: google/cloud/tpu/v2alpha1/cloud_tpu.proto package tpu import ( context "context" reflect "reflect" sync "sync" _ "google.golang.org/genproto/googleapis/api/annotations" longrunning "google.golang.org/genproto/googleapis/longrunning" status "google.golang.org/genproto/googleapis/rpc/status" interval "google.golang.org/genproto/googleapis/type/interval" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status1 "google.golang.org/grpc/status" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" durationpb "google.golang.org/protobuf/types/known/durationpb" fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" ) 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) ) // The different mode of the attached disk. type AttachedDisk_DiskMode int32 const ( // The disk mode is not known/set. AttachedDisk_DISK_MODE_UNSPECIFIED AttachedDisk_DiskMode = 0 // Attaches the disk in read-write mode. Only one TPU node can attach a disk // in read-write mode at a time. AttachedDisk_READ_WRITE AttachedDisk_DiskMode = 1 // Attaches the disk in read-only mode. Multiple TPU nodes can attach // a disk in read-only mode at a time. AttachedDisk_READ_ONLY AttachedDisk_DiskMode = 2 ) // Enum value maps for AttachedDisk_DiskMode. var ( AttachedDisk_DiskMode_name = map[int32]string{ 0: "DISK_MODE_UNSPECIFIED", 1: "READ_WRITE", 2: "READ_ONLY", } AttachedDisk_DiskMode_value = map[string]int32{ "DISK_MODE_UNSPECIFIED": 0, "READ_WRITE": 1, "READ_ONLY": 2, } ) func (x AttachedDisk_DiskMode) Enum() *AttachedDisk_DiskMode { p := new(AttachedDisk_DiskMode) *p = x return p } func (x AttachedDisk_DiskMode) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (AttachedDisk_DiskMode) Descriptor() protoreflect.EnumDescriptor { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_enumTypes[0].Descriptor() } func (AttachedDisk_DiskMode) Type() protoreflect.EnumType { return &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_enumTypes[0] } func (x AttachedDisk_DiskMode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use AttachedDisk_DiskMode.Descriptor instead. func (AttachedDisk_DiskMode) EnumDescriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{3, 0} } // Represents the different states of a TPU node during its lifecycle. type Node_State int32 const ( // TPU node state is not known/set. Node_STATE_UNSPECIFIED Node_State = 0 // TPU node is being created. Node_CREATING Node_State = 1 // TPU node has been created. Node_READY Node_State = 2 // TPU node is restarting. Node_RESTARTING Node_State = 3 // TPU node is undergoing reimaging. Node_REIMAGING Node_State = 4 // TPU node is being deleted. Node_DELETING Node_State = 5 // TPU node is being repaired and may be unusable. Details can be // found in the 'help_description' field. Node_REPAIRING Node_State = 6 // TPU node is stopped. Node_STOPPED Node_State = 8 // TPU node is currently stopping. Node_STOPPING Node_State = 9 // TPU node is currently starting. Node_STARTING Node_State = 10 // TPU node has been preempted. Only applies to Preemptible TPU Nodes. Node_PREEMPTED Node_State = 11 // TPU node has been terminated due to maintenance or has reached the end of // its life cycle (for preemptible nodes). Node_TERMINATED Node_State = 12 // TPU node is currently hiding. Node_HIDING Node_State = 13 // TPU node has been hidden. Node_HIDDEN Node_State = 14 // TPU node is currently unhiding. Node_UNHIDING Node_State = 15 ) // Enum value maps for Node_State. var ( Node_State_name = map[int32]string{ 0: "STATE_UNSPECIFIED", 1: "CREATING", 2: "READY", 3: "RESTARTING", 4: "REIMAGING", 5: "DELETING", 6: "REPAIRING", 8: "STOPPED", 9: "STOPPING", 10: "STARTING", 11: "PREEMPTED", 12: "TERMINATED", 13: "HIDING", 14: "HIDDEN", 15: "UNHIDING", } Node_State_value = map[string]int32{ "STATE_UNSPECIFIED": 0, "CREATING": 1, "READY": 2, "RESTARTING": 3, "REIMAGING": 4, "DELETING": 5, "REPAIRING": 6, "STOPPED": 8, "STOPPING": 9, "STARTING": 10, "PREEMPTED": 11, "TERMINATED": 12, "HIDING": 13, "HIDDEN": 14, "UNHIDING": 15, } ) func (x Node_State) Enum() *Node_State { p := new(Node_State) *p = x return p } func (x Node_State) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Node_State) Descriptor() protoreflect.EnumDescriptor { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_enumTypes[1].Descriptor() } func (Node_State) Type() protoreflect.EnumType { return &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_enumTypes[1] } func (x Node_State) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Node_State.Descriptor instead. func (Node_State) EnumDescriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{9, 0} } // Health defines the status of a TPU node as reported by // Health Monitor. type Node_Health int32 const ( // Health status is unknown: not initialized or failed to retrieve. Node_HEALTH_UNSPECIFIED Node_Health = 0 // The resource is healthy. Node_HEALTHY Node_Health = 1 // The resource is unresponsive. Node_TIMEOUT Node_Health = 3 // The in-guest ML stack is unhealthy. Node_UNHEALTHY_TENSORFLOW Node_Health = 4 // The node is under maintenance/priority boost caused rescheduling and // will resume running once rescheduled. Node_UNHEALTHY_MAINTENANCE Node_Health = 5 ) // Enum value maps for Node_Health. var ( Node_Health_name = map[int32]string{ 0: "HEALTH_UNSPECIFIED", 1: "HEALTHY", 3: "TIMEOUT", 4: "UNHEALTHY_TENSORFLOW", 5: "UNHEALTHY_MAINTENANCE", } Node_Health_value = map[string]int32{ "HEALTH_UNSPECIFIED": 0, "HEALTHY": 1, "TIMEOUT": 3, "UNHEALTHY_TENSORFLOW": 4, "UNHEALTHY_MAINTENANCE": 5, } ) func (x Node_Health) Enum() *Node_Health { p := new(Node_Health) *p = x return p } func (x Node_Health) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Node_Health) Descriptor() protoreflect.EnumDescriptor { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_enumTypes[2].Descriptor() } func (Node_Health) Type() protoreflect.EnumType { return &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_enumTypes[2] } func (x Node_Health) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Node_Health.Descriptor instead. func (Node_Health) EnumDescriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{9, 1} } // TPU API Version. type Node_ApiVersion int32 const ( // API version is unknown. Node_API_VERSION_UNSPECIFIED Node_ApiVersion = 0 // TPU API V1Alpha1 version. Node_V1_ALPHA1 Node_ApiVersion = 1 // TPU API V1 version. Node_V1 Node_ApiVersion = 2 // TPU API V2Alpha1 version. Node_V2_ALPHA1 Node_ApiVersion = 3 ) // Enum value maps for Node_ApiVersion. var ( Node_ApiVersion_name = map[int32]string{ 0: "API_VERSION_UNSPECIFIED", 1: "V1_ALPHA1", 2: "V1", 3: "V2_ALPHA1", } Node_ApiVersion_value = map[string]int32{ "API_VERSION_UNSPECIFIED": 0, "V1_ALPHA1": 1, "V1": 2, "V2_ALPHA1": 3, } ) func (x Node_ApiVersion) Enum() *Node_ApiVersion { p := new(Node_ApiVersion) *p = x return p } func (x Node_ApiVersion) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Node_ApiVersion) Descriptor() protoreflect.EnumDescriptor { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_enumTypes[3].Descriptor() } func (Node_ApiVersion) Type() protoreflect.EnumType { return &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_enumTypes[3] } func (x Node_ApiVersion) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Node_ApiVersion.Descriptor instead. func (Node_ApiVersion) EnumDescriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{9, 2} } // Output only state of the request type QueuedResourceState_State int32 const ( // State of the QueuedResource request is not known/set. QueuedResourceState_STATE_UNSPECIFIED QueuedResourceState_State = 0 // The QueuedResource request has been received. We're still working on // determining if we will be able to honor this request. QueuedResourceState_CREATING QueuedResourceState_State = 1 // The QueuedResource request has passed initial validation/admission // control and has been persisted in the queue. QueuedResourceState_ACCEPTED QueuedResourceState_State = 2 // The QueuedResource request has been selected. The // associated resources are currently being provisioned (or very soon // will begin provisioning). QueuedResourceState_PROVISIONING QueuedResourceState_State = 3 // The request could not be completed. This may be due to some // late-discovered problem with the request itself, or due to // unavailability of resources within the constraints of the request // (e.g., the 'valid until' start timing constraint expired). QueuedResourceState_FAILED QueuedResourceState_State = 4 // The QueuedResource is being deleted. QueuedResourceState_DELETING QueuedResourceState_State = 5 // The resources specified in the QueuedResource request have been // provisioned and are ready for use by the end-user/consumer. QueuedResourceState_ACTIVE QueuedResourceState_State = 6 // The resources specified in the QueuedResource request are being // deleted. This may have been initiated by the user, or // the Cloud TPU service. Inspect the state data for more details. QueuedResourceState_SUSPENDING QueuedResourceState_State = 7 // The resources specified in the QueuedResource request have been // deleted. QueuedResourceState_SUSPENDED QueuedResourceState_State = 8 ) // Enum value maps for QueuedResourceState_State. var ( QueuedResourceState_State_name = map[int32]string{ 0: "STATE_UNSPECIFIED", 1: "CREATING", 2: "ACCEPTED", 3: "PROVISIONING", 4: "FAILED", 5: "DELETING", 6: "ACTIVE", 7: "SUSPENDING", 8: "SUSPENDED", } QueuedResourceState_State_value = map[string]int32{ "STATE_UNSPECIFIED": 0, "CREATING": 1, "ACCEPTED": 2, "PROVISIONING": 3, "FAILED": 4, "DELETING": 5, "ACTIVE": 6, "SUSPENDING": 7, "SUSPENDED": 8, } ) func (x QueuedResourceState_State) Enum() *QueuedResourceState_State { p := new(QueuedResourceState_State) *p = x return p } func (x QueuedResourceState_State) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (QueuedResourceState_State) Descriptor() protoreflect.EnumDescriptor { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_enumTypes[4].Descriptor() } func (QueuedResourceState_State) Type() protoreflect.EnumType { return &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_enumTypes[4] } func (x QueuedResourceState_State) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use QueuedResourceState_State.Descriptor instead. func (QueuedResourceState_State) EnumDescriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{11, 0} } // SymptomType represents the different types of Symptoms that a TPU can be // at. type Symptom_SymptomType int32 const ( // Unspecified symptom. Symptom_SYMPTOM_TYPE_UNSPECIFIED Symptom_SymptomType = 0 // TPU VM memory is low. Symptom_LOW_MEMORY Symptom_SymptomType = 1 // TPU runtime is out of memory. Symptom_OUT_OF_MEMORY Symptom_SymptomType = 2 // TPU runtime execution has timed out. Symptom_EXECUTE_TIMED_OUT Symptom_SymptomType = 3 // TPU runtime fails to construct a mesh that recognizes each TPU device's // neighbors. Symptom_MESH_BUILD_FAIL Symptom_SymptomType = 4 // TPU HBM is out of memory. Symptom_HBM_OUT_OF_MEMORY Symptom_SymptomType = 5 // Abusive behaviors have been identified on the current project. Symptom_PROJECT_ABUSE Symptom_SymptomType = 6 ) // Enum value maps for Symptom_SymptomType. var ( Symptom_SymptomType_name = map[int32]string{ 0: "SYMPTOM_TYPE_UNSPECIFIED", 1: "LOW_MEMORY", 2: "OUT_OF_MEMORY", 3: "EXECUTE_TIMED_OUT", 4: "MESH_BUILD_FAIL", 5: "HBM_OUT_OF_MEMORY", 6: "PROJECT_ABUSE", } Symptom_SymptomType_value = map[string]int32{ "SYMPTOM_TYPE_UNSPECIFIED": 0, "LOW_MEMORY": 1, "OUT_OF_MEMORY": 2, "EXECUTE_TIMED_OUT": 3, "MESH_BUILD_FAIL": 4, "HBM_OUT_OF_MEMORY": 5, "PROJECT_ABUSE": 6, } ) func (x Symptom_SymptomType) Enum() *Symptom_SymptomType { p := new(Symptom_SymptomType) *p = x return p } func (x Symptom_SymptomType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Symptom_SymptomType) Descriptor() protoreflect.EnumDescriptor { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_enumTypes[5].Descriptor() } func (Symptom_SymptomType) Type() protoreflect.EnumType { return &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_enumTypes[5] } func (x Symptom_SymptomType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Symptom_SymptomType.Descriptor instead. func (Symptom_SymptomType) EnumDescriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{37, 0} } // A guest attributes. type GuestAttributes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The path to be queried. This can be the default namespace ('/') or a // nested namespace ('/\/') or a specified key // ('/\/\') QueryPath string `protobuf:"bytes,1,opt,name=query_path,json=queryPath,proto3" json:"query_path,omitempty"` // The value of the requested queried path. QueryValue *GuestAttributesValue `protobuf:"bytes,2,opt,name=query_value,json=queryValue,proto3" json:"query_value,omitempty"` } func (x *GuestAttributes) Reset() { *x = GuestAttributes{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GuestAttributes) String() string { return protoimpl.X.MessageStringOf(x) } func (*GuestAttributes) ProtoMessage() {} func (x *GuestAttributes) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 GuestAttributes.ProtoReflect.Descriptor instead. func (*GuestAttributes) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{0} } func (x *GuestAttributes) GetQueryPath() string { if x != nil { return x.QueryPath } return "" } func (x *GuestAttributes) GetQueryValue() *GuestAttributesValue { if x != nil { return x.QueryValue } return nil } // Array of guest attribute namespace/key/value tuples. type GuestAttributesValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The list of guest attributes entries. Items []*GuestAttributesEntry `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` } func (x *GuestAttributesValue) Reset() { *x = GuestAttributesValue{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GuestAttributesValue) String() string { return protoimpl.X.MessageStringOf(x) } func (*GuestAttributesValue) ProtoMessage() {} func (x *GuestAttributesValue) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 GuestAttributesValue.ProtoReflect.Descriptor instead. func (*GuestAttributesValue) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{1} } func (x *GuestAttributesValue) GetItems() []*GuestAttributesEntry { if x != nil { return x.Items } return nil } // A guest attributes namespace/key/value entry. type GuestAttributesEntry struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Namespace for the guest attribute entry. Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` // Key for the guest attribute entry. Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` // Value for the guest attribute entry. Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` } func (x *GuestAttributesEntry) Reset() { *x = GuestAttributesEntry{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GuestAttributesEntry) String() string { return protoimpl.X.MessageStringOf(x) } func (*GuestAttributesEntry) ProtoMessage() {} func (x *GuestAttributesEntry) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 GuestAttributesEntry.ProtoReflect.Descriptor instead. func (*GuestAttributesEntry) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{2} } func (x *GuestAttributesEntry) GetNamespace() string { if x != nil { return x.Namespace } return "" } func (x *GuestAttributesEntry) GetKey() string { if x != nil { return x.Key } return "" } func (x *GuestAttributesEntry) GetValue() string { if x != nil { return x.Value } return "" } // A node-attached disk resource. // Next ID: 8; type AttachedDisk struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Specifies the full path to an existing disk. // For example: "projects/my-project/zones/us-central1-c/disks/my-disk". SourceDisk string `protobuf:"bytes,3,opt,name=source_disk,json=sourceDisk,proto3" json:"source_disk,omitempty"` // The mode in which to attach this disk. // If not specified, the default is READ_WRITE mode. // Only applicable to data_disks. Mode AttachedDisk_DiskMode `protobuf:"varint,4,opt,name=mode,proto3,enum=google.cloud.tpu.v2alpha1.AttachedDisk_DiskMode" json:"mode,omitempty"` } func (x *AttachedDisk) Reset() { *x = AttachedDisk{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AttachedDisk) String() string { return protoimpl.X.MessageStringOf(x) } func (*AttachedDisk) ProtoMessage() {} func (x *AttachedDisk) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 AttachedDisk.ProtoReflect.Descriptor instead. func (*AttachedDisk) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{3} } func (x *AttachedDisk) GetSourceDisk() string { if x != nil { return x.SourceDisk } return "" } func (x *AttachedDisk) GetMode() AttachedDisk_DiskMode { if x != nil { return x.Mode } return AttachedDisk_DISK_MODE_UNSPECIFIED } // Sets the scheduling options for this node. type SchedulingConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Defines whether the node is preemptible. Preemptible bool `protobuf:"varint,1,opt,name=preemptible,proto3" json:"preemptible,omitempty"` // Whether the node is created under a reservation. Reserved bool `protobuf:"varint,2,opt,name=reserved,proto3" json:"reserved,omitempty"` } func (x *SchedulingConfig) Reset() { *x = SchedulingConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SchedulingConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*SchedulingConfig) ProtoMessage() {} func (x *SchedulingConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 SchedulingConfig.ProtoReflect.Descriptor instead. func (*SchedulingConfig) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{4} } func (x *SchedulingConfig) GetPreemptible() bool { if x != nil { return x.Preemptible } return false } func (x *SchedulingConfig) GetReserved() bool { if x != nil { return x.Reserved } return false } // A network endpoint over which a TPU worker can be reached. type NetworkEndpoint struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The internal IP address of this network endpoint. IpAddress string `protobuf:"bytes,1,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"` // The port of this network endpoint. Port int32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"` // The access config for the TPU worker. AccessConfig *AccessConfig `protobuf:"bytes,5,opt,name=access_config,json=accessConfig,proto3" json:"access_config,omitempty"` } func (x *NetworkEndpoint) Reset() { *x = NetworkEndpoint{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NetworkEndpoint) String() string { return protoimpl.X.MessageStringOf(x) } func (*NetworkEndpoint) ProtoMessage() {} func (x *NetworkEndpoint) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 NetworkEndpoint.ProtoReflect.Descriptor instead. func (*NetworkEndpoint) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{5} } func (x *NetworkEndpoint) GetIpAddress() string { if x != nil { return x.IpAddress } return "" } func (x *NetworkEndpoint) GetPort() int32 { if x != nil { return x.Port } return 0 } func (x *NetworkEndpoint) GetAccessConfig() *AccessConfig { if x != nil { return x.AccessConfig } return nil } // An access config attached to the TPU worker. type AccessConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. An external IP address associated with the TPU worker. ExternalIp string `protobuf:"bytes,1,opt,name=external_ip,json=externalIp,proto3" json:"external_ip,omitempty"` } func (x *AccessConfig) Reset() { *x = AccessConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AccessConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*AccessConfig) ProtoMessage() {} func (x *AccessConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 AccessConfig.ProtoReflect.Descriptor instead. func (*AccessConfig) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{6} } func (x *AccessConfig) GetExternalIp() string { if x != nil { return x.ExternalIp } return "" } // Network related configurations. type NetworkConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The name of the network for the TPU node. It must be a preexisting Google // Compute Engine network. If none is provided, "default" will be used. Network string `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"` // The name of the subnetwork for the TPU node. It must be a preexisting // Google Compute Engine subnetwork. If none is provided, "default" will be // used. Subnetwork string `protobuf:"bytes,2,opt,name=subnetwork,proto3" json:"subnetwork,omitempty"` // Indicates that external IP addresses would be associated with the TPU // workers. If set to false, the specified subnetwork or network should have // Private Google Access enabled. EnableExternalIps bool `protobuf:"varint,3,opt,name=enable_external_ips,json=enableExternalIps,proto3" json:"enable_external_ips,omitempty"` // Allows the TPU node to send and receive packets with non-matching // destination or source IPs. This is required if you plan to use the TPU // workers to forward routes. CanIpForward bool `protobuf:"varint,4,opt,name=can_ip_forward,json=canIpForward,proto3" json:"can_ip_forward,omitempty"` } func (x *NetworkConfig) Reset() { *x = NetworkConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NetworkConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*NetworkConfig) ProtoMessage() {} func (x *NetworkConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 NetworkConfig.ProtoReflect.Descriptor instead. func (*NetworkConfig) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{7} } func (x *NetworkConfig) GetNetwork() string { if x != nil { return x.Network } return "" } func (x *NetworkConfig) GetSubnetwork() string { if x != nil { return x.Subnetwork } return "" } func (x *NetworkConfig) GetEnableExternalIps() bool { if x != nil { return x.EnableExternalIps } return false } func (x *NetworkConfig) GetCanIpForward() bool { if x != nil { return x.CanIpForward } return false } // A service account. type ServiceAccount struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Email address of the service account. If empty, default Compute service // account will be used. Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` // The list of scopes to be made available for this service account. If empty, // access to all Cloud APIs will be allowed. Scope []string `protobuf:"bytes,2,rep,name=scope,proto3" json:"scope,omitempty"` } func (x *ServiceAccount) Reset() { *x = ServiceAccount{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ServiceAccount) String() string { return protoimpl.X.MessageStringOf(x) } func (*ServiceAccount) ProtoMessage() {} func (x *ServiceAccount) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 ServiceAccount.ProtoReflect.Descriptor instead. func (*ServiceAccount) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{8} } func (x *ServiceAccount) GetEmail() string { if x != nil { return x.Email } return "" } func (x *ServiceAccount) GetScope() []string { if x != nil { return x.Scope } return nil } // A TPU instance. type Node struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. Immutable. The name of the TPU. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // The user-supplied description of the TPU. Maximum of 512 characters. Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` // The type of hardware accelerators associated with this node. AcceleratorType string `protobuf:"bytes,5,opt,name=accelerator_type,json=acceleratorType,proto3" json:"accelerator_type,omitempty"` // Output only. The current state for the TPU Node. State Node_State `protobuf:"varint,9,opt,name=state,proto3,enum=google.cloud.tpu.v2alpha1.Node_State" json:"state,omitempty"` // Output only. If this field is populated, it contains a description of why // the TPU Node is unhealthy. HealthDescription string `protobuf:"bytes,10,opt,name=health_description,json=healthDescription,proto3" json:"health_description,omitempty"` // Required. The runtime version running in the Node. RuntimeVersion string `protobuf:"bytes,11,opt,name=runtime_version,json=runtimeVersion,proto3" json:"runtime_version,omitempty"` // Network configurations for the TPU node. NetworkConfig *NetworkConfig `protobuf:"bytes,36,opt,name=network_config,json=networkConfig,proto3" json:"network_config,omitempty"` // The CIDR block that the TPU node will use when selecting an IP address. // This CIDR block must be a /29 block; the Compute Engine networks API // forbids a smaller block, and using a larger block would be wasteful (a // node can only consume one IP address). Errors will occur if the CIDR block // has already been used for a currently existing TPU node, the CIDR block // conflicts with any subnetworks in the user's provided network, or the // provided network is peered with another network that is using that CIDR // block. CidrBlock string `protobuf:"bytes,13,opt,name=cidr_block,json=cidrBlock,proto3" json:"cidr_block,omitempty"` // The Google Cloud Platform Service Account to be used by the TPU node VMs. // If None is specified, the default compute service account will be used. ServiceAccount *ServiceAccount `protobuf:"bytes,37,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"` // Output only. The time when the node was created. CreateTime *timestamppb.Timestamp `protobuf:"bytes,16,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // The scheduling options for this node. SchedulingConfig *SchedulingConfig `protobuf:"bytes,17,opt,name=scheduling_config,json=schedulingConfig,proto3" json:"scheduling_config,omitempty"` // Output only. The network endpoints where TPU workers can be accessed and // sent work. It is recommended that runtime clients of the node reach out // to the 0th entry in this map first. NetworkEndpoints []*NetworkEndpoint `protobuf:"bytes,21,rep,name=network_endpoints,json=networkEndpoints,proto3" json:"network_endpoints,omitempty"` // The health status of the TPU node. Health Node_Health `protobuf:"varint,22,opt,name=health,proto3,enum=google.cloud.tpu.v2alpha1.Node_Health" json:"health,omitempty"` // Resource labels to represent user-provided metadata. Labels map[string]string `protobuf:"bytes,24,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Custom metadata to apply to the TPU Node. // Can set startup-script and shutdown-script Metadata map[string]string `protobuf:"bytes,34,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Tags to apply to the TPU Node. Tags are used to identify valid sources or // targets for network firewalls. Tags []string `protobuf:"bytes,40,rep,name=tags,proto3" json:"tags,omitempty"` // Output only. The unique identifier for the TPU Node. Id int64 `protobuf:"varint,33,opt,name=id,proto3" json:"id,omitempty"` // The additional data disks for the Node. DataDisks []*AttachedDisk `protobuf:"bytes,41,rep,name=data_disks,json=dataDisks,proto3" json:"data_disks,omitempty"` // Output only. The API version that created this Node. ApiVersion Node_ApiVersion `protobuf:"varint,38,opt,name=api_version,json=apiVersion,proto3,enum=google.cloud.tpu.v2alpha1.Node_ApiVersion" json:"api_version,omitempty"` // Output only. The Symptoms that have occurred to the TPU Node. Symptoms []*Symptom `protobuf:"bytes,39,rep,name=symptoms,proto3" json:"symptoms,omitempty"` // Output only. The qualified name of the QueuedResource that requested this // Node. QueuedResource string `protobuf:"bytes,43,opt,name=queued_resource,json=queuedResource,proto3" json:"queued_resource,omitempty"` // Shielded Instance options. ShieldedInstanceConfig *ShieldedInstanceConfig `protobuf:"bytes,45,opt,name=shielded_instance_config,json=shieldedInstanceConfig,proto3" json:"shielded_instance_config,omitempty"` } func (x *Node) Reset() { *x = Node{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Node) String() string { return protoimpl.X.MessageStringOf(x) } func (*Node) ProtoMessage() {} func (x *Node) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 Node.ProtoReflect.Descriptor instead. func (*Node) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{9} } func (x *Node) GetName() string { if x != nil { return x.Name } return "" } func (x *Node) GetDescription() string { if x != nil { return x.Description } return "" } func (x *Node) GetAcceleratorType() string { if x != nil { return x.AcceleratorType } return "" } func (x *Node) GetState() Node_State { if x != nil { return x.State } return Node_STATE_UNSPECIFIED } func (x *Node) GetHealthDescription() string { if x != nil { return x.HealthDescription } return "" } func (x *Node) GetRuntimeVersion() string { if x != nil { return x.RuntimeVersion } return "" } func (x *Node) GetNetworkConfig() *NetworkConfig { if x != nil { return x.NetworkConfig } return nil } func (x *Node) GetCidrBlock() string { if x != nil { return x.CidrBlock } return "" } func (x *Node) GetServiceAccount() *ServiceAccount { if x != nil { return x.ServiceAccount } return nil } func (x *Node) GetCreateTime() *timestamppb.Timestamp { if x != nil { return x.CreateTime } return nil } func (x *Node) GetSchedulingConfig() *SchedulingConfig { if x != nil { return x.SchedulingConfig } return nil } func (x *Node) GetNetworkEndpoints() []*NetworkEndpoint { if x != nil { return x.NetworkEndpoints } return nil } func (x *Node) GetHealth() Node_Health { if x != nil { return x.Health } return Node_HEALTH_UNSPECIFIED } func (x *Node) GetLabels() map[string]string { if x != nil { return x.Labels } return nil } func (x *Node) GetMetadata() map[string]string { if x != nil { return x.Metadata } return nil } func (x *Node) GetTags() []string { if x != nil { return x.Tags } return nil } func (x *Node) GetId() int64 { if x != nil { return x.Id } return 0 } func (x *Node) GetDataDisks() []*AttachedDisk { if x != nil { return x.DataDisks } return nil } func (x *Node) GetApiVersion() Node_ApiVersion { if x != nil { return x.ApiVersion } return Node_API_VERSION_UNSPECIFIED } func (x *Node) GetSymptoms() []*Symptom { if x != nil { return x.Symptoms } return nil } func (x *Node) GetQueuedResource() string { if x != nil { return x.QueuedResource } return "" } func (x *Node) GetShieldedInstanceConfig() *ShieldedInstanceConfig { if x != nil { return x.ShieldedInstanceConfig } return nil } // A QueuedResource represents a request for resources that will be placed // in a queue and fulfilled when the necessary resources are available. type QueuedResource struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. Immutable. The name of the QueuedResource. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Resource specification. // // Types that are assignable to Resource: // // *QueuedResource_Tpu_ Resource isQueuedResource_Resource `protobuf_oneof:"resource"` // Tier specifies the required tier. // // Types that are assignable to Tier: // // *QueuedResource_BestEffort_ // *QueuedResource_Guaranteed_ Tier isQueuedResource_Tier `protobuf_oneof:"tier"` // The queueing policy of the QueuedRequest. QueueingPolicy *QueuedResource_QueueingPolicy `protobuf:"bytes,5,opt,name=queueing_policy,json=queueingPolicy,proto3" json:"queueing_policy,omitempty"` // Output only. State of the QueuedResource request State *QueuedResourceState `protobuf:"bytes,6,opt,name=state,proto3" json:"state,omitempty"` } func (x *QueuedResource) Reset() { *x = QueuedResource{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QueuedResource) String() string { return protoimpl.X.MessageStringOf(x) } func (*QueuedResource) ProtoMessage() {} func (x *QueuedResource) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 QueuedResource.ProtoReflect.Descriptor instead. func (*QueuedResource) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{10} } func (x *QueuedResource) GetName() string { if x != nil { return x.Name } return "" } func (m *QueuedResource) GetResource() isQueuedResource_Resource { if m != nil { return m.Resource } return nil } func (x *QueuedResource) GetTpu() *QueuedResource_Tpu { if x, ok := x.GetResource().(*QueuedResource_Tpu_); ok { return x.Tpu } return nil } func (m *QueuedResource) GetTier() isQueuedResource_Tier { if m != nil { return m.Tier } return nil } func (x *QueuedResource) GetBestEffort() *QueuedResource_BestEffort { if x, ok := x.GetTier().(*QueuedResource_BestEffort_); ok { return x.BestEffort } return nil } func (x *QueuedResource) GetGuaranteed() *QueuedResource_Guaranteed { if x, ok := x.GetTier().(*QueuedResource_Guaranteed_); ok { return x.Guaranteed } return nil } func (x *QueuedResource) GetQueueingPolicy() *QueuedResource_QueueingPolicy { if x != nil { return x.QueueingPolicy } return nil } func (x *QueuedResource) GetState() *QueuedResourceState { if x != nil { return x.State } return nil } type isQueuedResource_Resource interface { isQueuedResource_Resource() } type QueuedResource_Tpu_ struct { // Defines a TPU resource. Tpu *QueuedResource_Tpu `protobuf:"bytes,2,opt,name=tpu,proto3,oneof"` } func (*QueuedResource_Tpu_) isQueuedResource_Resource() {} type isQueuedResource_Tier interface { isQueuedResource_Tier() } type QueuedResource_BestEffort_ struct { // The BestEffort tier. BestEffort *QueuedResource_BestEffort `protobuf:"bytes,3,opt,name=best_effort,json=bestEffort,proto3,oneof"` } type QueuedResource_Guaranteed_ struct { // The Guaranteed tier Guaranteed *QueuedResource_Guaranteed `protobuf:"bytes,4,opt,name=guaranteed,proto3,oneof"` } func (*QueuedResource_BestEffort_) isQueuedResource_Tier() {} func (*QueuedResource_Guaranteed_) isQueuedResource_Tier() {} // QueuedResourceState defines the details of the QueuedResource request. type QueuedResourceState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // State of the QueuedResource request. State QueuedResourceState_State `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.tpu.v2alpha1.QueuedResourceState_State" json:"state,omitempty"` // Further data for the state. // // Types that are assignable to StateData: // // *QueuedResourceState_CreatingData_ // *QueuedResourceState_AcceptedData_ // *QueuedResourceState_ProvisioningData_ // *QueuedResourceState_FailedData_ // *QueuedResourceState_DeletingData_ // *QueuedResourceState_ActiveData_ // *QueuedResourceState_SuspendingData_ // *QueuedResourceState_SuspendedData_ StateData isQueuedResourceState_StateData `protobuf_oneof:"state_data"` } func (x *QueuedResourceState) Reset() { *x = QueuedResourceState{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QueuedResourceState) String() string { return protoimpl.X.MessageStringOf(x) } func (*QueuedResourceState) ProtoMessage() {} func (x *QueuedResourceState) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 QueuedResourceState.ProtoReflect.Descriptor instead. func (*QueuedResourceState) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{11} } func (x *QueuedResourceState) GetState() QueuedResourceState_State { if x != nil { return x.State } return QueuedResourceState_STATE_UNSPECIFIED } func (m *QueuedResourceState) GetStateData() isQueuedResourceState_StateData { if m != nil { return m.StateData } return nil } func (x *QueuedResourceState) GetCreatingData() *QueuedResourceState_CreatingData { if x, ok := x.GetStateData().(*QueuedResourceState_CreatingData_); ok { return x.CreatingData } return nil } func (x *QueuedResourceState) GetAcceptedData() *QueuedResourceState_AcceptedData { if x, ok := x.GetStateData().(*QueuedResourceState_AcceptedData_); ok { return x.AcceptedData } return nil } func (x *QueuedResourceState) GetProvisioningData() *QueuedResourceState_ProvisioningData { if x, ok := x.GetStateData().(*QueuedResourceState_ProvisioningData_); ok { return x.ProvisioningData } return nil } func (x *QueuedResourceState) GetFailedData() *QueuedResourceState_FailedData { if x, ok := x.GetStateData().(*QueuedResourceState_FailedData_); ok { return x.FailedData } return nil } func (x *QueuedResourceState) GetDeletingData() *QueuedResourceState_DeletingData { if x, ok := x.GetStateData().(*QueuedResourceState_DeletingData_); ok { return x.DeletingData } return nil } func (x *QueuedResourceState) GetActiveData() *QueuedResourceState_ActiveData { if x, ok := x.GetStateData().(*QueuedResourceState_ActiveData_); ok { return x.ActiveData } return nil } func (x *QueuedResourceState) GetSuspendingData() *QueuedResourceState_SuspendingData { if x, ok := x.GetStateData().(*QueuedResourceState_SuspendingData_); ok { return x.SuspendingData } return nil } func (x *QueuedResourceState) GetSuspendedData() *QueuedResourceState_SuspendedData { if x, ok := x.GetStateData().(*QueuedResourceState_SuspendedData_); ok { return x.SuspendedData } return nil } type isQueuedResourceState_StateData interface { isQueuedResourceState_StateData() } type QueuedResourceState_CreatingData_ struct { // Further data for the creating state. CreatingData *QueuedResourceState_CreatingData `protobuf:"bytes,2,opt,name=creating_data,json=creatingData,proto3,oneof"` } type QueuedResourceState_AcceptedData_ struct { // Further data for the accepted state. AcceptedData *QueuedResourceState_AcceptedData `protobuf:"bytes,3,opt,name=accepted_data,json=acceptedData,proto3,oneof"` } type QueuedResourceState_ProvisioningData_ struct { // Further data for the provisioning state. ProvisioningData *QueuedResourceState_ProvisioningData `protobuf:"bytes,4,opt,name=provisioning_data,json=provisioningData,proto3,oneof"` } type QueuedResourceState_FailedData_ struct { // Further data for the failed state. FailedData *QueuedResourceState_FailedData `protobuf:"bytes,5,opt,name=failed_data,json=failedData,proto3,oneof"` } type QueuedResourceState_DeletingData_ struct { // Further data for the deleting state. DeletingData *QueuedResourceState_DeletingData `protobuf:"bytes,6,opt,name=deleting_data,json=deletingData,proto3,oneof"` } type QueuedResourceState_ActiveData_ struct { // Further data for the active state. ActiveData *QueuedResourceState_ActiveData `protobuf:"bytes,7,opt,name=active_data,json=activeData,proto3,oneof"` } type QueuedResourceState_SuspendingData_ struct { // Further data for the suspending state. SuspendingData *QueuedResourceState_SuspendingData `protobuf:"bytes,8,opt,name=suspending_data,json=suspendingData,proto3,oneof"` } type QueuedResourceState_SuspendedData_ struct { // Further data for the suspended state. SuspendedData *QueuedResourceState_SuspendedData `protobuf:"bytes,9,opt,name=suspended_data,json=suspendedData,proto3,oneof"` } func (*QueuedResourceState_CreatingData_) isQueuedResourceState_StateData() {} func (*QueuedResourceState_AcceptedData_) isQueuedResourceState_StateData() {} func (*QueuedResourceState_ProvisioningData_) isQueuedResourceState_StateData() {} func (*QueuedResourceState_FailedData_) isQueuedResourceState_StateData() {} func (*QueuedResourceState_DeletingData_) isQueuedResourceState_StateData() {} func (*QueuedResourceState_ActiveData_) isQueuedResourceState_StateData() {} func (*QueuedResourceState_SuspendingData_) isQueuedResourceState_StateData() {} func (*QueuedResourceState_SuspendedData_) isQueuedResourceState_StateData() {} // Request for [ListNodes][google.cloud.tpu.v2alpha1.Tpu.ListNodes]. type ListNodesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The parent resource name. Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // The maximum number of items to return. PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // The next_page_token value returned from a previous List request, if any. PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` } func (x *ListNodesRequest) Reset() { *x = ListNodesRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListNodesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListNodesRequest) ProtoMessage() {} func (x *ListNodesRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 ListNodesRequest.ProtoReflect.Descriptor instead. func (*ListNodesRequest) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{12} } func (x *ListNodesRequest) GetParent() string { if x != nil { return x.Parent } return "" } func (x *ListNodesRequest) GetPageSize() int32 { if x != nil { return x.PageSize } return 0 } func (x *ListNodesRequest) GetPageToken() string { if x != nil { return x.PageToken } return "" } // Response for [ListNodes][google.cloud.tpu.v2alpha1.Tpu.ListNodes]. type ListNodesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The listed nodes. Nodes []*Node `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"` // The next page token or empty if none. NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` // Locations that could not be reached. Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` } func (x *ListNodesResponse) Reset() { *x = ListNodesResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListNodesResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListNodesResponse) ProtoMessage() {} func (x *ListNodesResponse) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 ListNodesResponse.ProtoReflect.Descriptor instead. func (*ListNodesResponse) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{13} } func (x *ListNodesResponse) GetNodes() []*Node { if x != nil { return x.Nodes } return nil } func (x *ListNodesResponse) GetNextPageToken() string { if x != nil { return x.NextPageToken } return "" } func (x *ListNodesResponse) GetUnreachable() []string { if x != nil { return x.Unreachable } return nil } // Request for [GetNode][google.cloud.tpu.v2alpha1.Tpu.GetNode]. type GetNodeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The resource name. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } func (x *GetNodeRequest) Reset() { *x = GetNodeRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetNodeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetNodeRequest) ProtoMessage() {} func (x *GetNodeRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 GetNodeRequest.ProtoReflect.Descriptor instead. func (*GetNodeRequest) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{14} } func (x *GetNodeRequest) GetName() string { if x != nil { return x.Name } return "" } // Request for [CreateNode][google.cloud.tpu.v2alpha1.Tpu.CreateNode]. type CreateNodeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The parent resource name. Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // The unqualified resource name. NodeId string `protobuf:"bytes,2,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` // Required. The node. Node *Node `protobuf:"bytes,3,opt,name=node,proto3" json:"node,omitempty"` // Idempotent request UUID. RequestId string `protobuf:"bytes,6,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` } func (x *CreateNodeRequest) Reset() { *x = CreateNodeRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateNodeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateNodeRequest) ProtoMessage() {} func (x *CreateNodeRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 CreateNodeRequest.ProtoReflect.Descriptor instead. func (*CreateNodeRequest) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{15} } func (x *CreateNodeRequest) GetParent() string { if x != nil { return x.Parent } return "" } func (x *CreateNodeRequest) GetNodeId() string { if x != nil { return x.NodeId } return "" } func (x *CreateNodeRequest) GetNode() *Node { if x != nil { return x.Node } return nil } func (x *CreateNodeRequest) GetRequestId() string { if x != nil { return x.RequestId } return "" } // Request for [DeleteNode][google.cloud.tpu.v2alpha1.Tpu.DeleteNode]. type DeleteNodeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The resource name. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Idempotent request UUID. RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` } func (x *DeleteNodeRequest) Reset() { *x = DeleteNodeRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteNodeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteNodeRequest) ProtoMessage() {} func (x *DeleteNodeRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 DeleteNodeRequest.ProtoReflect.Descriptor instead. func (*DeleteNodeRequest) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{16} } func (x *DeleteNodeRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *DeleteNodeRequest) GetRequestId() string { if x != nil { return x.RequestId } return "" } // Request for [StopNode][google.cloud.tpu.v2alpha1.Tpu.StopNode]. type StopNodeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The resource name. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } func (x *StopNodeRequest) Reset() { *x = StopNodeRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StopNodeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*StopNodeRequest) ProtoMessage() {} func (x *StopNodeRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 StopNodeRequest.ProtoReflect.Descriptor instead. func (*StopNodeRequest) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{17} } func (x *StopNodeRequest) GetName() string { if x != nil { return x.Name } return "" } // Request for [StartNode][google.cloud.tpu.v2alpha1.Tpu.StartNode]. type StartNodeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The resource name. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } func (x *StartNodeRequest) Reset() { *x = StartNodeRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StartNodeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*StartNodeRequest) ProtoMessage() {} func (x *StartNodeRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 StartNodeRequest.ProtoReflect.Descriptor instead. func (*StartNodeRequest) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{18} } func (x *StartNodeRequest) GetName() string { if x != nil { return x.Name } return "" } // Request for [UpdateNode][google.cloud.tpu.v2alpha1.Tpu.UpdateNode]. type UpdateNodeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. Mask of fields from [Node][Tpu.Node] to update. // Supported fields: [description, tags, labels, metadata, // network_config.enable_external_ips]. UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` // Required. The node. Only fields specified in update_mask are updated. Node *Node `protobuf:"bytes,2,opt,name=node,proto3" json:"node,omitempty"` } func (x *UpdateNodeRequest) Reset() { *x = UpdateNodeRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateNodeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateNodeRequest) ProtoMessage() {} func (x *UpdateNodeRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 UpdateNodeRequest.ProtoReflect.Descriptor instead. func (*UpdateNodeRequest) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{19} } func (x *UpdateNodeRequest) GetUpdateMask() *fieldmaskpb.FieldMask { if x != nil { return x.UpdateMask } return nil } func (x *UpdateNodeRequest) GetNode() *Node { if x != nil { return x.Node } return nil } // Request for // [ListQueuedResources][google.cloud.tpu.v2alpha1.Tpu.ListQueuedResources]. type ListQueuedResourcesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The parent resource name. Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // The maximum number of items to return. PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // The next_page_token value returned from a previous List request, if any. PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` } func (x *ListQueuedResourcesRequest) Reset() { *x = ListQueuedResourcesRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListQueuedResourcesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListQueuedResourcesRequest) ProtoMessage() {} func (x *ListQueuedResourcesRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 ListQueuedResourcesRequest.ProtoReflect.Descriptor instead. func (*ListQueuedResourcesRequest) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{20} } func (x *ListQueuedResourcesRequest) GetParent() string { if x != nil { return x.Parent } return "" } func (x *ListQueuedResourcesRequest) GetPageSize() int32 { if x != nil { return x.PageSize } return 0 } func (x *ListQueuedResourcesRequest) GetPageToken() string { if x != nil { return x.PageToken } return "" } // Response for // [ListQueuedResources][google.cloud.tpu.v2alpha1.Tpu.ListQueuedResources]. type ListQueuedResourcesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The listed queued resources. QueuedResources []*QueuedResource `protobuf:"bytes,1,rep,name=queued_resources,json=queuedResources,proto3" json:"queued_resources,omitempty"` // The next page token or empty if none. NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` // Locations that could not be reached. Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` } func (x *ListQueuedResourcesResponse) Reset() { *x = ListQueuedResourcesResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListQueuedResourcesResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListQueuedResourcesResponse) ProtoMessage() {} func (x *ListQueuedResourcesResponse) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 ListQueuedResourcesResponse.ProtoReflect.Descriptor instead. func (*ListQueuedResourcesResponse) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{21} } func (x *ListQueuedResourcesResponse) GetQueuedResources() []*QueuedResource { if x != nil { return x.QueuedResources } return nil } func (x *ListQueuedResourcesResponse) GetNextPageToken() string { if x != nil { return x.NextPageToken } return "" } func (x *ListQueuedResourcesResponse) GetUnreachable() []string { if x != nil { return x.Unreachable } return nil } // Request for // [GetQueuedResource][google.cloud.tpu.v2alpha1.Tpu.GetQueuedResource] type GetQueuedResourceRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The resource name. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } func (x *GetQueuedResourceRequest) Reset() { *x = GetQueuedResourceRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetQueuedResourceRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetQueuedResourceRequest) ProtoMessage() {} func (x *GetQueuedResourceRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 GetQueuedResourceRequest.ProtoReflect.Descriptor instead. func (*GetQueuedResourceRequest) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{22} } func (x *GetQueuedResourceRequest) GetName() string { if x != nil { return x.Name } return "" } // Request for // [CreateQueuedResource][google.cloud.tpu.v2alpha1.Tpu.CreateQueuedResource]. type CreateQueuedResourceRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The parent resource name. Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // The unqualified resource name. Should follow the ^[A-Za-z0-9_.~+%-]+$ // regex format. QueuedResourceId string `protobuf:"bytes,2,opt,name=queued_resource_id,json=queuedResourceId,proto3" json:"queued_resource_id,omitempty"` // Required. The queued resource. QueuedResource *QueuedResource `protobuf:"bytes,3,opt,name=queued_resource,json=queuedResource,proto3" json:"queued_resource,omitempty"` // Idempotent request UUID. RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` } func (x *CreateQueuedResourceRequest) Reset() { *x = CreateQueuedResourceRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateQueuedResourceRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateQueuedResourceRequest) ProtoMessage() {} func (x *CreateQueuedResourceRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 CreateQueuedResourceRequest.ProtoReflect.Descriptor instead. func (*CreateQueuedResourceRequest) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{23} } func (x *CreateQueuedResourceRequest) GetParent() string { if x != nil { return x.Parent } return "" } func (x *CreateQueuedResourceRequest) GetQueuedResourceId() string { if x != nil { return x.QueuedResourceId } return "" } func (x *CreateQueuedResourceRequest) GetQueuedResource() *QueuedResource { if x != nil { return x.QueuedResource } return nil } func (x *CreateQueuedResourceRequest) GetRequestId() string { if x != nil { return x.RequestId } return "" } // Request for // [DeleteQueuedResource][google.cloud.tpu.v2alpha1.Tpu.DeleteQueuedResource]. type DeleteQueuedResourceRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The resource name. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Idempotent request UUID. RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` } func (x *DeleteQueuedResourceRequest) Reset() { *x = DeleteQueuedResourceRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteQueuedResourceRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteQueuedResourceRequest) ProtoMessage() {} func (x *DeleteQueuedResourceRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 DeleteQueuedResourceRequest.ProtoReflect.Descriptor instead. func (*DeleteQueuedResourceRequest) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{24} } func (x *DeleteQueuedResourceRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *DeleteQueuedResourceRequest) GetRequestId() string { if x != nil { return x.RequestId } return "" } // The per-product per-project service identity for Cloud TPU service. type ServiceIdentity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The email address of the service identity. Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` } func (x *ServiceIdentity) Reset() { *x = ServiceIdentity{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ServiceIdentity) String() string { return protoimpl.X.MessageStringOf(x) } func (*ServiceIdentity) ProtoMessage() {} func (x *ServiceIdentity) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 ServiceIdentity.ProtoReflect.Descriptor instead. func (*ServiceIdentity) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{25} } func (x *ServiceIdentity) GetEmail() string { if x != nil { return x.Email } return "" } // Request for // [GenerateServiceIdentity][google.cloud.tpu.v2alpha1.Tpu.GenerateServiceIdentity]. type GenerateServiceIdentityRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The parent resource name. Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` } func (x *GenerateServiceIdentityRequest) Reset() { *x = GenerateServiceIdentityRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GenerateServiceIdentityRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GenerateServiceIdentityRequest) ProtoMessage() {} func (x *GenerateServiceIdentityRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 GenerateServiceIdentityRequest.ProtoReflect.Descriptor instead. func (*GenerateServiceIdentityRequest) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{26} } func (x *GenerateServiceIdentityRequest) GetParent() string { if x != nil { return x.Parent } return "" } // Response for // [GenerateServiceIdentity][google.cloud.tpu.v2alpha1.Tpu.GenerateServiceIdentity]. type GenerateServiceIdentityResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // ServiceIdentity that was created or retrieved. Identity *ServiceIdentity `protobuf:"bytes,1,opt,name=identity,proto3" json:"identity,omitempty"` } func (x *GenerateServiceIdentityResponse) Reset() { *x = GenerateServiceIdentityResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GenerateServiceIdentityResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GenerateServiceIdentityResponse) ProtoMessage() {} func (x *GenerateServiceIdentityResponse) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 GenerateServiceIdentityResponse.ProtoReflect.Descriptor instead. func (*GenerateServiceIdentityResponse) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{27} } func (x *GenerateServiceIdentityResponse) GetIdentity() *ServiceIdentity { if x != nil { return x.Identity } return nil } // A accelerator type that a Node can be configured with. type AcceleratorType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The resource name. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // The accelerator type. Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` } func (x *AcceleratorType) Reset() { *x = AcceleratorType{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AcceleratorType) String() string { return protoimpl.X.MessageStringOf(x) } func (*AcceleratorType) ProtoMessage() {} func (x *AcceleratorType) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 AcceleratorType.ProtoReflect.Descriptor instead. func (*AcceleratorType) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{28} } func (x *AcceleratorType) GetName() string { if x != nil { return x.Name } return "" } func (x *AcceleratorType) GetType() string { if x != nil { return x.Type } return "" } // Request for // [GetAcceleratorType][google.cloud.tpu.v2alpha1.Tpu.GetAcceleratorType]. type GetAcceleratorTypeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The resource name. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } func (x *GetAcceleratorTypeRequest) Reset() { *x = GetAcceleratorTypeRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetAcceleratorTypeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetAcceleratorTypeRequest) ProtoMessage() {} func (x *GetAcceleratorTypeRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 GetAcceleratorTypeRequest.ProtoReflect.Descriptor instead. func (*GetAcceleratorTypeRequest) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{29} } func (x *GetAcceleratorTypeRequest) GetName() string { if x != nil { return x.Name } return "" } // Request for // [ListAcceleratorTypes][google.cloud.tpu.v2alpha1.Tpu.ListAcceleratorTypes]. type ListAcceleratorTypesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The parent resource name. Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // The maximum number of items to return. PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // The next_page_token value returned from a previous List request, if any. PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // List filter. Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"` // Sort results. OrderBy string `protobuf:"bytes,6,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` } func (x *ListAcceleratorTypesRequest) Reset() { *x = ListAcceleratorTypesRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListAcceleratorTypesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListAcceleratorTypesRequest) ProtoMessage() {} func (x *ListAcceleratorTypesRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 ListAcceleratorTypesRequest.ProtoReflect.Descriptor instead. func (*ListAcceleratorTypesRequest) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{30} } func (x *ListAcceleratorTypesRequest) GetParent() string { if x != nil { return x.Parent } return "" } func (x *ListAcceleratorTypesRequest) GetPageSize() int32 { if x != nil { return x.PageSize } return 0 } func (x *ListAcceleratorTypesRequest) GetPageToken() string { if x != nil { return x.PageToken } return "" } func (x *ListAcceleratorTypesRequest) GetFilter() string { if x != nil { return x.Filter } return "" } func (x *ListAcceleratorTypesRequest) GetOrderBy() string { if x != nil { return x.OrderBy } return "" } // Response for // [ListAcceleratorTypes][google.cloud.tpu.v2alpha1.Tpu.ListAcceleratorTypes]. type ListAcceleratorTypesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The listed nodes. AcceleratorTypes []*AcceleratorType `protobuf:"bytes,1,rep,name=accelerator_types,json=acceleratorTypes,proto3" json:"accelerator_types,omitempty"` // The next page token or empty if none. NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` // Locations that could not be reached. Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` } func (x *ListAcceleratorTypesResponse) Reset() { *x = ListAcceleratorTypesResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListAcceleratorTypesResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListAcceleratorTypesResponse) ProtoMessage() {} func (x *ListAcceleratorTypesResponse) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 ListAcceleratorTypesResponse.ProtoReflect.Descriptor instead. func (*ListAcceleratorTypesResponse) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{31} } func (x *ListAcceleratorTypesResponse) GetAcceleratorTypes() []*AcceleratorType { if x != nil { return x.AcceleratorTypes } return nil } func (x *ListAcceleratorTypesResponse) GetNextPageToken() string { if x != nil { return x.NextPageToken } return "" } func (x *ListAcceleratorTypesResponse) GetUnreachable() []string { if x != nil { return x.Unreachable } return nil } // A runtime version that a Node can be configured with. type RuntimeVersion struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The resource name. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // The runtime version. Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` } func (x *RuntimeVersion) Reset() { *x = RuntimeVersion{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RuntimeVersion) String() string { return protoimpl.X.MessageStringOf(x) } func (*RuntimeVersion) ProtoMessage() {} func (x *RuntimeVersion) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 RuntimeVersion.ProtoReflect.Descriptor instead. func (*RuntimeVersion) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{32} } func (x *RuntimeVersion) GetName() string { if x != nil { return x.Name } return "" } func (x *RuntimeVersion) GetVersion() string { if x != nil { return x.Version } return "" } // Request for // [GetRuntimeVersion][google.cloud.tpu.v2alpha1.Tpu.GetRuntimeVersion]. type GetRuntimeVersionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The resource name. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } func (x *GetRuntimeVersionRequest) Reset() { *x = GetRuntimeVersionRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetRuntimeVersionRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetRuntimeVersionRequest) ProtoMessage() {} func (x *GetRuntimeVersionRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 GetRuntimeVersionRequest.ProtoReflect.Descriptor instead. func (*GetRuntimeVersionRequest) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{33} } func (x *GetRuntimeVersionRequest) GetName() string { if x != nil { return x.Name } return "" } // Request for // [ListRuntimeVersions][google.cloud.tpu.v2alpha1.Tpu.ListRuntimeVersions]. type ListRuntimeVersionsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The parent resource name. Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // The maximum number of items to return. PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // The next_page_token value returned from a previous List request, if any. PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // List filter. Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"` // Sort results. OrderBy string `protobuf:"bytes,6,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` } func (x *ListRuntimeVersionsRequest) Reset() { *x = ListRuntimeVersionsRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListRuntimeVersionsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListRuntimeVersionsRequest) ProtoMessage() {} func (x *ListRuntimeVersionsRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 ListRuntimeVersionsRequest.ProtoReflect.Descriptor instead. func (*ListRuntimeVersionsRequest) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{34} } func (x *ListRuntimeVersionsRequest) GetParent() string { if x != nil { return x.Parent } return "" } func (x *ListRuntimeVersionsRequest) GetPageSize() int32 { if x != nil { return x.PageSize } return 0 } func (x *ListRuntimeVersionsRequest) GetPageToken() string { if x != nil { return x.PageToken } return "" } func (x *ListRuntimeVersionsRequest) GetFilter() string { if x != nil { return x.Filter } return "" } func (x *ListRuntimeVersionsRequest) GetOrderBy() string { if x != nil { return x.OrderBy } return "" } // Response for // [ListRuntimeVersions][google.cloud.tpu.v2alpha1.Tpu.ListRuntimeVersions]. type ListRuntimeVersionsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The listed nodes. RuntimeVersions []*RuntimeVersion `protobuf:"bytes,1,rep,name=runtime_versions,json=runtimeVersions,proto3" json:"runtime_versions,omitempty"` // The next page token or empty if none. NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` // Locations that could not be reached. Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` } func (x *ListRuntimeVersionsResponse) Reset() { *x = ListRuntimeVersionsResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListRuntimeVersionsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListRuntimeVersionsResponse) ProtoMessage() {} func (x *ListRuntimeVersionsResponse) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 ListRuntimeVersionsResponse.ProtoReflect.Descriptor instead. func (*ListRuntimeVersionsResponse) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{35} } func (x *ListRuntimeVersionsResponse) GetRuntimeVersions() []*RuntimeVersion { if x != nil { return x.RuntimeVersions } return nil } func (x *ListRuntimeVersionsResponse) GetNextPageToken() string { if x != nil { return x.NextPageToken } return "" } func (x *ListRuntimeVersionsResponse) GetUnreachable() []string { if x != nil { return x.Unreachable } return nil } // Metadata describing an [Operation][google.longrunning.Operation] type OperationMetadata struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The time the operation was created. CreateTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // The time the operation finished running. EndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // Target of the operation - for example // projects/project-1/connectivityTests/test-1 Target string `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"` // Name of the verb executed by the operation. Verb string `protobuf:"bytes,4,opt,name=verb,proto3" json:"verb,omitempty"` // Human-readable status of the operation, if any. StatusDetail string `protobuf:"bytes,5,opt,name=status_detail,json=statusDetail,proto3" json:"status_detail,omitempty"` // Specifies if cancellation was requested for the operation. CancelRequested bool `protobuf:"varint,6,opt,name=cancel_requested,json=cancelRequested,proto3" json:"cancel_requested,omitempty"` // API version. ApiVersion string `protobuf:"bytes,7,opt,name=api_version,json=apiVersion,proto3" json:"api_version,omitempty"` } func (x *OperationMetadata) Reset() { *x = OperationMetadata{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OperationMetadata) String() string { return protoimpl.X.MessageStringOf(x) } func (*OperationMetadata) ProtoMessage() {} func (x *OperationMetadata) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 OperationMetadata.ProtoReflect.Descriptor instead. func (*OperationMetadata) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{36} } func (x *OperationMetadata) GetCreateTime() *timestamppb.Timestamp { if x != nil { return x.CreateTime } return nil } func (x *OperationMetadata) GetEndTime() *timestamppb.Timestamp { if x != nil { return x.EndTime } return nil } func (x *OperationMetadata) GetTarget() string { if x != nil { return x.Target } return "" } func (x *OperationMetadata) GetVerb() string { if x != nil { return x.Verb } return "" } func (x *OperationMetadata) GetStatusDetail() string { if x != nil { return x.StatusDetail } return "" } func (x *OperationMetadata) GetCancelRequested() bool { if x != nil { return x.CancelRequested } return false } func (x *OperationMetadata) GetApiVersion() string { if x != nil { return x.ApiVersion } return "" } // A Symptom instance. type Symptom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Timestamp when the Symptom is created. CreateTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // Type of the Symptom. SymptomType Symptom_SymptomType `protobuf:"varint,2,opt,name=symptom_type,json=symptomType,proto3,enum=google.cloud.tpu.v2alpha1.Symptom_SymptomType" json:"symptom_type,omitempty"` // Detailed information of the current Symptom. Details string `protobuf:"bytes,3,opt,name=details,proto3" json:"details,omitempty"` // A string used to uniquely distinguish a worker within a TPU node. WorkerId string `protobuf:"bytes,4,opt,name=worker_id,json=workerId,proto3" json:"worker_id,omitempty"` } func (x *Symptom) Reset() { *x = Symptom{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Symptom) String() string { return protoimpl.X.MessageStringOf(x) } func (*Symptom) ProtoMessage() {} func (x *Symptom) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 Symptom.ProtoReflect.Descriptor instead. func (*Symptom) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{37} } func (x *Symptom) GetCreateTime() *timestamppb.Timestamp { if x != nil { return x.CreateTime } return nil } func (x *Symptom) GetSymptomType() Symptom_SymptomType { if x != nil { return x.SymptomType } return Symptom_SYMPTOM_TYPE_UNSPECIFIED } func (x *Symptom) GetDetails() string { if x != nil { return x.Details } return "" } func (x *Symptom) GetWorkerId() string { if x != nil { return x.WorkerId } return "" } // Request for // [GetGuestAttributes][google.cloud.tpu.v2alpha1.Tpu.GetGuestAttributes]. type GetGuestAttributesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The resource name. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // The guest attributes path to be queried. QueryPath string `protobuf:"bytes,2,opt,name=query_path,json=queryPath,proto3" json:"query_path,omitempty"` // The 0-based worker ID. If it is empty, all workers' GuestAttributes will be // returned. WorkerIds []string `protobuf:"bytes,3,rep,name=worker_ids,json=workerIds,proto3" json:"worker_ids,omitempty"` } func (x *GetGuestAttributesRequest) Reset() { *x = GetGuestAttributesRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetGuestAttributesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetGuestAttributesRequest) ProtoMessage() {} func (x *GetGuestAttributesRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 GetGuestAttributesRequest.ProtoReflect.Descriptor instead. func (*GetGuestAttributesRequest) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{38} } func (x *GetGuestAttributesRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *GetGuestAttributesRequest) GetQueryPath() string { if x != nil { return x.QueryPath } return "" } func (x *GetGuestAttributesRequest) GetWorkerIds() []string { if x != nil { return x.WorkerIds } return nil } // Response for // [GetGuestAttributes][google.cloud.tpu.v2alpha1.Tpu.GetGuestAttributes]. type GetGuestAttributesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The guest attributes for the TPU workers. GuestAttributes []*GuestAttributes `protobuf:"bytes,1,rep,name=guest_attributes,json=guestAttributes,proto3" json:"guest_attributes,omitempty"` } func (x *GetGuestAttributesResponse) Reset() { *x = GetGuestAttributesResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetGuestAttributesResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetGuestAttributesResponse) ProtoMessage() {} func (x *GetGuestAttributesResponse) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 GetGuestAttributesResponse.ProtoReflect.Descriptor instead. func (*GetGuestAttributesResponse) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{39} } func (x *GetGuestAttributesResponse) GetGuestAttributes() []*GuestAttributes { if x != nil { return x.GuestAttributes } return nil } // Request for // [SimulateMaintenanceEvent][google.cloud.tpu.v2alpha1.Tpu.SimulateMaintenanceEvent]. type SimulateMaintenanceEventRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The resource name. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // The 0-based worker ID. If it is empty, worker ID 0 will be selected for // maintenance event simulation. A maintenance event will only be fired on the // first specified worker ID. Future implementations may support firing on // multiple workers. WorkerIds []string `protobuf:"bytes,2,rep,name=worker_ids,json=workerIds,proto3" json:"worker_ids,omitempty"` } func (x *SimulateMaintenanceEventRequest) Reset() { *x = SimulateMaintenanceEventRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SimulateMaintenanceEventRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SimulateMaintenanceEventRequest) ProtoMessage() {} func (x *SimulateMaintenanceEventRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 SimulateMaintenanceEventRequest.ProtoReflect.Descriptor instead. func (*SimulateMaintenanceEventRequest) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{40} } func (x *SimulateMaintenanceEventRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *SimulateMaintenanceEventRequest) GetWorkerIds() []string { if x != nil { return x.WorkerIds } return nil } // A set of Shielded Instance options. type ShieldedInstanceConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Defines whether the instance has Secure Boot enabled. EnableSecureBoot bool `protobuf:"varint,1,opt,name=enable_secure_boot,json=enableSecureBoot,proto3" json:"enable_secure_boot,omitempty"` } func (x *ShieldedInstanceConfig) Reset() { *x = ShieldedInstanceConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ShieldedInstanceConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ShieldedInstanceConfig) ProtoMessage() {} func (x *ShieldedInstanceConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 ShieldedInstanceConfig.ProtoReflect.Descriptor instead. func (*ShieldedInstanceConfig) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{41} } func (x *ShieldedInstanceConfig) GetEnableSecureBoot() bool { if x != nil { return x.EnableSecureBoot } return false } // Details of the TPU resource(s) being requested. type QueuedResource_Tpu struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The TPU node(s) being requested. NodeSpec []*QueuedResource_Tpu_NodeSpec `protobuf:"bytes,1,rep,name=node_spec,json=nodeSpec,proto3" json:"node_spec,omitempty"` } func (x *QueuedResource_Tpu) Reset() { *x = QueuedResource_Tpu{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QueuedResource_Tpu) String() string { return protoimpl.X.MessageStringOf(x) } func (*QueuedResource_Tpu) ProtoMessage() {} func (x *QueuedResource_Tpu) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 QueuedResource_Tpu.ProtoReflect.Descriptor instead. func (*QueuedResource_Tpu) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{10, 0} } func (x *QueuedResource_Tpu) GetNodeSpec() []*QueuedResource_Tpu_NodeSpec { if x != nil { return x.NodeSpec } return nil } // BestEffort tier definition. type QueuedResource_BestEffort struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *QueuedResource_BestEffort) Reset() { *x = QueuedResource_BestEffort{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QueuedResource_BestEffort) String() string { return protoimpl.X.MessageStringOf(x) } func (*QueuedResource_BestEffort) ProtoMessage() {} func (x *QueuedResource_BestEffort) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 QueuedResource_BestEffort.ProtoReflect.Descriptor instead. func (*QueuedResource_BestEffort) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{10, 1} } // Guaranteed tier definition. type QueuedResource_Guaranteed struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Optional. Defines the minimum duration of the guarantee. If specified, // the requested resources will only be provisioned if they can be // allocated for at least the given duration. MinDuration *durationpb.Duration `protobuf:"bytes,1,opt,name=min_duration,json=minDuration,proto3" json:"min_duration,omitempty"` // Optional. Specifies the request should be scheduled on reserved capacity. Reserved bool `protobuf:"varint,2,opt,name=reserved,proto3" json:"reserved,omitempty"` } func (x *QueuedResource_Guaranteed) Reset() { *x = QueuedResource_Guaranteed{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QueuedResource_Guaranteed) String() string { return protoimpl.X.MessageStringOf(x) } func (*QueuedResource_Guaranteed) ProtoMessage() {} func (x *QueuedResource_Guaranteed) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 QueuedResource_Guaranteed.ProtoReflect.Descriptor instead. func (*QueuedResource_Guaranteed) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{10, 2} } func (x *QueuedResource_Guaranteed) GetMinDuration() *durationpb.Duration { if x != nil { return x.MinDuration } return nil } func (x *QueuedResource_Guaranteed) GetReserved() bool { if x != nil { return x.Reserved } return false } // Defines the policy of the QueuedRequest. type QueuedResource_QueueingPolicy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Time flexibility specification. // // Types that are assignable to StartTimingConstraints: // // *QueuedResource_QueueingPolicy_ValidUntilDuration // *QueuedResource_QueueingPolicy_ValidUntilTime // *QueuedResource_QueueingPolicy_ValidAfterDuration // *QueuedResource_QueueingPolicy_ValidAfterTime // *QueuedResource_QueueingPolicy_ValidInterval StartTimingConstraints isQueuedResource_QueueingPolicy_StartTimingConstraints `protobuf_oneof:"start_timing_constraints"` } func (x *QueuedResource_QueueingPolicy) Reset() { *x = QueuedResource_QueueingPolicy{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QueuedResource_QueueingPolicy) String() string { return protoimpl.X.MessageStringOf(x) } func (*QueuedResource_QueueingPolicy) ProtoMessage() {} func (x *QueuedResource_QueueingPolicy) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 QueuedResource_QueueingPolicy.ProtoReflect.Descriptor instead. func (*QueuedResource_QueueingPolicy) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{10, 3} } func (m *QueuedResource_QueueingPolicy) GetStartTimingConstraints() isQueuedResource_QueueingPolicy_StartTimingConstraints { if m != nil { return m.StartTimingConstraints } return nil } func (x *QueuedResource_QueueingPolicy) GetValidUntilDuration() *durationpb.Duration { if x, ok := x.GetStartTimingConstraints().(*QueuedResource_QueueingPolicy_ValidUntilDuration); ok { return x.ValidUntilDuration } return nil } func (x *QueuedResource_QueueingPolicy) GetValidUntilTime() *timestamppb.Timestamp { if x, ok := x.GetStartTimingConstraints().(*QueuedResource_QueueingPolicy_ValidUntilTime); ok { return x.ValidUntilTime } return nil } func (x *QueuedResource_QueueingPolicy) GetValidAfterDuration() *durationpb.Duration { if x, ok := x.GetStartTimingConstraints().(*QueuedResource_QueueingPolicy_ValidAfterDuration); ok { return x.ValidAfterDuration } return nil } func (x *QueuedResource_QueueingPolicy) GetValidAfterTime() *timestamppb.Timestamp { if x, ok := x.GetStartTimingConstraints().(*QueuedResource_QueueingPolicy_ValidAfterTime); ok { return x.ValidAfterTime } return nil } func (x *QueuedResource_QueueingPolicy) GetValidInterval() *interval.Interval { if x, ok := x.GetStartTimingConstraints().(*QueuedResource_QueueingPolicy_ValidInterval); ok { return x.ValidInterval } return nil } type isQueuedResource_QueueingPolicy_StartTimingConstraints interface { isQueuedResource_QueueingPolicy_StartTimingConstraints() } type QueuedResource_QueueingPolicy_ValidUntilDuration struct { // A relative time after which resources should not be created. // If the request cannot be fulfilled by this time the request will be // failed. ValidUntilDuration *durationpb.Duration `protobuf:"bytes,1,opt,name=valid_until_duration,json=validUntilDuration,proto3,oneof"` } type QueuedResource_QueueingPolicy_ValidUntilTime struct { // An absolute time after which resources should not be created. // If the request cannot be fulfilled by this time the request will be // failed. ValidUntilTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=valid_until_time,json=validUntilTime,proto3,oneof"` } type QueuedResource_QueueingPolicy_ValidAfterDuration struct { // A relative time after which resources may be created. ValidAfterDuration *durationpb.Duration `protobuf:"bytes,3,opt,name=valid_after_duration,json=validAfterDuration,proto3,oneof"` } type QueuedResource_QueueingPolicy_ValidAfterTime struct { // An absolute time at which resources may be created. ValidAfterTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=valid_after_time,json=validAfterTime,proto3,oneof"` } type QueuedResource_QueueingPolicy_ValidInterval struct { // An absolute time interval within which resources may be created. ValidInterval *interval.Interval `protobuf:"bytes,5,opt,name=valid_interval,json=validInterval,proto3,oneof"` } func (*QueuedResource_QueueingPolicy_ValidUntilDuration) isQueuedResource_QueueingPolicy_StartTimingConstraints() { } func (*QueuedResource_QueueingPolicy_ValidUntilTime) isQueuedResource_QueueingPolicy_StartTimingConstraints() { } func (*QueuedResource_QueueingPolicy_ValidAfterDuration) isQueuedResource_QueueingPolicy_StartTimingConstraints() { } func (*QueuedResource_QueueingPolicy_ValidAfterTime) isQueuedResource_QueueingPolicy_StartTimingConstraints() { } func (*QueuedResource_QueueingPolicy_ValidInterval) isQueuedResource_QueueingPolicy_StartTimingConstraints() { } // Details of the TPU node(s) being requested. Users can request either a // single node or multiple nodes. // NodeSpec provides the specification for node(s) to be created. type QueuedResource_Tpu_NodeSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The parent resource name. Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // The unqualified resource name. Should follow the `^[A-Za-z0-9_.~+%-]+$` // regex format. This is only specified when requesting a single node. // In case of multi-node requests, multi_node_params must be populated // instead. It's an error to specify both node_id and multi_node_params. NodeId string `protobuf:"bytes,2,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` // Required. The node. Node *Node `protobuf:"bytes,3,opt,name=node,proto3" json:"node,omitempty"` } func (x *QueuedResource_Tpu_NodeSpec) Reset() { *x = QueuedResource_Tpu_NodeSpec{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QueuedResource_Tpu_NodeSpec) String() string { return protoimpl.X.MessageStringOf(x) } func (*QueuedResource_Tpu_NodeSpec) ProtoMessage() {} func (x *QueuedResource_Tpu_NodeSpec) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 QueuedResource_Tpu_NodeSpec.ProtoReflect.Descriptor instead. func (*QueuedResource_Tpu_NodeSpec) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{10, 0, 0} } func (x *QueuedResource_Tpu_NodeSpec) GetParent() string { if x != nil { return x.Parent } return "" } func (x *QueuedResource_Tpu_NodeSpec) GetNodeId() string { if x != nil { return x.NodeId } return "" } func (x *QueuedResource_Tpu_NodeSpec) GetNode() *Node { if x != nil { return x.Node } return nil } // Further data for the creating state. type QueuedResourceState_CreatingData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *QueuedResourceState_CreatingData) Reset() { *x = QueuedResourceState_CreatingData{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QueuedResourceState_CreatingData) String() string { return protoimpl.X.MessageStringOf(x) } func (*QueuedResourceState_CreatingData) ProtoMessage() {} func (x *QueuedResourceState_CreatingData) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 QueuedResourceState_CreatingData.ProtoReflect.Descriptor instead. func (*QueuedResourceState_CreatingData) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{11, 0} } // Further data for the accepted state. type QueuedResourceState_AcceptedData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *QueuedResourceState_AcceptedData) Reset() { *x = QueuedResourceState_AcceptedData{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QueuedResourceState_AcceptedData) String() string { return protoimpl.X.MessageStringOf(x) } func (*QueuedResourceState_AcceptedData) ProtoMessage() {} func (x *QueuedResourceState_AcceptedData) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 QueuedResourceState_AcceptedData.ProtoReflect.Descriptor instead. func (*QueuedResourceState_AcceptedData) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{11, 1} } // Further data for the provisioning state. type QueuedResourceState_ProvisioningData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *QueuedResourceState_ProvisioningData) Reset() { *x = QueuedResourceState_ProvisioningData{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QueuedResourceState_ProvisioningData) String() string { return protoimpl.X.MessageStringOf(x) } func (*QueuedResourceState_ProvisioningData) ProtoMessage() {} func (x *QueuedResourceState_ProvisioningData) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 QueuedResourceState_ProvisioningData.ProtoReflect.Descriptor instead. func (*QueuedResourceState_ProvisioningData) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{11, 2} } // Further data for the failed state. type QueuedResourceState_FailedData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The error that caused the queued resource to enter the FAILED state. Error *status.Status `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` } func (x *QueuedResourceState_FailedData) Reset() { *x = QueuedResourceState_FailedData{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QueuedResourceState_FailedData) String() string { return protoimpl.X.MessageStringOf(x) } func (*QueuedResourceState_FailedData) ProtoMessage() {} func (x *QueuedResourceState_FailedData) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 QueuedResourceState_FailedData.ProtoReflect.Descriptor instead. func (*QueuedResourceState_FailedData) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{11, 3} } func (x *QueuedResourceState_FailedData) GetError() *status.Status { if x != nil { return x.Error } return nil } // Further data for the deleting state. type QueuedResourceState_DeletingData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *QueuedResourceState_DeletingData) Reset() { *x = QueuedResourceState_DeletingData{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QueuedResourceState_DeletingData) String() string { return protoimpl.X.MessageStringOf(x) } func (*QueuedResourceState_DeletingData) ProtoMessage() {} func (x *QueuedResourceState_DeletingData) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 QueuedResourceState_DeletingData.ProtoReflect.Descriptor instead. func (*QueuedResourceState_DeletingData) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{11, 4} } // Further data for the active state. type QueuedResourceState_ActiveData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *QueuedResourceState_ActiveData) Reset() { *x = QueuedResourceState_ActiveData{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QueuedResourceState_ActiveData) String() string { return protoimpl.X.MessageStringOf(x) } func (*QueuedResourceState_ActiveData) ProtoMessage() {} func (x *QueuedResourceState_ActiveData) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 QueuedResourceState_ActiveData.ProtoReflect.Descriptor instead. func (*QueuedResourceState_ActiveData) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{11, 5} } // Further data for the suspending state. type QueuedResourceState_SuspendingData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *QueuedResourceState_SuspendingData) Reset() { *x = QueuedResourceState_SuspendingData{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QueuedResourceState_SuspendingData) String() string { return protoimpl.X.MessageStringOf(x) } func (*QueuedResourceState_SuspendingData) ProtoMessage() {} func (x *QueuedResourceState_SuspendingData) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 QueuedResourceState_SuspendingData.ProtoReflect.Descriptor instead. func (*QueuedResourceState_SuspendingData) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{11, 6} } // Further data for the suspended state. type QueuedResourceState_SuspendedData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *QueuedResourceState_SuspendedData) Reset() { *x = QueuedResourceState_SuspendedData{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *QueuedResourceState_SuspendedData) String() string { return protoimpl.X.MessageStringOf(x) } func (*QueuedResourceState_SuspendedData) ProtoMessage() {} func (x *QueuedResourceState_SuspendedData) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_tpu_v2alpha1_cloud_tpu_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 QueuedResourceState_SuspendedData.ProtoReflect.Descriptor instead. func (*QueuedResourceState_SuspendedData) Descriptor() ([]byte, []int) { return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP(), []int{11, 7} } var File_google_cloud_tpu_v2alpha1_cloud_tpu_proto protoreflect.FileDescriptor var file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDesc = []byte{ 0x0a, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x74, 0x70, 0x75, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x74, 0x70, 0x75, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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, 0x1a, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x82, 0x01, 0x0a, 0x0f, 0x47, 0x75, 0x65, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x74, 0x68, 0x12, 0x50, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x75, 0x65, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x5d, 0x0a, 0x14, 0x47, 0x75, 0x65, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x45, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x75, 0x65, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x5c, 0x0a, 0x14, 0x47, 0x75, 0x65, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xbb, 0x01, 0x0a, 0x0c, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x44, 0x69, 0x73, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x12, 0x44, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x44, 0x69, 0x73, 0x6b, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x44, 0x0a, 0x08, 0x44, 0x69, 0x73, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x49, 0x53, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x22, 0x50, 0x0a, 0x10, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0x92, 0x01, 0x0a, 0x0f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x4c, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x34, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x24, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x70, 0x22, 0x9f, 0x01, 0x0a, 0x0d, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x70, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x63, 0x61, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x63, 0x61, 0x6e, 0x49, 0x70, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x22, 0x3c, 0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x22, 0xb6, 0x0f, 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x12, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4f, 0x0a, 0x0e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x69, 0x64, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x69, 0x64, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x52, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x58, 0x0a, 0x11, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x10, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5c, 0x0a, 0x11, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x3e, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x06, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x43, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x49, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x22, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x28, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x46, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x73, 0x18, 0x29, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x44, 0x69, 0x73, 0x6b, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x44, 0x69, 0x73, 0x6b, 0x73, 0x12, 0x50, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x08, 0x73, 0x79, 0x6d, 0x70, 0x74, 0x6f, 0x6d, 0x73, 0x18, 0x27, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x79, 0x6d, 0x70, 0x74, 0x6f, 0x6d, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x73, 0x79, 0x6d, 0x70, 0x74, 0x6f, 0x6d, 0x73, 0x12, 0x2c, 0x0a, 0x0f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x6b, 0x0a, 0x18, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x16, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xe1, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x45, 0x49, 0x4d, 0x41, 0x47, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x45, 0x50, 0x41, 0x49, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x08, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x41, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x0a, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x52, 0x45, 0x45, 0x4d, 0x50, 0x54, 0x45, 0x44, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x45, 0x52, 0x4d, 0x49, 0x4e, 0x41, 0x54, 0x45, 0x44, 0x10, 0x0c, 0x12, 0x0a, 0x0a, 0x06, 0x48, 0x49, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x0d, 0x12, 0x0a, 0x0a, 0x06, 0x48, 0x49, 0x44, 0x44, 0x45, 0x4e, 0x10, 0x0e, 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x4e, 0x48, 0x49, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x0f, 0x22, 0x6f, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x12, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x59, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x55, 0x4e, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x59, 0x5f, 0x54, 0x45, 0x4e, 0x53, 0x4f, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x4e, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x59, 0x5f, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x05, 0x22, 0x4f, 0x0a, 0x0a, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x50, 0x49, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x56, 0x31, 0x5f, 0x41, 0x4c, 0x50, 0x48, 0x41, 0x31, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x56, 0x31, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x56, 0x32, 0x5f, 0x41, 0x4c, 0x50, 0x48, 0x41, 0x31, 0x10, 0x03, 0x3a, 0x52, 0xea, 0x41, 0x4f, 0x0a, 0x17, 0x74, 0x70, 0x75, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x34, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x6f, 0x64, 0x65, 0x7d, 0x22, 0xf2, 0x0a, 0x0a, 0x0e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x41, 0x0a, 0x03, 0x74, 0x70, 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x54, 0x70, 0x75, 0x48, 0x00, 0x52, 0x03, 0x74, 0x70, 0x75, 0x12, 0x57, 0x0a, 0x0b, 0x62, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x66, 0x66, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x42, 0x65, 0x73, 0x74, 0x45, 0x66, 0x66, 0x6f, 0x72, 0x74, 0x48, 0x01, 0x52, 0x0a, 0x62, 0x65, 0x73, 0x74, 0x45, 0x66, 0x66, 0x6f, 0x72, 0x74, 0x12, 0x56, 0x0a, 0x0a, 0x67, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x47, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x64, 0x48, 0x01, 0x52, 0x0a, 0x67, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x64, 0x12, 0x61, 0x0a, 0x0f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x49, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0xfd, 0x01, 0x0a, 0x03, 0x54, 0x70, 0x75, 0x12, 0x53, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x54, 0x70, 0x75, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x53, 0x70, 0x65, 0x63, 0x1a, 0xa0, 0x01, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x1a, 0x0c, 0x0a, 0x0a, 0x42, 0x65, 0x73, 0x74, 0x45, 0x66, 0x66, 0x6f, 0x72, 0x74, 0x1a, 0x70, 0x0a, 0x0a, 0x47, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x64, 0x12, 0x41, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x1a, 0x9a, 0x03, 0x0a, 0x0e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x4d, 0x0a, 0x14, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x12, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x48, 0x00, 0x52, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4d, 0x0a, 0x14, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x12, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x41, 0x66, 0x74, 0x65, 0x72, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x41, 0x66, 0x74, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x1a, 0x0a, 0x18, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x3a, 0x71, 0xea, 0x41, 0x6e, 0x0a, 0x21, 0x74, 0x70, 0x75, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x49, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x7d, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x69, 0x65, 0x72, 0x22, 0xd9, 0x09, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x4a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x62, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x62, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x6e, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x5c, 0x0a, 0x0b, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0a, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x62, 0x0a, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x5c, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x68, 0x0a, 0x0f, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x65, 0x0a, 0x0e, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x0e, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x0e, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x12, 0x0a, 0x10, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x36, 0x0a, 0x0a, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x0e, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x0c, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x10, 0x0a, 0x0e, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x0f, 0x0a, 0x0d, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x22, 0x91, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x08, 0x42, 0x0c, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x22, 0x87, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x19, 0x12, 0x17, 0x74, 0x70, 0x75, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x94, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x45, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x19, 0x0a, 0x17, 0x74, 0x70, 0x75, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc8, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x67, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x19, 0x0a, 0x17, 0x74, 0x70, 0x75, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x46, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x19, 0x0a, 0x17, 0x74, 0x70, 0x75, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x47, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x19, 0x0a, 0x17, 0x74, 0x70, 0x75, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x38, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x12, 0x21, 0x74, 0x70, 0x75, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xbd, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x10, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x59, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x74, 0x70, 0x75, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x86, 0x02, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x12, 0x57, 0x0a, 0x0f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x7b, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x74, 0x70, 0x75, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x27, 0x0a, 0x0f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x63, 0x0a, 0x1e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x69, 0x0a, 0x1f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0xaf, 0x01, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x74, 0xea, 0x41, 0x71, 0x0a, 0x22, 0x74, 0x70, 0x75, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x7d, 0x22, 0x5b, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x74, 0x70, 0x75, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd0, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x12, 0x22, 0x74, 0x70, 0x75, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xc1, 0x01, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x10, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0xb1, 0x01, 0x0a, 0x0e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 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, 0x3a, 0x71, 0xea, 0x41, 0x6e, 0x0a, 0x21, 0x74, 0x70, 0x75, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x22, 0x59, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x74, 0x70, 0x75, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xce, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x12, 0x21, 0x74, 0x70, 0x75, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xbd, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x10, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0xa4, 0x02, 0x0a, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x76, 0x65, 0x72, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x76, 0x65, 0x72, 0x62, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xf7, 0x02, 0x0a, 0x07, 0x53, 0x79, 0x6d, 0x70, 0x74, 0x6f, 0x6d, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x51, 0x0a, 0x0c, 0x73, 0x79, 0x6d, 0x70, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x79, 0x6d, 0x70, 0x74, 0x6f, 0x6d, 0x2e, 0x53, 0x79, 0x6d, 0x70, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x73, 0x79, 0x6d, 0x70, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x22, 0xa4, 0x01, 0x0a, 0x0b, 0x53, 0x79, 0x6d, 0x70, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x59, 0x4d, 0x50, 0x54, 0x4f, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4c, 0x4f, 0x57, 0x5f, 0x4d, 0x45, 0x4d, 0x4f, 0x52, 0x59, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x55, 0x54, 0x5f, 0x4f, 0x46, 0x5f, 0x4d, 0x45, 0x4d, 0x4f, 0x52, 0x59, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x4d, 0x45, 0x53, 0x48, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x48, 0x42, 0x4d, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x4f, 0x46, 0x5f, 0x4d, 0x45, 0x4d, 0x4f, 0x52, 0x59, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x41, 0x42, 0x55, 0x53, 0x45, 0x10, 0x06, 0x22, 0x8e, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x47, 0x75, 0x65, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x19, 0x0a, 0x17, 0x74, 0x70, 0x75, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x73, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x47, 0x75, 0x65, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x10, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x75, 0x65, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x0f, 0x67, 0x75, 0x65, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, 0x75, 0x0a, 0x1f, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x19, 0x0a, 0x17, 0x74, 0x70, 0x75, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x46, 0x0a, 0x16, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x42, 0x6f, 0x6f, 0x74, 0x32, 0xb7, 0x1d, 0x0a, 0x03, 0x54, 0x70, 0x75, 0x12, 0xa8, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, 0x2f, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x95, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, 0x2f, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xca, 0x01, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x22, 0x2f, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x3a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0xda, 0x41, 0x13, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x6e, 0x6f, 0x64, 0x65, 0x2c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0xca, 0x41, 0x19, 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xc6, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x2a, 0x2f, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xb2, 0x01, 0x0a, 0x08, 0x53, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x22, 0x34, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x6f, 0x70, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x19, 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xb5, 0x01, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x22, 0x35, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x19, 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xcc, 0x01, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x71, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x32, 0x34, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0xda, 0x41, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0xca, 0x41, 0x19, 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xd0, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x39, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xbd, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x48, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x39, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x94, 0x02, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa4, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4c, 0x22, 0x39, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x3a, 0x0f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0xda, 0x41, 0x29, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2c, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0xca, 0x41, 0x23, 0x0a, 0x0e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xdd, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x2a, 0x39, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0xca, 0x41, 0x23, 0x0a, 0x0e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xde, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x22, 0x41, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x3a, 0x01, 0x2a, 0x12, 0xd4, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xc1, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x49, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xd0, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x39, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xbd, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x48, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x39, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xd0, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x47, 0x75, 0x65, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x75, 0x65, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x75, 0x65, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x22, 0x42, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x67, 0x65, 0x74, 0x47, 0x75, 0x65, 0x73, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xe6, 0x01, 0x0a, 0x18, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x22, 0x48, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x3a, 0x01, 0x2a, 0xca, 0x41, 0x19, 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x46, 0xca, 0x41, 0x12, 0x74, 0x70, 0x75, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x6e, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x74, 0x70, 0x75, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x0d, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x54, 0x70, 0x75, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x74, 0x70, 0x75, 0x2f, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x74, 0x70, 0x75, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescOnce sync.Once file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescData = file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDesc ) func file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescGZIP() []byte { file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescOnce.Do(func() { file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescData) }) return file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDescData } var file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_enumTypes = make([]protoimpl.EnumInfo, 6) var file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes = make([]protoimpl.MessageInfo, 57) var file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_goTypes = []interface{}{ (AttachedDisk_DiskMode)(0), // 0: google.cloud.tpu.v2alpha1.AttachedDisk.DiskMode (Node_State)(0), // 1: google.cloud.tpu.v2alpha1.Node.State (Node_Health)(0), // 2: google.cloud.tpu.v2alpha1.Node.Health (Node_ApiVersion)(0), // 3: google.cloud.tpu.v2alpha1.Node.ApiVersion (QueuedResourceState_State)(0), // 4: google.cloud.tpu.v2alpha1.QueuedResourceState.State (Symptom_SymptomType)(0), // 5: google.cloud.tpu.v2alpha1.Symptom.SymptomType (*GuestAttributes)(nil), // 6: google.cloud.tpu.v2alpha1.GuestAttributes (*GuestAttributesValue)(nil), // 7: google.cloud.tpu.v2alpha1.GuestAttributesValue (*GuestAttributesEntry)(nil), // 8: google.cloud.tpu.v2alpha1.GuestAttributesEntry (*AttachedDisk)(nil), // 9: google.cloud.tpu.v2alpha1.AttachedDisk (*SchedulingConfig)(nil), // 10: google.cloud.tpu.v2alpha1.SchedulingConfig (*NetworkEndpoint)(nil), // 11: google.cloud.tpu.v2alpha1.NetworkEndpoint (*AccessConfig)(nil), // 12: google.cloud.tpu.v2alpha1.AccessConfig (*NetworkConfig)(nil), // 13: google.cloud.tpu.v2alpha1.NetworkConfig (*ServiceAccount)(nil), // 14: google.cloud.tpu.v2alpha1.ServiceAccount (*Node)(nil), // 15: google.cloud.tpu.v2alpha1.Node (*QueuedResource)(nil), // 16: google.cloud.tpu.v2alpha1.QueuedResource (*QueuedResourceState)(nil), // 17: google.cloud.tpu.v2alpha1.QueuedResourceState (*ListNodesRequest)(nil), // 18: google.cloud.tpu.v2alpha1.ListNodesRequest (*ListNodesResponse)(nil), // 19: google.cloud.tpu.v2alpha1.ListNodesResponse (*GetNodeRequest)(nil), // 20: google.cloud.tpu.v2alpha1.GetNodeRequest (*CreateNodeRequest)(nil), // 21: google.cloud.tpu.v2alpha1.CreateNodeRequest (*DeleteNodeRequest)(nil), // 22: google.cloud.tpu.v2alpha1.DeleteNodeRequest (*StopNodeRequest)(nil), // 23: google.cloud.tpu.v2alpha1.StopNodeRequest (*StartNodeRequest)(nil), // 24: google.cloud.tpu.v2alpha1.StartNodeRequest (*UpdateNodeRequest)(nil), // 25: google.cloud.tpu.v2alpha1.UpdateNodeRequest (*ListQueuedResourcesRequest)(nil), // 26: google.cloud.tpu.v2alpha1.ListQueuedResourcesRequest (*ListQueuedResourcesResponse)(nil), // 27: google.cloud.tpu.v2alpha1.ListQueuedResourcesResponse (*GetQueuedResourceRequest)(nil), // 28: google.cloud.tpu.v2alpha1.GetQueuedResourceRequest (*CreateQueuedResourceRequest)(nil), // 29: google.cloud.tpu.v2alpha1.CreateQueuedResourceRequest (*DeleteQueuedResourceRequest)(nil), // 30: google.cloud.tpu.v2alpha1.DeleteQueuedResourceRequest (*ServiceIdentity)(nil), // 31: google.cloud.tpu.v2alpha1.ServiceIdentity (*GenerateServiceIdentityRequest)(nil), // 32: google.cloud.tpu.v2alpha1.GenerateServiceIdentityRequest (*GenerateServiceIdentityResponse)(nil), // 33: google.cloud.tpu.v2alpha1.GenerateServiceIdentityResponse (*AcceleratorType)(nil), // 34: google.cloud.tpu.v2alpha1.AcceleratorType (*GetAcceleratorTypeRequest)(nil), // 35: google.cloud.tpu.v2alpha1.GetAcceleratorTypeRequest (*ListAcceleratorTypesRequest)(nil), // 36: google.cloud.tpu.v2alpha1.ListAcceleratorTypesRequest (*ListAcceleratorTypesResponse)(nil), // 37: google.cloud.tpu.v2alpha1.ListAcceleratorTypesResponse (*RuntimeVersion)(nil), // 38: google.cloud.tpu.v2alpha1.RuntimeVersion (*GetRuntimeVersionRequest)(nil), // 39: google.cloud.tpu.v2alpha1.GetRuntimeVersionRequest (*ListRuntimeVersionsRequest)(nil), // 40: google.cloud.tpu.v2alpha1.ListRuntimeVersionsRequest (*ListRuntimeVersionsResponse)(nil), // 41: google.cloud.tpu.v2alpha1.ListRuntimeVersionsResponse (*OperationMetadata)(nil), // 42: google.cloud.tpu.v2alpha1.OperationMetadata (*Symptom)(nil), // 43: google.cloud.tpu.v2alpha1.Symptom (*GetGuestAttributesRequest)(nil), // 44: google.cloud.tpu.v2alpha1.GetGuestAttributesRequest (*GetGuestAttributesResponse)(nil), // 45: google.cloud.tpu.v2alpha1.GetGuestAttributesResponse (*SimulateMaintenanceEventRequest)(nil), // 46: google.cloud.tpu.v2alpha1.SimulateMaintenanceEventRequest (*ShieldedInstanceConfig)(nil), // 47: google.cloud.tpu.v2alpha1.ShieldedInstanceConfig nil, // 48: google.cloud.tpu.v2alpha1.Node.LabelsEntry nil, // 49: google.cloud.tpu.v2alpha1.Node.MetadataEntry (*QueuedResource_Tpu)(nil), // 50: google.cloud.tpu.v2alpha1.QueuedResource.Tpu (*QueuedResource_BestEffort)(nil), // 51: google.cloud.tpu.v2alpha1.QueuedResource.BestEffort (*QueuedResource_Guaranteed)(nil), // 52: google.cloud.tpu.v2alpha1.QueuedResource.Guaranteed (*QueuedResource_QueueingPolicy)(nil), // 53: google.cloud.tpu.v2alpha1.QueuedResource.QueueingPolicy (*QueuedResource_Tpu_NodeSpec)(nil), // 54: google.cloud.tpu.v2alpha1.QueuedResource.Tpu.NodeSpec (*QueuedResourceState_CreatingData)(nil), // 55: google.cloud.tpu.v2alpha1.QueuedResourceState.CreatingData (*QueuedResourceState_AcceptedData)(nil), // 56: google.cloud.tpu.v2alpha1.QueuedResourceState.AcceptedData (*QueuedResourceState_ProvisioningData)(nil), // 57: google.cloud.tpu.v2alpha1.QueuedResourceState.ProvisioningData (*QueuedResourceState_FailedData)(nil), // 58: google.cloud.tpu.v2alpha1.QueuedResourceState.FailedData (*QueuedResourceState_DeletingData)(nil), // 59: google.cloud.tpu.v2alpha1.QueuedResourceState.DeletingData (*QueuedResourceState_ActiveData)(nil), // 60: google.cloud.tpu.v2alpha1.QueuedResourceState.ActiveData (*QueuedResourceState_SuspendingData)(nil), // 61: google.cloud.tpu.v2alpha1.QueuedResourceState.SuspendingData (*QueuedResourceState_SuspendedData)(nil), // 62: google.cloud.tpu.v2alpha1.QueuedResourceState.SuspendedData (*timestamppb.Timestamp)(nil), // 63: google.protobuf.Timestamp (*fieldmaskpb.FieldMask)(nil), // 64: google.protobuf.FieldMask (*durationpb.Duration)(nil), // 65: google.protobuf.Duration (*interval.Interval)(nil), // 66: google.type.Interval (*status.Status)(nil), // 67: google.rpc.Status (*longrunning.Operation)(nil), // 68: google.longrunning.Operation } var file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_depIdxs = []int32{ 7, // 0: google.cloud.tpu.v2alpha1.GuestAttributes.query_value:type_name -> google.cloud.tpu.v2alpha1.GuestAttributesValue 8, // 1: google.cloud.tpu.v2alpha1.GuestAttributesValue.items:type_name -> google.cloud.tpu.v2alpha1.GuestAttributesEntry 0, // 2: google.cloud.tpu.v2alpha1.AttachedDisk.mode:type_name -> google.cloud.tpu.v2alpha1.AttachedDisk.DiskMode 12, // 3: google.cloud.tpu.v2alpha1.NetworkEndpoint.access_config:type_name -> google.cloud.tpu.v2alpha1.AccessConfig 1, // 4: google.cloud.tpu.v2alpha1.Node.state:type_name -> google.cloud.tpu.v2alpha1.Node.State 13, // 5: google.cloud.tpu.v2alpha1.Node.network_config:type_name -> google.cloud.tpu.v2alpha1.NetworkConfig 14, // 6: google.cloud.tpu.v2alpha1.Node.service_account:type_name -> google.cloud.tpu.v2alpha1.ServiceAccount 63, // 7: google.cloud.tpu.v2alpha1.Node.create_time:type_name -> google.protobuf.Timestamp 10, // 8: google.cloud.tpu.v2alpha1.Node.scheduling_config:type_name -> google.cloud.tpu.v2alpha1.SchedulingConfig 11, // 9: google.cloud.tpu.v2alpha1.Node.network_endpoints:type_name -> google.cloud.tpu.v2alpha1.NetworkEndpoint 2, // 10: google.cloud.tpu.v2alpha1.Node.health:type_name -> google.cloud.tpu.v2alpha1.Node.Health 48, // 11: google.cloud.tpu.v2alpha1.Node.labels:type_name -> google.cloud.tpu.v2alpha1.Node.LabelsEntry 49, // 12: google.cloud.tpu.v2alpha1.Node.metadata:type_name -> google.cloud.tpu.v2alpha1.Node.MetadataEntry 9, // 13: google.cloud.tpu.v2alpha1.Node.data_disks:type_name -> google.cloud.tpu.v2alpha1.AttachedDisk 3, // 14: google.cloud.tpu.v2alpha1.Node.api_version:type_name -> google.cloud.tpu.v2alpha1.Node.ApiVersion 43, // 15: google.cloud.tpu.v2alpha1.Node.symptoms:type_name -> google.cloud.tpu.v2alpha1.Symptom 47, // 16: google.cloud.tpu.v2alpha1.Node.shielded_instance_config:type_name -> google.cloud.tpu.v2alpha1.ShieldedInstanceConfig 50, // 17: google.cloud.tpu.v2alpha1.QueuedResource.tpu:type_name -> google.cloud.tpu.v2alpha1.QueuedResource.Tpu 51, // 18: google.cloud.tpu.v2alpha1.QueuedResource.best_effort:type_name -> google.cloud.tpu.v2alpha1.QueuedResource.BestEffort 52, // 19: google.cloud.tpu.v2alpha1.QueuedResource.guaranteed:type_name -> google.cloud.tpu.v2alpha1.QueuedResource.Guaranteed 53, // 20: google.cloud.tpu.v2alpha1.QueuedResource.queueing_policy:type_name -> google.cloud.tpu.v2alpha1.QueuedResource.QueueingPolicy 17, // 21: google.cloud.tpu.v2alpha1.QueuedResource.state:type_name -> google.cloud.tpu.v2alpha1.QueuedResourceState 4, // 22: google.cloud.tpu.v2alpha1.QueuedResourceState.state:type_name -> google.cloud.tpu.v2alpha1.QueuedResourceState.State 55, // 23: google.cloud.tpu.v2alpha1.QueuedResourceState.creating_data:type_name -> google.cloud.tpu.v2alpha1.QueuedResourceState.CreatingData 56, // 24: google.cloud.tpu.v2alpha1.QueuedResourceState.accepted_data:type_name -> google.cloud.tpu.v2alpha1.QueuedResourceState.AcceptedData 57, // 25: google.cloud.tpu.v2alpha1.QueuedResourceState.provisioning_data:type_name -> google.cloud.tpu.v2alpha1.QueuedResourceState.ProvisioningData 58, // 26: google.cloud.tpu.v2alpha1.QueuedResourceState.failed_data:type_name -> google.cloud.tpu.v2alpha1.QueuedResourceState.FailedData 59, // 27: google.cloud.tpu.v2alpha1.QueuedResourceState.deleting_data:type_name -> google.cloud.tpu.v2alpha1.QueuedResourceState.DeletingData 60, // 28: google.cloud.tpu.v2alpha1.QueuedResourceState.active_data:type_name -> google.cloud.tpu.v2alpha1.QueuedResourceState.ActiveData 61, // 29: google.cloud.tpu.v2alpha1.QueuedResourceState.suspending_data:type_name -> google.cloud.tpu.v2alpha1.QueuedResourceState.SuspendingData 62, // 30: google.cloud.tpu.v2alpha1.QueuedResourceState.suspended_data:type_name -> google.cloud.tpu.v2alpha1.QueuedResourceState.SuspendedData 15, // 31: google.cloud.tpu.v2alpha1.ListNodesResponse.nodes:type_name -> google.cloud.tpu.v2alpha1.Node 15, // 32: google.cloud.tpu.v2alpha1.CreateNodeRequest.node:type_name -> google.cloud.tpu.v2alpha1.Node 64, // 33: google.cloud.tpu.v2alpha1.UpdateNodeRequest.update_mask:type_name -> google.protobuf.FieldMask 15, // 34: google.cloud.tpu.v2alpha1.UpdateNodeRequest.node:type_name -> google.cloud.tpu.v2alpha1.Node 16, // 35: google.cloud.tpu.v2alpha1.ListQueuedResourcesResponse.queued_resources:type_name -> google.cloud.tpu.v2alpha1.QueuedResource 16, // 36: google.cloud.tpu.v2alpha1.CreateQueuedResourceRequest.queued_resource:type_name -> google.cloud.tpu.v2alpha1.QueuedResource 31, // 37: google.cloud.tpu.v2alpha1.GenerateServiceIdentityResponse.identity:type_name -> google.cloud.tpu.v2alpha1.ServiceIdentity 34, // 38: google.cloud.tpu.v2alpha1.ListAcceleratorTypesResponse.accelerator_types:type_name -> google.cloud.tpu.v2alpha1.AcceleratorType 38, // 39: google.cloud.tpu.v2alpha1.ListRuntimeVersionsResponse.runtime_versions:type_name -> google.cloud.tpu.v2alpha1.RuntimeVersion 63, // 40: google.cloud.tpu.v2alpha1.OperationMetadata.create_time:type_name -> google.protobuf.Timestamp 63, // 41: google.cloud.tpu.v2alpha1.OperationMetadata.end_time:type_name -> google.protobuf.Timestamp 63, // 42: google.cloud.tpu.v2alpha1.Symptom.create_time:type_name -> google.protobuf.Timestamp 5, // 43: google.cloud.tpu.v2alpha1.Symptom.symptom_type:type_name -> google.cloud.tpu.v2alpha1.Symptom.SymptomType 6, // 44: google.cloud.tpu.v2alpha1.GetGuestAttributesResponse.guest_attributes:type_name -> google.cloud.tpu.v2alpha1.GuestAttributes 54, // 45: google.cloud.tpu.v2alpha1.QueuedResource.Tpu.node_spec:type_name -> google.cloud.tpu.v2alpha1.QueuedResource.Tpu.NodeSpec 65, // 46: google.cloud.tpu.v2alpha1.QueuedResource.Guaranteed.min_duration:type_name -> google.protobuf.Duration 65, // 47: google.cloud.tpu.v2alpha1.QueuedResource.QueueingPolicy.valid_until_duration:type_name -> google.protobuf.Duration 63, // 48: google.cloud.tpu.v2alpha1.QueuedResource.QueueingPolicy.valid_until_time:type_name -> google.protobuf.Timestamp 65, // 49: google.cloud.tpu.v2alpha1.QueuedResource.QueueingPolicy.valid_after_duration:type_name -> google.protobuf.Duration 63, // 50: google.cloud.tpu.v2alpha1.QueuedResource.QueueingPolicy.valid_after_time:type_name -> google.protobuf.Timestamp 66, // 51: google.cloud.tpu.v2alpha1.QueuedResource.QueueingPolicy.valid_interval:type_name -> google.type.Interval 15, // 52: google.cloud.tpu.v2alpha1.QueuedResource.Tpu.NodeSpec.node:type_name -> google.cloud.tpu.v2alpha1.Node 67, // 53: google.cloud.tpu.v2alpha1.QueuedResourceState.FailedData.error:type_name -> google.rpc.Status 18, // 54: google.cloud.tpu.v2alpha1.Tpu.ListNodes:input_type -> google.cloud.tpu.v2alpha1.ListNodesRequest 20, // 55: google.cloud.tpu.v2alpha1.Tpu.GetNode:input_type -> google.cloud.tpu.v2alpha1.GetNodeRequest 21, // 56: google.cloud.tpu.v2alpha1.Tpu.CreateNode:input_type -> google.cloud.tpu.v2alpha1.CreateNodeRequest 22, // 57: google.cloud.tpu.v2alpha1.Tpu.DeleteNode:input_type -> google.cloud.tpu.v2alpha1.DeleteNodeRequest 23, // 58: google.cloud.tpu.v2alpha1.Tpu.StopNode:input_type -> google.cloud.tpu.v2alpha1.StopNodeRequest 24, // 59: google.cloud.tpu.v2alpha1.Tpu.StartNode:input_type -> google.cloud.tpu.v2alpha1.StartNodeRequest 25, // 60: google.cloud.tpu.v2alpha1.Tpu.UpdateNode:input_type -> google.cloud.tpu.v2alpha1.UpdateNodeRequest 26, // 61: google.cloud.tpu.v2alpha1.Tpu.ListQueuedResources:input_type -> google.cloud.tpu.v2alpha1.ListQueuedResourcesRequest 28, // 62: google.cloud.tpu.v2alpha1.Tpu.GetQueuedResource:input_type -> google.cloud.tpu.v2alpha1.GetQueuedResourceRequest 29, // 63: google.cloud.tpu.v2alpha1.Tpu.CreateQueuedResource:input_type -> google.cloud.tpu.v2alpha1.CreateQueuedResourceRequest 30, // 64: google.cloud.tpu.v2alpha1.Tpu.DeleteQueuedResource:input_type -> google.cloud.tpu.v2alpha1.DeleteQueuedResourceRequest 32, // 65: google.cloud.tpu.v2alpha1.Tpu.GenerateServiceIdentity:input_type -> google.cloud.tpu.v2alpha1.GenerateServiceIdentityRequest 36, // 66: google.cloud.tpu.v2alpha1.Tpu.ListAcceleratorTypes:input_type -> google.cloud.tpu.v2alpha1.ListAcceleratorTypesRequest 35, // 67: google.cloud.tpu.v2alpha1.Tpu.GetAcceleratorType:input_type -> google.cloud.tpu.v2alpha1.GetAcceleratorTypeRequest 40, // 68: google.cloud.tpu.v2alpha1.Tpu.ListRuntimeVersions:input_type -> google.cloud.tpu.v2alpha1.ListRuntimeVersionsRequest 39, // 69: google.cloud.tpu.v2alpha1.Tpu.GetRuntimeVersion:input_type -> google.cloud.tpu.v2alpha1.GetRuntimeVersionRequest 44, // 70: google.cloud.tpu.v2alpha1.Tpu.GetGuestAttributes:input_type -> google.cloud.tpu.v2alpha1.GetGuestAttributesRequest 46, // 71: google.cloud.tpu.v2alpha1.Tpu.SimulateMaintenanceEvent:input_type -> google.cloud.tpu.v2alpha1.SimulateMaintenanceEventRequest 19, // 72: google.cloud.tpu.v2alpha1.Tpu.ListNodes:output_type -> google.cloud.tpu.v2alpha1.ListNodesResponse 15, // 73: google.cloud.tpu.v2alpha1.Tpu.GetNode:output_type -> google.cloud.tpu.v2alpha1.Node 68, // 74: google.cloud.tpu.v2alpha1.Tpu.CreateNode:output_type -> google.longrunning.Operation 68, // 75: google.cloud.tpu.v2alpha1.Tpu.DeleteNode:output_type -> google.longrunning.Operation 68, // 76: google.cloud.tpu.v2alpha1.Tpu.StopNode:output_type -> google.longrunning.Operation 68, // 77: google.cloud.tpu.v2alpha1.Tpu.StartNode:output_type -> google.longrunning.Operation 68, // 78: google.cloud.tpu.v2alpha1.Tpu.UpdateNode:output_type -> google.longrunning.Operation 27, // 79: google.cloud.tpu.v2alpha1.Tpu.ListQueuedResources:output_type -> google.cloud.tpu.v2alpha1.ListQueuedResourcesResponse 16, // 80: google.cloud.tpu.v2alpha1.Tpu.GetQueuedResource:output_type -> google.cloud.tpu.v2alpha1.QueuedResource 68, // 81: google.cloud.tpu.v2alpha1.Tpu.CreateQueuedResource:output_type -> google.longrunning.Operation 68, // 82: google.cloud.tpu.v2alpha1.Tpu.DeleteQueuedResource:output_type -> google.longrunning.Operation 33, // 83: google.cloud.tpu.v2alpha1.Tpu.GenerateServiceIdentity:output_type -> google.cloud.tpu.v2alpha1.GenerateServiceIdentityResponse 37, // 84: google.cloud.tpu.v2alpha1.Tpu.ListAcceleratorTypes:output_type -> google.cloud.tpu.v2alpha1.ListAcceleratorTypesResponse 34, // 85: google.cloud.tpu.v2alpha1.Tpu.GetAcceleratorType:output_type -> google.cloud.tpu.v2alpha1.AcceleratorType 41, // 86: google.cloud.tpu.v2alpha1.Tpu.ListRuntimeVersions:output_type -> google.cloud.tpu.v2alpha1.ListRuntimeVersionsResponse 38, // 87: google.cloud.tpu.v2alpha1.Tpu.GetRuntimeVersion:output_type -> google.cloud.tpu.v2alpha1.RuntimeVersion 45, // 88: google.cloud.tpu.v2alpha1.Tpu.GetGuestAttributes:output_type -> google.cloud.tpu.v2alpha1.GetGuestAttributesResponse 68, // 89: google.cloud.tpu.v2alpha1.Tpu.SimulateMaintenanceEvent:output_type -> google.longrunning.Operation 72, // [72:90] is the sub-list for method output_type 54, // [54:72] is the sub-list for method input_type 54, // [54:54] is the sub-list for extension type_name 54, // [54:54] is the sub-list for extension extendee 0, // [0:54] is the sub-list for field type_name } func init() { file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_init() } func file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_init() { if File_google_cloud_tpu_v2alpha1_cloud_tpu_proto != nil { return } if !protoimpl.UnsafeEnabled { file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GuestAttributes); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GuestAttributesValue); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GuestAttributesEntry); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AttachedDisk); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SchedulingConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NetworkEndpoint); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccessConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NetworkConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ServiceAccount); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Node); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueuedResource); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueuedResourceState); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListNodesRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListNodesResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetNodeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateNodeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteNodeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StopNodeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StartNodeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateNodeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListQueuedResourcesRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListQueuedResourcesResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetQueuedResourceRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateQueuedResourceRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteQueuedResourceRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ServiceIdentity); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GenerateServiceIdentityRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GenerateServiceIdentityResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AcceleratorType); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetAcceleratorTypeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListAcceleratorTypesRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListAcceleratorTypesResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuntimeVersion); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRuntimeVersionRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListRuntimeVersionsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListRuntimeVersionsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OperationMetadata); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Symptom); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetGuestAttributesRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetGuestAttributesResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SimulateMaintenanceEventRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ShieldedInstanceConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueuedResource_Tpu); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueuedResource_BestEffort); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueuedResource_Guaranteed); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueuedResource_QueueingPolicy); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueuedResource_Tpu_NodeSpec); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueuedResourceState_CreatingData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueuedResourceState_AcceptedData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueuedResourceState_ProvisioningData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueuedResourceState_FailedData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueuedResourceState_DeletingData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueuedResourceState_ActiveData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueuedResourceState_SuspendingData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueuedResourceState_SuspendedData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[10].OneofWrappers = []interface{}{ (*QueuedResource_Tpu_)(nil), (*QueuedResource_BestEffort_)(nil), (*QueuedResource_Guaranteed_)(nil), } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[11].OneofWrappers = []interface{}{ (*QueuedResourceState_CreatingData_)(nil), (*QueuedResourceState_AcceptedData_)(nil), (*QueuedResourceState_ProvisioningData_)(nil), (*QueuedResourceState_FailedData_)(nil), (*QueuedResourceState_DeletingData_)(nil), (*QueuedResourceState_ActiveData_)(nil), (*QueuedResourceState_SuspendingData_)(nil), (*QueuedResourceState_SuspendedData_)(nil), } file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes[47].OneofWrappers = []interface{}{ (*QueuedResource_QueueingPolicy_ValidUntilDuration)(nil), (*QueuedResource_QueueingPolicy_ValidUntilTime)(nil), (*QueuedResource_QueueingPolicy_ValidAfterDuration)(nil), (*QueuedResource_QueueingPolicy_ValidAfterTime)(nil), (*QueuedResource_QueueingPolicy_ValidInterval)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDesc, NumEnums: 6, NumMessages: 57, NumExtensions: 0, NumServices: 1, }, GoTypes: file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_goTypes, DependencyIndexes: file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_depIdxs, EnumInfos: file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_enumTypes, MessageInfos: file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_msgTypes, }.Build() File_google_cloud_tpu_v2alpha1_cloud_tpu_proto = out.File file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_rawDesc = nil file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_goTypes = nil file_google_cloud_tpu_v2alpha1_cloud_tpu_proto_depIdxs = nil } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context var _ grpc.ClientConnInterface // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. const _ = grpc.SupportPackageIsVersion6 // TpuClient is the client API for Tpu service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type TpuClient interface { // Lists nodes. ListNodes(ctx context.Context, in *ListNodesRequest, opts ...grpc.CallOption) (*ListNodesResponse, error) // Gets the details of a node. GetNode(ctx context.Context, in *GetNodeRequest, opts ...grpc.CallOption) (*Node, error) // Creates a node. CreateNode(ctx context.Context, in *CreateNodeRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) // Deletes a node. DeleteNode(ctx context.Context, in *DeleteNodeRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) // Stops a node. This operation is only available with single TPU nodes. StopNode(ctx context.Context, in *StopNodeRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) // Starts a node. StartNode(ctx context.Context, in *StartNodeRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) // Updates the configurations of a node. UpdateNode(ctx context.Context, in *UpdateNodeRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) // Lists queued resources. ListQueuedResources(ctx context.Context, in *ListQueuedResourcesRequest, opts ...grpc.CallOption) (*ListQueuedResourcesResponse, error) // Gets details of a queued resource. GetQueuedResource(ctx context.Context, in *GetQueuedResourceRequest, opts ...grpc.CallOption) (*QueuedResource, error) // Creates a QueuedResource TPU instance. CreateQueuedResource(ctx context.Context, in *CreateQueuedResourceRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) // Deletes a QueuedResource TPU instance. DeleteQueuedResource(ctx context.Context, in *DeleteQueuedResourceRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) // Generates the Cloud TPU service identity for the project. GenerateServiceIdentity(ctx context.Context, in *GenerateServiceIdentityRequest, opts ...grpc.CallOption) (*GenerateServiceIdentityResponse, error) // Lists accelerator types supported by this API. ListAcceleratorTypes(ctx context.Context, in *ListAcceleratorTypesRequest, opts ...grpc.CallOption) (*ListAcceleratorTypesResponse, error) // Gets AcceleratorType. GetAcceleratorType(ctx context.Context, in *GetAcceleratorTypeRequest, opts ...grpc.CallOption) (*AcceleratorType, error) // Lists runtime versions supported by this API. ListRuntimeVersions(ctx context.Context, in *ListRuntimeVersionsRequest, opts ...grpc.CallOption) (*ListRuntimeVersionsResponse, error) // Gets a runtime version. GetRuntimeVersion(ctx context.Context, in *GetRuntimeVersionRequest, opts ...grpc.CallOption) (*RuntimeVersion, error) // Retrieves the guest attributes for the node. GetGuestAttributes(ctx context.Context, in *GetGuestAttributesRequest, opts ...grpc.CallOption) (*GetGuestAttributesResponse, error) // Simulates a maintenance event. SimulateMaintenanceEvent(ctx context.Context, in *SimulateMaintenanceEventRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) } type tpuClient struct { cc grpc.ClientConnInterface } func NewTpuClient(cc grpc.ClientConnInterface) TpuClient { return &tpuClient{cc} } func (c *tpuClient) ListNodes(ctx context.Context, in *ListNodesRequest, opts ...grpc.CallOption) (*ListNodesResponse, error) { out := new(ListNodesResponse) err := c.cc.Invoke(ctx, "/google.cloud.tpu.v2alpha1.Tpu/ListNodes", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *tpuClient) GetNode(ctx context.Context, in *GetNodeRequest, opts ...grpc.CallOption) (*Node, error) { out := new(Node) err := c.cc.Invoke(ctx, "/google.cloud.tpu.v2alpha1.Tpu/GetNode", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *tpuClient) CreateNode(ctx context.Context, in *CreateNodeRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { out := new(longrunning.Operation) err := c.cc.Invoke(ctx, "/google.cloud.tpu.v2alpha1.Tpu/CreateNode", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *tpuClient) DeleteNode(ctx context.Context, in *DeleteNodeRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { out := new(longrunning.Operation) err := c.cc.Invoke(ctx, "/google.cloud.tpu.v2alpha1.Tpu/DeleteNode", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *tpuClient) StopNode(ctx context.Context, in *StopNodeRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { out := new(longrunning.Operation) err := c.cc.Invoke(ctx, "/google.cloud.tpu.v2alpha1.Tpu/StopNode", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *tpuClient) StartNode(ctx context.Context, in *StartNodeRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { out := new(longrunning.Operation) err := c.cc.Invoke(ctx, "/google.cloud.tpu.v2alpha1.Tpu/StartNode", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *tpuClient) UpdateNode(ctx context.Context, in *UpdateNodeRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { out := new(longrunning.Operation) err := c.cc.Invoke(ctx, "/google.cloud.tpu.v2alpha1.Tpu/UpdateNode", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *tpuClient) ListQueuedResources(ctx context.Context, in *ListQueuedResourcesRequest, opts ...grpc.CallOption) (*ListQueuedResourcesResponse, error) { out := new(ListQueuedResourcesResponse) err := c.cc.Invoke(ctx, "/google.cloud.tpu.v2alpha1.Tpu/ListQueuedResources", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *tpuClient) GetQueuedResource(ctx context.Context, in *GetQueuedResourceRequest, opts ...grpc.CallOption) (*QueuedResource, error) { out := new(QueuedResource) err := c.cc.Invoke(ctx, "/google.cloud.tpu.v2alpha1.Tpu/GetQueuedResource", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *tpuClient) CreateQueuedResource(ctx context.Context, in *CreateQueuedResourceRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { out := new(longrunning.Operation) err := c.cc.Invoke(ctx, "/google.cloud.tpu.v2alpha1.Tpu/CreateQueuedResource", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *tpuClient) DeleteQueuedResource(ctx context.Context, in *DeleteQueuedResourceRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { out := new(longrunning.Operation) err := c.cc.Invoke(ctx, "/google.cloud.tpu.v2alpha1.Tpu/DeleteQueuedResource", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *tpuClient) GenerateServiceIdentity(ctx context.Context, in *GenerateServiceIdentityRequest, opts ...grpc.CallOption) (*GenerateServiceIdentityResponse, error) { out := new(GenerateServiceIdentityResponse) err := c.cc.Invoke(ctx, "/google.cloud.tpu.v2alpha1.Tpu/GenerateServiceIdentity", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *tpuClient) ListAcceleratorTypes(ctx context.Context, in *ListAcceleratorTypesRequest, opts ...grpc.CallOption) (*ListAcceleratorTypesResponse, error) { out := new(ListAcceleratorTypesResponse) err := c.cc.Invoke(ctx, "/google.cloud.tpu.v2alpha1.Tpu/ListAcceleratorTypes", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *tpuClient) GetAcceleratorType(ctx context.Context, in *GetAcceleratorTypeRequest, opts ...grpc.CallOption) (*AcceleratorType, error) { out := new(AcceleratorType) err := c.cc.Invoke(ctx, "/google.cloud.tpu.v2alpha1.Tpu/GetAcceleratorType", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *tpuClient) ListRuntimeVersions(ctx context.Context, in *ListRuntimeVersionsRequest, opts ...grpc.CallOption) (*ListRuntimeVersionsResponse, error) { out := new(ListRuntimeVersionsResponse) err := c.cc.Invoke(ctx, "/google.cloud.tpu.v2alpha1.Tpu/ListRuntimeVersions", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *tpuClient) GetRuntimeVersion(ctx context.Context, in *GetRuntimeVersionRequest, opts ...grpc.CallOption) (*RuntimeVersion, error) { out := new(RuntimeVersion) err := c.cc.Invoke(ctx, "/google.cloud.tpu.v2alpha1.Tpu/GetRuntimeVersion", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *tpuClient) GetGuestAttributes(ctx context.Context, in *GetGuestAttributesRequest, opts ...grpc.CallOption) (*GetGuestAttributesResponse, error) { out := new(GetGuestAttributesResponse) err := c.cc.Invoke(ctx, "/google.cloud.tpu.v2alpha1.Tpu/GetGuestAttributes", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *tpuClient) SimulateMaintenanceEvent(ctx context.Context, in *SimulateMaintenanceEventRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { out := new(longrunning.Operation) err := c.cc.Invoke(ctx, "/google.cloud.tpu.v2alpha1.Tpu/SimulateMaintenanceEvent", in, out, opts...) if err != nil { return nil, err } return out, nil } // TpuServer is the server API for Tpu service. type TpuServer interface { // Lists nodes. ListNodes(context.Context, *ListNodesRequest) (*ListNodesResponse, error) // Gets the details of a node. GetNode(context.Context, *GetNodeRequest) (*Node, error) // Creates a node. CreateNode(context.Context, *CreateNodeRequest) (*longrunning.Operation, error) // Deletes a node. DeleteNode(context.Context, *DeleteNodeRequest) (*longrunning.Operation, error) // Stops a node. This operation is only available with single TPU nodes. StopNode(context.Context, *StopNodeRequest) (*longrunning.Operation, error) // Starts a node. StartNode(context.Context, *StartNodeRequest) (*longrunning.Operation, error) // Updates the configurations of a node. UpdateNode(context.Context, *UpdateNodeRequest) (*longrunning.Operation, error) // Lists queued resources. ListQueuedResources(context.Context, *ListQueuedResourcesRequest) (*ListQueuedResourcesResponse, error) // Gets details of a queued resource. GetQueuedResource(context.Context, *GetQueuedResourceRequest) (*QueuedResource, error) // Creates a QueuedResource TPU instance. CreateQueuedResource(context.Context, *CreateQueuedResourceRequest) (*longrunning.Operation, error) // Deletes a QueuedResource TPU instance. DeleteQueuedResource(context.Context, *DeleteQueuedResourceRequest) (*longrunning.Operation, error) // Generates the Cloud TPU service identity for the project. GenerateServiceIdentity(context.Context, *GenerateServiceIdentityRequest) (*GenerateServiceIdentityResponse, error) // Lists accelerator types supported by this API. ListAcceleratorTypes(context.Context, *ListAcceleratorTypesRequest) (*ListAcceleratorTypesResponse, error) // Gets AcceleratorType. GetAcceleratorType(context.Context, *GetAcceleratorTypeRequest) (*AcceleratorType, error) // Lists runtime versions supported by this API. ListRuntimeVersions(context.Context, *ListRuntimeVersionsRequest) (*ListRuntimeVersionsResponse, error) // Gets a runtime version. GetRuntimeVersion(context.Context, *GetRuntimeVersionRequest) (*RuntimeVersion, error) // Retrieves the guest attributes for the node. GetGuestAttributes(context.Context, *GetGuestAttributesRequest) (*GetGuestAttributesResponse, error) // Simulates a maintenance event. SimulateMaintenanceEvent(context.Context, *SimulateMaintenanceEventRequest) (*longrunning.Operation, error) } // UnimplementedTpuServer can be embedded to have forward compatible implementations. type UnimplementedTpuServer struct { } func (*UnimplementedTpuServer) ListNodes(context.Context, *ListNodesRequest) (*ListNodesResponse, error) { return nil, status1.Errorf(codes.Unimplemented, "method ListNodes not implemented") } func (*UnimplementedTpuServer) GetNode(context.Context, *GetNodeRequest) (*Node, error) { return nil, status1.Errorf(codes.Unimplemented, "method GetNode not implemented") } func (*UnimplementedTpuServer) CreateNode(context.Context, *CreateNodeRequest) (*longrunning.Operation, error) { return nil, status1.Errorf(codes.Unimplemented, "method CreateNode not implemented") } func (*UnimplementedTpuServer) DeleteNode(context.Context, *DeleteNodeRequest) (*longrunning.Operation, error) { return nil, status1.Errorf(codes.Unimplemented, "method DeleteNode not implemented") } func (*UnimplementedTpuServer) StopNode(context.Context, *StopNodeRequest) (*longrunning.Operation, error) { return nil, status1.Errorf(codes.Unimplemented, "method StopNode not implemented") } func (*UnimplementedTpuServer) StartNode(context.Context, *StartNodeRequest) (*longrunning.Operation, error) { return nil, status1.Errorf(codes.Unimplemented, "method StartNode not implemented") } func (*UnimplementedTpuServer) UpdateNode(context.Context, *UpdateNodeRequest) (*longrunning.Operation, error) { return nil, status1.Errorf(codes.Unimplemented, "method UpdateNode not implemented") } func (*UnimplementedTpuServer) ListQueuedResources(context.Context, *ListQueuedResourcesRequest) (*ListQueuedResourcesResponse, error) { return nil, status1.Errorf(codes.Unimplemented, "method ListQueuedResources not implemented") } func (*UnimplementedTpuServer) GetQueuedResource(context.Context, *GetQueuedResourceRequest) (*QueuedResource, error) { return nil, status1.Errorf(codes.Unimplemented, "method GetQueuedResource not implemented") } func (*UnimplementedTpuServer) CreateQueuedResource(context.Context, *CreateQueuedResourceRequest) (*longrunning.Operation, error) { return nil, status1.Errorf(codes.Unimplemented, "method CreateQueuedResource not implemented") } func (*UnimplementedTpuServer) DeleteQueuedResource(context.Context, *DeleteQueuedResourceRequest) (*longrunning.Operation, error) { return nil, status1.Errorf(codes.Unimplemented, "method DeleteQueuedResource not implemented") } func (*UnimplementedTpuServer) GenerateServiceIdentity(context.Context, *GenerateServiceIdentityRequest) (*GenerateServiceIdentityResponse, error) { return nil, status1.Errorf(codes.Unimplemented, "method GenerateServiceIdentity not implemented") } func (*UnimplementedTpuServer) ListAcceleratorTypes(context.Context, *ListAcceleratorTypesRequest) (*ListAcceleratorTypesResponse, error) { return nil, status1.Errorf(codes.Unimplemented, "method ListAcceleratorTypes not implemented") } func (*UnimplementedTpuServer) GetAcceleratorType(context.Context, *GetAcceleratorTypeRequest) (*AcceleratorType, error) { return nil, status1.Errorf(codes.Unimplemented, "method GetAcceleratorType not implemented") } func (*UnimplementedTpuServer) ListRuntimeVersions(context.Context, *ListRuntimeVersionsRequest) (*ListRuntimeVersionsResponse, error) { return nil, status1.Errorf(codes.Unimplemented, "method ListRuntimeVersions not implemented") } func (*UnimplementedTpuServer) GetRuntimeVersion(context.Context, *GetRuntimeVersionRequest) (*RuntimeVersion, error) { return nil, status1.Errorf(codes.Unimplemented, "method GetRuntimeVersion not implemented") } func (*UnimplementedTpuServer) GetGuestAttributes(context.Context, *GetGuestAttributesRequest) (*GetGuestAttributesResponse, error) { return nil, status1.Errorf(codes.Unimplemented, "method GetGuestAttributes not implemented") } func (*UnimplementedTpuServer) SimulateMaintenanceEvent(context.Context, *SimulateMaintenanceEventRequest) (*longrunning.Operation, error) { return nil, status1.Errorf(codes.Unimplemented, "method SimulateMaintenanceEvent not implemented") } func RegisterTpuServer(s *grpc.Server, srv TpuServer) { s.RegisterService(&_Tpu_serviceDesc, srv) } func _Tpu_ListNodes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ListNodesRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(TpuServer).ListNodes(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.tpu.v2alpha1.Tpu/ListNodes", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TpuServer).ListNodes(ctx, req.(*ListNodesRequest)) } return interceptor(ctx, in, info, handler) } func _Tpu_GetNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetNodeRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(TpuServer).GetNode(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.tpu.v2alpha1.Tpu/GetNode", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TpuServer).GetNode(ctx, req.(*GetNodeRequest)) } return interceptor(ctx, in, info, handler) } func _Tpu_CreateNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CreateNodeRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(TpuServer).CreateNode(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.tpu.v2alpha1.Tpu/CreateNode", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TpuServer).CreateNode(ctx, req.(*CreateNodeRequest)) } return interceptor(ctx, in, info, handler) } func _Tpu_DeleteNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(DeleteNodeRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(TpuServer).DeleteNode(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.tpu.v2alpha1.Tpu/DeleteNode", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TpuServer).DeleteNode(ctx, req.(*DeleteNodeRequest)) } return interceptor(ctx, in, info, handler) } func _Tpu_StopNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(StopNodeRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(TpuServer).StopNode(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.tpu.v2alpha1.Tpu/StopNode", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TpuServer).StopNode(ctx, req.(*StopNodeRequest)) } return interceptor(ctx, in, info, handler) } func _Tpu_StartNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(StartNodeRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(TpuServer).StartNode(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.tpu.v2alpha1.Tpu/StartNode", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TpuServer).StartNode(ctx, req.(*StartNodeRequest)) } return interceptor(ctx, in, info, handler) } func _Tpu_UpdateNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(UpdateNodeRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(TpuServer).UpdateNode(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.tpu.v2alpha1.Tpu/UpdateNode", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TpuServer).UpdateNode(ctx, req.(*UpdateNodeRequest)) } return interceptor(ctx, in, info, handler) } func _Tpu_ListQueuedResources_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ListQueuedResourcesRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(TpuServer).ListQueuedResources(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.tpu.v2alpha1.Tpu/ListQueuedResources", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TpuServer).ListQueuedResources(ctx, req.(*ListQueuedResourcesRequest)) } return interceptor(ctx, in, info, handler) } func _Tpu_GetQueuedResource_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetQueuedResourceRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(TpuServer).GetQueuedResource(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.tpu.v2alpha1.Tpu/GetQueuedResource", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TpuServer).GetQueuedResource(ctx, req.(*GetQueuedResourceRequest)) } return interceptor(ctx, in, info, handler) } func _Tpu_CreateQueuedResource_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CreateQueuedResourceRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(TpuServer).CreateQueuedResource(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.tpu.v2alpha1.Tpu/CreateQueuedResource", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TpuServer).CreateQueuedResource(ctx, req.(*CreateQueuedResourceRequest)) } return interceptor(ctx, in, info, handler) } func _Tpu_DeleteQueuedResource_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(DeleteQueuedResourceRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(TpuServer).DeleteQueuedResource(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.tpu.v2alpha1.Tpu/DeleteQueuedResource", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TpuServer).DeleteQueuedResource(ctx, req.(*DeleteQueuedResourceRequest)) } return interceptor(ctx, in, info, handler) } func _Tpu_GenerateServiceIdentity_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GenerateServiceIdentityRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(TpuServer).GenerateServiceIdentity(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.tpu.v2alpha1.Tpu/GenerateServiceIdentity", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TpuServer).GenerateServiceIdentity(ctx, req.(*GenerateServiceIdentityRequest)) } return interceptor(ctx, in, info, handler) } func _Tpu_ListAcceleratorTypes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ListAcceleratorTypesRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(TpuServer).ListAcceleratorTypes(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.tpu.v2alpha1.Tpu/ListAcceleratorTypes", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TpuServer).ListAcceleratorTypes(ctx, req.(*ListAcceleratorTypesRequest)) } return interceptor(ctx, in, info, handler) } func _Tpu_GetAcceleratorType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetAcceleratorTypeRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(TpuServer).GetAcceleratorType(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.tpu.v2alpha1.Tpu/GetAcceleratorType", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TpuServer).GetAcceleratorType(ctx, req.(*GetAcceleratorTypeRequest)) } return interceptor(ctx, in, info, handler) } func _Tpu_ListRuntimeVersions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ListRuntimeVersionsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(TpuServer).ListRuntimeVersions(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.tpu.v2alpha1.Tpu/ListRuntimeVersions", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TpuServer).ListRuntimeVersions(ctx, req.(*ListRuntimeVersionsRequest)) } return interceptor(ctx, in, info, handler) } func _Tpu_GetRuntimeVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetRuntimeVersionRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(TpuServer).GetRuntimeVersion(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.tpu.v2alpha1.Tpu/GetRuntimeVersion", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TpuServer).GetRuntimeVersion(ctx, req.(*GetRuntimeVersionRequest)) } return interceptor(ctx, in, info, handler) } func _Tpu_GetGuestAttributes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetGuestAttributesRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(TpuServer).GetGuestAttributes(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.tpu.v2alpha1.Tpu/GetGuestAttributes", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TpuServer).GetGuestAttributes(ctx, req.(*GetGuestAttributesRequest)) } return interceptor(ctx, in, info, handler) } func _Tpu_SimulateMaintenanceEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SimulateMaintenanceEventRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(TpuServer).SimulateMaintenanceEvent(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.tpu.v2alpha1.Tpu/SimulateMaintenanceEvent", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TpuServer).SimulateMaintenanceEvent(ctx, req.(*SimulateMaintenanceEventRequest)) } return interceptor(ctx, in, info, handler) } var _Tpu_serviceDesc = grpc.ServiceDesc{ ServiceName: "google.cloud.tpu.v2alpha1.Tpu", HandlerType: (*TpuServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "ListNodes", Handler: _Tpu_ListNodes_Handler, }, { MethodName: "GetNode", Handler: _Tpu_GetNode_Handler, }, { MethodName: "CreateNode", Handler: _Tpu_CreateNode_Handler, }, { MethodName: "DeleteNode", Handler: _Tpu_DeleteNode_Handler, }, { MethodName: "StopNode", Handler: _Tpu_StopNode_Handler, }, { MethodName: "StartNode", Handler: _Tpu_StartNode_Handler, }, { MethodName: "UpdateNode", Handler: _Tpu_UpdateNode_Handler, }, { MethodName: "ListQueuedResources", Handler: _Tpu_ListQueuedResources_Handler, }, { MethodName: "GetQueuedResource", Handler: _Tpu_GetQueuedResource_Handler, }, { MethodName: "CreateQueuedResource", Handler: _Tpu_CreateQueuedResource_Handler, }, { MethodName: "DeleteQueuedResource", Handler: _Tpu_DeleteQueuedResource_Handler, }, { MethodName: "GenerateServiceIdentity", Handler: _Tpu_GenerateServiceIdentity_Handler, }, { MethodName: "ListAcceleratorTypes", Handler: _Tpu_ListAcceleratorTypes_Handler, }, { MethodName: "GetAcceleratorType", Handler: _Tpu_GetAcceleratorType_Handler, }, { MethodName: "ListRuntimeVersions", Handler: _Tpu_ListRuntimeVersions_Handler, }, { MethodName: "GetRuntimeVersion", Handler: _Tpu_GetRuntimeVersion_Handler, }, { MethodName: "GetGuestAttributes", Handler: _Tpu_GetGuestAttributes_Handler, }, { MethodName: "SimulateMaintenanceEvent", Handler: _Tpu_SimulateMaintenanceEvent_Handler, }, }, Streams: []grpc.StreamDesc{}, Metadata: "google/cloud/tpu/v2alpha1/cloud_tpu.proto", }