1// Copyright 2023 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15syntax = "proto3"; 16 17package google.cloud.visionai.v1; 18 19import "google/api/annotations.proto"; 20import "google/api/client.proto"; 21import "google/api/field_behavior.proto"; 22import "google/api/resource.proto"; 23import "google/cloud/visionai/v1/common.proto"; 24import "google/cloud/visionai/v1/lva_resources.proto"; 25import "google/longrunning/operations.proto"; 26import "google/protobuf/empty.proto"; 27import "google/protobuf/field_mask.proto"; 28 29option csharp_namespace = "Google.Cloud.VisionAI.V1"; 30option go_package = "cloud.google.com/go/visionai/apiv1/visionaipb;visionaipb"; 31option java_multiple_files = true; 32option java_outer_classname = "LvaServiceProto"; 33option java_package = "com.google.cloud.visionai.v1"; 34option php_namespace = "Google\\Cloud\\VisionAI\\V1"; 35option ruby_package = "Google::Cloud::VisionAI::V1"; 36 37// Service describing handlers for resources. The service enables clients to run 38// Live Video Analytics (LVA) on the streaming inputs. 39service LiveVideoAnalytics { 40 option (google.api.default_host) = "visionai.googleapis.com"; 41 option (google.api.oauth_scopes) = 42 "https://www.googleapis.com/auth/cloud-platform"; 43 44 // ListPublicOperators returns all the operators in public registry. 45 rpc ListPublicOperators(ListPublicOperatorsRequest) 46 returns (ListPublicOperatorsResponse) { 47 option (google.api.http) = { 48 get: "/v1/{parent=projects/*/locations/*}:listPublicOperators" 49 }; 50 option (google.api.method_signature) = "parent"; 51 } 52 53 // ResolveOperatorInfo returns the operator information based on the request. 54 rpc ResolveOperatorInfo(ResolveOperatorInfoRequest) 55 returns (ResolveOperatorInfoResponse) { 56 option (google.api.http) = { 57 post: "/v1/{parent=projects/*/locations/*}:resolveOperatorInfo" 58 body: "*" 59 }; 60 option (google.api.method_signature) = "parent,queries"; 61 } 62 63 // Lists Operators in a given project and location. 64 rpc ListOperators(ListOperatorsRequest) returns (ListOperatorsResponse) { 65 option (google.api.http) = { 66 get: "/v1/{parent=projects/*/locations/*}/operators" 67 }; 68 option (google.api.method_signature) = "parent"; 69 } 70 71 // Gets details of a single Operator. 72 rpc GetOperator(GetOperatorRequest) returns (Operator) { 73 option (google.api.http) = { 74 get: "/v1/{name=projects/*/locations/*/operators/*}" 75 }; 76 option (google.api.method_signature) = "name"; 77 } 78 79 // Creates a new Operator in a given project and location. 80 rpc CreateOperator(CreateOperatorRequest) 81 returns (google.longrunning.Operation) { 82 option (google.api.http) = { 83 post: "/v1/{parent=projects/*/locations/*}/operators" 84 body: "operator" 85 }; 86 option (google.api.method_signature) = "parent,operator,operator_id"; 87 option (google.longrunning.operation_info) = { 88 response_type: "Operator" 89 metadata_type: "OperationMetadata" 90 }; 91 } 92 93 // Updates the parameters of a single Operator. 94 rpc UpdateOperator(UpdateOperatorRequest) 95 returns (google.longrunning.Operation) { 96 option (google.api.http) = { 97 patch: "/v1/{operator.name=projects/*/locations/*/operators/*}" 98 body: "operator" 99 }; 100 option (google.api.method_signature) = "operator,update_mask"; 101 option (google.longrunning.operation_info) = { 102 response_type: "Operator" 103 metadata_type: "OperationMetadata" 104 }; 105 } 106 107 // Deletes a single Operator. 108 rpc DeleteOperator(DeleteOperatorRequest) 109 returns (google.longrunning.Operation) { 110 option (google.api.http) = { 111 delete: "/v1/{name=projects/*/locations/*/operators/*}" 112 }; 113 option (google.api.method_signature) = "name"; 114 option (google.longrunning.operation_info) = { 115 response_type: "google.protobuf.Empty" 116 metadata_type: "OperationMetadata" 117 }; 118 } 119 120 // Lists Analyses in a given project and location. 121 rpc ListAnalyses(ListAnalysesRequest) returns (ListAnalysesResponse) { 122 option (google.api.http) = { 123 get: "/v1/{parent=projects/*/locations/*/clusters/*}/analyses" 124 }; 125 option (google.api.method_signature) = "parent"; 126 } 127 128 // Gets details of a single Analysis. 129 rpc GetAnalysis(GetAnalysisRequest) returns (Analysis) { 130 option (google.api.http) = { 131 get: "/v1/{name=projects/*/locations/*/clusters/*/analyses/*}" 132 }; 133 option (google.api.method_signature) = "name"; 134 } 135 136 // Creates a new Analysis in a given project and location. 137 rpc CreateAnalysis(CreateAnalysisRequest) 138 returns (google.longrunning.Operation) { 139 option (google.api.http) = { 140 post: "/v1/{parent=projects/*/locations/*/clusters/*}/analyses" 141 body: "analysis" 142 }; 143 option (google.api.method_signature) = "parent,analysis,analysis_id"; 144 option (google.longrunning.operation_info) = { 145 response_type: "Analysis" 146 metadata_type: "OperationMetadata" 147 }; 148 } 149 150 // Updates the parameters of a single Analysis. 151 rpc UpdateAnalysis(UpdateAnalysisRequest) 152 returns (google.longrunning.Operation) { 153 option (google.api.http) = { 154 patch: "/v1/{analysis.name=projects/*/locations/*/clusters/*/analyses/*}" 155 body: "analysis" 156 }; 157 option (google.api.method_signature) = "analysis,update_mask"; 158 option (google.longrunning.operation_info) = { 159 response_type: "Analysis" 160 metadata_type: "OperationMetadata" 161 }; 162 } 163 164 // Deletes a single Analysis. 165 rpc DeleteAnalysis(DeleteAnalysisRequest) 166 returns (google.longrunning.Operation) { 167 option (google.api.http) = { 168 delete: "/v1/{name=projects/*/locations/*/clusters/*/analyses/*}" 169 }; 170 option (google.api.method_signature) = "name"; 171 option (google.longrunning.operation_info) = { 172 response_type: "google.protobuf.Empty" 173 metadata_type: "OperationMetadata" 174 }; 175 } 176 177 // Lists Processes in a given project and location. 178 rpc ListProcesses(ListProcessesRequest) returns (ListProcessesResponse) { 179 option (google.api.http) = { 180 get: "/v1/{parent=projects/*/locations/*/clusters/*}/processes" 181 }; 182 option (google.api.method_signature) = "parent"; 183 } 184 185 // Gets details of a single Process. 186 rpc GetProcess(GetProcessRequest) returns (Process) { 187 option (google.api.http) = { 188 get: "/v1/{name=projects/*/locations/*/clusters/*/processes/*}" 189 }; 190 option (google.api.method_signature) = "name"; 191 } 192 193 // Creates a new Process in a given project and location. 194 rpc CreateProcess(CreateProcessRequest) 195 returns (google.longrunning.Operation) { 196 option (google.api.http) = { 197 post: "/v1/{parent=projects/*/locations/*/clusters/*}/processes" 198 body: "process" 199 }; 200 option (google.api.method_signature) = "parent,process,process_id"; 201 option (google.longrunning.operation_info) = { 202 response_type: "Process" 203 metadata_type: "OperationMetadata" 204 }; 205 } 206 207 // Updates the parameters of a single Process. 208 rpc UpdateProcess(UpdateProcessRequest) 209 returns (google.longrunning.Operation) { 210 option (google.api.http) = { 211 patch: "/v1/{process.name=projects/*/locations/*/clusters/*/processes/*}" 212 body: "process" 213 }; 214 option (google.api.method_signature) = "process,update_mask"; 215 option (google.longrunning.operation_info) = { 216 response_type: "Process" 217 metadata_type: "OperationMetadata" 218 }; 219 } 220 221 // Deletes a single Process. 222 rpc DeleteProcess(DeleteProcessRequest) 223 returns (google.longrunning.Operation) { 224 option (google.api.http) = { 225 delete: "/v1/{name=projects/*/locations/*/clusters/*/processes/*}" 226 }; 227 option (google.api.method_signature) = "name"; 228 option (google.longrunning.operation_info) = { 229 response_type: "google.protobuf.Empty" 230 metadata_type: "OperationMetadata" 231 }; 232 } 233 234 // Run all of the processes to "completion". Max time for each process is 235 // the LRO time limit. 236 rpc BatchRunProcess(BatchRunProcessRequest) 237 returns (google.longrunning.Operation) { 238 option (google.api.http) = { 239 post: "/v1/{parent=projects/*/locations/*/clusters/*}/processes:batchRun" 240 body: "*" 241 }; 242 option (google.api.method_signature) = "parent,requests"; 243 option (google.longrunning.operation_info) = { 244 response_type: "BatchRunProcessResponse" 245 metadata_type: "OperationMetadata" 246 }; 247 } 248} 249 250// The enum of the types of the Registry. 251enum Registry { 252 // Registry is unspecified. 253 REGISTRY_UNSPECIFIED = 0; 254 255 // Public Registry containing the public Operators released by Google. 256 PUBLIC = 1; 257 258 // Private Registry containing the local registered operators. 259 PRIVATE = 2; 260} 261 262// Message for requesting list of Operators. 263message ListOperatorsRequest { 264 // Required. Parent value for ListOperatorsRequest. 265 string parent = 1 [ 266 (google.api.field_behavior) = REQUIRED, 267 (google.api.resource_reference) = { 268 type: "locations.googleapis.com/Location" 269 } 270 ]; 271 272 // Requested page size. Server may return fewer items than requested. 273 // If unspecified, server will pick an appropriate default. 274 int32 page_size = 2; 275 276 // A token identifying a page of results the server should return. 277 string page_token = 3; 278 279 // Filtering results. 280 string filter = 4; 281 282 // Hint for how to order the results. 283 string order_by = 5; 284} 285 286// Message for response to listing Operators. 287message ListOperatorsResponse { 288 // The list of Operator 289 repeated Operator operators = 1; 290 291 // A token identifying a page of results the server should return. 292 string next_page_token = 2; 293 294 // Locations that could not be reached. 295 repeated string unreachable = 3; 296} 297 298// Message for getting a Operator. 299message GetOperatorRequest { 300 // Required. Name of the resource. 301 string name = 1 [ 302 (google.api.field_behavior) = REQUIRED, 303 (google.api.resource_reference) = { 304 type: "visionai.googleapis.com/Operator" 305 } 306 ]; 307} 308 309// Message for creating a Operator. 310message CreateOperatorRequest { 311 // Required. Value for parent. 312 string parent = 1 [ 313 (google.api.field_behavior) = REQUIRED, 314 (google.api.resource_reference) = { 315 type: "locations.googleapis.com/Location" 316 } 317 ]; 318 319 // Required. Id of the requesting object. 320 string operator_id = 2 [(google.api.field_behavior) = REQUIRED]; 321 322 // Required. The resource being created. 323 Operator operator = 3 [(google.api.field_behavior) = REQUIRED]; 324 325 // Optional. An optional request ID to identify requests. Specify a unique 326 // request ID so that if you must retry your request, the server will know to 327 // ignore the request if it has already been completed. The server will 328 // guarantee that for at least 60 minutes since the first request. 329 // 330 // For example, consider a situation where you make an initial request and the 331 // request times out. If you make the request again with the same request ID, 332 // the server can check if original operation with the same request ID was 333 // received, and if so, will ignore the second request. This prevents clients 334 // from accidentally creating duplicate commitments. 335 // 336 // The request ID must be a valid UUID with the exception that zero UUID is 337 // not supported (00000000-0000-0000-0000-000000000000). 338 string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; 339} 340 341// Message for updating a Operator. 342message UpdateOperatorRequest { 343 // Required. Field mask is used to specify the fields to be overwritten in the 344 // Operator resource by the update. 345 // The fields specified in the update_mask are relative to the resource, not 346 // the full request. A field will be overwritten if it is in the mask. If the 347 // user does not provide a mask then all fields will be overwritten. 348 google.protobuf.FieldMask update_mask = 1 349 [(google.api.field_behavior) = REQUIRED]; 350 351 // Required. The resource being updated 352 Operator operator = 2 [(google.api.field_behavior) = REQUIRED]; 353 354 // Optional. An optional request ID to identify requests. Specify a unique 355 // request ID so that if you must retry your request, the server will know to 356 // ignore the request if it has already been completed. The server will 357 // guarantee that for at least 60 minutes since the first request. 358 // 359 // For example, consider a situation where you make an initial request and the 360 // request times out. If you make the request again with the same request ID, 361 // the server can check if original operation with the same request ID was 362 // received, and if so, will ignore the second request. This prevents clients 363 // from accidentally creating duplicate commitments. 364 // 365 // The request ID must be a valid UUID with the exception that zero UUID is 366 // not supported (00000000-0000-0000-0000-000000000000). 367 string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; 368} 369 370// Message for deleting a Operator 371message DeleteOperatorRequest { 372 // Required. Name of the resource 373 string name = 1 [ 374 (google.api.field_behavior) = REQUIRED, 375 (google.api.resource_reference) = { 376 type: "visionai.googleapis.com/Operator" 377 } 378 ]; 379 380 // Optional. An optional request ID to identify requests. Specify a unique 381 // request ID so that if you must retry your request, the server will know to 382 // ignore the request if it has already been completed. The server will 383 // guarantee that for at least 60 minutes after the first request. 384 // 385 // For example, consider a situation where you make an initial request and the 386 // request times out. If you make the request again with the same request ID, 387 // the server can check if original operation with the same request ID was 388 // received, and if so, will ignore the second request. This prevents clients 389 // from accidentally creating duplicate commitments. 390 // 391 // The request ID must be a valid UUID with the exception that zero UUID is 392 // not supported (00000000-0000-0000-0000-000000000000). 393 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 394} 395 396// Message for requesting list of Analyses 397message ListAnalysesRequest { 398 // Required. Parent value for ListAnalysesRequest 399 string parent = 1 [ 400 (google.api.field_behavior) = REQUIRED, 401 (google.api.resource_reference) = { 402 type: "visionai.googleapis.com/Cluster" 403 } 404 ]; 405 406 // Requested page size. Server may return fewer items than requested. 407 // If unspecified, server will pick an appropriate default. 408 int32 page_size = 2; 409 410 // A token identifying a page of results the server should return. 411 string page_token = 3; 412 413 // Filtering results 414 string filter = 4; 415 416 // Hint for how to order the results 417 string order_by = 5; 418} 419 420// Message for response to listing Analyses 421message ListAnalysesResponse { 422 // The list of Analysis 423 repeated Analysis analyses = 1; 424 425 // A token identifying a page of results the server should return. 426 string next_page_token = 2; 427 428 // Locations that could not be reached. 429 repeated string unreachable = 3; 430} 431 432// Message for getting an Analysis. 433message GetAnalysisRequest { 434 // Required. Name of the resource. 435 string name = 1 [ 436 (google.api.field_behavior) = REQUIRED, 437 (google.api.resource_reference) = { 438 type: "visionai.googleapis.com/Analysis" 439 } 440 ]; 441} 442 443// Message for creating an Analysis. 444message CreateAnalysisRequest { 445 // Required. Value for parent. 446 string parent = 1 [ 447 (google.api.field_behavior) = REQUIRED, 448 (google.api.resource_reference) = { 449 type: "visionai.googleapis.com/Cluster" 450 } 451 ]; 452 453 // Required. Id of the requesting object. 454 string analysis_id = 2 [(google.api.field_behavior) = REQUIRED]; 455 456 // Required. The resource being created. 457 Analysis analysis = 3 [(google.api.field_behavior) = REQUIRED]; 458 459 // Optional. An optional request ID to identify requests. Specify a unique 460 // request ID so that if you must retry your request, the server will know to 461 // ignore the request if it has already been completed. The server will 462 // guarantee that for at least 60 minutes since the first request. 463 // 464 // For example, consider a situation where you make an initial request and the 465 // request times out. If you make the request again with the same request ID, 466 // the server can check if original operation with the same request ID was 467 // received, and if so, will ignore the second request. This prevents clients 468 // from accidentally creating duplicate commitments. 469 // 470 // The request ID must be a valid UUID with the exception that zero UUID is 471 // not supported (00000000-0000-0000-0000-000000000000). 472 string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; 473} 474 475// Message for updating an Analysis. 476message UpdateAnalysisRequest { 477 // Required. Field mask is used to specify the fields to be overwritten in the 478 // Analysis resource by the update. 479 // The fields specified in the update_mask are relative to the resource, not 480 // the full request. A field will be overwritten if it is in the mask. If the 481 // user does not provide a mask then all fields will be overwritten. 482 google.protobuf.FieldMask update_mask = 1 483 [(google.api.field_behavior) = REQUIRED]; 484 485 // Required. The resource being updated. 486 Analysis analysis = 2 [(google.api.field_behavior) = REQUIRED]; 487 488 // Optional. An optional request ID to identify requests. Specify a unique 489 // request ID so that if you must retry your request, the server will know to 490 // ignore the request if it has already been completed. The server will 491 // guarantee that for at least 60 minutes since the first request. 492 // 493 // For example, consider a situation where you make an initial request and the 494 // request times out. If you make the request again with the same request ID, 495 // the server can check if original operation with the same request ID was 496 // received, and if so, will ignore the second request. This prevents clients 497 // from accidentally creating duplicate commitments. 498 // 499 // The request ID must be a valid UUID with the exception that zero UUID is 500 // not supported (00000000-0000-0000-0000-000000000000). 501 string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; 502} 503 504// Message for deleting an Analysis. 505message DeleteAnalysisRequest { 506 // Required. Name of the resource. 507 string name = 1 [ 508 (google.api.field_behavior) = REQUIRED, 509 (google.api.resource_reference) = { 510 type: "visionai.googleapis.com/Analysis" 511 } 512 ]; 513 514 // Optional. An optional request ID to identify requests. Specify a unique 515 // request ID so that if you must retry your request, the server will know to 516 // ignore the request if it has already been completed. The server will 517 // guarantee that for at least 60 minutes after the first request. 518 // 519 // For example, consider a situation where you make an initial request and the 520 // request times out. If you make the request again with the same request ID, 521 // the server can check if original operation with the same request ID was 522 // received, and if so, will ignore the second request. This prevents clients 523 // from accidentally creating duplicate commitments. 524 // 525 // The request ID must be a valid UUID with the exception that zero UUID is 526 // not supported (00000000-0000-0000-0000-000000000000). 527 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 528} 529 530// Message for requesting list of Processes. 531message ListProcessesRequest { 532 // Required. Parent value for ListProcessesRequest. 533 string parent = 1 [ 534 (google.api.field_behavior) = REQUIRED, 535 (google.api.resource_reference) = { 536 type: "visionai.googleapis.com/Cluster" 537 } 538 ]; 539 540 // Requested page size. Server may return fewer items than requested. 541 // If unspecified, server will pick an appropriate default. 542 int32 page_size = 2; 543 544 // A token identifying a page of results the server should return. 545 string page_token = 3; 546 547 // Filtering results 548 string filter = 4; 549 550 // Hint for how to order the results 551 string order_by = 5; 552} 553 554// Message for response to listing Processes. 555message ListProcessesResponse { 556 // The list of Processes. 557 repeated Process processes = 1; 558 559 // A token identifying a page of results the server should return. 560 string next_page_token = 2; 561 562 // Locations that could not be reached. 563 repeated string unreachable = 3; 564} 565 566// Message for getting a Process. 567message GetProcessRequest { 568 // Required. Name of the resource. 569 string name = 1 [ 570 (google.api.field_behavior) = REQUIRED, 571 (google.api.resource_reference) = { 572 type: "visionai.googleapis.com/Process" 573 } 574 ]; 575} 576 577// Message for creating a Process. 578message CreateProcessRequest { 579 // Required. Value for parent. 580 string parent = 1 [ 581 (google.api.field_behavior) = REQUIRED, 582 (google.api.resource_reference) = { 583 type: "visionai.googleapis.com/Cluster" 584 } 585 ]; 586 587 // Required. Id of the requesting object. 588 string process_id = 2 [(google.api.field_behavior) = REQUIRED]; 589 590 // Required. The resource being created. 591 Process process = 3 [(google.api.field_behavior) = REQUIRED]; 592 593 // Optional. An optional request ID to identify requests. Specify a unique 594 // request ID so that if you must retry your request, the server will know to 595 // ignore the request if it has already been completed. The server will 596 // guarantee that for at least 60 minutes since the first request. 597 // 598 // For example, consider a situation where you make an initial request and the 599 // request times out. If you make the request again with the same request ID, 600 // the server can check if original operation with the same request ID was 601 // received, and if so, will ignore the second request. This prevents clients 602 // from accidentally creating duplicate commitments. 603 // 604 // The request ID must be a valid UUID with the exception that zero UUID is 605 // not supported (00000000-0000-0000-0000-000000000000). 606 string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; 607} 608 609// Message for updating a Process. 610message UpdateProcessRequest { 611 // Required. Field mask is used to specify the fields to be overwritten in the 612 // Process resource by the update. 613 // The fields specified in the update_mask are relative to the resource, not 614 // the full request. A field will be overwritten if it is in the mask. If the 615 // user does not provide a mask then all fields will be overwritten. 616 google.protobuf.FieldMask update_mask = 1 617 [(google.api.field_behavior) = REQUIRED]; 618 619 // Required. The resource being updated. 620 Process process = 2 [(google.api.field_behavior) = REQUIRED]; 621 622 // Optional. An optional request ID to identify requests. Specify a unique 623 // request ID so that if you must retry your request, the server will know to 624 // ignore the request if it has already been completed. The server will 625 // guarantee that for at least 60 minutes since the first request. 626 // 627 // For example, consider a situation where you make an initial request and the 628 // request times out. If you make the request again with the same request ID, 629 // the server can check if original operation with the same request ID was 630 // received, and if so, will ignore the second request. This prevents clients 631 // from accidentally creating duplicate commitments. 632 // 633 // The request ID must be a valid UUID with the exception that zero UUID is 634 // not supported (00000000-0000-0000-0000-000000000000). 635 string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; 636} 637 638// Message for deleting a Process. 639message DeleteProcessRequest { 640 // Required. Name of the resource. 641 string name = 1 [ 642 (google.api.field_behavior) = REQUIRED, 643 (google.api.resource_reference) = { 644 type: "visionai.googleapis.com/Process" 645 } 646 ]; 647 648 // Optional. An optional request ID to identify requests. Specify a unique 649 // request ID so that if you must retry your request, the server will know to 650 // ignore the request if it has already been completed. The server will 651 // guarantee that for at least 60 minutes after the first request. 652 // 653 // For example, consider a situation where you make an initial request and the 654 // request times out. If you make the request again with the same request ID, 655 // the server can check if original operation with the same request ID was 656 // received, and if so, will ignore the second request. This prevents clients 657 // from accidentally creating duplicate commitments. 658 // 659 // The request ID must be a valid UUID with the exception that zero UUID is 660 // not supported (00000000-0000-0000-0000-000000000000). 661 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 662} 663 664// Request message for running the processes in a batch. 665message BatchRunProcessRequest { 666 // Options for batch processes. 667 message BatchRunProcessOptions { 668 // The retry counts per process. Default: 3. 669 int32 retry_count = 1; 670 671 // The batch size. Default: 5, maximum: 100. 672 int32 batch_size = 2; 673 } 674 675 // Required. The parent resource shared by all processes being created. 676 string parent = 1 [ 677 (google.api.field_behavior) = REQUIRED, 678 (google.api.resource_reference) = { 679 type: "visionai.googleapis.com/Cluster" 680 } 681 ]; 682 683 // Required. The create process requests. 684 repeated CreateProcessRequest requests = 2 685 [(google.api.field_behavior) = REQUIRED]; 686 687 // Optional. Options for batch processes. 688 BatchRunProcessOptions options = 3 [(google.api.field_behavior) = OPTIONAL]; 689 690 // Output only. The batch ID. 691 string batch_id = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; 692} 693 694// Response message for running the processes in a batch. 695message BatchRunProcessResponse { 696 // The batch ID. 697 string batch_id = 1; 698 699 // Processes created. 700 repeated Process processes = 2; 701} 702 703// Request message for querying operator info. 704message ResolveOperatorInfoRequest { 705 // Required. Parent value for ResolveOperatorInfoRequest. 706 string parent = 1 [ 707 (google.api.field_behavior) = REQUIRED, 708 (google.api.resource_reference) = { 709 type: "locations.googleapis.com/Location" 710 } 711 ]; 712 713 // Required. The operator queries. 714 repeated OperatorQuery queries = 2 [(google.api.field_behavior) = REQUIRED]; 715} 716 717// OperatorQuery represents one query to a Operator. 718message OperatorQuery { 719 // Required. The canonical Name of the operator. e.g. OccupancyCounting. 720 string operator = 1 [(google.api.field_behavior) = REQUIRED]; 721 722 // Optional. Tag of the operator. 723 string tag = 2 [(google.api.field_behavior) = OPTIONAL]; 724 725 // Optional. Registry of the operator. 726 Registry registry = 3 [(google.api.field_behavior) = OPTIONAL]; 727} 728 729// Response message of ResolveOperatorInfo API. 730message ResolveOperatorInfoResponse { 731 // Operators with detailed information. 732 repeated Operator operators = 1; 733} 734 735// Request message of ListPublicOperatorsRequest API. 736message ListPublicOperatorsRequest { 737 // Required. Parent value for ListPublicOperatorsRequest. 738 string parent = 1 [ 739 (google.api.field_behavior) = REQUIRED, 740 (google.api.resource_reference) = { 741 type: "locations.googleapis.com/Location" 742 } 743 ]; 744 745 // Requested page size. Server may return fewer items than requested. 746 // If unspecified, server will pick an appropriate default. 747 int32 page_size = 2; 748 749 // A token identifying a page of results the server should return. 750 string page_token = 3; 751 752 // Filtering results. 753 string filter = 4; 754 755 // Hint for how to order the results. 756 string order_by = 5; 757} 758 759// Response message of ListPublicOperators API. 760message ListPublicOperatorsResponse { 761 // The list of Operator 762 repeated Operator operators = 1; 763 764 // A token identifying a page of results the server should return. 765 string next_page_token = 2; 766} 767