xref: /aosp_15_r20/external/googleapis/google/cloud/visionai/v1/lva_service.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
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