blob: 3b0e6f6ffa37bb506ece1f5ae96e8a1117deef34 [file] [log] [blame]
// Copyright 2019 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.22.0
// protoc v3.12.2
// source: google/cloud/iot/v1/device_manager.proto
package iot
import (
context "context"
reflect "reflect"
sync "sync"
proto "github.com/golang/protobuf/proto"
empty "github.com/golang/protobuf/ptypes/empty"
_ "google.golang.org/genproto/googleapis/api/annotations"
v1 "google.golang.org/genproto/googleapis/iam/v1"
_ "google.golang.org/genproto/googleapis/rpc/status"
field_mask "google.golang.org/genproto/protobuf/field_mask"
grpc "google.golang.org/grpc"
codes "google.golang.org/grpc/codes"
status "google.golang.org/grpc/status"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
)
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)
)
// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const _ = proto.ProtoPackageIsVersion4
// Request for `CreateDeviceRegistry`.
type CreateDeviceRegistryRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The project and cloud region where this device registry must be created.
// For example, `projects/example-project/locations/us-central1`.
Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
// Required. The device registry. The field `name` must be empty. The server will
// generate that field from the device registry `id` provided and the
// `parent` field.
DeviceRegistry *DeviceRegistry `protobuf:"bytes,2,opt,name=device_registry,json=deviceRegistry,proto3" json:"device_registry,omitempty"`
}
func (x *CreateDeviceRegistryRequest) Reset() {
*x = CreateDeviceRegistryRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_iot_v1_device_manager_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CreateDeviceRegistryRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CreateDeviceRegistryRequest) ProtoMessage() {}
func (x *CreateDeviceRegistryRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_iot_v1_device_manager_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 CreateDeviceRegistryRequest.ProtoReflect.Descriptor instead.
func (*CreateDeviceRegistryRequest) Descriptor() ([]byte, []int) {
return file_google_cloud_iot_v1_device_manager_proto_rawDescGZIP(), []int{0}
}
func (x *CreateDeviceRegistryRequest) GetParent() string {
if x != nil {
return x.Parent
}
return ""
}
func (x *CreateDeviceRegistryRequest) GetDeviceRegistry() *DeviceRegistry {
if x != nil {
return x.DeviceRegistry
}
return nil
}
// Request for `GetDeviceRegistry`.
type GetDeviceRegistryRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The name of the device registry. For example,
// `projects/example-project/locations/us-central1/registries/my-registry`.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}
func (x *GetDeviceRegistryRequest) Reset() {
*x = GetDeviceRegistryRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_iot_v1_device_manager_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetDeviceRegistryRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetDeviceRegistryRequest) ProtoMessage() {}
func (x *GetDeviceRegistryRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_iot_v1_device_manager_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 GetDeviceRegistryRequest.ProtoReflect.Descriptor instead.
func (*GetDeviceRegistryRequest) Descriptor() ([]byte, []int) {
return file_google_cloud_iot_v1_device_manager_proto_rawDescGZIP(), []int{1}
}
func (x *GetDeviceRegistryRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
// Request for `DeleteDeviceRegistry`.
type DeleteDeviceRegistryRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The name of the device registry. For example,
// `projects/example-project/locations/us-central1/registries/my-registry`.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}
func (x *DeleteDeviceRegistryRequest) Reset() {
*x = DeleteDeviceRegistryRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_iot_v1_device_manager_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeleteDeviceRegistryRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeleteDeviceRegistryRequest) ProtoMessage() {}
func (x *DeleteDeviceRegistryRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_iot_v1_device_manager_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 DeleteDeviceRegistryRequest.ProtoReflect.Descriptor instead.
func (*DeleteDeviceRegistryRequest) Descriptor() ([]byte, []int) {
return file_google_cloud_iot_v1_device_manager_proto_rawDescGZIP(), []int{2}
}
func (x *DeleteDeviceRegistryRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
// Request for `UpdateDeviceRegistry`.
type UpdateDeviceRegistryRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The new values for the device registry. The `id` field must be empty, and
// the `name` field must indicate the path of the resource. For example,
// `projects/example-project/locations/us-central1/registries/my-registry`.
DeviceRegistry *DeviceRegistry `protobuf:"bytes,1,opt,name=device_registry,json=deviceRegistry,proto3" json:"device_registry,omitempty"`
// Required. Only updates the `device_registry` fields indicated by this mask.
// The field mask must not be empty, and it must not contain fields that
// are immutable or only set by the server.
// Mutable top-level fields: `event_notification_config`, `http_config`,
// `mqtt_config`, and `state_notification_config`.
UpdateMask *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
}
func (x *UpdateDeviceRegistryRequest) Reset() {
*x = UpdateDeviceRegistryRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_iot_v1_device_manager_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UpdateDeviceRegistryRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UpdateDeviceRegistryRequest) ProtoMessage() {}
func (x *UpdateDeviceRegistryRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_iot_v1_device_manager_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 UpdateDeviceRegistryRequest.ProtoReflect.Descriptor instead.
func (*UpdateDeviceRegistryRequest) Descriptor() ([]byte, []int) {
return file_google_cloud_iot_v1_device_manager_proto_rawDescGZIP(), []int{3}
}
func (x *UpdateDeviceRegistryRequest) GetDeviceRegistry() *DeviceRegistry {
if x != nil {
return x.DeviceRegistry
}
return nil
}
func (x *UpdateDeviceRegistryRequest) GetUpdateMask() *field_mask.FieldMask {
if x != nil {
return x.UpdateMask
}
return nil
}
// Request for `ListDeviceRegistries`.
type ListDeviceRegistriesRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The project and cloud region path. For example,
// `projects/example-project/locations/us-central1`.
Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
// The maximum number of registries to return in the response. If this value
// is zero, the service will select a default size. A call may return fewer
// objects than requested. A non-empty `next_page_token` in the response
// indicates that more data is available.
PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
// The value returned by the last `ListDeviceRegistriesResponse`; indicates
// that this is a continuation of a prior `ListDeviceRegistries` call and
// the system should return the next page of data.
PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
}
func (x *ListDeviceRegistriesRequest) Reset() {
*x = ListDeviceRegistriesRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_iot_v1_device_manager_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListDeviceRegistriesRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListDeviceRegistriesRequest) ProtoMessage() {}
func (x *ListDeviceRegistriesRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_iot_v1_device_manager_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 ListDeviceRegistriesRequest.ProtoReflect.Descriptor instead.
func (*ListDeviceRegistriesRequest) Descriptor() ([]byte, []int) {
return file_google_cloud_iot_v1_device_manager_proto_rawDescGZIP(), []int{4}
}
func (x *ListDeviceRegistriesRequest) GetParent() string {
if x != nil {
return x.Parent
}
return ""
}
func (x *ListDeviceRegistriesRequest) GetPageSize() int32 {
if x != nil {
return x.PageSize
}
return 0
}
func (x *ListDeviceRegistriesRequest) GetPageToken() string {
if x != nil {
return x.PageToken
}
return ""
}
// Response for `ListDeviceRegistries`.
type ListDeviceRegistriesResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The registries that matched the query.
DeviceRegistries []*DeviceRegistry `protobuf:"bytes,1,rep,name=device_registries,json=deviceRegistries,proto3" json:"device_registries,omitempty"`
// If not empty, indicates that there may be more registries that match the
// request; this value should be passed in a new
// `ListDeviceRegistriesRequest`.
NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
}
func (x *ListDeviceRegistriesResponse) Reset() {
*x = ListDeviceRegistriesResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_iot_v1_device_manager_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListDeviceRegistriesResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListDeviceRegistriesResponse) ProtoMessage() {}
func (x *ListDeviceRegistriesResponse) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_iot_v1_device_manager_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 ListDeviceRegistriesResponse.ProtoReflect.Descriptor instead.
func (*ListDeviceRegistriesResponse) Descriptor() ([]byte, []int) {
return file_google_cloud_iot_v1_device_manager_proto_rawDescGZIP(), []int{5}
}
func (x *ListDeviceRegistriesResponse) GetDeviceRegistries() []*DeviceRegistry {
if x != nil {
return x.DeviceRegistries
}
return nil
}
func (x *ListDeviceRegistriesResponse) GetNextPageToken() string {
if x != nil {
return x.NextPageToken
}
return ""
}
// Request for `CreateDevice`.
type CreateDeviceRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The name of the device registry where this device should be created.
// For example,
// `projects/example-project/locations/us-central1/registries/my-registry`.
Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
// Required. The device registration details. The field `name` must be empty. The server
// generates `name` from the device registry `id` and the
// `parent` field.
Device *Device `protobuf:"bytes,2,opt,name=device,proto3" json:"device,omitempty"`
}
func (x *CreateDeviceRequest) Reset() {
*x = CreateDeviceRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_iot_v1_device_manager_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CreateDeviceRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CreateDeviceRequest) ProtoMessage() {}
func (x *CreateDeviceRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_iot_v1_device_manager_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 CreateDeviceRequest.ProtoReflect.Descriptor instead.
func (*CreateDeviceRequest) Descriptor() ([]byte, []int) {
return file_google_cloud_iot_v1_device_manager_proto_rawDescGZIP(), []int{6}
}
func (x *CreateDeviceRequest) GetParent() string {
if x != nil {
return x.Parent
}
return ""
}
func (x *CreateDeviceRequest) GetDevice() *Device {
if x != nil {
return x.Device
}
return nil
}
// Request for `GetDevice`.
type GetDeviceRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The name of the device. For example,
// `projects/p0/locations/us-central1/registries/registry0/devices/device0` or
// `projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// The fields of the `Device` resource to be returned in the response. If the
// field mask is unset or empty, all fields are returned.
FieldMask *field_mask.FieldMask `protobuf:"bytes,2,opt,name=field_mask,json=fieldMask,proto3" json:"field_mask,omitempty"`
}
func (x *GetDeviceRequest) Reset() {
*x = GetDeviceRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_iot_v1_device_manager_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetDeviceRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetDeviceRequest) ProtoMessage() {}
func (x *GetDeviceRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_iot_v1_device_manager_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 GetDeviceRequest.ProtoReflect.Descriptor instead.
func (*GetDeviceRequest) Descriptor() ([]byte, []int) {
return file_google_cloud_iot_v1_device_manager_proto_rawDescGZIP(), []int{7}
}
func (x *GetDeviceRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *GetDeviceRequest) GetFieldMask() *field_mask.FieldMask {
if x != nil {
return x.FieldMask
}
return nil
}
// Request for `UpdateDevice`.
type UpdateDeviceRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The new values for the device. The `id` and `num_id` fields must
// be empty, and the field `name` must specify the name path. For example,
// `projects/p0/locations/us-central1/registries/registry0/devices/device0`or
// `projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.
Device *Device `protobuf:"bytes,2,opt,name=device,proto3" json:"device,omitempty"`
// Required. Only updates the `device` fields indicated by this mask.
// The field mask must not be empty, and it must not contain fields that
// are immutable or only set by the server.
// Mutable top-level fields: `credentials`, `blocked`, and `metadata`
UpdateMask *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
}
func (x *UpdateDeviceRequest) Reset() {
*x = UpdateDeviceRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_iot_v1_device_manager_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UpdateDeviceRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UpdateDeviceRequest) ProtoMessage() {}
func (x *UpdateDeviceRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_iot_v1_device_manager_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 UpdateDeviceRequest.ProtoReflect.Descriptor instead.
func (*UpdateDeviceRequest) Descriptor() ([]byte, []int) {
return file_google_cloud_iot_v1_device_manager_proto_rawDescGZIP(), []int{8}
}
func (x *UpdateDeviceRequest) GetDevice() *Device {
if x != nil {
return x.Device
}
return nil
}
func (x *UpdateDeviceRequest) GetUpdateMask() *field_mask.FieldMask {
if x != nil {
return x.UpdateMask
}
return nil
}
// Request for `DeleteDevice`.
type DeleteDeviceRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The name of the device. For example,
// `projects/p0/locations/us-central1/registries/registry0/devices/device0` or
// `projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}
func (x *DeleteDeviceRequest) Reset() {
*x = DeleteDeviceRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_iot_v1_device_manager_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeleteDeviceRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeleteDeviceRequest) ProtoMessage() {}
func (x *DeleteDeviceRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_iot_v1_device_manager_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 DeleteDeviceRequest.ProtoReflect.Descriptor instead.
func (*DeleteDeviceRequest) Descriptor() ([]byte, []int) {
return file_google_cloud_iot_v1_device_manager_proto_rawDescGZIP(), []int{9}
}
func (x *DeleteDeviceRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
// Request for `ListDevices`.
type ListDevicesRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The device registry path. Required. For example,
// `projects/my-project/locations/us-central1/registries/my-registry`.
Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
// A list of device numeric IDs. If empty, this field is ignored. Maximum
// IDs: 10,000.
DeviceNumIds []uint64 `protobuf:"varint,2,rep,packed,name=device_num_ids,json=deviceNumIds,proto3" json:"device_num_ids,omitempty"`
// A list of device string IDs. For example, `['device0', 'device12']`.
// If empty, this field is ignored. Maximum IDs: 10,000
DeviceIds []string `protobuf:"bytes,3,rep,name=device_ids,json=deviceIds,proto3" json:"device_ids,omitempty"`
// The fields of the `Device` resource to be returned in the response. The
// fields `id` and `num_id` are always returned, along with any
// other fields specified.
FieldMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=field_mask,json=fieldMask,proto3" json:"field_mask,omitempty"`
// Options related to gateways.
GatewayListOptions *GatewayListOptions `protobuf:"bytes,6,opt,name=gateway_list_options,json=gatewayListOptions,proto3" json:"gateway_list_options,omitempty"`
// The maximum number of devices to return in the response. If this value
// is zero, the service will select a default size. A call may return fewer
// objects than requested. A non-empty `next_page_token` in the response
// indicates that more data is available.
PageSize int32 `protobuf:"varint,100,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
// The value returned by the last `ListDevicesResponse`; indicates
// that this is a continuation of a prior `ListDevices` call and
// the system should return the next page of data.
PageToken string `protobuf:"bytes,101,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
}
func (x *ListDevicesRequest) Reset() {
*x = ListDevicesRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_iot_v1_device_manager_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListDevicesRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListDevicesRequest) ProtoMessage() {}
func (x *ListDevicesRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_iot_v1_device_manager_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 ListDevicesRequest.ProtoReflect.Descriptor instead.
func (*ListDevicesRequest) Descriptor() ([]byte, []int) {
return file_google_cloud_iot_v1_device_manager_proto_rawDescGZIP(), []int{10}
}
func (x *ListDevicesRequest) GetParent() string {
if x != nil {
return x.Parent
}
return ""
}
func (x *ListDevicesRequest) GetDeviceNumIds() []uint64 {
if x != nil {
return x.DeviceNumIds
}
return nil
}
func (x *ListDevicesRequest) GetDeviceIds() []string {
if x != nil {
return x.DeviceIds
}
return nil
}
func (x *ListDevicesRequest) GetFieldMask() *field_mask.FieldMask {
if x != nil {
return x.FieldMask
}
return nil
}
func (x *ListDevicesRequest) GetGatewayListOptions() *GatewayListOptions {
if x != nil {
return x.GatewayListOptions
}
return nil
}
func (x *ListDevicesRequest) GetPageSize() int32 {
if x != nil {
return x.PageSize
}
return 0
}
func (x *ListDevicesRequest) GetPageToken() string {
if x != nil {
return x.PageToken
}
return ""
}
// Options for limiting the list based on gateway type and associations.
type GatewayListOptions struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// If not set, all devices and gateways are returned. If set, the list is
// filtered based on gateway type and associations.
//
// Types that are assignable to Filter:
// *GatewayListOptions_GatewayType
// *GatewayListOptions_AssociationsGatewayId
// *GatewayListOptions_AssociationsDeviceId
Filter isGatewayListOptions_Filter `protobuf_oneof:"filter"`
}
func (x *GatewayListOptions) Reset() {
*x = GatewayListOptions{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_iot_v1_device_manager_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GatewayListOptions) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GatewayListOptions) ProtoMessage() {}
func (x *GatewayListOptions) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_iot_v1_device_manager_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 GatewayListOptions.ProtoReflect.Descriptor instead.
func (*GatewayListOptions) Descriptor() ([]byte, []int) {
return file_google_cloud_iot_v1_device_manager_proto_rawDescGZIP(), []int{11}
}
func (m *GatewayListOptions) GetFilter() isGatewayListOptions_Filter {
if m != nil {
return m.Filter
}
return nil
}
func (x *GatewayListOptions) GetGatewayType() GatewayType {
if x, ok := x.GetFilter().(*GatewayListOptions_GatewayType); ok {
return x.GatewayType
}
return GatewayType_GATEWAY_TYPE_UNSPECIFIED
}
func (x *GatewayListOptions) GetAssociationsGatewayId() string {
if x, ok := x.GetFilter().(*GatewayListOptions_AssociationsGatewayId); ok {
return x.AssociationsGatewayId
}
return ""
}
func (x *GatewayListOptions) GetAssociationsDeviceId() string {
if x, ok := x.GetFilter().(*GatewayListOptions_AssociationsDeviceId); ok {
return x.AssociationsDeviceId
}
return ""
}
type isGatewayListOptions_Filter interface {
isGatewayListOptions_Filter()
}
type GatewayListOptions_GatewayType struct {
// If `GATEWAY` is specified, only gateways are returned. If `NON_GATEWAY`
// is specified, only non-gateway devices are returned. If
// `GATEWAY_TYPE_UNSPECIFIED` is specified, all devices are returned.
GatewayType GatewayType `protobuf:"varint,1,opt,name=gateway_type,json=gatewayType,proto3,enum=google.cloud.iot.v1.GatewayType,oneof"`
}
type GatewayListOptions_AssociationsGatewayId struct {
// If set, only devices associated with the specified gateway are returned.
// The gateway ID can be numeric (`num_id`) or the user-defined string
// (`id`). For example, if `123` is specified, only devices bound to the
// gateway with `num_id` 123 are returned.
AssociationsGatewayId string `protobuf:"bytes,2,opt,name=associations_gateway_id,json=associationsGatewayId,proto3,oneof"`
}
type GatewayListOptions_AssociationsDeviceId struct {
// If set, returns only the gateways with which the specified device is
// associated. The device ID can be numeric (`num_id`) or the user-defined
// string (`id`). For example, if `456` is specified, returns only the
// gateways to which the device with `num_id` 456 is bound.
AssociationsDeviceId string `protobuf:"bytes,3,opt,name=associations_device_id,json=associationsDeviceId,proto3,oneof"`
}
func (*GatewayListOptions_GatewayType) isGatewayListOptions_Filter() {}
func (*GatewayListOptions_AssociationsGatewayId) isGatewayListOptions_Filter() {}
func (*GatewayListOptions_AssociationsDeviceId) isGatewayListOptions_Filter() {}
// Response for `ListDevices`.
type ListDevicesResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The devices that match the request.
Devices []*Device `protobuf:"bytes,1,rep,name=devices,proto3" json:"devices,omitempty"`
// If not empty, indicates that there may be more devices that match the
// request; this value should be passed in a new `ListDevicesRequest`.
NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
}
func (x *ListDevicesResponse) Reset() {
*x = ListDevicesResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_iot_v1_device_manager_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListDevicesResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListDevicesResponse) ProtoMessage() {}
func (x *ListDevicesResponse) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_iot_v1_device_manager_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 ListDevicesResponse.ProtoReflect.Descriptor instead.
func (*ListDevicesResponse) Descriptor() ([]byte, []int) {
return file_google_cloud_iot_v1_device_manager_proto_rawDescGZIP(), []int{12}
}
func (x *ListDevicesResponse) GetDevices() []*Device {
if x != nil {
return x.Devices
}
return nil
}
func (x *ListDevicesResponse) GetNextPageToken() string {
if x != nil {
return x.NextPageToken
}
return ""
}
// Request for `ModifyCloudToDeviceConfig`.
type ModifyCloudToDeviceConfigRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The name of the device. For example,
// `projects/p0/locations/us-central1/registries/registry0/devices/device0` or
// `projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// The version number to update. If this value is zero, it will not check the
// version number of the server and will always update the current version;
// otherwise, this update will fail if the version number found on the server
// does not match this version number. This is used to support multiple
// simultaneous updates without losing data.
VersionToUpdate int64 `protobuf:"varint,2,opt,name=version_to_update,json=versionToUpdate,proto3" json:"version_to_update,omitempty"`
// Required. The configuration data for the device.
BinaryData []byte `protobuf:"bytes,3,opt,name=binary_data,json=binaryData,proto3" json:"binary_data,omitempty"`
}
func (x *ModifyCloudToDeviceConfigRequest) Reset() {
*x = ModifyCloudToDeviceConfigRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_iot_v1_device_manager_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModifyCloudToDeviceConfigRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModifyCloudToDeviceConfigRequest) ProtoMessage() {}
func (x *ModifyCloudToDeviceConfigRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_iot_v1_device_manager_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 ModifyCloudToDeviceConfigRequest.ProtoReflect.Descriptor instead.
func (*ModifyCloudToDeviceConfigRequest) Descriptor() ([]byte, []int) {
return file_google_cloud_iot_v1_device_manager_proto_rawDescGZIP(), []int{13}
}
func (x *ModifyCloudToDeviceConfigRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *ModifyCloudToDeviceConfigRequest) GetVersionToUpdate() int64 {
if x != nil {
return x.VersionToUpdate
}
return 0
}
func (x *ModifyCloudToDeviceConfigRequest) GetBinaryData() []byte {
if x != nil {
return x.BinaryData
}
return nil
}
// Request for `ListDeviceConfigVersions`.
type ListDeviceConfigVersionsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The name of the device. For example,
// `projects/p0/locations/us-central1/registries/registry0/devices/device0` or
// `projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// The number of versions to list. Versions are listed in decreasing order of
// the version number. The maximum number of versions retained is 10. If this
// value is zero, it will return all the versions available.
NumVersions int32 `protobuf:"varint,2,opt,name=num_versions,json=numVersions,proto3" json:"num_versions,omitempty"`
}
func (x *ListDeviceConfigVersionsRequest) Reset() {
*x = ListDeviceConfigVersionsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_iot_v1_device_manager_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListDeviceConfigVersionsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListDeviceConfigVersionsRequest) ProtoMessage() {}
func (x *ListDeviceConfigVersionsRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_iot_v1_device_manager_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 ListDeviceConfigVersionsRequest.ProtoReflect.Descriptor instead.
func (*ListDeviceConfigVersionsRequest) Descriptor() ([]byte, []int) {
return file_google_cloud_iot_v1_device_manager_proto_rawDescGZIP(), []int{14}
}
func (x *ListDeviceConfigVersionsRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *ListDeviceConfigVersionsRequest) GetNumVersions() int32 {
if x != nil {
return x.NumVersions
}
return 0
}
// Response for `ListDeviceConfigVersions`.
type ListDeviceConfigVersionsResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The device configuration for the last few versions. Versions are listed
// in decreasing order, starting from the most recent one.
DeviceConfigs []*DeviceConfig `protobuf:"bytes,1,rep,name=device_configs,json=deviceConfigs,proto3" json:"device_configs,omitempty"`
}
func (x *ListDeviceConfigVersionsResponse) Reset() {
*x = ListDeviceConfigVersionsResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_iot_v1_device_manager_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListDeviceConfigVersionsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListDeviceConfigVersionsResponse) ProtoMessage() {}
func (x *ListDeviceConfigVersionsResponse) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_iot_v1_device_manager_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 ListDeviceConfigVersionsResponse.ProtoReflect.Descriptor instead.
func (*ListDeviceConfigVersionsResponse) Descriptor() ([]byte, []int) {
return file_google_cloud_iot_v1_device_manager_proto_rawDescGZIP(), []int{15}
}
func (x *ListDeviceConfigVersionsResponse) GetDeviceConfigs() []*DeviceConfig {
if x != nil {
return x.DeviceConfigs
}
return nil
}
// Request for `ListDeviceStates`.
type ListDeviceStatesRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The name of the device. For example,
// `projects/p0/locations/us-central1/registries/registry0/devices/device0` or
// `projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// The number of states to list. States are listed in descending order of
// update time. The maximum number of states retained is 10. If this
// value is zero, it will return all the states available.
NumStates int32 `protobuf:"varint,2,opt,name=num_states,json=numStates,proto3" json:"num_states,omitempty"`
}
func (x *ListDeviceStatesRequest) Reset() {
*x = ListDeviceStatesRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_iot_v1_device_manager_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListDeviceStatesRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListDeviceStatesRequest) ProtoMessage() {}
func (x *ListDeviceStatesRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_iot_v1_device_manager_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 ListDeviceStatesRequest.ProtoReflect.Descriptor instead.
func (*ListDeviceStatesRequest) Descriptor() ([]byte, []int) {
return file_google_cloud_iot_v1_device_manager_proto_rawDescGZIP(), []int{16}
}
func (x *ListDeviceStatesRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *ListDeviceStatesRequest) GetNumStates() int32 {
if x != nil {
return x.NumStates
}
return 0
}
// Response for `ListDeviceStates`.
type ListDeviceStatesResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The last few device states. States are listed in descending order of server
// update time, starting from the most recent one.
DeviceStates []*DeviceState `protobuf:"bytes,1,rep,name=device_states,json=deviceStates,proto3" json:"device_states,omitempty"`
}
func (x *ListDeviceStatesResponse) Reset() {
*x = ListDeviceStatesResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_iot_v1_device_manager_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListDeviceStatesResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListDeviceStatesResponse) ProtoMessage() {}
func (x *ListDeviceStatesResponse) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_iot_v1_device_manager_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 ListDeviceStatesResponse.ProtoReflect.Descriptor instead.
func (*ListDeviceStatesResponse) Descriptor() ([]byte, []int) {
return file_google_cloud_iot_v1_device_manager_proto_rawDescGZIP(), []int{17}
}
func (x *ListDeviceStatesResponse) GetDeviceStates() []*DeviceState {
if x != nil {
return x.DeviceStates
}
return nil
}
// Request for `SendCommandToDevice`.
type SendCommandToDeviceRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The name of the device. For example,
// `projects/p0/locations/us-central1/registries/registry0/devices/device0` or
// `projects/p0/locations/us-central1/registries/registry0/devices/{num_id}`.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Required. The command data to send to the device.
BinaryData []byte `protobuf:"bytes,2,opt,name=binary_data,json=binaryData,proto3" json:"binary_data,omitempty"`
// Optional subfolder for the command. If empty, the command will be delivered
// to the /devices/{device-id}/commands topic, otherwise it will be delivered
// to the /devices/{device-id}/commands/{subfolder} topic. Multi-level
// subfolders are allowed. This field must not have more than 256 characters,
// and must not contain any MQTT wildcards ("+" or "#") or null characters.
Subfolder string `protobuf:"bytes,3,opt,name=subfolder,proto3" json:"subfolder,omitempty"`
}
func (x *SendCommandToDeviceRequest) Reset() {
*x = SendCommandToDeviceRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_iot_v1_device_manager_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SendCommandToDeviceRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SendCommandToDeviceRequest) ProtoMessage() {}
func (x *SendCommandToDeviceRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_iot_v1_device_manager_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 SendCommandToDeviceRequest.ProtoReflect.Descriptor instead.
func (*SendCommandToDeviceRequest) Descriptor() ([]byte, []int) {
return file_google_cloud_iot_v1_device_manager_proto_rawDescGZIP(), []int{18}
}
func (x *SendCommandToDeviceRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *SendCommandToDeviceRequest) GetBinaryData() []byte {
if x != nil {
return x.BinaryData
}
return nil
}
func (x *SendCommandToDeviceRequest) GetSubfolder() string {
if x != nil {
return x.Subfolder
}
return ""
}
// Response for `SendCommandToDevice`.
type SendCommandToDeviceResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *SendCommandToDeviceResponse) Reset() {
*x = SendCommandToDeviceResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_iot_v1_device_manager_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SendCommandToDeviceResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SendCommandToDeviceResponse) ProtoMessage() {}
func (x *SendCommandToDeviceResponse) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_iot_v1_device_manager_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 SendCommandToDeviceResponse.ProtoReflect.Descriptor instead.
func (*SendCommandToDeviceResponse) Descriptor() ([]byte, []int) {
return file_google_cloud_iot_v1_device_manager_proto_rawDescGZIP(), []int{19}
}
// Request for `BindDeviceToGateway`.
type BindDeviceToGatewayRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The name of the registry. For example,
// `projects/example-project/locations/us-central1/registries/my-registry`.
Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
// Required. The value of `gateway_id` can be either the device numeric ID or the
// user-defined device identifier.
GatewayId string `protobuf:"bytes,2,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"`
// Required. The device to associate with the specified gateway. The value of
// `device_id` can be either the device numeric ID or the user-defined device
// identifier.
DeviceId string `protobuf:"bytes,3,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
}
func (x *BindDeviceToGatewayRequest) Reset() {
*x = BindDeviceToGatewayRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_iot_v1_device_manager_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BindDeviceToGatewayRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BindDeviceToGatewayRequest) ProtoMessage() {}
func (x *BindDeviceToGatewayRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_iot_v1_device_manager_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 BindDeviceToGatewayRequest.ProtoReflect.Descriptor instead.
func (*BindDeviceToGatewayRequest) Descriptor() ([]byte, []int) {
return file_google_cloud_iot_v1_device_manager_proto_rawDescGZIP(), []int{20}
}
func (x *BindDeviceToGatewayRequest) GetParent() string {
if x != nil {
return x.Parent
}
return ""
}
func (x *BindDeviceToGatewayRequest) GetGatewayId() string {
if x != nil {
return x.GatewayId
}
return ""
}
func (x *BindDeviceToGatewayRequest) GetDeviceId() string {
if x != nil {
return x.DeviceId
}
return ""
}
// Response for `BindDeviceToGateway`.
type BindDeviceToGatewayResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *BindDeviceToGatewayResponse) Reset() {
*x = BindDeviceToGatewayResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_iot_v1_device_manager_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BindDeviceToGatewayResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BindDeviceToGatewayResponse) ProtoMessage() {}
func (x *BindDeviceToGatewayResponse) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_iot_v1_device_manager_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 BindDeviceToGatewayResponse.ProtoReflect.Descriptor instead.
func (*BindDeviceToGatewayResponse) Descriptor() ([]byte, []int) {
return file_google_cloud_iot_v1_device_manager_proto_rawDescGZIP(), []int{21}
}
// Request for `UnbindDeviceFromGateway`.
type UnbindDeviceFromGatewayRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The name of the registry. For example,
// `projects/example-project/locations/us-central1/registries/my-registry`.
Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
// Required. The value of `gateway_id` can be either the device numeric ID or the
// user-defined device identifier.
GatewayId string `protobuf:"bytes,2,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"`
// Required. The device to disassociate from the specified gateway. The value of
// `device_id` can be either the device numeric ID or the user-defined device
// identifier.
DeviceId string `protobuf:"bytes,3,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
}
func (x *UnbindDeviceFromGatewayRequest) Reset() {
*x = UnbindDeviceFromGatewayRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_iot_v1_device_manager_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UnbindDeviceFromGatewayRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UnbindDeviceFromGatewayRequest) ProtoMessage() {}
func (x *UnbindDeviceFromGatewayRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_iot_v1_device_manager_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 UnbindDeviceFromGatewayRequest.ProtoReflect.Descriptor instead.
func (*UnbindDeviceFromGatewayRequest) Descriptor() ([]byte, []int) {
return file_google_cloud_iot_v1_device_manager_proto_rawDescGZIP(), []int{22}
}
func (x *UnbindDeviceFromGatewayRequest) GetParent() string {
if x != nil {
return x.Parent
}
return ""
}
func (x *UnbindDeviceFromGatewayRequest) GetGatewayId() string {
if x != nil {
return x.GatewayId
}
return ""
}
func (x *UnbindDeviceFromGatewayRequest) GetDeviceId() string {
if x != nil {
return x.DeviceId
}
return ""
}
// Response for `UnbindDeviceFromGateway`.
type UnbindDeviceFromGatewayResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *UnbindDeviceFromGatewayResponse) Reset() {
*x = UnbindDeviceFromGatewayResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_iot_v1_device_manager_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UnbindDeviceFromGatewayResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UnbindDeviceFromGatewayResponse) ProtoMessage() {}
func (x *UnbindDeviceFromGatewayResponse) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_iot_v1_device_manager_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 UnbindDeviceFromGatewayResponse.ProtoReflect.Descriptor instead.
func (*UnbindDeviceFromGatewayResponse) Descriptor() ([]byte, []int) {
return file_google_cloud_iot_v1_device_manager_proto_rawDescGZIP(), []int{23}
}
var File_google_cloud_iot_v1_device_manager_proto protoreflect.FileDescriptor
var file_google_cloud_iot_v1_device_manager_proto_rawDesc = []byte{
0x0a, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x69,
0x6f, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6d, 0x61, 0x6e,
0x61, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 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, 0x63, 0x6c, 0x6f, 0x75, 0x64,
0x2f, 0x69, 0x6f, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
0x69, 0x61, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x61, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63,
0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
0x69, 0x61, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x1a, 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, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73,
0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb3, 0x01, 0x0a, 0x1b,
0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x67, 0x69,
0x73, 0x74, 0x72, 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, 0x12, 0x51,
0x0a, 0x0f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72,
0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65,
0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41,
0x02, 0x52, 0x0e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72,
0x79, 0x22, 0x58, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65,
0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a,
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02,
0xfa, 0x41, 0x22, 0x0a, 0x20, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x69, 0x6f, 0x74, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x67,
0x69, 0x73, 0x74, 0x72, 0x79, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5b, 0x0a, 0x1b, 0x44,
0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73,
0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x6e, 0x61,
0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22,
0x0a, 0x20, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x69, 0x6f, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74,
0x72, 0x79, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x1b, 0x55, 0x70, 0x64,
0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72,
0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x51, 0x0a, 0x0f, 0x64, 0x65, 0x76, 0x69,
0x63, 0x65, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65,
0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x64, 0x65, 0x76,
0x69, 0x63, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x12, 0x40, 0x0a, 0x0b, 0x75,
0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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, 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, 0x22, 0x9c, 0x01,
0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x67, 0x69,
0x73, 0x74, 0x72, 0x69, 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, 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, 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, 0x98, 0x01, 0x0a,
0x1c, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73,
0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a,
0x11, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69,
0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44,
0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x52, 0x10, 0x64,
0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 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, 0x22, 0x91, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61,
0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
0x40, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x69, 0x6f,
0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d,
0x2f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e,
0x74, 0x12, 0x38, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x03,
0xe0, 0x41, 0x02, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x10,
0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26,
0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x69, 0x6f, 0x74,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0a,
0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x09, 0x66, 0x69,
0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x91, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61,
0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
0x38, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69,
0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41,
0x02, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64,
0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2e, 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, 0x22, 0x51, 0x0a, 0x13, 0x44,
0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x69,
0x6f, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f,
0x6d, 0x2f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xed,
0x02, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x63,
0x6c, 0x6f, 0x75, 0x64, 0x69, 0x6f, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70,
0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x52,
0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x64, 0x65, 0x76, 0x69, 0x63,
0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52,
0x0c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x49, 0x64, 0x73, 0x12, 0x1d, 0x0a,
0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
0x09, 0x52, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x73, 0x12, 0x39, 0x0a, 0x0a,
0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x09, 0x66, 0x69,
0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x59, 0x0a, 0x14, 0x67, 0x61, 0x74, 0x65, 0x77,
0x61, 0x79, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x74, 0x65,
0x77, 0x61, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x12,
0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f,
0x6e, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18,
0x64, 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, 0x65, 0x20,
0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xd7,
0x01, 0x0a, 0x12, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x45, 0x0a, 0x0c, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76,
0x31, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52,
0x0b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x17,
0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x67, 0x61, 0x74,
0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52,
0x15, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x47, 0x61, 0x74,
0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x16, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64,
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x14, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x42, 0x08,
0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x74, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
0x35, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x07, 0x64,
0x65, 0x76, 0x69, 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, 0x22, 0xb0,
0x01, 0x0a, 0x20, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x54, 0x6f,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
0x69, 0x6f, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63,
0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
0x2a, 0x0a, 0x11, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x70,
0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x76, 0x65, 0x72, 0x73,
0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x62,
0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c,
0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74,
0x61, 0x22, 0x80, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x69, 0x6f, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73,
0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d,
0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x75, 0x6d, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6e, 0x75, 0x6d, 0x56, 0x65, 0x72, 0x73,
0x69, 0x6f, 0x6e, 0x73, 0x22, 0x6c, 0x0a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69,
0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0e, 0x64, 0x65, 0x76, 0x69,
0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e,
0x66, 0x69, 0x67, 0x52, 0x0d, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x73, 0x22, 0x74, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a,
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02,
0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x69, 0x6f, 0x74, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x76,
0x69, 0x63, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x75, 0x6d,
0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6e,
0x75, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x22, 0x61, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0d, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73,
0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76,
0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x64,
0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x22, 0x9c, 0x01, 0x0a, 0x1a,
0x53, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x6f, 0x44, 0x65, 0x76,
0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x61,
0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20,
0x0a, 0x1e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x69, 0x6f, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79,
0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x02,
0x52, 0x0a, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09,
0x73, 0x75, 0x62, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
0x09, 0x73, 0x75, 0x62, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x53, 0x65,
0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63,
0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa4, 0x01, 0x0a, 0x1a, 0x42, 0x69,
0x6e, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x6f, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61,
0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65,
0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22,
0x0a, 0x20, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x69, 0x6f, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74,
0x72, 0x79, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x67, 0x61,
0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
0xe0, 0x41, 0x02, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x20,
0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64,
0x22, 0x1d, 0x0a, 0x1b, 0x42, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x6f,
0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
0xa8, 0x01, 0x0a, 0x1e, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x46, 0x72, 0x6f, 0x6d, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x63, 0x6c, 0x6f, 0x75,
0x64, 0x69, 0x6f, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e,
0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x52, 0x06, 0x70, 0x61,
0x72, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f,
0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x67,
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69,
0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02,
0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0x21, 0x0a, 0x1f, 0x55, 0x6e,
0x62, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x61,
0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xa6, 0x26,
0x0a, 0x0d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12,
0xcf, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43,
0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73,
0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31,
0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x22,
0x60, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x22, 0x2e, 0x2f, 0x76, 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, 0x65, 0x67,
0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x0f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f,
0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0xda, 0x41, 0x16, 0x70, 0x61, 0x72, 0x65, 0x6e,
0x74, 0x2c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72,
0x79, 0x12, 0xa6, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52,
0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65,
0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76,
0x69, 0x63, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x22, 0x3d, 0x82, 0xd3, 0xe4,
0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x76, 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, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73,
0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xe4, 0x01, 0x0a, 0x14, 0x55,
0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73,
0x74, 0x72, 0x79, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69,
0x63, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x22, 0x75, 0x82, 0xd3, 0xe4, 0x93,
0x02, 0x51, 0x32, 0x3e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f,
0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 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, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f,
0x2a, 0x7d, 0x3a, 0x0f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73,
0x74, 0x72, 0x79, 0xda, 0x41, 0x1b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x67,
0x69, 0x73, 0x74, 0x72, 0x79, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73,
0x6b, 0x12, 0x9f, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69,
0x63, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31,
0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x67,
0x69, 0x73, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
0x6d, 0x70, 0x74, 0x79, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x2a, 0x2e, 0x2f, 0x76,
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,
0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e,
0x61, 0x6d, 0x65, 0x12, 0xbc, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69,
0x63, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e,
0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x67,
0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f,
0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52,
0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x76, 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,
0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65,
0x6e, 0x74, 0x12, 0xaf, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76,
0x69, 0x63, 0x65, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74,
0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x58, 0x82, 0xd3, 0xe4, 0x93,
0x02, 0x42, 0x22, 0x38, 0x2f, 0x76, 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, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65,
0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x3a, 0x06, 0x64, 0x65,
0x76, 0x69, 0x63, 0x65, 0xda, 0x41, 0x0d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x64, 0x65,
0x76, 0x69, 0x63, 0x65, 0x12, 0xde, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69,
0x63, 0x65, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69,
0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x8c, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7f, 0x12,
0x38, 0x2f, 0x76, 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, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x64,
0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x43, 0x12, 0x41, 0x2f, 0x76, 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, 0x65,
0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41,
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x91, 0x02, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64,
0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x1a, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0xb9, 0x01,
0x82, 0xd3, 0xe4, 0x93, 0x02, 0x9d, 0x01, 0x32, 0x3f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64, 0x65,
0x76, 0x69, 0x63, 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, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65,
0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
0x5a, 0x52, 0x32, 0x48, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64, 0x65, 0x76, 0x69, 0x63, 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, 0x72, 0x65, 0x67, 0x69,
0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f,
0x2a, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x06, 0x64, 0x65,
0x76, 0x69, 0x63, 0x65, 0xda, 0x41, 0x12, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2c, 0x75, 0x70,
0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0x99, 0x01, 0x0a, 0x0c, 0x44, 0x65,
0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31,
0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x47, 0x82, 0xd3,
0xe4, 0x93, 0x02, 0x3a, 0x2a, 0x38, 0x2f, 0x76, 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, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65,
0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41,
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xf1, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65,
0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f,
0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8e, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02,
0x7f, 0x12, 0x38, 0x2f, 0x76, 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, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73,
0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x5a, 0x43, 0x12, 0x41, 0x2f,
0x76, 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, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73,
0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xcb, 0x02, 0x0a, 0x19, 0x4d, 0x6f,
0x64, 0x69, 0x66, 0x79, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x54, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63,
0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f,
0x64, 0x69, 0x66, 0x79, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x54, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63,
0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f,
0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x22, 0xd3, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xb9, 0x01, 0x22, 0x52, 0x2f, 0x76, 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, 0x65,
0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63,
0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x43, 0x6c, 0x6f, 0x75,
0x64, 0x54, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a,
0x01, 0x2a, 0x5a, 0x60, 0x22, 0x5b, 0x2f, 0x76, 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, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65,
0x73, 0x2f, 0x2a, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x76,
0x69, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x43, 0x6c,
0x6f, 0x75, 0x64, 0x54, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x10, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x62, 0x69, 0x6e, 0x61,
0x72, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0xb5, 0x02, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73,
0x69, 0x6f, 0x6e, 0x73, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44,
0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69,
0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31,
0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x22, 0xab, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x9d, 0x01, 0x12, 0x47, 0x2f, 0x76, 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, 0x65,
0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63,
0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73,
0x69, 0x6f, 0x6e, 0x73, 0x5a, 0x52, 0x12, 0x50, 0x2f, 0x76, 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, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72,
0x69, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x2f, 0x64,
0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
0x8d, 0x02, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74,
0x61, 0x74, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44,
0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x76,
0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x22, 0x9b, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8d, 0x01, 0x12, 0x3f, 0x2f, 0x76, 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, 0x65,
0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63,
0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x5a, 0x4a, 0x12, 0x48,
0x2f, 0x76, 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, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x2a,
0x7d, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
0xf8, 0x01, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
0x12, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31,
0x2e, 0x53, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61,
0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0xac, 0x01, 0x82, 0xd3,
0xe4, 0x93, 0x02, 0x93, 0x01, 0x22, 0x3f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f,
0x75, 0x72, 0x63, 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, 0x65, 0x67, 0x69,
0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x65, 0x74, 0x49, 0x61, 0x6d,
0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x3a, 0x01, 0x2a, 0x5a, 0x4d, 0x22, 0x48, 0x2f, 0x76, 0x31,
0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 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, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50,
0x6f, 0x6c, 0x69, 0x63, 0x79, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75,
0x72, 0x63, 0x65, 0x2c, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0xf1, 0x01, 0x0a, 0x0c, 0x47,
0x65, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x22, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49,
0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e,
0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0xa5, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x93, 0x01,
0x22, 0x3f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 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, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65,
0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x67, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63,
0x79, 0x3a, 0x01, 0x2a, 0x5a, 0x4d, 0x22, 0x48, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x72, 0x65, 0x73,
0x6f, 0x75, 0x72, 0x63, 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, 0x65, 0x67,
0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73,
0x2f, 0x2a, 0x7d, 0x3a, 0x67, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
0x3a, 0x01, 0x2a, 0xda, 0x41, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0xa9,
0x02, 0x0a, 0x12, 0x54, 0x65, 0x73, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73,
0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69,
0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x65, 0x72,
0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e,
0x54, 0x65, 0x73, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f,
0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbd, 0x01, 0x82, 0xd3, 0xe4,
0x93, 0x02, 0x9f, 0x01, 0x22, 0x45, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75,
0x72, 0x63, 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, 0x65, 0x67, 0x69, 0x73,
0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x74, 0x65, 0x73, 0x74, 0x49, 0x61, 0x6d,
0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x01, 0x2a, 0x5a, 0x53,
0x22, 0x4e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 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, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65,
0x73, 0x2f, 0x2a, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x74, 0x65,
0x73, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73,
0x3a, 0x01, 0x2a, 0xda, 0x41, 0x14, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2c, 0x70,
0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xdf, 0x02, 0x0a, 0x13, 0x53,
0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x6f, 0x44, 0x65, 0x76, 0x69,
0x63, 0x65, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d,
0x6d, 0x61, 0x6e, 0x64, 0x54, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x6f,
0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe4, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xad, 0x01, 0x22,
0x4c, 0x2f, 0x76, 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, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x64,
0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x65, 0x6e, 0x64, 0x43, 0x6f,
0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x3a, 0x01, 0x2a,
0x5a, 0x5a, 0x22, 0x55, 0x2f, 0x76, 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, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f,
0x2a, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63,
0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
0x64, 0x54, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x10, 0x6e,
0x61, 0x6d, 0x65, 0x2c, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x61, 0xda,
0x41, 0x1a, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x64, 0x61,
0x74, 0x61, 0x2c, 0x73, 0x75, 0x62, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0xbd, 0x02, 0x0a,
0x13, 0x42, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x6f, 0x47, 0x61, 0x74,
0x65, 0x77, 0x61, 0x79, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x44,
0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x6f, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x64,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x6f, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc2, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x9d,
0x01, 0x22, 0x44, 0x2f, 0x76, 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, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73,
0x2f, 0x2a, 0x7d, 0x3a, 0x62, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x6f,
0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x3a, 0x01, 0x2a, 0x5a, 0x52, 0x22, 0x4d, 0x2f, 0x76,
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,
0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x62, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x76, 0x69,
0x63, 0x65, 0x54, 0x6f, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x3a, 0x01, 0x2a, 0xda, 0x41,
0x1b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f,
0x69, 0x64, 0x2c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x12, 0xd1, 0x02, 0x0a,
0x17, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46, 0x72, 0x6f,
0x6d, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x55,
0x6e, 0x62, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47,
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74,
0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x46, 0x72, 0x6f, 0x6d, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x22, 0xca, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xa5, 0x01, 0x22, 0x48, 0x2f,
0x76, 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, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a,
0x75, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46, 0x72, 0x6f, 0x6d,
0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x3a, 0x01, 0x2a, 0x5a, 0x56, 0x22, 0x51, 0x2f, 0x76,
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,
0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x75, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x44, 0x65,
0x76, 0x69, 0x63, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x3a,
0x01, 0x2a, 0xda, 0x41, 0x1b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x67, 0x61, 0x74, 0x65,
0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x2c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64,
0x1a, 0x74, 0xca, 0x41, 0x17, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x69, 0x6f, 0x74, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x57, 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, 0x2c, 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, 0x69, 0x6f, 0x74, 0x42, 0x6a, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x69, 0x6f, 0x74, 0x2e, 0x76,
0x31, 0x42, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, 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, 0x69, 0x6f, 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x69, 0x6f, 0x74, 0xf8,
0x01, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_google_cloud_iot_v1_device_manager_proto_rawDescOnce sync.Once
file_google_cloud_iot_v1_device_manager_proto_rawDescData = file_google_cloud_iot_v1_device_manager_proto_rawDesc
)
func file_google_cloud_iot_v1_device_manager_proto_rawDescGZIP() []byte {
file_google_cloud_iot_v1_device_manager_proto_rawDescOnce.Do(func() {
file_google_cloud_iot_v1_device_manager_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_iot_v1_device_manager_proto_rawDescData)
})
return file_google_cloud_iot_v1_device_manager_proto_rawDescData
}
var file_google_cloud_iot_v1_device_manager_proto_msgTypes = make([]protoimpl.MessageInfo, 24)
var file_google_cloud_iot_v1_device_manager_proto_goTypes = []interface{}{
(*CreateDeviceRegistryRequest)(nil), // 0: google.cloud.iot.v1.CreateDeviceRegistryRequest
(*GetDeviceRegistryRequest)(nil), // 1: google.cloud.iot.v1.GetDeviceRegistryRequest
(*DeleteDeviceRegistryRequest)(nil), // 2: google.cloud.iot.v1.DeleteDeviceRegistryRequest
(*UpdateDeviceRegistryRequest)(nil), // 3: google.cloud.iot.v1.UpdateDeviceRegistryRequest
(*ListDeviceRegistriesRequest)(nil), // 4: google.cloud.iot.v1.ListDeviceRegistriesRequest
(*ListDeviceRegistriesResponse)(nil), // 5: google.cloud.iot.v1.ListDeviceRegistriesResponse
(*CreateDeviceRequest)(nil), // 6: google.cloud.iot.v1.CreateDeviceRequest
(*GetDeviceRequest)(nil), // 7: google.cloud.iot.v1.GetDeviceRequest
(*UpdateDeviceRequest)(nil), // 8: google.cloud.iot.v1.UpdateDeviceRequest
(*DeleteDeviceRequest)(nil), // 9: google.cloud.iot.v1.DeleteDeviceRequest
(*ListDevicesRequest)(nil), // 10: google.cloud.iot.v1.ListDevicesRequest
(*GatewayListOptions)(nil), // 11: google.cloud.iot.v1.GatewayListOptions
(*ListDevicesResponse)(nil), // 12: google.cloud.iot.v1.ListDevicesResponse
(*ModifyCloudToDeviceConfigRequest)(nil), // 13: google.cloud.iot.v1.ModifyCloudToDeviceConfigRequest
(*ListDeviceConfigVersionsRequest)(nil), // 14: google.cloud.iot.v1.ListDeviceConfigVersionsRequest
(*ListDeviceConfigVersionsResponse)(nil), // 15: google.cloud.iot.v1.ListDeviceConfigVersionsResponse
(*ListDeviceStatesRequest)(nil), // 16: google.cloud.iot.v1.ListDeviceStatesRequest
(*ListDeviceStatesResponse)(nil), // 17: google.cloud.iot.v1.ListDeviceStatesResponse
(*SendCommandToDeviceRequest)(nil), // 18: google.cloud.iot.v1.SendCommandToDeviceRequest
(*SendCommandToDeviceResponse)(nil), // 19: google.cloud.iot.v1.SendCommandToDeviceResponse
(*BindDeviceToGatewayRequest)(nil), // 20: google.cloud.iot.v1.BindDeviceToGatewayRequest
(*BindDeviceToGatewayResponse)(nil), // 21: google.cloud.iot.v1.BindDeviceToGatewayResponse
(*UnbindDeviceFromGatewayRequest)(nil), // 22: google.cloud.iot.v1.UnbindDeviceFromGatewayRequest
(*UnbindDeviceFromGatewayResponse)(nil), // 23: google.cloud.iot.v1.UnbindDeviceFromGatewayResponse
(*DeviceRegistry)(nil), // 24: google.cloud.iot.v1.DeviceRegistry
(*field_mask.FieldMask)(nil), // 25: google.protobuf.FieldMask
(*Device)(nil), // 26: google.cloud.iot.v1.Device
(GatewayType)(0), // 27: google.cloud.iot.v1.GatewayType
(*DeviceConfig)(nil), // 28: google.cloud.iot.v1.DeviceConfig
(*DeviceState)(nil), // 29: google.cloud.iot.v1.DeviceState
(*v1.SetIamPolicyRequest)(nil), // 30: google.iam.v1.SetIamPolicyRequest
(*v1.GetIamPolicyRequest)(nil), // 31: google.iam.v1.GetIamPolicyRequest
(*v1.TestIamPermissionsRequest)(nil), // 32: google.iam.v1.TestIamPermissionsRequest
(*empty.Empty)(nil), // 33: google.protobuf.Empty
(*v1.Policy)(nil), // 34: google.iam.v1.Policy
(*v1.TestIamPermissionsResponse)(nil), // 35: google.iam.v1.TestIamPermissionsResponse
}
var file_google_cloud_iot_v1_device_manager_proto_depIdxs = []int32{
24, // 0: google.cloud.iot.v1.CreateDeviceRegistryRequest.device_registry:type_name -> google.cloud.iot.v1.DeviceRegistry
24, // 1: google.cloud.iot.v1.UpdateDeviceRegistryRequest.device_registry:type_name -> google.cloud.iot.v1.DeviceRegistry
25, // 2: google.cloud.iot.v1.UpdateDeviceRegistryRequest.update_mask:type_name -> google.protobuf.FieldMask
24, // 3: google.cloud.iot.v1.ListDeviceRegistriesResponse.device_registries:type_name -> google.cloud.iot.v1.DeviceRegistry
26, // 4: google.cloud.iot.v1.CreateDeviceRequest.device:type_name -> google.cloud.iot.v1.Device
25, // 5: google.cloud.iot.v1.GetDeviceRequest.field_mask:type_name -> google.protobuf.FieldMask
26, // 6: google.cloud.iot.v1.UpdateDeviceRequest.device:type_name -> google.cloud.iot.v1.Device
25, // 7: google.cloud.iot.v1.UpdateDeviceRequest.update_mask:type_name -> google.protobuf.FieldMask
25, // 8: google.cloud.iot.v1.ListDevicesRequest.field_mask:type_name -> google.protobuf.FieldMask
11, // 9: google.cloud.iot.v1.ListDevicesRequest.gateway_list_options:type_name -> google.cloud.iot.v1.GatewayListOptions
27, // 10: google.cloud.iot.v1.GatewayListOptions.gateway_type:type_name -> google.cloud.iot.v1.GatewayType
26, // 11: google.cloud.iot.v1.ListDevicesResponse.devices:type_name -> google.cloud.iot.v1.Device
28, // 12: google.cloud.iot.v1.ListDeviceConfigVersionsResponse.device_configs:type_name -> google.cloud.iot.v1.DeviceConfig
29, // 13: google.cloud.iot.v1.ListDeviceStatesResponse.device_states:type_name -> google.cloud.iot.v1.DeviceState
0, // 14: google.cloud.iot.v1.DeviceManager.CreateDeviceRegistry:input_type -> google.cloud.iot.v1.CreateDeviceRegistryRequest
1, // 15: google.cloud.iot.v1.DeviceManager.GetDeviceRegistry:input_type -> google.cloud.iot.v1.GetDeviceRegistryRequest
3, // 16: google.cloud.iot.v1.DeviceManager.UpdateDeviceRegistry:input_type -> google.cloud.iot.v1.UpdateDeviceRegistryRequest
2, // 17: google.cloud.iot.v1.DeviceManager.DeleteDeviceRegistry:input_type -> google.cloud.iot.v1.DeleteDeviceRegistryRequest
4, // 18: google.cloud.iot.v1.DeviceManager.ListDeviceRegistries:input_type -> google.cloud.iot.v1.ListDeviceRegistriesRequest
6, // 19: google.cloud.iot.v1.DeviceManager.CreateDevice:input_type -> google.cloud.iot.v1.CreateDeviceRequest
7, // 20: google.cloud.iot.v1.DeviceManager.GetDevice:input_type -> google.cloud.iot.v1.GetDeviceRequest
8, // 21: google.cloud.iot.v1.DeviceManager.UpdateDevice:input_type -> google.cloud.iot.v1.UpdateDeviceRequest
9, // 22: google.cloud.iot.v1.DeviceManager.DeleteDevice:input_type -> google.cloud.iot.v1.DeleteDeviceRequest
10, // 23: google.cloud.iot.v1.DeviceManager.ListDevices:input_type -> google.cloud.iot.v1.ListDevicesRequest
13, // 24: google.cloud.iot.v1.DeviceManager.ModifyCloudToDeviceConfig:input_type -> google.cloud.iot.v1.ModifyCloudToDeviceConfigRequest
14, // 25: google.cloud.iot.v1.DeviceManager.ListDeviceConfigVersions:input_type -> google.cloud.iot.v1.ListDeviceConfigVersionsRequest
16, // 26: google.cloud.iot.v1.DeviceManager.ListDeviceStates:input_type -> google.cloud.iot.v1.ListDeviceStatesRequest
30, // 27: google.cloud.iot.v1.DeviceManager.SetIamPolicy:input_type -> google.iam.v1.SetIamPolicyRequest
31, // 28: google.cloud.iot.v1.DeviceManager.GetIamPolicy:input_type -> google.iam.v1.GetIamPolicyRequest
32, // 29: google.cloud.iot.v1.DeviceManager.TestIamPermissions:input_type -> google.iam.v1.TestIamPermissionsRequest
18, // 30: google.cloud.iot.v1.DeviceManager.SendCommandToDevice:input_type -> google.cloud.iot.v1.SendCommandToDeviceRequest
20, // 31: google.cloud.iot.v1.DeviceManager.BindDeviceToGateway:input_type -> google.cloud.iot.v1.BindDeviceToGatewayRequest
22, // 32: google.cloud.iot.v1.DeviceManager.UnbindDeviceFromGateway:input_type -> google.cloud.iot.v1.UnbindDeviceFromGatewayRequest
24, // 33: google.cloud.iot.v1.DeviceManager.CreateDeviceRegistry:output_type -> google.cloud.iot.v1.DeviceRegistry
24, // 34: google.cloud.iot.v1.DeviceManager.GetDeviceRegistry:output_type -> google.cloud.iot.v1.DeviceRegistry
24, // 35: google.cloud.iot.v1.DeviceManager.UpdateDeviceRegistry:output_type -> google.cloud.iot.v1.DeviceRegistry
33, // 36: google.cloud.iot.v1.DeviceManager.DeleteDeviceRegistry:output_type -> google.protobuf.Empty
5, // 37: google.cloud.iot.v1.DeviceManager.ListDeviceRegistries:output_type -> google.cloud.iot.v1.ListDeviceRegistriesResponse
26, // 38: google.cloud.iot.v1.DeviceManager.CreateDevice:output_type -> google.cloud.iot.v1.Device
26, // 39: google.cloud.iot.v1.DeviceManager.GetDevice:output_type -> google.cloud.iot.v1.Device
26, // 40: google.cloud.iot.v1.DeviceManager.UpdateDevice:output_type -> google.cloud.iot.v1.Device
33, // 41: google.cloud.iot.v1.DeviceManager.DeleteDevice:output_type -> google.protobuf.Empty
12, // 42: google.cloud.iot.v1.DeviceManager.ListDevices:output_type -> google.cloud.iot.v1.ListDevicesResponse
28, // 43: google.cloud.iot.v1.DeviceManager.ModifyCloudToDeviceConfig:output_type -> google.cloud.iot.v1.DeviceConfig
15, // 44: google.cloud.iot.v1.DeviceManager.ListDeviceConfigVersions:output_type -> google.cloud.iot.v1.ListDeviceConfigVersionsResponse
17, // 45: google.cloud.iot.v1.DeviceManager.ListDeviceStates:output_type -> google.cloud.iot.v1.ListDeviceStatesResponse
34, // 46: google.cloud.iot.v1.DeviceManager.SetIamPolicy:output_type -> google.iam.v1.Policy
34, // 47: google.cloud.iot.v1.DeviceManager.GetIamPolicy:output_type -> google.iam.v1.Policy
35, // 48: google.cloud.iot.v1.DeviceManager.TestIamPermissions:output_type -> google.iam.v1.TestIamPermissionsResponse
19, // 49: google.cloud.iot.v1.DeviceManager.SendCommandToDevice:output_type -> google.cloud.iot.v1.SendCommandToDeviceResponse
21, // 50: google.cloud.iot.v1.DeviceManager.BindDeviceToGateway:output_type -> google.cloud.iot.v1.BindDeviceToGatewayResponse
23, // 51: google.cloud.iot.v1.DeviceManager.UnbindDeviceFromGateway:output_type -> google.cloud.iot.v1.UnbindDeviceFromGatewayResponse
33, // [33:52] is the sub-list for method output_type
14, // [14:33] is the sub-list for method input_type
14, // [14:14] is the sub-list for extension type_name
14, // [14:14] is the sub-list for extension extendee
0, // [0:14] is the sub-list for field type_name
}
func init() { file_google_cloud_iot_v1_device_manager_proto_init() }
func file_google_cloud_iot_v1_device_manager_proto_init() {
if File_google_cloud_iot_v1_device_manager_proto != nil {
return
}
file_google_cloud_iot_v1_resources_proto_init()
if !protoimpl.UnsafeEnabled {
file_google_cloud_iot_v1_device_manager_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CreateDeviceRegistryRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_iot_v1_device_manager_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetDeviceRegistryRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_iot_v1_device_manager_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeleteDeviceRegistryRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_iot_v1_device_manager_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpdateDeviceRegistryRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_iot_v1_device_manager_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListDeviceRegistriesRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_iot_v1_device_manager_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListDeviceRegistriesResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_iot_v1_device_manager_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CreateDeviceRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_iot_v1_device_manager_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetDeviceRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_iot_v1_device_manager_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpdateDeviceRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_iot_v1_device_manager_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeleteDeviceRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_iot_v1_device_manager_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListDevicesRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_iot_v1_device_manager_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GatewayListOptions); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_iot_v1_device_manager_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListDevicesResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_iot_v1_device_manager_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModifyCloudToDeviceConfigRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_iot_v1_device_manager_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListDeviceConfigVersionsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_iot_v1_device_manager_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListDeviceConfigVersionsResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_iot_v1_device_manager_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListDeviceStatesRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_iot_v1_device_manager_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListDeviceStatesResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_iot_v1_device_manager_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SendCommandToDeviceRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_iot_v1_device_manager_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SendCommandToDeviceResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_iot_v1_device_manager_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BindDeviceToGatewayRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_iot_v1_device_manager_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BindDeviceToGatewayResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_iot_v1_device_manager_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UnbindDeviceFromGatewayRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_iot_v1_device_manager_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UnbindDeviceFromGatewayResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_google_cloud_iot_v1_device_manager_proto_msgTypes[11].OneofWrappers = []interface{}{
(*GatewayListOptions_GatewayType)(nil),
(*GatewayListOptions_AssociationsGatewayId)(nil),
(*GatewayListOptions_AssociationsDeviceId)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_google_cloud_iot_v1_device_manager_proto_rawDesc,
NumEnums: 0,
NumMessages: 24,
NumExtensions: 0,
NumServices: 1,
},
GoTypes: file_google_cloud_iot_v1_device_manager_proto_goTypes,
DependencyIndexes: file_google_cloud_iot_v1_device_manager_proto_depIdxs,
MessageInfos: file_google_cloud_iot_v1_device_manager_proto_msgTypes,
}.Build()
File_google_cloud_iot_v1_device_manager_proto = out.File
file_google_cloud_iot_v1_device_manager_proto_rawDesc = nil
file_google_cloud_iot_v1_device_manager_proto_goTypes = nil
file_google_cloud_iot_v1_device_manager_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
// DeviceManagerClient is the client API for DeviceManager service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type DeviceManagerClient interface {
// Creates a device registry that contains devices.
CreateDeviceRegistry(ctx context.Context, in *CreateDeviceRegistryRequest, opts ...grpc.CallOption) (*DeviceRegistry, error)
// Gets a device registry configuration.
GetDeviceRegistry(ctx context.Context, in *GetDeviceRegistryRequest, opts ...grpc.CallOption) (*DeviceRegistry, error)
// Updates a device registry configuration.
UpdateDeviceRegistry(ctx context.Context, in *UpdateDeviceRegistryRequest, opts ...grpc.CallOption) (*DeviceRegistry, error)
// Deletes a device registry configuration.
DeleteDeviceRegistry(ctx context.Context, in *DeleteDeviceRegistryRequest, opts ...grpc.CallOption) (*empty.Empty, error)
// Lists device registries.
ListDeviceRegistries(ctx context.Context, in *ListDeviceRegistriesRequest, opts ...grpc.CallOption) (*ListDeviceRegistriesResponse, error)
// Creates a device in a device registry.
CreateDevice(ctx context.Context, in *CreateDeviceRequest, opts ...grpc.CallOption) (*Device, error)
// Gets details about a device.
GetDevice(ctx context.Context, in *GetDeviceRequest, opts ...grpc.CallOption) (*Device, error)
// Updates a device.
UpdateDevice(ctx context.Context, in *UpdateDeviceRequest, opts ...grpc.CallOption) (*Device, error)
// Deletes a device.
DeleteDevice(ctx context.Context, in *DeleteDeviceRequest, opts ...grpc.CallOption) (*empty.Empty, error)
// List devices in a device registry.
ListDevices(ctx context.Context, in *ListDevicesRequest, opts ...grpc.CallOption) (*ListDevicesResponse, error)
// Modifies the configuration for the device, which is eventually sent from
// the Cloud IoT Core servers. Returns the modified configuration version and
// its metadata.
ModifyCloudToDeviceConfig(ctx context.Context, in *ModifyCloudToDeviceConfigRequest, opts ...grpc.CallOption) (*DeviceConfig, error)
// Lists the last few versions of the device configuration in descending
// order (i.e.: newest first).
ListDeviceConfigVersions(ctx context.Context, in *ListDeviceConfigVersionsRequest, opts ...grpc.CallOption) (*ListDeviceConfigVersionsResponse, error)
// Lists the last few versions of the device state in descending order (i.e.:
// newest first).
ListDeviceStates(ctx context.Context, in *ListDeviceStatesRequest, opts ...grpc.CallOption) (*ListDeviceStatesResponse, error)
// Sets the access control policy on the specified resource. Replaces any
// existing policy.
SetIamPolicy(ctx context.Context, in *v1.SetIamPolicyRequest, opts ...grpc.CallOption) (*v1.Policy, error)
// Gets the access control policy for a resource.
// Returns an empty policy if the resource exists and does not have a policy
// set.
GetIamPolicy(ctx context.Context, in *v1.GetIamPolicyRequest, opts ...grpc.CallOption) (*v1.Policy, error)
// Returns permissions that a caller has on the specified resource.
// If the resource does not exist, this will return an empty set of
// permissions, not a NOT_FOUND error.
TestIamPermissions(ctx context.Context, in *v1.TestIamPermissionsRequest, opts ...grpc.CallOption) (*v1.TestIamPermissionsResponse, error)
// Sends a command to the specified device. In order for a device to be able
// to receive commands, it must:
// 1) be connected to Cloud IoT Core using the MQTT protocol, and
// 2) be subscribed to the group of MQTT topics specified by
// /devices/{device-id}/commands/#. This subscription will receive commands
// at the top-level topic /devices/{device-id}/commands as well as commands
// for subfolders, like /devices/{device-id}/commands/subfolder.
// Note that subscribing to specific subfolders is not supported.
// If the command could not be delivered to the device, this method will
// return an error; in particular, if the device is not subscribed, this
// method will return FAILED_PRECONDITION. Otherwise, this method will
// return OK. If the subscription is QoS 1, at least once delivery will be
// guaranteed; for QoS 0, no acknowledgment will be expected from the device.
SendCommandToDevice(ctx context.Context, in *SendCommandToDeviceRequest, opts ...grpc.CallOption) (*SendCommandToDeviceResponse, error)
// Associates the device with the gateway.
BindDeviceToGateway(ctx context.Context, in *BindDeviceToGatewayRequest, opts ...grpc.CallOption) (*BindDeviceToGatewayResponse, error)
// Deletes the association between the device and the gateway.
UnbindDeviceFromGateway(ctx context.Context, in *UnbindDeviceFromGatewayRequest, opts ...grpc.CallOption) (*UnbindDeviceFromGatewayResponse, error)
}
type deviceManagerClient struct {
cc grpc.ClientConnInterface
}
func NewDeviceManagerClient(cc grpc.ClientConnInterface) DeviceManagerClient {
return &deviceManagerClient{cc}
}
func (c *deviceManagerClient) CreateDeviceRegistry(ctx context.Context, in *CreateDeviceRegistryRequest, opts ...grpc.CallOption) (*DeviceRegistry, error) {
out := new(DeviceRegistry)
err := c.cc.Invoke(ctx, "/google.cloud.iot.v1.DeviceManager/CreateDeviceRegistry", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *deviceManagerClient) GetDeviceRegistry(ctx context.Context, in *GetDeviceRegistryRequest, opts ...grpc.CallOption) (*DeviceRegistry, error) {
out := new(DeviceRegistry)
err := c.cc.Invoke(ctx, "/google.cloud.iot.v1.DeviceManager/GetDeviceRegistry", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *deviceManagerClient) UpdateDeviceRegistry(ctx context.Context, in *UpdateDeviceRegistryRequest, opts ...grpc.CallOption) (*DeviceRegistry, error) {
out := new(DeviceRegistry)
err := c.cc.Invoke(ctx, "/google.cloud.iot.v1.DeviceManager/UpdateDeviceRegistry", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *deviceManagerClient) DeleteDeviceRegistry(ctx context.Context, in *DeleteDeviceRegistryRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
out := new(empty.Empty)
err := c.cc.Invoke(ctx, "/google.cloud.iot.v1.DeviceManager/DeleteDeviceRegistry", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *deviceManagerClient) ListDeviceRegistries(ctx context.Context, in *ListDeviceRegistriesRequest, opts ...grpc.CallOption) (*ListDeviceRegistriesResponse, error) {
out := new(ListDeviceRegistriesResponse)
err := c.cc.Invoke(ctx, "/google.cloud.iot.v1.DeviceManager/ListDeviceRegistries", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *deviceManagerClient) CreateDevice(ctx context.Context, in *CreateDeviceRequest, opts ...grpc.CallOption) (*Device, error) {
out := new(Device)
err := c.cc.Invoke(ctx, "/google.cloud.iot.v1.DeviceManager/CreateDevice", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *deviceManagerClient) GetDevice(ctx context.Context, in *GetDeviceRequest, opts ...grpc.CallOption) (*Device, error) {
out := new(Device)
err := c.cc.Invoke(ctx, "/google.cloud.iot.v1.DeviceManager/GetDevice", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *deviceManagerClient) UpdateDevice(ctx context.Context, in *UpdateDeviceRequest, opts ...grpc.CallOption) (*Device, error) {
out := new(Device)
err := c.cc.Invoke(ctx, "/google.cloud.iot.v1.DeviceManager/UpdateDevice", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *deviceManagerClient) DeleteDevice(ctx context.Context, in *DeleteDeviceRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
out := new(empty.Empty)
err := c.cc.Invoke(ctx, "/google.cloud.iot.v1.DeviceManager/DeleteDevice", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *deviceManagerClient) ListDevices(ctx context.Context, in *ListDevicesRequest, opts ...grpc.CallOption) (*ListDevicesResponse, error) {
out := new(ListDevicesResponse)
err := c.cc.Invoke(ctx, "/google.cloud.iot.v1.DeviceManager/ListDevices", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *deviceManagerClient) ModifyCloudToDeviceConfig(ctx context.Context, in *ModifyCloudToDeviceConfigRequest, opts ...grpc.CallOption) (*DeviceConfig, error) {
out := new(DeviceConfig)
err := c.cc.Invoke(ctx, "/google.cloud.iot.v1.DeviceManager/ModifyCloudToDeviceConfig", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *deviceManagerClient) ListDeviceConfigVersions(ctx context.Context, in *ListDeviceConfigVersionsRequest, opts ...grpc.CallOption) (*ListDeviceConfigVersionsResponse, error) {
out := new(ListDeviceConfigVersionsResponse)
err := c.cc.Invoke(ctx, "/google.cloud.iot.v1.DeviceManager/ListDeviceConfigVersions", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *deviceManagerClient) ListDeviceStates(ctx context.Context, in *ListDeviceStatesRequest, opts ...grpc.CallOption) (*ListDeviceStatesResponse, error) {
out := new(ListDeviceStatesResponse)
err := c.cc.Invoke(ctx, "/google.cloud.iot.v1.DeviceManager/ListDeviceStates", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *deviceManagerClient) SetIamPolicy(ctx context.Context, in *v1.SetIamPolicyRequest, opts ...grpc.CallOption) (*v1.Policy, error) {
out := new(v1.Policy)
err := c.cc.Invoke(ctx, "/google.cloud.iot.v1.DeviceManager/SetIamPolicy", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *deviceManagerClient) GetIamPolicy(ctx context.Context, in *v1.GetIamPolicyRequest, opts ...grpc.CallOption) (*v1.Policy, error) {
out := new(v1.Policy)
err := c.cc.Invoke(ctx, "/google.cloud.iot.v1.DeviceManager/GetIamPolicy", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *deviceManagerClient) TestIamPermissions(ctx context.Context, in *v1.TestIamPermissionsRequest, opts ...grpc.CallOption) (*v1.TestIamPermissionsResponse, error) {
out := new(v1.TestIamPermissionsResponse)
err := c.cc.Invoke(ctx, "/google.cloud.iot.v1.DeviceManager/TestIamPermissions", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *deviceManagerClient) SendCommandToDevice(ctx context.Context, in *SendCommandToDeviceRequest, opts ...grpc.CallOption) (*SendCommandToDeviceResponse, error) {
out := new(SendCommandToDeviceResponse)
err := c.cc.Invoke(ctx, "/google.cloud.iot.v1.DeviceManager/SendCommandToDevice", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *deviceManagerClient) BindDeviceToGateway(ctx context.Context, in *BindDeviceToGatewayRequest, opts ...grpc.CallOption) (*BindDeviceToGatewayResponse, error) {
out := new(BindDeviceToGatewayResponse)
err := c.cc.Invoke(ctx, "/google.cloud.iot.v1.DeviceManager/BindDeviceToGateway", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *deviceManagerClient) UnbindDeviceFromGateway(ctx context.Context, in *UnbindDeviceFromGatewayRequest, opts ...grpc.CallOption) (*UnbindDeviceFromGatewayResponse, error) {
out := new(UnbindDeviceFromGatewayResponse)
err := c.cc.Invoke(ctx, "/google.cloud.iot.v1.DeviceManager/UnbindDeviceFromGateway", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// DeviceManagerServer is the server API for DeviceManager service.
type DeviceManagerServer interface {
// Creates a device registry that contains devices.
CreateDeviceRegistry(context.Context, *CreateDeviceRegistryRequest) (*DeviceRegistry, error)
// Gets a device registry configuration.
GetDeviceRegistry(context.Context, *GetDeviceRegistryRequest) (*DeviceRegistry, error)
// Updates a device registry configuration.
UpdateDeviceRegistry(context.Context, *UpdateDeviceRegistryRequest) (*DeviceRegistry, error)
// Deletes a device registry configuration.
DeleteDeviceRegistry(context.Context, *DeleteDeviceRegistryRequest) (*empty.Empty, error)
// Lists device registries.
ListDeviceRegistries(context.Context, *ListDeviceRegistriesRequest) (*ListDeviceRegistriesResponse, error)
// Creates a device in a device registry.
CreateDevice(context.Context, *CreateDeviceRequest) (*Device, error)
// Gets details about a device.
GetDevice(context.Context, *GetDeviceRequest) (*Device, error)
// Updates a device.
UpdateDevice(context.Context, *UpdateDeviceRequest) (*Device, error)
// Deletes a device.
DeleteDevice(context.Context, *DeleteDeviceRequest) (*empty.Empty, error)
// List devices in a device registry.
ListDevices(context.Context, *ListDevicesRequest) (*ListDevicesResponse, error)
// Modifies the configuration for the device, which is eventually sent from
// the Cloud IoT Core servers. Returns the modified configuration version and
// its metadata.
ModifyCloudToDeviceConfig(context.Context, *ModifyCloudToDeviceConfigRequest) (*DeviceConfig, error)
// Lists the last few versions of the device configuration in descending
// order (i.e.: newest first).
ListDeviceConfigVersions(context.Context, *ListDeviceConfigVersionsRequest) (*ListDeviceConfigVersionsResponse, error)
// Lists the last few versions of the device state in descending order (i.e.:
// newest first).
ListDeviceStates(context.Context, *ListDeviceStatesRequest) (*ListDeviceStatesResponse, error)
// Sets the access control policy on the specified resource. Replaces any
// existing policy.
SetIamPolicy(context.Context, *v1.SetIamPolicyRequest) (*v1.Policy, error)
// Gets the access control policy for a resource.
// Returns an empty policy if the resource exists and does not have a policy
// set.
GetIamPolicy(context.Context, *v1.GetIamPolicyRequest) (*v1.Policy, error)
// Returns permissions that a caller has on the specified resource.
// If the resource does not exist, this will return an empty set of
// permissions, not a NOT_FOUND error.
TestIamPermissions(context.Context, *v1.TestIamPermissionsRequest) (*v1.TestIamPermissionsResponse, error)
// Sends a command to the specified device. In order for a device to be able
// to receive commands, it must:
// 1) be connected to Cloud IoT Core using the MQTT protocol, and
// 2) be subscribed to the group of MQTT topics specified by
// /devices/{device-id}/commands/#. This subscription will receive commands
// at the top-level topic /devices/{device-id}/commands as well as commands
// for subfolders, like /devices/{device-id}/commands/subfolder.
// Note that subscribing to specific subfolders is not supported.
// If the command could not be delivered to the device, this method will
// return an error; in particular, if the device is not subscribed, this
// method will return FAILED_PRECONDITION. Otherwise, this method will
// return OK. If the subscription is QoS 1, at least once delivery will be
// guaranteed; for QoS 0, no acknowledgment will be expected from the device.
SendCommandToDevice(context.Context, *SendCommandToDeviceRequest) (*SendCommandToDeviceResponse, error)
// Associates the device with the gateway.
BindDeviceToGateway(context.Context, *BindDeviceToGatewayRequest) (*BindDeviceToGatewayResponse, error)
// Deletes the association between the device and the gateway.
UnbindDeviceFromGateway(context.Context, *UnbindDeviceFromGatewayRequest) (*UnbindDeviceFromGatewayResponse, error)
}
// UnimplementedDeviceManagerServer can be embedded to have forward compatible implementations.
type UnimplementedDeviceManagerServer struct {
}
func (*UnimplementedDeviceManagerServer) CreateDeviceRegistry(context.Context, *CreateDeviceRegistryRequest) (*DeviceRegistry, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreateDeviceRegistry not implemented")
}
func (*UnimplementedDeviceManagerServer) GetDeviceRegistry(context.Context, *GetDeviceRegistryRequest) (*DeviceRegistry, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetDeviceRegistry not implemented")
}
func (*UnimplementedDeviceManagerServer) UpdateDeviceRegistry(context.Context, *UpdateDeviceRegistryRequest) (*DeviceRegistry, error) {
return nil, status.Errorf(codes.Unimplemented, "method UpdateDeviceRegistry not implemented")
}
func (*UnimplementedDeviceManagerServer) DeleteDeviceRegistry(context.Context, *DeleteDeviceRegistryRequest) (*empty.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteDeviceRegistry not implemented")
}
func (*UnimplementedDeviceManagerServer) ListDeviceRegistries(context.Context, *ListDeviceRegistriesRequest) (*ListDeviceRegistriesResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ListDeviceRegistries not implemented")
}
func (*UnimplementedDeviceManagerServer) CreateDevice(context.Context, *CreateDeviceRequest) (*Device, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreateDevice not implemented")
}
func (*UnimplementedDeviceManagerServer) GetDevice(context.Context, *GetDeviceRequest) (*Device, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetDevice not implemented")
}
func (*UnimplementedDeviceManagerServer) UpdateDevice(context.Context, *UpdateDeviceRequest) (*Device, error) {
return nil, status.Errorf(codes.Unimplemented, "method UpdateDevice not implemented")
}
func (*UnimplementedDeviceManagerServer) DeleteDevice(context.Context, *DeleteDeviceRequest) (*empty.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteDevice not implemented")
}
func (*UnimplementedDeviceManagerServer) ListDevices(context.Context, *ListDevicesRequest) (*ListDevicesResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ListDevices not implemented")
}
func (*UnimplementedDeviceManagerServer) ModifyCloudToDeviceConfig(context.Context, *ModifyCloudToDeviceConfigRequest) (*DeviceConfig, error) {
return nil, status.Errorf(codes.Unimplemented, "method ModifyCloudToDeviceConfig not implemented")
}
func (*UnimplementedDeviceManagerServer) ListDeviceConfigVersions(context.Context, *ListDeviceConfigVersionsRequest) (*ListDeviceConfigVersionsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ListDeviceConfigVersions not implemented")
}
func (*UnimplementedDeviceManagerServer) ListDeviceStates(context.Context, *ListDeviceStatesRequest) (*ListDeviceStatesResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ListDeviceStates not implemented")
}
func (*UnimplementedDeviceManagerServer) SetIamPolicy(context.Context, *v1.SetIamPolicyRequest) (*v1.Policy, error) {
return nil, status.Errorf(codes.Unimplemented, "method SetIamPolicy not implemented")
}
func (*UnimplementedDeviceManagerServer) GetIamPolicy(context.Context, *v1.GetIamPolicyRequest) (*v1.Policy, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetIamPolicy not implemented")
}
func (*UnimplementedDeviceManagerServer) TestIamPermissions(context.Context, *v1.TestIamPermissionsRequest) (*v1.TestIamPermissionsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method TestIamPermissions not implemented")
}
func (*UnimplementedDeviceManagerServer) SendCommandToDevice(context.Context, *SendCommandToDeviceRequest) (*SendCommandToDeviceResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method SendCommandToDevice not implemented")
}
func (*UnimplementedDeviceManagerServer) BindDeviceToGateway(context.Context, *BindDeviceToGatewayRequest) (*BindDeviceToGatewayResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method BindDeviceToGateway not implemented")
}
func (*UnimplementedDeviceManagerServer) UnbindDeviceFromGateway(context.Context, *UnbindDeviceFromGatewayRequest) (*UnbindDeviceFromGatewayResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method UnbindDeviceFromGateway not implemented")
}
func RegisterDeviceManagerServer(s *grpc.Server, srv DeviceManagerServer) {
s.RegisterService(&_DeviceManager_serviceDesc, srv)
}
func _DeviceManager_CreateDeviceRegistry_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(CreateDeviceRegistryRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(DeviceManagerServer).CreateDeviceRegistry(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.cloud.iot.v1.DeviceManager/CreateDeviceRegistry",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(DeviceManagerServer).CreateDeviceRegistry(ctx, req.(*CreateDeviceRegistryRequest))
}
return interceptor(ctx, in, info, handler)
}
func _DeviceManager_GetDeviceRegistry_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetDeviceRegistryRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(DeviceManagerServer).GetDeviceRegistry(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.cloud.iot.v1.DeviceManager/GetDeviceRegistry",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(DeviceManagerServer).GetDeviceRegistry(ctx, req.(*GetDeviceRegistryRequest))
}
return interceptor(ctx, in, info, handler)
}
func _DeviceManager_UpdateDeviceRegistry_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(UpdateDeviceRegistryRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(DeviceManagerServer).UpdateDeviceRegistry(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.cloud.iot.v1.DeviceManager/UpdateDeviceRegistry",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(DeviceManagerServer).UpdateDeviceRegistry(ctx, req.(*UpdateDeviceRegistryRequest))
}
return interceptor(ctx, in, info, handler)
}
func _DeviceManager_DeleteDeviceRegistry_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(DeleteDeviceRegistryRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(DeviceManagerServer).DeleteDeviceRegistry(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.cloud.iot.v1.DeviceManager/DeleteDeviceRegistry",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(DeviceManagerServer).DeleteDeviceRegistry(ctx, req.(*DeleteDeviceRegistryRequest))
}
return interceptor(ctx, in, info, handler)
}
func _DeviceManager_ListDeviceRegistries_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ListDeviceRegistriesRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(DeviceManagerServer).ListDeviceRegistries(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.cloud.iot.v1.DeviceManager/ListDeviceRegistries",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(DeviceManagerServer).ListDeviceRegistries(ctx, req.(*ListDeviceRegistriesRequest))
}
return interceptor(ctx, in, info, handler)
}
func _DeviceManager_CreateDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(CreateDeviceRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(DeviceManagerServer).CreateDevice(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.cloud.iot.v1.DeviceManager/CreateDevice",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(DeviceManagerServer).CreateDevice(ctx, req.(*CreateDeviceRequest))
}
return interceptor(ctx, in, info, handler)
}
func _DeviceManager_GetDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetDeviceRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(DeviceManagerServer).GetDevice(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.cloud.iot.v1.DeviceManager/GetDevice",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(DeviceManagerServer).GetDevice(ctx, req.(*GetDeviceRequest))
}
return interceptor(ctx, in, info, handler)
}
func _DeviceManager_UpdateDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(UpdateDeviceRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(DeviceManagerServer).UpdateDevice(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.cloud.iot.v1.DeviceManager/UpdateDevice",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(DeviceManagerServer).UpdateDevice(ctx, req.(*UpdateDeviceRequest))
}
return interceptor(ctx, in, info, handler)
}
func _DeviceManager_DeleteDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(DeleteDeviceRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(DeviceManagerServer).DeleteDevice(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.cloud.iot.v1.DeviceManager/DeleteDevice",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(DeviceManagerServer).DeleteDevice(ctx, req.(*DeleteDeviceRequest))
}
return interceptor(ctx, in, info, handler)
}
func _DeviceManager_ListDevices_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ListDevicesRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(DeviceManagerServer).ListDevices(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.cloud.iot.v1.DeviceManager/ListDevices",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(DeviceManagerServer).ListDevices(ctx, req.(*ListDevicesRequest))
}
return interceptor(ctx, in, info, handler)
}
func _DeviceManager_ModifyCloudToDeviceConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ModifyCloudToDeviceConfigRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(DeviceManagerServer).ModifyCloudToDeviceConfig(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.cloud.iot.v1.DeviceManager/ModifyCloudToDeviceConfig",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(DeviceManagerServer).ModifyCloudToDeviceConfig(ctx, req.(*ModifyCloudToDeviceConfigRequest))
}
return interceptor(ctx, in, info, handler)
}
func _DeviceManager_ListDeviceConfigVersions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ListDeviceConfigVersionsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(DeviceManagerServer).ListDeviceConfigVersions(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.cloud.iot.v1.DeviceManager/ListDeviceConfigVersions",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(DeviceManagerServer).ListDeviceConfigVersions(ctx, req.(*ListDeviceConfigVersionsRequest))
}
return interceptor(ctx, in, info, handler)
}
func _DeviceManager_ListDeviceStates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ListDeviceStatesRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(DeviceManagerServer).ListDeviceStates(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.cloud.iot.v1.DeviceManager/ListDeviceStates",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(DeviceManagerServer).ListDeviceStates(ctx, req.(*ListDeviceStatesRequest))
}
return interceptor(ctx, in, info, handler)
}
func _DeviceManager_SetIamPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(v1.SetIamPolicyRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(DeviceManagerServer).SetIamPolicy(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.cloud.iot.v1.DeviceManager/SetIamPolicy",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(DeviceManagerServer).SetIamPolicy(ctx, req.(*v1.SetIamPolicyRequest))
}
return interceptor(ctx, in, info, handler)
}
func _DeviceManager_GetIamPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(v1.GetIamPolicyRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(DeviceManagerServer).GetIamPolicy(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.cloud.iot.v1.DeviceManager/GetIamPolicy",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(DeviceManagerServer).GetIamPolicy(ctx, req.(*v1.GetIamPolicyRequest))
}
return interceptor(ctx, in, info, handler)
}
func _DeviceManager_TestIamPermissions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(v1.TestIamPermissionsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(DeviceManagerServer).TestIamPermissions(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.cloud.iot.v1.DeviceManager/TestIamPermissions",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(DeviceManagerServer).TestIamPermissions(ctx, req.(*v1.TestIamPermissionsRequest))
}
return interceptor(ctx, in, info, handler)
}
func _DeviceManager_SendCommandToDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(SendCommandToDeviceRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(DeviceManagerServer).SendCommandToDevice(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.cloud.iot.v1.DeviceManager/SendCommandToDevice",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(DeviceManagerServer).SendCommandToDevice(ctx, req.(*SendCommandToDeviceRequest))
}
return interceptor(ctx, in, info, handler)
}
func _DeviceManager_BindDeviceToGateway_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(BindDeviceToGatewayRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(DeviceManagerServer).BindDeviceToGateway(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.cloud.iot.v1.DeviceManager/BindDeviceToGateway",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(DeviceManagerServer).BindDeviceToGateway(ctx, req.(*BindDeviceToGatewayRequest))
}
return interceptor(ctx, in, info, handler)
}
func _DeviceManager_UnbindDeviceFromGateway_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(UnbindDeviceFromGatewayRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(DeviceManagerServer).UnbindDeviceFromGateway(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.cloud.iot.v1.DeviceManager/UnbindDeviceFromGateway",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(DeviceManagerServer).UnbindDeviceFromGateway(ctx, req.(*UnbindDeviceFromGatewayRequest))
}
return interceptor(ctx, in, info, handler)
}
var _DeviceManager_serviceDesc = grpc.ServiceDesc{
ServiceName: "google.cloud.iot.v1.DeviceManager",
HandlerType: (*DeviceManagerServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "CreateDeviceRegistry",
Handler: _DeviceManager_CreateDeviceRegistry_Handler,
},
{
MethodName: "GetDeviceRegistry",
Handler: _DeviceManager_GetDeviceRegistry_Handler,
},
{
MethodName: "UpdateDeviceRegistry",
Handler: _DeviceManager_UpdateDeviceRegistry_Handler,
},
{
MethodName: "DeleteDeviceRegistry",
Handler: _DeviceManager_DeleteDeviceRegistry_Handler,
},
{
MethodName: "ListDeviceRegistries",
Handler: _DeviceManager_ListDeviceRegistries_Handler,
},
{
MethodName: "CreateDevice",
Handler: _DeviceManager_CreateDevice_Handler,
},
{
MethodName: "GetDevice",
Handler: _DeviceManager_GetDevice_Handler,
},
{
MethodName: "UpdateDevice",
Handler: _DeviceManager_UpdateDevice_Handler,
},
{
MethodName: "DeleteDevice",
Handler: _DeviceManager_DeleteDevice_Handler,
},
{
MethodName: "ListDevices",
Handler: _DeviceManager_ListDevices_Handler,
},
{
MethodName: "ModifyCloudToDeviceConfig",
Handler: _DeviceManager_ModifyCloudToDeviceConfig_Handler,
},
{
MethodName: "ListDeviceConfigVersions",
Handler: _DeviceManager_ListDeviceConfigVersions_Handler,
},
{
MethodName: "ListDeviceStates",
Handler: _DeviceManager_ListDeviceStates_Handler,
},
{
MethodName: "SetIamPolicy",
Handler: _DeviceManager_SetIamPolicy_Handler,
},
{
MethodName: "GetIamPolicy",
Handler: _DeviceManager_GetIamPolicy_Handler,
},
{
MethodName: "TestIamPermissions",
Handler: _DeviceManager_TestIamPermissions_Handler,
},
{
MethodName: "SendCommandToDevice",
Handler: _DeviceManager_SendCommandToDevice_Handler,
},
{
MethodName: "BindDeviceToGateway",
Handler: _DeviceManager_BindDeviceToGateway_Handler,
},
{
MethodName: "UnbindDeviceFromGateway",
Handler: _DeviceManager_UnbindDeviceFromGateway_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "google/cloud/iot/v1/device_manager.proto",
}