diff --git a/component/arm/v1/arm.pb.gw.go b/component/arm/v1/arm.pb.gw.go index e9d51a96f..90c742bb6 100644 --- a/component/arm/v1/arm.pb.gw.go +++ b/component/arm/v1/arm.pb.gw.go @@ -15,7 +15,7 @@ import ( "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - "go.viam.com/api/common/v1" + v1_0 "go.viam.com/api/common/v1" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" @@ -439,7 +439,7 @@ var ( ) func request_ArmService_DoCommand_0(ctx context.Context, marshaler runtime.Marshaler, client ArmServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1.DoCommandRequest + var protoReq v1_0.DoCommandRequest var metadata runtime.ServerMetadata var ( @@ -472,7 +472,7 @@ func request_ArmService_DoCommand_0(ctx context.Context, marshaler runtime.Marsh } func local_request_ArmService_DoCommand_0(ctx context.Context, marshaler runtime.Marshaler, server ArmServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1.DoCommandRequest + var protoReq v1_0.DoCommandRequest var metadata runtime.ServerMetadata var ( @@ -509,7 +509,7 @@ var ( ) func request_ArmService_GetKinematics_0(ctx context.Context, marshaler runtime.Marshaler, client ArmServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1.GetKinematicsRequest + var protoReq v1_0.GetKinematicsRequest var metadata runtime.ServerMetadata var ( @@ -542,7 +542,7 @@ func request_ArmService_GetKinematics_0(ctx context.Context, marshaler runtime.M } func local_request_ArmService_GetKinematics_0(ctx context.Context, marshaler runtime.Marshaler, server ArmServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1.GetKinematicsRequest + var protoReq v1_0.GetKinematicsRequest var metadata runtime.ServerMetadata var ( @@ -579,7 +579,7 @@ var ( ) func request_ArmService_GetGeometries_0(ctx context.Context, marshaler runtime.Marshaler, client ArmServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1.GetGeometriesRequest + var protoReq v1_0.GetGeometriesRequest var metadata runtime.ServerMetadata var ( @@ -612,7 +612,7 @@ func request_ArmService_GetGeometries_0(ctx context.Context, marshaler runtime.M } func local_request_ArmService_GetGeometries_0(ctx context.Context, marshaler runtime.Marshaler, server ArmServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1.GetGeometriesRequest + var protoReq v1_0.GetGeometriesRequest var metadata runtime.ServerMetadata var ( diff --git a/component/encoder/v1/encoder.pb.gw.go b/component/encoder/v1/encoder.pb.gw.go index ef911f15d..4fa63db37 100644 --- a/component/encoder/v1/encoder.pb.gw.go +++ b/component/encoder/v1/encoder.pb.gw.go @@ -15,7 +15,7 @@ import ( "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - "go.viam.com/api/common/v1" + v1_0 "go.viam.com/api/common/v1" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" @@ -247,7 +247,7 @@ var ( ) func request_EncoderService_DoCommand_0(ctx context.Context, marshaler runtime.Marshaler, client EncoderServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1.DoCommandRequest + var protoReq v1_0.DoCommandRequest var metadata runtime.ServerMetadata var ( @@ -280,7 +280,7 @@ func request_EncoderService_DoCommand_0(ctx context.Context, marshaler runtime.M } func local_request_EncoderService_DoCommand_0(ctx context.Context, marshaler runtime.Marshaler, server EncoderServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1.DoCommandRequest + var protoReq v1_0.DoCommandRequest var metadata runtime.ServerMetadata var ( @@ -317,7 +317,7 @@ var ( ) func request_EncoderService_GetGeometries_0(ctx context.Context, marshaler runtime.Marshaler, client EncoderServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1.GetGeometriesRequest + var protoReq v1_0.GetGeometriesRequest var metadata runtime.ServerMetadata var ( @@ -350,7 +350,7 @@ func request_EncoderService_GetGeometries_0(ctx context.Context, marshaler runti } func local_request_EncoderService_GetGeometries_0(ctx context.Context, marshaler runtime.Marshaler, server EncoderServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1.GetGeometriesRequest + var protoReq v1_0.GetGeometriesRequest var metadata runtime.ServerMetadata var ( diff --git a/component/gantry/v1/gantry.pb.gw.go b/component/gantry/v1/gantry.pb.gw.go index e78f11c29..13a62b8f4 100644 --- a/component/gantry/v1/gantry.pb.gw.go +++ b/component/gantry/v1/gantry.pb.gw.go @@ -15,7 +15,7 @@ import ( "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - v1_0 "go.viam.com/api/common/v1" + "go.viam.com/api/common/v1" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" @@ -439,7 +439,7 @@ var ( ) func request_GantryService_DoCommand_0(ctx context.Context, marshaler runtime.Marshaler, client GantryServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1_0.DoCommandRequest + var protoReq v1.DoCommandRequest var metadata runtime.ServerMetadata var ( @@ -472,7 +472,7 @@ func request_GantryService_DoCommand_0(ctx context.Context, marshaler runtime.Ma } func local_request_GantryService_DoCommand_0(ctx context.Context, marshaler runtime.Marshaler, server GantryServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1_0.DoCommandRequest + var protoReq v1.DoCommandRequest var metadata runtime.ServerMetadata var ( @@ -509,7 +509,7 @@ var ( ) func request_GantryService_GetGeometries_0(ctx context.Context, marshaler runtime.Marshaler, client GantryServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1_0.GetGeometriesRequest + var protoReq v1.GetGeometriesRequest var metadata runtime.ServerMetadata var ( @@ -542,7 +542,7 @@ func request_GantryService_GetGeometries_0(ctx context.Context, marshaler runtim } func local_request_GantryService_GetGeometries_0(ctx context.Context, marshaler runtime.Marshaler, server GantryServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1_0.GetGeometriesRequest + var protoReq v1.GetGeometriesRequest var metadata runtime.ServerMetadata var ( diff --git a/component/gripper/v1/gripper.pb.gw.go b/component/gripper/v1/gripper.pb.gw.go index b432b0c7e..d732daf0a 100644 --- a/component/gripper/v1/gripper.pb.gw.go +++ b/component/gripper/v1/gripper.pb.gw.go @@ -15,7 +15,7 @@ import ( "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - "go.viam.com/api/common/v1" + v1_0 "go.viam.com/api/common/v1" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" @@ -299,7 +299,7 @@ var ( ) func request_GripperService_DoCommand_0(ctx context.Context, marshaler runtime.Marshaler, client GripperServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1.DoCommandRequest + var protoReq v1_0.DoCommandRequest var metadata runtime.ServerMetadata var ( @@ -332,7 +332,7 @@ func request_GripperService_DoCommand_0(ctx context.Context, marshaler runtime.M } func local_request_GripperService_DoCommand_0(ctx context.Context, marshaler runtime.Marshaler, server GripperServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1.DoCommandRequest + var protoReq v1_0.DoCommandRequest var metadata runtime.ServerMetadata var ( @@ -369,7 +369,7 @@ var ( ) func request_GripperService_GetGeometries_0(ctx context.Context, marshaler runtime.Marshaler, client GripperServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1.GetGeometriesRequest + var protoReq v1_0.GetGeometriesRequest var metadata runtime.ServerMetadata var ( @@ -402,7 +402,7 @@ func request_GripperService_GetGeometries_0(ctx context.Context, marshaler runti } func local_request_GripperService_GetGeometries_0(ctx context.Context, marshaler runtime.Marshaler, server GripperServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1.GetGeometriesRequest + var protoReq v1_0.GetGeometriesRequest var metadata runtime.ServerMetadata var ( diff --git a/component/movementsensor/v1/movementsensor.pb.gw.go b/component/movementsensor/v1/movementsensor.pb.gw.go index 8530c6d94..a2cd12d55 100644 --- a/component/movementsensor/v1/movementsensor.pb.gw.go +++ b/component/movementsensor/v1/movementsensor.pb.gw.go @@ -15,7 +15,7 @@ import ( "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - "go.viam.com/api/common/v1" + v1_0 "go.viam.com/api/common/v1" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" @@ -597,7 +597,7 @@ var ( ) func request_MovementSensorService_DoCommand_0(ctx context.Context, marshaler runtime.Marshaler, client MovementSensorServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1.DoCommandRequest + var protoReq v1_0.DoCommandRequest var metadata runtime.ServerMetadata var ( @@ -630,7 +630,7 @@ func request_MovementSensorService_DoCommand_0(ctx context.Context, marshaler ru } func local_request_MovementSensorService_DoCommand_0(ctx context.Context, marshaler runtime.Marshaler, server MovementSensorServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1.DoCommandRequest + var protoReq v1_0.DoCommandRequest var metadata runtime.ServerMetadata var ( @@ -667,7 +667,7 @@ var ( ) func request_MovementSensorService_GetGeometries_0(ctx context.Context, marshaler runtime.Marshaler, client MovementSensorServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1.GetGeometriesRequest + var protoReq v1_0.GetGeometriesRequest var metadata runtime.ServerMetadata var ( @@ -700,7 +700,7 @@ func request_MovementSensorService_GetGeometries_0(ctx context.Context, marshale } func local_request_MovementSensorService_GetGeometries_0(ctx context.Context, marshaler runtime.Marshaler, server MovementSensorServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1.GetGeometriesRequest + var protoReq v1_0.GetGeometriesRequest var metadata runtime.ServerMetadata var ( @@ -737,7 +737,7 @@ var ( ) func request_MovementSensorService_GetReadings_0(ctx context.Context, marshaler runtime.Marshaler, client MovementSensorServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1.GetReadingsRequest + var protoReq v1_0.GetReadingsRequest var metadata runtime.ServerMetadata var ( @@ -770,7 +770,7 @@ func request_MovementSensorService_GetReadings_0(ctx context.Context, marshaler } func local_request_MovementSensorService_GetReadings_0(ctx context.Context, marshaler runtime.Marshaler, server MovementSensorServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1.GetReadingsRequest + var protoReq v1_0.GetReadingsRequest var metadata runtime.ServerMetadata var ( diff --git a/gen/js/service/vision/v1/vision_grpc_web_pb.js b/gen/js/service/vision/v1/vision_grpc_web_pb.js index 7b7eea003..2453f4e3d 100644 --- a/gen/js/service/vision/v1/vision_grpc_web_pb.js +++ b/gen/js/service/vision/v1/vision_grpc_web_pb.js @@ -22,6 +22,8 @@ grpc.web = require('grpc-web'); var common_v1_common_pb = require('../../../common/v1/common_pb.js') +var component_camera_v1_camera_pb = require('../../../component/camera/v1/camera_pb.js') + var google_api_annotations_pb = require('../../../google/api/annotations_pb.js') var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js') @@ -449,6 +451,67 @@ proto.viam.service.vision.v1.VisionServicePromiseClient.prototype.getProperties }; +/** + * @const + * @type {!grpc.web.MethodDescriptor< + * !proto.viam.service.vision.v1.CaptureAllFromCameraRequest, + * !proto.viam.service.vision.v1.CaptureAllFromCameraResponse>} + */ +const methodDescriptor_VisionService_CaptureAllFromCamera = new grpc.web.MethodDescriptor( + '/viam.service.vision.v1.VisionService/CaptureAllFromCamera', + grpc.web.MethodType.UNARY, + proto.viam.service.vision.v1.CaptureAllFromCameraRequest, + proto.viam.service.vision.v1.CaptureAllFromCameraResponse, + /** + * @param {!proto.viam.service.vision.v1.CaptureAllFromCameraRequest} request + * @return {!Uint8Array} + */ + function(request) { + return request.serializeBinary(); + }, + proto.viam.service.vision.v1.CaptureAllFromCameraResponse.deserializeBinary +); + + +/** + * @param {!proto.viam.service.vision.v1.CaptureAllFromCameraRequest} request The + * request proto + * @param {?Object} metadata User defined + * call metadata + * @param {function(?grpc.web.RpcError, ?proto.viam.service.vision.v1.CaptureAllFromCameraResponse)} + * callback The callback function(error, response) + * @return {!grpc.web.ClientReadableStream|undefined} + * The XHR Node Readable Stream + */ +proto.viam.service.vision.v1.VisionServiceClient.prototype.captureAllFromCamera = + function(request, metadata, callback) { + return this.client_.rpcCall(this.hostname_ + + '/viam.service.vision.v1.VisionService/CaptureAllFromCamera', + request, + metadata || {}, + methodDescriptor_VisionService_CaptureAllFromCamera, + callback); +}; + + +/** + * @param {!proto.viam.service.vision.v1.CaptureAllFromCameraRequest} request The + * request proto + * @param {?Object=} metadata User defined + * call metadata + * @return {!Promise} + * Promise that resolves to the response + */ +proto.viam.service.vision.v1.VisionServicePromiseClient.prototype.captureAllFromCamera = + function(request, metadata) { + return this.client_.unaryCall(this.hostname_ + + '/viam.service.vision.v1.VisionService/CaptureAllFromCamera', + request, + metadata || {}, + methodDescriptor_VisionService_CaptureAllFromCamera); +}; + + /** * @const * @type {!grpc.web.MethodDescriptor< diff --git a/gen/js/service/vision/v1/vision_pb.d.ts b/gen/js/service/vision/v1/vision_pb.d.ts index 47139994b..3727390c8 100644 --- a/gen/js/service/vision/v1/vision_pb.d.ts +++ b/gen/js/service/vision/v1/vision_pb.d.ts @@ -3,6 +3,7 @@ import * as jspb from "google-protobuf"; import * as common_v1_common_pb from "../../../common/v1/common_pb"; +import * as component_camera_v1_camera_pb from "../../../component/camera/v1/camera_pb"; import * as google_api_annotations_pb from "../../../google/api/annotations_pb"; import * as google_protobuf_struct_pb from "google-protobuf/google/protobuf/struct_pb"; @@ -408,6 +409,98 @@ export namespace GetPropertiesRequest { } } +export class CaptureAllFromCameraRequest extends jspb.Message { + getName(): string; + setName(value: string): void; + + getCameraName(): string; + setCameraName(value: string): void; + + getReturnImage(): boolean; + setReturnImage(value: boolean): void; + + getReturnClassifications(): boolean; + setReturnClassifications(value: boolean): void; + + getReturnDetections(): boolean; + setReturnDetections(value: boolean): void; + + getReturnObjectPointClouds(): boolean; + setReturnObjectPointClouds(value: boolean): void; + + hasExtra(): boolean; + clearExtra(): void; + getExtra(): google_protobuf_struct_pb.Struct | undefined; + setExtra(value?: google_protobuf_struct_pb.Struct): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CaptureAllFromCameraRequest.AsObject; + static toObject(includeInstance: boolean, msg: CaptureAllFromCameraRequest): CaptureAllFromCameraRequest.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: CaptureAllFromCameraRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CaptureAllFromCameraRequest; + static deserializeBinaryFromReader(message: CaptureAllFromCameraRequest, reader: jspb.BinaryReader): CaptureAllFromCameraRequest; +} + +export namespace CaptureAllFromCameraRequest { + export type AsObject = { + name: string, + cameraName: string, + returnImage: boolean, + returnClassifications: boolean, + returnDetections: boolean, + returnObjectPointClouds: boolean, + extra?: google_protobuf_struct_pb.Struct.AsObject, + } +} + +export class CaptureAllFromCameraResponse extends jspb.Message { + hasImage(): boolean; + clearImage(): void; + getImage(): component_camera_v1_camera_pb.Image | undefined; + setImage(value?: component_camera_v1_camera_pb.Image): void; + + clearDetectionsList(): void; + getDetectionsList(): Array; + setDetectionsList(value: Array): void; + addDetections(value?: Detection, index?: number): Detection; + + clearClassificationsList(): void; + getClassificationsList(): Array; + setClassificationsList(value: Array): void; + addClassifications(value?: Classification, index?: number): Classification; + + clearObjectsList(): void; + getObjectsList(): Array; + setObjectsList(value: Array): void; + addObjects(value?: common_v1_common_pb.PointCloudObject, index?: number): common_v1_common_pb.PointCloudObject; + + hasExtra(): boolean; + clearExtra(): void; + getExtra(): google_protobuf_struct_pb.Struct | undefined; + setExtra(value?: google_protobuf_struct_pb.Struct): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CaptureAllFromCameraResponse.AsObject; + static toObject(includeInstance: boolean, msg: CaptureAllFromCameraResponse): CaptureAllFromCameraResponse.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: CaptureAllFromCameraResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CaptureAllFromCameraResponse; + static deserializeBinaryFromReader(message: CaptureAllFromCameraResponse, reader: jspb.BinaryReader): CaptureAllFromCameraResponse; +} + +export namespace CaptureAllFromCameraResponse { + export type AsObject = { + image?: component_camera_v1_camera_pb.Image.AsObject, + detectionsList: Array, + classificationsList: Array, + objectsList: Array, + extra?: google_protobuf_struct_pb.Struct.AsObject, + } +} + export class GetPropertiesResponse extends jspb.Message { getClassificationsSupported(): boolean; setClassificationsSupported(value: boolean): void; diff --git a/gen/js/service/vision/v1/vision_pb.js b/gen/js/service/vision/v1/vision_pb.js index e412f0312..b98d60f17 100644 --- a/gen/js/service/vision/v1/vision_pb.js +++ b/gen/js/service/vision/v1/vision_pb.js @@ -17,10 +17,14 @@ var global = (function() { return this || window || global || self || Function(' var common_v1_common_pb = require('../../../common/v1/common_pb.js'); goog.object.extend(proto, common_v1_common_pb); +var component_camera_v1_camera_pb = require('../../../component/camera/v1/camera_pb.js'); +goog.object.extend(proto, component_camera_v1_camera_pb); var google_api_annotations_pb = require('../../../google/api/annotations_pb.js'); goog.object.extend(proto, google_api_annotations_pb); var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js'); goog.object.extend(proto, google_protobuf_struct_pb); +goog.exportSymbol('proto.viam.service.vision.v1.CaptureAllFromCameraRequest', null, global); +goog.exportSymbol('proto.viam.service.vision.v1.CaptureAllFromCameraResponse', null, global); goog.exportSymbol('proto.viam.service.vision.v1.Classification', null, global); goog.exportSymbol('proto.viam.service.vision.v1.Detection', null, global); goog.exportSymbol('proto.viam.service.vision.v1.GetClassificationsFromCameraRequest', null, global); @@ -308,6 +312,48 @@ if (goog.DEBUG && !COMPILED) { */ proto.viam.service.vision.v1.GetPropertiesRequest.displayName = 'proto.viam.service.vision.v1.GetPropertiesRequest'; } +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.viam.service.vision.v1.CaptureAllFromCameraRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.viam.service.vision.v1.CaptureAllFromCameraRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.viam.service.vision.v1.CaptureAllFromCameraRequest.displayName = 'proto.viam.service.vision.v1.CaptureAllFromCameraRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.viam.service.vision.v1.CaptureAllFromCameraResponse.repeatedFields_, null); +}; +goog.inherits(proto.viam.service.vision.v1.CaptureAllFromCameraResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.viam.service.vision.v1.CaptureAllFromCameraResponse.displayName = 'proto.viam.service.vision.v1.CaptureAllFromCameraResponse'; +} /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a @@ -3228,6 +3274,705 @@ proto.viam.service.vision.v1.GetPropertiesRequest.prototype.hasExtra = function( +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraRequest.prototype.toObject = function(opt_includeInstance) { + return proto.viam.service.vision.v1.CaptureAllFromCameraRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.viam.service.vision.v1.CaptureAllFromCameraRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.viam.service.vision.v1.CaptureAllFromCameraRequest.toObject = function(includeInstance, msg) { + var f, obj = { + name: jspb.Message.getFieldWithDefault(msg, 1, ""), + cameraName: jspb.Message.getFieldWithDefault(msg, 2, ""), + returnImage: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), + returnClassifications: jspb.Message.getBooleanFieldWithDefault(msg, 4, false), + returnDetections: jspb.Message.getBooleanFieldWithDefault(msg, 5, false), + returnObjectPointClouds: jspb.Message.getBooleanFieldWithDefault(msg, 6, false), + extra: (f = msg.getExtra()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.viam.service.vision.v1.CaptureAllFromCameraRequest} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.viam.service.vision.v1.CaptureAllFromCameraRequest; + return proto.viam.service.vision.v1.CaptureAllFromCameraRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.viam.service.vision.v1.CaptureAllFromCameraRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.viam.service.vision.v1.CaptureAllFromCameraRequest} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setCameraName(value); + break; + case 3: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setReturnImage(value); + break; + case 4: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setReturnClassifications(value); + break; + case 5: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setReturnDetections(value); + break; + case 6: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setReturnObjectPointClouds(value); + break; + case 99: + var value = new google_protobuf_struct_pb.Struct; + reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader); + msg.setExtra(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.viam.service.vision.v1.CaptureAllFromCameraRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.viam.service.vision.v1.CaptureAllFromCameraRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.viam.service.vision.v1.CaptureAllFromCameraRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getCameraName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getReturnImage(); + if (f) { + writer.writeBool( + 3, + f + ); + } + f = message.getReturnClassifications(); + if (f) { + writer.writeBool( + 4, + f + ); + } + f = message.getReturnDetections(); + if (f) { + writer.writeBool( + 5, + f + ); + } + f = message.getReturnObjectPointClouds(); + if (f) { + writer.writeBool( + 6, + f + ); + } + f = message.getExtra(); + if (f != null) { + writer.writeMessage( + 99, + f, + google_protobuf_struct_pb.Struct.serializeBinaryToWriter + ); + } +}; + + +/** + * optional string name = 1; + * @return {string} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.viam.service.vision.v1.CaptureAllFromCameraRequest} returns this + */ +proto.viam.service.vision.v1.CaptureAllFromCameraRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string camera_name = 2; + * @return {string} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraRequest.prototype.getCameraName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.viam.service.vision.v1.CaptureAllFromCameraRequest} returns this + */ +proto.viam.service.vision.v1.CaptureAllFromCameraRequest.prototype.setCameraName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional bool return_image = 3; + * @return {boolean} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraRequest.prototype.getReturnImage = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.viam.service.vision.v1.CaptureAllFromCameraRequest} returns this + */ +proto.viam.service.vision.v1.CaptureAllFromCameraRequest.prototype.setReturnImage = function(value) { + return jspb.Message.setProto3BooleanField(this, 3, value); +}; + + +/** + * optional bool return_classifications = 4; + * @return {boolean} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraRequest.prototype.getReturnClassifications = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.viam.service.vision.v1.CaptureAllFromCameraRequest} returns this + */ +proto.viam.service.vision.v1.CaptureAllFromCameraRequest.prototype.setReturnClassifications = function(value) { + return jspb.Message.setProto3BooleanField(this, 4, value); +}; + + +/** + * optional bool return_detections = 5; + * @return {boolean} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraRequest.prototype.getReturnDetections = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.viam.service.vision.v1.CaptureAllFromCameraRequest} returns this + */ +proto.viam.service.vision.v1.CaptureAllFromCameraRequest.prototype.setReturnDetections = function(value) { + return jspb.Message.setProto3BooleanField(this, 5, value); +}; + + +/** + * optional bool return_object_point_clouds = 6; + * @return {boolean} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraRequest.prototype.getReturnObjectPointClouds = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 6, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.viam.service.vision.v1.CaptureAllFromCameraRequest} returns this + */ +proto.viam.service.vision.v1.CaptureAllFromCameraRequest.prototype.setReturnObjectPointClouds = function(value) { + return jspb.Message.setProto3BooleanField(this, 6, value); +}; + + +/** + * optional google.protobuf.Struct extra = 99; + * @return {?proto.google.protobuf.Struct} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraRequest.prototype.getExtra = function() { + return /** @type{?proto.google.protobuf.Struct} */ ( + jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 99)); +}; + + +/** + * @param {?proto.google.protobuf.Struct|undefined} value + * @return {!proto.viam.service.vision.v1.CaptureAllFromCameraRequest} returns this +*/ +proto.viam.service.vision.v1.CaptureAllFromCameraRequest.prototype.setExtra = function(value) { + return jspb.Message.setWrapperField(this, 99, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.viam.service.vision.v1.CaptureAllFromCameraRequest} returns this + */ +proto.viam.service.vision.v1.CaptureAllFromCameraRequest.prototype.clearExtra = function() { + return this.setExtra(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraRequest.prototype.hasExtra = function() { + return jspb.Message.getField(this, 99) != null; +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.repeatedFields_ = [2,3,4]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.prototype.toObject = function(opt_includeInstance) { + return proto.viam.service.vision.v1.CaptureAllFromCameraResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.viam.service.vision.v1.CaptureAllFromCameraResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.toObject = function(includeInstance, msg) { + var f, obj = { + image: (f = msg.getImage()) && component_camera_v1_camera_pb.Image.toObject(includeInstance, f), + detectionsList: jspb.Message.toObjectList(msg.getDetectionsList(), + proto.viam.service.vision.v1.Detection.toObject, includeInstance), + classificationsList: jspb.Message.toObjectList(msg.getClassificationsList(), + proto.viam.service.vision.v1.Classification.toObject, includeInstance), + objectsList: jspb.Message.toObjectList(msg.getObjectsList(), + common_v1_common_pb.PointCloudObject.toObject, includeInstance), + extra: (f = msg.getExtra()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.viam.service.vision.v1.CaptureAllFromCameraResponse} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.viam.service.vision.v1.CaptureAllFromCameraResponse; + return proto.viam.service.vision.v1.CaptureAllFromCameraResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.viam.service.vision.v1.CaptureAllFromCameraResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.viam.service.vision.v1.CaptureAllFromCameraResponse} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new component_camera_v1_camera_pb.Image; + reader.readMessage(value,component_camera_v1_camera_pb.Image.deserializeBinaryFromReader); + msg.setImage(value); + break; + case 2: + var value = new proto.viam.service.vision.v1.Detection; + reader.readMessage(value,proto.viam.service.vision.v1.Detection.deserializeBinaryFromReader); + msg.addDetections(value); + break; + case 3: + var value = new proto.viam.service.vision.v1.Classification; + reader.readMessage(value,proto.viam.service.vision.v1.Classification.deserializeBinaryFromReader); + msg.addClassifications(value); + break; + case 4: + var value = new common_v1_common_pb.PointCloudObject; + reader.readMessage(value,common_v1_common_pb.PointCloudObject.deserializeBinaryFromReader); + msg.addObjects(value); + break; + case 99: + var value = new google_protobuf_struct_pb.Struct; + reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader); + msg.setExtra(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.viam.service.vision.v1.CaptureAllFromCameraResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.viam.service.vision.v1.CaptureAllFromCameraResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getImage(); + if (f != null) { + writer.writeMessage( + 1, + f, + component_camera_v1_camera_pb.Image.serializeBinaryToWriter + ); + } + f = message.getDetectionsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 2, + f, + proto.viam.service.vision.v1.Detection.serializeBinaryToWriter + ); + } + f = message.getClassificationsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 3, + f, + proto.viam.service.vision.v1.Classification.serializeBinaryToWriter + ); + } + f = message.getObjectsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 4, + f, + common_v1_common_pb.PointCloudObject.serializeBinaryToWriter + ); + } + f = message.getExtra(); + if (f != null) { + writer.writeMessage( + 99, + f, + google_protobuf_struct_pb.Struct.serializeBinaryToWriter + ); + } +}; + + +/** + * optional viam.component.camera.v1.Image image = 1; + * @return {?proto.viam.component.camera.v1.Image} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.prototype.getImage = function() { + return /** @type{?proto.viam.component.camera.v1.Image} */ ( + jspb.Message.getWrapperField(this, component_camera_v1_camera_pb.Image, 1)); +}; + + +/** + * @param {?proto.viam.component.camera.v1.Image|undefined} value + * @return {!proto.viam.service.vision.v1.CaptureAllFromCameraResponse} returns this +*/ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.prototype.setImage = function(value) { + return jspb.Message.setWrapperField(this, 1, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.viam.service.vision.v1.CaptureAllFromCameraResponse} returns this + */ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.prototype.clearImage = function() { + return this.setImage(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.prototype.hasImage = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * repeated Detection detections = 2; + * @return {!Array} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.prototype.getDetectionsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.viam.service.vision.v1.Detection, 2)); +}; + + +/** + * @param {!Array} value + * @return {!proto.viam.service.vision.v1.CaptureAllFromCameraResponse} returns this +*/ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.prototype.setDetectionsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 2, value); +}; + + +/** + * @param {!proto.viam.service.vision.v1.Detection=} opt_value + * @param {number=} opt_index + * @return {!proto.viam.service.vision.v1.Detection} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.prototype.addDetections = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.viam.service.vision.v1.Detection, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.viam.service.vision.v1.CaptureAllFromCameraResponse} returns this + */ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.prototype.clearDetectionsList = function() { + return this.setDetectionsList([]); +}; + + +/** + * repeated Classification classifications = 3; + * @return {!Array} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.prototype.getClassificationsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.viam.service.vision.v1.Classification, 3)); +}; + + +/** + * @param {!Array} value + * @return {!proto.viam.service.vision.v1.CaptureAllFromCameraResponse} returns this +*/ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.prototype.setClassificationsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 3, value); +}; + + +/** + * @param {!proto.viam.service.vision.v1.Classification=} opt_value + * @param {number=} opt_index + * @return {!proto.viam.service.vision.v1.Classification} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.prototype.addClassifications = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.viam.service.vision.v1.Classification, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.viam.service.vision.v1.CaptureAllFromCameraResponse} returns this + */ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.prototype.clearClassificationsList = function() { + return this.setClassificationsList([]); +}; + + +/** + * repeated viam.common.v1.PointCloudObject objects = 4; + * @return {!Array} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.prototype.getObjectsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, common_v1_common_pb.PointCloudObject, 4)); +}; + + +/** + * @param {!Array} value + * @return {!proto.viam.service.vision.v1.CaptureAllFromCameraResponse} returns this +*/ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.prototype.setObjectsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 4, value); +}; + + +/** + * @param {!proto.viam.common.v1.PointCloudObject=} opt_value + * @param {number=} opt_index + * @return {!proto.viam.common.v1.PointCloudObject} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.prototype.addObjects = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.viam.common.v1.PointCloudObject, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.viam.service.vision.v1.CaptureAllFromCameraResponse} returns this + */ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.prototype.clearObjectsList = function() { + return this.setObjectsList([]); +}; + + +/** + * optional google.protobuf.Struct extra = 99; + * @return {?proto.google.protobuf.Struct} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.prototype.getExtra = function() { + return /** @type{?proto.google.protobuf.Struct} */ ( + jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 99)); +}; + + +/** + * @param {?proto.google.protobuf.Struct|undefined} value + * @return {!proto.viam.service.vision.v1.CaptureAllFromCameraResponse} returns this +*/ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.prototype.setExtra = function(value) { + return jspb.Message.setWrapperField(this, 99, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.viam.service.vision.v1.CaptureAllFromCameraResponse} returns this + */ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.prototype.clearExtra = function() { + return this.setExtra(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.viam.service.vision.v1.CaptureAllFromCameraResponse.prototype.hasExtra = function() { + return jspb.Message.getField(this, 99) != null; +}; + + + + + if (jspb.Message.GENERATE_TO_OBJECT) { /** * Creates an object representation of this proto. diff --git a/gen/js/service/vision/v1/vision_pb_service.d.ts b/gen/js/service/vision/v1/vision_pb_service.d.ts index ad5fbfa1b..b2c2d59c9 100644 --- a/gen/js/service/vision/v1/vision_pb_service.d.ts +++ b/gen/js/service/vision/v1/vision_pb_service.d.ts @@ -59,6 +59,15 @@ type VisionServiceGetProperties = { readonly responseType: typeof service_vision_v1_vision_pb.GetPropertiesResponse; }; +type VisionServiceCaptureAllFromCamera = { + readonly methodName: string; + readonly service: typeof VisionService; + readonly requestStream: false; + readonly responseStream: false; + readonly requestType: typeof service_vision_v1_vision_pb.CaptureAllFromCameraRequest; + readonly responseType: typeof service_vision_v1_vision_pb.CaptureAllFromCameraResponse; +}; + type VisionServiceDoCommand = { readonly methodName: string; readonly service: typeof VisionService; @@ -76,6 +85,7 @@ export class VisionService { static readonly GetClassifications: VisionServiceGetClassifications; static readonly GetObjectPointClouds: VisionServiceGetObjectPointClouds; static readonly GetProperties: VisionServiceGetProperties; + static readonly CaptureAllFromCamera: VisionServiceCaptureAllFromCamera; static readonly DoCommand: VisionServiceDoCommand; } @@ -165,6 +175,15 @@ export class VisionServiceClient { requestMessage: service_vision_v1_vision_pb.GetPropertiesRequest, callback: (error: ServiceError|null, responseMessage: service_vision_v1_vision_pb.GetPropertiesResponse|null) => void ): UnaryResponse; + captureAllFromCamera( + requestMessage: service_vision_v1_vision_pb.CaptureAllFromCameraRequest, + metadata: grpc.Metadata, + callback: (error: ServiceError|null, responseMessage: service_vision_v1_vision_pb.CaptureAllFromCameraResponse|null) => void + ): UnaryResponse; + captureAllFromCamera( + requestMessage: service_vision_v1_vision_pb.CaptureAllFromCameraRequest, + callback: (error: ServiceError|null, responseMessage: service_vision_v1_vision_pb.CaptureAllFromCameraResponse|null) => void + ): UnaryResponse; doCommand( requestMessage: common_v1_common_pb.DoCommandRequest, metadata: grpc.Metadata, diff --git a/gen/js/service/vision/v1/vision_pb_service.js b/gen/js/service/vision/v1/vision_pb_service.js index 64b95fc51..ee8122e93 100644 --- a/gen/js/service/vision/v1/vision_pb_service.js +++ b/gen/js/service/vision/v1/vision_pb_service.js @@ -65,6 +65,15 @@ VisionService.GetProperties = { responseType: service_vision_v1_vision_pb.GetPropertiesResponse }; +VisionService.CaptureAllFromCamera = { + methodName: "CaptureAllFromCamera", + service: VisionService, + requestStream: false, + responseStream: false, + requestType: service_vision_v1_vision_pb.CaptureAllFromCameraRequest, + responseType: service_vision_v1_vision_pb.CaptureAllFromCameraResponse +}; + VisionService.DoCommand = { methodName: "DoCommand", service: VisionService, @@ -267,6 +276,37 @@ VisionServiceClient.prototype.getProperties = function getProperties(requestMess }; }; +VisionServiceClient.prototype.captureAllFromCamera = function captureAllFromCamera(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + var client = grpc.unary(VisionService.CaptureAllFromCamera, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); + return { + cancel: function () { + callback = null; + client.close(); + } + }; +}; + VisionServiceClient.prototype.doCommand = function doCommand(requestMessage, metadata, callback) { if (arguments.length === 2) { callback = arguments[1]; diff --git a/proto/viam/service/vision/v1/vision.proto b/proto/viam/service/vision/v1/vision.proto index f508413e7..98951171e 100644 --- a/proto/viam/service/vision/v1/vision.proto +++ b/proto/viam/service/vision/v1/vision.proto @@ -3,6 +3,7 @@ syntax = "proto3"; package viam.service.vision.v1; import "common/v1/common.proto"; +import "component/camera/v1/camera.proto"; import "google/api/annotations.proto"; import "google/protobuf/struct.proto"; @@ -55,6 +56,12 @@ service VisionService { }; } + rpc CaptureAllFromCamera(CaptureAllFromCameraRequest) returns (CaptureAllFromCameraResponse) { + option (google.api.http) = { + post: "/viam/api/v1/service/vision/{name}/capture_all" + }; + } + // DoCommand sends/receives arbitrary commands rpc DoCommand(common.v1.DoCommandRequest) returns (common.v1.DoCommandResponse) { option (google.api.http) = { @@ -176,6 +183,31 @@ message GetPropertiesRequest { google.protobuf.Struct extra = 99; } +message CaptureAllFromCameraRequest { + // name of the vision service + string name = 1; + // name of camera source to use as input + string camera_name = 2; + // whether or not including the image in the response + bool return_image = 3; + // whether or not including classifications in the response + bool return_classifications = 4; + // whether or not including detections in the response + bool return_detections = 5; + // whether or not including pcd in the response + bool return_object_point_clouds = 6; + + google.protobuf.Struct extra = 99; +} + +message CaptureAllFromCameraResponse { + component.camera.v1.Image image = 1; + repeated Detection detections = 2; + repeated Classification classifications = 3; + repeated common.v1.PointCloudObject objects = 4; + google.protobuf.Struct extra = 99; +} + message GetPropertiesResponse { // whether or not classifactions are supported by the vision service bool classifications_supported = 1; diff --git a/service/datamanager/v1/data_manager.pb.gw.go b/service/datamanager/v1/data_manager.pb.gw.go index 5a7e61ab2..5f497f653 100644 --- a/service/datamanager/v1/data_manager.pb.gw.go +++ b/service/datamanager/v1/data_manager.pb.gw.go @@ -15,7 +15,7 @@ import ( "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - v1_0 "go.viam.com/api/common/v1" + "go.viam.com/api/common/v1" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" @@ -107,7 +107,7 @@ var ( ) func request_DataManagerService_DoCommand_0(ctx context.Context, marshaler runtime.Marshaler, client DataManagerServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1_0.DoCommandRequest + var protoReq v1.DoCommandRequest var metadata runtime.ServerMetadata var ( @@ -140,7 +140,7 @@ func request_DataManagerService_DoCommand_0(ctx context.Context, marshaler runti } func local_request_DataManagerService_DoCommand_0(ctx context.Context, marshaler runtime.Marshaler, server DataManagerServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1_0.DoCommandRequest + var protoReq v1.DoCommandRequest var metadata runtime.ServerMetadata var ( diff --git a/service/generic/v1/generic.pb.gw.go b/service/generic/v1/generic.pb.gw.go index 3c74de8b6..298562d36 100644 --- a/service/generic/v1/generic.pb.gw.go +++ b/service/generic/v1/generic.pb.gw.go @@ -15,7 +15,7 @@ import ( "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - "go.viam.com/api/common/v1" + v1_0 "go.viam.com/api/common/v1" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" @@ -37,7 +37,7 @@ var ( ) func request_GenericService_DoCommand_0(ctx context.Context, marshaler runtime.Marshaler, client GenericServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1.DoCommandRequest + var protoReq v1_0.DoCommandRequest var metadata runtime.ServerMetadata var ( @@ -70,7 +70,7 @@ func request_GenericService_DoCommand_0(ctx context.Context, marshaler runtime.M } func local_request_GenericService_DoCommand_0(ctx context.Context, marshaler runtime.Marshaler, server GenericServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1.DoCommandRequest + var protoReq v1_0.DoCommandRequest var metadata runtime.ServerMetadata var ( diff --git a/service/slam/v1/slam.pb.gw.go b/service/slam/v1/slam.pb.gw.go index 48ac2664d..afa099e21 100644 --- a/service/slam/v1/slam.pb.gw.go +++ b/service/slam/v1/slam.pb.gw.go @@ -15,7 +15,7 @@ import ( "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - "go.viam.com/api/common/v1" + v1_0 "go.viam.com/api/common/v1" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" @@ -220,7 +220,7 @@ var ( ) func request_SLAMService_DoCommand_0(ctx context.Context, marshaler runtime.Marshaler, client SLAMServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1.DoCommandRequest + var protoReq v1_0.DoCommandRequest var metadata runtime.ServerMetadata var ( @@ -253,7 +253,7 @@ func request_SLAMService_DoCommand_0(ctx context.Context, marshaler runtime.Mars } func local_request_SLAMService_DoCommand_0(ctx context.Context, marshaler runtime.Marshaler, server SLAMServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1.DoCommandRequest + var protoReq v1_0.DoCommandRequest var metadata runtime.ServerMetadata var ( diff --git a/service/vision/v1/vision.pb.go b/service/vision/v1/vision.pb.go index b5cd27a84..96b8726b7 100644 --- a/service/vision/v1/vision.pb.go +++ b/service/vision/v1/vision.pb.go @@ -8,6 +8,7 @@ package v1 import ( v1 "go.viam.com/api/common/v1" + v11 "go.viam.com/api/component/camera/v1" _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" @@ -884,6 +885,186 @@ func (x *GetPropertiesRequest) GetExtra() *structpb.Struct { return nil } +type CaptureAllFromCameraRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // name of the vision service + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // name of camera source to use as input + CameraName string `protobuf:"bytes,2,opt,name=camera_name,json=cameraName,proto3" json:"camera_name,omitempty"` + // whether or not including the image in the response + ReturnImage bool `protobuf:"varint,3,opt,name=return_image,json=returnImage,proto3" json:"return_image,omitempty"` + // whether or not including classifications in the response + ReturnClassifications bool `protobuf:"varint,4,opt,name=return_classifications,json=returnClassifications,proto3" json:"return_classifications,omitempty"` + // whether or not including detections in the response + ReturnDetections bool `protobuf:"varint,5,opt,name=return_detections,json=returnDetections,proto3" json:"return_detections,omitempty"` + // whether or not including pcd in the response + ReturnObjectPointClouds bool `protobuf:"varint,6,opt,name=return_object_point_clouds,json=returnObjectPointClouds,proto3" json:"return_object_point_clouds,omitempty"` + Extra *structpb.Struct `protobuf:"bytes,99,opt,name=extra,proto3" json:"extra,omitempty"` +} + +func (x *CaptureAllFromCameraRequest) Reset() { + *x = CaptureAllFromCameraRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_service_vision_v1_vision_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CaptureAllFromCameraRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CaptureAllFromCameraRequest) ProtoMessage() {} + +func (x *CaptureAllFromCameraRequest) ProtoReflect() protoreflect.Message { + mi := &file_service_vision_v1_vision_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 CaptureAllFromCameraRequest.ProtoReflect.Descriptor instead. +func (*CaptureAllFromCameraRequest) Descriptor() ([]byte, []int) { + return file_service_vision_v1_vision_proto_rawDescGZIP(), []int{13} +} + +func (x *CaptureAllFromCameraRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CaptureAllFromCameraRequest) GetCameraName() string { + if x != nil { + return x.CameraName + } + return "" +} + +func (x *CaptureAllFromCameraRequest) GetReturnImage() bool { + if x != nil { + return x.ReturnImage + } + return false +} + +func (x *CaptureAllFromCameraRequest) GetReturnClassifications() bool { + if x != nil { + return x.ReturnClassifications + } + return false +} + +func (x *CaptureAllFromCameraRequest) GetReturnDetections() bool { + if x != nil { + return x.ReturnDetections + } + return false +} + +func (x *CaptureAllFromCameraRequest) GetReturnObjectPointClouds() bool { + if x != nil { + return x.ReturnObjectPointClouds + } + return false +} + +func (x *CaptureAllFromCameraRequest) GetExtra() *structpb.Struct { + if x != nil { + return x.Extra + } + return nil +} + +type CaptureAllFromCameraResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Image *v11.Image `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"` + Detections []*Detection `protobuf:"bytes,2,rep,name=detections,proto3" json:"detections,omitempty"` + Classifications []*Classification `protobuf:"bytes,3,rep,name=classifications,proto3" json:"classifications,omitempty"` + Objects []*v1.PointCloudObject `protobuf:"bytes,4,rep,name=objects,proto3" json:"objects,omitempty"` + Extra *structpb.Struct `protobuf:"bytes,99,opt,name=extra,proto3" json:"extra,omitempty"` +} + +func (x *CaptureAllFromCameraResponse) Reset() { + *x = CaptureAllFromCameraResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_service_vision_v1_vision_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CaptureAllFromCameraResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CaptureAllFromCameraResponse) ProtoMessage() {} + +func (x *CaptureAllFromCameraResponse) ProtoReflect() protoreflect.Message { + mi := &file_service_vision_v1_vision_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 CaptureAllFromCameraResponse.ProtoReflect.Descriptor instead. +func (*CaptureAllFromCameraResponse) Descriptor() ([]byte, []int) { + return file_service_vision_v1_vision_proto_rawDescGZIP(), []int{14} +} + +func (x *CaptureAllFromCameraResponse) GetImage() *v11.Image { + if x != nil { + return x.Image + } + return nil +} + +func (x *CaptureAllFromCameraResponse) GetDetections() []*Detection { + if x != nil { + return x.Detections + } + return nil +} + +func (x *CaptureAllFromCameraResponse) GetClassifications() []*Classification { + if x != nil { + return x.Classifications + } + return nil +} + +func (x *CaptureAllFromCameraResponse) GetObjects() []*v1.PointCloudObject { + if x != nil { + return x.Objects + } + return nil +} + +func (x *CaptureAllFromCameraResponse) GetExtra() *structpb.Struct { + if x != nil { + return x.Extra + } + return nil +} + type GetPropertiesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -900,7 +1081,7 @@ type GetPropertiesResponse struct { func (x *GetPropertiesResponse) Reset() { *x = GetPropertiesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_service_vision_v1_vision_proto_msgTypes[13] + mi := &file_service_vision_v1_vision_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -913,7 +1094,7 @@ func (x *GetPropertiesResponse) String() string { func (*GetPropertiesResponse) ProtoMessage() {} func (x *GetPropertiesResponse) ProtoReflect() protoreflect.Message { - mi := &file_service_vision_v1_vision_proto_msgTypes[13] + mi := &file_service_vision_v1_vision_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -926,7 +1107,7 @@ func (x *GetPropertiesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPropertiesResponse.ProtoReflect.Descriptor instead. func (*GetPropertiesResponse) Descriptor() ([]byte, []int) { - return file_service_vision_v1_vision_proto_rawDescGZIP(), []int{13} + return file_service_vision_v1_vision_proto_rawDescGZIP(), []int{15} } func (x *GetPropertiesResponse) GetClassificationsSupported() bool { @@ -958,221 +1139,277 @@ var file_service_vision_v1_vision_proto_rawDesc = []byte{ 0x12, 0x16, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x1a, 0x16, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 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, 0x1c, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xba, 0x01, 0x0a, - 0x14, 0x47, 0x65, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, - 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1b, 0x0a, - 0x09, 0x6d, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x22, 0x5a, 0x0a, 0x15, 0x47, 0x65, 0x74, - 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x64, 0x65, 0x74, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x74, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x6d, 0x65, 0x72, - 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, - 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, - 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x22, 0x64, 0x0a, 0x1f, - 0x47, 0x65, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, - 0x6d, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x41, 0x0a, 0x0a, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x74, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x22, 0xda, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x18, 0x0a, 0x05, 0x78, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, - 0x00, 0x52, 0x04, 0x78, 0x4d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x05, 0x79, 0x5f, - 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x04, 0x79, 0x4d, 0x69, - 0x6e, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x05, 0x78, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x04, 0x78, 0x4d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, 0x18, - 0x0a, 0x05, 0x79, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, - 0x04, 0x79, 0x4d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x78, 0x5f, 0x6d, 0x69, - 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x79, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x78, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x79, 0x5f, 0x6d, 0x61, 0x78, 0x22, - 0xcd, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, - 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x6e, - 0x12, 0x2d, 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x22, - 0x6e, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, - 0x0f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, - 0x97, 0x01, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, + 0x1a, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x61, 0x6d, 0x65, + 0x72, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 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, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xba, + 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, - 0x61, 0x6d, 0x65, 0x72, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0c, 0x0a, 0x01, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x6e, 0x12, 0x2d, 0x0a, 0x05, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x22, 0x78, 0x0a, 0x24, 0x47, 0x65, 0x74, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, + 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x05, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x22, 0x5a, 0x0a, 0x15, 0x47, + 0x65, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x64, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x44, + 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x6d, + 0x65, 0x72, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, + 0x0a, 0x0b, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x2d, 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x22, 0x64, + 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x50, 0x0a, 0x0f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x76, 0x69, 0x61, - 0x6d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x0f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x22, 0x4f, 0x0a, 0x0e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, - 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, - 0x65, 0x6e, 0x63, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x6d, 0x65, - 0x72, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, - 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6d, - 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, - 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, - 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, - 0x65, 0x78, 0x74, 0x72, 0x61, 0x22, 0x77, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x22, 0x59, - 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x22, 0xca, 0x01, 0x0a, 0x15, 0x47, 0x65, - 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x19, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x12, 0x31, 0x0a, 0x14, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, - 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x12, 0x41, 0x0a, 0x1d, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x53, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x32, 0x91, 0x0a, 0x0a, 0x0d, 0x56, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xc8, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, - 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, - 0x6d, 0x65, 0x72, 0x61, 0x12, 0x36, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x43, - 0x61, 0x6d, 0x65, 0x72, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x76, + 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xda, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x05, 0x78, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x48, 0x00, 0x52, 0x04, 0x78, 0x4d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x05, + 0x79, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x04, 0x79, + 0x4d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x05, 0x78, 0x5f, 0x6d, 0x61, 0x78, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x04, 0x78, 0x4d, 0x61, 0x78, 0x88, 0x01, 0x01, + 0x12, 0x18, 0x0a, 0x05, 0x79, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, + 0x03, 0x52, 0x04, 0x79, 0x4d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x78, 0x5f, + 0x6d, 0x69, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x79, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x78, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x79, 0x5f, 0x6d, 0x61, + 0x78, 0x22, 0xcd, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, + 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6d, 0x65, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x01, 0x6e, 0x12, 0x2d, 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x63, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, + 0x61, 0x22, 0x6e, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x50, 0x0a, 0x0f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x0f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x22, 0x97, 0x01, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x6d, 0x65, + 0x72, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, + 0x0b, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0c, + 0x0a, 0x01, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x6e, 0x12, 0x2d, 0x0a, 0x05, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x22, 0x78, 0x0a, 0x24, 0x47, + 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x22, 0x34, 0x2f, - 0x76, 0x69, 0x61, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, - 0x7d, 0x2f, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0xa3, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, 0x72, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x4f, 0x0a, 0x0e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, + 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x4f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, + 0x6d, 0x65, 0x72, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, + 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6d, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, + 0x61, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x22, 0x77, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x4f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6d, 0x65, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x22, 0x59, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x05, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x22, 0xc5, 0x02, 0x0a, 0x1b, + 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x41, 0x6c, 0x6c, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, + 0x6d, 0x65, 0x72, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x16, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x15, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x44, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3b, 0x0a, 0x1a, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x73, 0x12, 0x2d, 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x63, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x22, 0xd5, 0x02, 0x0a, 0x1c, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x41, + 0x6c, 0x6c, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, + 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x64, + 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0a, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x50, + 0x0a, 0x0f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x3a, 0x0a, 0x07, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x52, 0x07, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x2d, 0x0a, 0x05, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x22, 0xca, 0x01, 0x0a, 0x15, + 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x19, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x12, 0x31, 0x0a, 0x14, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x13, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x41, 0x0a, 0x1d, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x5f, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x53, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x32, 0xcd, 0x0b, 0x0a, 0x0d, 0x56, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xc8, 0x01, 0x0a, 0x17, 0x47, + 0x65, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, + 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x12, 0x36, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, + 0x6d, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, + 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x22, + 0x34, 0x2f, 0x76, 0x69, 0x61, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xa3, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x22, 0x2d, 0x2f, 0x76, 0x69, 0x61, - 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x64, - 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xdc, 0x01, 0x0a, 0x1c, 0x47, 0x65, + 0x65, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x22, 0x2d, 0x2f, 0x76, + 0x69, 0x61, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, + 0x2f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xdc, 0x01, 0x0a, 0x1c, + 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x12, 0x3b, 0x2e, 0x76, + 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x6d, 0x65, + 0x72, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x76, 0x69, 0x61, 0x6d, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x22, + 0x39, 0x2f, 0x76, 0x69, 0x61, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xb7, 0x01, 0x0a, 0x12, 0x47, + 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x31, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x12, 0x3b, 0x2e, 0x76, 0x69, 0x61, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, + 0x22, 0x32, 0x2f, 0x76, 0x69, 0x61, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x7b, 0x6e, + 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xc1, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x12, 0x33, 0x2e, + 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, + 0x22, 0x36, 0x2f, 0x76, 0x69, 0x61, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x7b, 0x6e, + 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x12, 0xa7, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, + 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x22, 0x39, 0x2f, - 0x76, 0x69, 0x61, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, - 0x7d, 0x2f, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xb7, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x31, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x22, 0x32, - 0x2f, 0x76, 0x69, 0x61, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x7d, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0xc1, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x12, 0x33, 0x2e, 0x76, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x22, + 0x31, 0x2f, 0x76, 0x69, 0x61, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x7d, 0x2f, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, + 0x65, 0x73, 0x12, 0xb9, 0x01, 0x0a, 0x14, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x41, 0x6c, + 0x6c, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x12, 0x33, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x6f, - 0x69, 0x6e, 0x74, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x41, 0x6c, 0x6c, 0x46, + 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x22, 0x36, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, + 0x65, 0x41, 0x6c, 0x6c, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x22, 0x2e, 0x2f, 0x76, 0x69, 0x61, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x7d, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x12, 0xa7, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x50, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x22, 0x31, 0x2f, - 0x76, 0x69, 0x61, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, - 0x7d, 0x2f, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, - 0x12, 0x87, 0x01, 0x0a, 0x09, 0x44, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x20, + 0x65, 0x7d, 0x2f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x12, 0x87, + 0x01, 0x0a, 0x09, 0x44, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x20, 0x2e, 0x76, + 0x69, 0x61, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, + 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x44, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x21, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x44, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x22, 0x2d, 0x2f, 0x76, 0x69, - 0x61, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, - 0x64, 0x6f, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x42, 0x3f, 0x0a, 0x1a, 0x63, 0x6f, - 0x6d, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x5a, 0x21, 0x67, 0x6f, 0x2e, 0x76, 0x69, 0x61, - 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x44, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x22, 0x2d, 0x2f, 0x76, 0x69, 0x61, 0x6d, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x64, 0x6f, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x42, 0x3f, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, + 0x76, 0x69, 0x61, 0x6d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x5a, 0x21, 0x67, 0x6f, 0x2e, 0x76, 0x69, 0x61, 0x6d, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -1187,7 +1424,7 @@ func file_service_vision_v1_vision_proto_rawDescGZIP() []byte { return file_service_vision_v1_vision_proto_rawDescData } -var file_service_vision_v1_vision_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_service_vision_v1_vision_proto_msgTypes = make([]protoimpl.MessageInfo, 16) var file_service_vision_v1_vision_proto_goTypes = []interface{}{ (*GetDetectionsRequest)(nil), // 0: viam.service.vision.v1.GetDetectionsRequest (*GetDetectionsResponse)(nil), // 1: viam.service.vision.v1.GetDetectionsResponse @@ -1202,43 +1439,54 @@ var file_service_vision_v1_vision_proto_goTypes = []interface{}{ (*GetObjectPointCloudsRequest)(nil), // 10: viam.service.vision.v1.GetObjectPointCloudsRequest (*GetObjectPointCloudsResponse)(nil), // 11: viam.service.vision.v1.GetObjectPointCloudsResponse (*GetPropertiesRequest)(nil), // 12: viam.service.vision.v1.GetPropertiesRequest - (*GetPropertiesResponse)(nil), // 13: viam.service.vision.v1.GetPropertiesResponse - (*structpb.Struct)(nil), // 14: google.protobuf.Struct - (*v1.PointCloudObject)(nil), // 15: viam.common.v1.PointCloudObject - (*v1.DoCommandRequest)(nil), // 16: viam.common.v1.DoCommandRequest - (*v1.DoCommandResponse)(nil), // 17: viam.common.v1.DoCommandResponse + (*CaptureAllFromCameraRequest)(nil), // 13: viam.service.vision.v1.CaptureAllFromCameraRequest + (*CaptureAllFromCameraResponse)(nil), // 14: viam.service.vision.v1.CaptureAllFromCameraResponse + (*GetPropertiesResponse)(nil), // 15: viam.service.vision.v1.GetPropertiesResponse + (*structpb.Struct)(nil), // 16: google.protobuf.Struct + (*v1.PointCloudObject)(nil), // 17: viam.common.v1.PointCloudObject + (*v11.Image)(nil), // 18: viam.component.camera.v1.Image + (*v1.DoCommandRequest)(nil), // 19: viam.common.v1.DoCommandRequest + (*v1.DoCommandResponse)(nil), // 20: viam.common.v1.DoCommandResponse } var file_service_vision_v1_vision_proto_depIdxs = []int32{ - 14, // 0: viam.service.vision.v1.GetDetectionsRequest.extra:type_name -> google.protobuf.Struct + 16, // 0: viam.service.vision.v1.GetDetectionsRequest.extra:type_name -> google.protobuf.Struct 4, // 1: viam.service.vision.v1.GetDetectionsResponse.detections:type_name -> viam.service.vision.v1.Detection - 14, // 2: viam.service.vision.v1.GetDetectionsFromCameraRequest.extra:type_name -> google.protobuf.Struct + 16, // 2: viam.service.vision.v1.GetDetectionsFromCameraRequest.extra:type_name -> google.protobuf.Struct 4, // 3: viam.service.vision.v1.GetDetectionsFromCameraResponse.detections:type_name -> viam.service.vision.v1.Detection - 14, // 4: viam.service.vision.v1.GetClassificationsRequest.extra:type_name -> google.protobuf.Struct + 16, // 4: viam.service.vision.v1.GetClassificationsRequest.extra:type_name -> google.protobuf.Struct 9, // 5: viam.service.vision.v1.GetClassificationsResponse.classifications:type_name -> viam.service.vision.v1.Classification - 14, // 6: viam.service.vision.v1.GetClassificationsFromCameraRequest.extra:type_name -> google.protobuf.Struct + 16, // 6: viam.service.vision.v1.GetClassificationsFromCameraRequest.extra:type_name -> google.protobuf.Struct 9, // 7: viam.service.vision.v1.GetClassificationsFromCameraResponse.classifications:type_name -> viam.service.vision.v1.Classification - 14, // 8: viam.service.vision.v1.GetObjectPointCloudsRequest.extra:type_name -> google.protobuf.Struct - 15, // 9: viam.service.vision.v1.GetObjectPointCloudsResponse.objects:type_name -> viam.common.v1.PointCloudObject - 14, // 10: viam.service.vision.v1.GetPropertiesRequest.extra:type_name -> google.protobuf.Struct - 2, // 11: viam.service.vision.v1.VisionService.GetDetectionsFromCamera:input_type -> viam.service.vision.v1.GetDetectionsFromCameraRequest - 0, // 12: viam.service.vision.v1.VisionService.GetDetections:input_type -> viam.service.vision.v1.GetDetectionsRequest - 7, // 13: viam.service.vision.v1.VisionService.GetClassificationsFromCamera:input_type -> viam.service.vision.v1.GetClassificationsFromCameraRequest - 5, // 14: viam.service.vision.v1.VisionService.GetClassifications:input_type -> viam.service.vision.v1.GetClassificationsRequest - 10, // 15: viam.service.vision.v1.VisionService.GetObjectPointClouds:input_type -> viam.service.vision.v1.GetObjectPointCloudsRequest - 12, // 16: viam.service.vision.v1.VisionService.GetProperties:input_type -> viam.service.vision.v1.GetPropertiesRequest - 16, // 17: viam.service.vision.v1.VisionService.DoCommand:input_type -> viam.common.v1.DoCommandRequest - 3, // 18: viam.service.vision.v1.VisionService.GetDetectionsFromCamera:output_type -> viam.service.vision.v1.GetDetectionsFromCameraResponse - 1, // 19: viam.service.vision.v1.VisionService.GetDetections:output_type -> viam.service.vision.v1.GetDetectionsResponse - 8, // 20: viam.service.vision.v1.VisionService.GetClassificationsFromCamera:output_type -> viam.service.vision.v1.GetClassificationsFromCameraResponse - 6, // 21: viam.service.vision.v1.VisionService.GetClassifications:output_type -> viam.service.vision.v1.GetClassificationsResponse - 11, // 22: viam.service.vision.v1.VisionService.GetObjectPointClouds:output_type -> viam.service.vision.v1.GetObjectPointCloudsResponse - 13, // 23: viam.service.vision.v1.VisionService.GetProperties:output_type -> viam.service.vision.v1.GetPropertiesResponse - 17, // 24: viam.service.vision.v1.VisionService.DoCommand:output_type -> viam.common.v1.DoCommandResponse - 18, // [18:25] is the sub-list for method output_type - 11, // [11:18] is the sub-list for method input_type - 11, // [11:11] is the sub-list for extension type_name - 11, // [11:11] is the sub-list for extension extendee - 0, // [0:11] is the sub-list for field type_name + 16, // 8: viam.service.vision.v1.GetObjectPointCloudsRequest.extra:type_name -> google.protobuf.Struct + 17, // 9: viam.service.vision.v1.GetObjectPointCloudsResponse.objects:type_name -> viam.common.v1.PointCloudObject + 16, // 10: viam.service.vision.v1.GetPropertiesRequest.extra:type_name -> google.protobuf.Struct + 16, // 11: viam.service.vision.v1.CaptureAllFromCameraRequest.extra:type_name -> google.protobuf.Struct + 18, // 12: viam.service.vision.v1.CaptureAllFromCameraResponse.image:type_name -> viam.component.camera.v1.Image + 4, // 13: viam.service.vision.v1.CaptureAllFromCameraResponse.detections:type_name -> viam.service.vision.v1.Detection + 9, // 14: viam.service.vision.v1.CaptureAllFromCameraResponse.classifications:type_name -> viam.service.vision.v1.Classification + 17, // 15: viam.service.vision.v1.CaptureAllFromCameraResponse.objects:type_name -> viam.common.v1.PointCloudObject + 16, // 16: viam.service.vision.v1.CaptureAllFromCameraResponse.extra:type_name -> google.protobuf.Struct + 2, // 17: viam.service.vision.v1.VisionService.GetDetectionsFromCamera:input_type -> viam.service.vision.v1.GetDetectionsFromCameraRequest + 0, // 18: viam.service.vision.v1.VisionService.GetDetections:input_type -> viam.service.vision.v1.GetDetectionsRequest + 7, // 19: viam.service.vision.v1.VisionService.GetClassificationsFromCamera:input_type -> viam.service.vision.v1.GetClassificationsFromCameraRequest + 5, // 20: viam.service.vision.v1.VisionService.GetClassifications:input_type -> viam.service.vision.v1.GetClassificationsRequest + 10, // 21: viam.service.vision.v1.VisionService.GetObjectPointClouds:input_type -> viam.service.vision.v1.GetObjectPointCloudsRequest + 12, // 22: viam.service.vision.v1.VisionService.GetProperties:input_type -> viam.service.vision.v1.GetPropertiesRequest + 13, // 23: viam.service.vision.v1.VisionService.CaptureAllFromCamera:input_type -> viam.service.vision.v1.CaptureAllFromCameraRequest + 19, // 24: viam.service.vision.v1.VisionService.DoCommand:input_type -> viam.common.v1.DoCommandRequest + 3, // 25: viam.service.vision.v1.VisionService.GetDetectionsFromCamera:output_type -> viam.service.vision.v1.GetDetectionsFromCameraResponse + 1, // 26: viam.service.vision.v1.VisionService.GetDetections:output_type -> viam.service.vision.v1.GetDetectionsResponse + 8, // 27: viam.service.vision.v1.VisionService.GetClassificationsFromCamera:output_type -> viam.service.vision.v1.GetClassificationsFromCameraResponse + 6, // 28: viam.service.vision.v1.VisionService.GetClassifications:output_type -> viam.service.vision.v1.GetClassificationsResponse + 11, // 29: viam.service.vision.v1.VisionService.GetObjectPointClouds:output_type -> viam.service.vision.v1.GetObjectPointCloudsResponse + 15, // 30: viam.service.vision.v1.VisionService.GetProperties:output_type -> viam.service.vision.v1.GetPropertiesResponse + 14, // 31: viam.service.vision.v1.VisionService.CaptureAllFromCamera:output_type -> viam.service.vision.v1.CaptureAllFromCameraResponse + 20, // 32: viam.service.vision.v1.VisionService.DoCommand:output_type -> viam.common.v1.DoCommandResponse + 25, // [25:33] is the sub-list for method output_type + 17, // [17:25] is the sub-list for method input_type + 17, // [17:17] is the sub-list for extension type_name + 17, // [17:17] is the sub-list for extension extendee + 0, // [0:17] is the sub-list for field type_name } func init() { file_service_vision_v1_vision_proto_init() } @@ -1404,6 +1652,30 @@ func file_service_vision_v1_vision_proto_init() { } } file_service_vision_v1_vision_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CaptureAllFromCameraRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_vision_v1_vision_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CaptureAllFromCameraResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_service_vision_v1_vision_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetPropertiesResponse); i { case 0: return &v.state @@ -1423,7 +1695,7 @@ func file_service_vision_v1_vision_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_service_vision_v1_vision_proto_rawDesc, NumEnums: 0, - NumMessages: 14, + NumMessages: 16, NumExtensions: 0, NumServices: 1, }, diff --git a/service/vision/v1/vision.pb.gw.go b/service/vision/v1/vision.pb.gw.go index 72a889af2..18ae0e3ec 100644 --- a/service/vision/v1/vision.pb.gw.go +++ b/service/vision/v1/vision.pb.gw.go @@ -15,7 +15,7 @@ import ( "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - v1_0 "go.viam.com/api/common/v1" + v1_1 "go.viam.com/api/common/v1" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" @@ -452,12 +452,82 @@ func local_request_VisionService_GetProperties_0(ctx context.Context, marshaler } +var ( + filter_VisionService_CaptureAllFromCamera_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_VisionService_CaptureAllFromCamera_0(ctx context.Context, marshaler runtime.Marshaler, client VisionServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CaptureAllFromCameraRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_VisionService_CaptureAllFromCamera_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CaptureAllFromCamera(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_VisionService_CaptureAllFromCamera_0(ctx context.Context, marshaler runtime.Marshaler, server VisionServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CaptureAllFromCameraRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_VisionService_CaptureAllFromCamera_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CaptureAllFromCamera(ctx, &protoReq) + return msg, metadata, err + +} + var ( filter_VisionService_DoCommand_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} ) func request_VisionService_DoCommand_0(ctx context.Context, marshaler runtime.Marshaler, client VisionServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1_0.DoCommandRequest + var protoReq v1_1.DoCommandRequest var metadata runtime.ServerMetadata var ( @@ -490,7 +560,7 @@ func request_VisionService_DoCommand_0(ctx context.Context, marshaler runtime.Ma } func local_request_VisionService_DoCommand_0(ctx context.Context, marshaler runtime.Marshaler, server VisionServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq v1_0.DoCommandRequest + var protoReq v1_1.DoCommandRequest var metadata runtime.ServerMetadata var ( @@ -678,6 +748,31 @@ func RegisterVisionServiceHandlerServer(ctx context.Context, mux *runtime.ServeM }) + mux.Handle("POST", pattern_VisionService_CaptureAllFromCamera_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/viam.service.vision.v1.VisionService/CaptureAllFromCamera", runtime.WithHTTPPathPattern("/viam/api/v1/service/vision/{name}/capture_all")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_VisionService_CaptureAllFromCamera_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_VisionService_CaptureAllFromCamera_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_VisionService_DoCommand_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -876,6 +971,28 @@ func RegisterVisionServiceHandlerClient(ctx context.Context, mux *runtime.ServeM }) + mux.Handle("POST", pattern_VisionService_CaptureAllFromCamera_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/viam.service.vision.v1.VisionService/CaptureAllFromCamera", runtime.WithHTTPPathPattern("/viam/api/v1/service/vision/{name}/capture_all")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_VisionService_CaptureAllFromCamera_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_VisionService_CaptureAllFromCamera_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_VisionService_DoCommand_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -914,6 +1031,8 @@ var ( pattern_VisionService_GetProperties_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 1, 0, 4, 1, 5, 5, 2, 6}, []string{"viam", "api", "v1", "service", "vision", "name", "get_properties"}, "")) + pattern_VisionService_CaptureAllFromCamera_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 1, 0, 4, 1, 5, 5, 2, 6}, []string{"viam", "api", "v1", "service", "vision", "name", "capture_all"}, "")) + pattern_VisionService_DoCommand_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 1, 0, 4, 1, 5, 5, 2, 6}, []string{"viam", "api", "v1", "service", "vision", "name", "do_command"}, "")) ) @@ -930,5 +1049,7 @@ var ( forward_VisionService_GetProperties_0 = runtime.ForwardResponseMessage + forward_VisionService_CaptureAllFromCamera_0 = runtime.ForwardResponseMessage + forward_VisionService_DoCommand_0 = runtime.ForwardResponseMessage ) diff --git a/service/vision/v1/vision_grpc.pb.go b/service/vision/v1/vision_grpc.pb.go index afec15948..7d1075aa9 100644 --- a/service/vision/v1/vision_grpc.pb.go +++ b/service/vision/v1/vision_grpc.pb.go @@ -37,6 +37,7 @@ type VisionServiceClient interface { GetObjectPointClouds(ctx context.Context, in *GetObjectPointCloudsRequest, opts ...grpc.CallOption) (*GetObjectPointCloudsResponse, error) // GetProperties will return the properties as booleans given the name of the vision service GetProperties(ctx context.Context, in *GetPropertiesRequest, opts ...grpc.CallOption) (*GetPropertiesResponse, error) + CaptureAllFromCamera(ctx context.Context, in *CaptureAllFromCameraRequest, opts ...grpc.CallOption) (*CaptureAllFromCameraResponse, error) // DoCommand sends/receives arbitrary commands DoCommand(ctx context.Context, in *v1.DoCommandRequest, opts ...grpc.CallOption) (*v1.DoCommandResponse, error) } @@ -103,6 +104,15 @@ func (c *visionServiceClient) GetProperties(ctx context.Context, in *GetProperti return out, nil } +func (c *visionServiceClient) CaptureAllFromCamera(ctx context.Context, in *CaptureAllFromCameraRequest, opts ...grpc.CallOption) (*CaptureAllFromCameraResponse, error) { + out := new(CaptureAllFromCameraResponse) + err := c.cc.Invoke(ctx, "/viam.service.vision.v1.VisionService/CaptureAllFromCamera", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *visionServiceClient) DoCommand(ctx context.Context, in *v1.DoCommandRequest, opts ...grpc.CallOption) (*v1.DoCommandResponse, error) { out := new(v1.DoCommandResponse) err := c.cc.Invoke(ctx, "/viam.service.vision.v1.VisionService/DoCommand", in, out, opts...) @@ -130,6 +140,7 @@ type VisionServiceServer interface { GetObjectPointClouds(context.Context, *GetObjectPointCloudsRequest) (*GetObjectPointCloudsResponse, error) // GetProperties will return the properties as booleans given the name of the vision service GetProperties(context.Context, *GetPropertiesRequest) (*GetPropertiesResponse, error) + CaptureAllFromCamera(context.Context, *CaptureAllFromCameraRequest) (*CaptureAllFromCameraResponse, error) // DoCommand sends/receives arbitrary commands DoCommand(context.Context, *v1.DoCommandRequest) (*v1.DoCommandResponse, error) mustEmbedUnimplementedVisionServiceServer() @@ -157,6 +168,9 @@ func (UnimplementedVisionServiceServer) GetObjectPointClouds(context.Context, *G func (UnimplementedVisionServiceServer) GetProperties(context.Context, *GetPropertiesRequest) (*GetPropertiesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetProperties not implemented") } +func (UnimplementedVisionServiceServer) CaptureAllFromCamera(context.Context, *CaptureAllFromCameraRequest) (*CaptureAllFromCameraResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CaptureAllFromCamera not implemented") +} func (UnimplementedVisionServiceServer) DoCommand(context.Context, *v1.DoCommandRequest) (*v1.DoCommandResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method DoCommand not implemented") } @@ -281,6 +295,24 @@ func _VisionService_GetProperties_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _VisionService_CaptureAllFromCamera_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CaptureAllFromCameraRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(VisionServiceServer).CaptureAllFromCamera(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/viam.service.vision.v1.VisionService/CaptureAllFromCamera", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(VisionServiceServer).CaptureAllFromCamera(ctx, req.(*CaptureAllFromCameraRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _VisionService_DoCommand_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(v1.DoCommandRequest) if err := dec(in); err != nil { @@ -330,6 +362,10 @@ var VisionService_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetProperties", Handler: _VisionService_GetProperties_Handler, }, + { + MethodName: "CaptureAllFromCamera", + Handler: _VisionService_CaptureAllFromCamera_Handler, + }, { MethodName: "DoCommand", Handler: _VisionService_DoCommand_Handler,