xref: /aosp_15_r20/external/googleapis/google/cloud/visionai/v1alpha1/streams_service.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1// Copyright 2022 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.v1alpha1;
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/v1alpha1/common.proto";
24import "google/cloud/visionai/v1alpha1/streams_resources.proto";
25import "google/longrunning/operations.proto";
26import "google/protobuf/field_mask.proto";
27import "google/protobuf/timestamp.proto";
28
29option csharp_namespace = "Google.Cloud.VisionAI.V1Alpha1";
30option go_package = "cloud.google.com/go/visionai/apiv1alpha1/visionaipb;visionaipb";
31option java_multiple_files = true;
32option java_outer_classname = "StreamsServiceProto";
33option java_package = "com.google.cloud.visionai.v1alpha1";
34option php_namespace = "Google\\Cloud\\VisionAI\\V1alpha1";
35option ruby_package = "Google::Cloud::VisionAI::V1alpha1";
36
37// Service describing handlers for resources.
38// Vision API and Vision AI API are two independent APIs developed by the same
39// team. Vision API is for people to annotate their image while Vision AI is an
40// e2e solution for customer to build their own computer vision application.
41service StreamsService {
42  option (google.api.default_host) = "visionai.googleapis.com";
43  option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
44
45  // Lists Clusters in a given project and location.
46  rpc ListClusters(ListClustersRequest) returns (ListClustersResponse) {
47    option (google.api.http) = {
48      get: "/v1alpha1/{parent=projects/*/locations/*}/clusters"
49    };
50    option (google.api.method_signature) = "parent";
51  }
52
53  // Gets details of a single Cluster.
54  rpc GetCluster(GetClusterRequest) returns (Cluster) {
55    option (google.api.http) = {
56      get: "/v1alpha1/{name=projects/*/locations/*/clusters/*}"
57    };
58    option (google.api.method_signature) = "name";
59  }
60
61  // Creates a new Cluster in a given project and location.
62  rpc CreateCluster(CreateClusterRequest) returns (google.longrunning.Operation) {
63    option (google.api.http) = {
64      post: "/v1alpha1/{parent=projects/*/locations/*}/clusters"
65      body: "cluster"
66    };
67    option (google.api.method_signature) = "parent,cluster,cluster_id";
68    option (google.longrunning.operation_info) = {
69      response_type: "Cluster"
70      metadata_type: "OperationMetadata"
71    };
72  }
73
74  // Updates the parameters of a single Cluster.
75  rpc UpdateCluster(UpdateClusterRequest) returns (google.longrunning.Operation) {
76    option (google.api.http) = {
77      patch: "/v1alpha1/{cluster.name=projects/*/locations/*/clusters/*}"
78      body: "cluster"
79    };
80    option (google.api.method_signature) = "cluster,update_mask";
81    option (google.longrunning.operation_info) = {
82      response_type: "Cluster"
83      metadata_type: "OperationMetadata"
84    };
85  }
86
87  // Deletes a single Cluster.
88  rpc DeleteCluster(DeleteClusterRequest) returns (google.longrunning.Operation) {
89    option (google.api.http) = {
90      delete: "/v1alpha1/{name=projects/*/locations/*/clusters/*}"
91    };
92    option (google.api.method_signature) = "name";
93    option (google.longrunning.operation_info) = {
94      response_type: "google.protobuf.Empty"
95      metadata_type: "OperationMetadata"
96    };
97  }
98
99  // Lists Streams in a given project and location.
100  rpc ListStreams(ListStreamsRequest) returns (ListStreamsResponse) {
101    option (google.api.http) = {
102      get: "/v1alpha1/{parent=projects/*/locations/*/clusters/*}/streams"
103    };
104    option (google.api.method_signature) = "parent";
105  }
106
107  // Gets details of a single Stream.
108  rpc GetStream(GetStreamRequest) returns (Stream) {
109    option (google.api.http) = {
110      get: "/v1alpha1/{name=projects/*/locations/*/clusters/*/streams/*}"
111    };
112    option (google.api.method_signature) = "name";
113  }
114
115  // Creates a new Stream in a given project and location.
116  rpc CreateStream(CreateStreamRequest) returns (google.longrunning.Operation) {
117    option (google.api.http) = {
118      post: "/v1alpha1/{parent=projects/*/locations/*/clusters/*}/streams"
119      body: "stream"
120    };
121    option (google.api.method_signature) = "parent,stream,stream_id";
122    option (google.longrunning.operation_info) = {
123      response_type: "Stream"
124      metadata_type: "OperationMetadata"
125    };
126  }
127
128  // Updates the parameters of a single Stream.
129  rpc UpdateStream(UpdateStreamRequest) returns (google.longrunning.Operation) {
130    option (google.api.http) = {
131      patch: "/v1alpha1/{stream.name=projects/*/locations/*/clusters/*/streams/*}"
132      body: "stream"
133    };
134    option (google.api.method_signature) = "stream,update_mask";
135    option (google.longrunning.operation_info) = {
136      response_type: "Stream"
137      metadata_type: "OperationMetadata"
138    };
139  }
140
141  // Deletes a single Stream.
142  rpc DeleteStream(DeleteStreamRequest) returns (google.longrunning.Operation) {
143    option (google.api.http) = {
144      delete: "/v1alpha1/{name=projects/*/locations/*/clusters/*/streams/*}"
145    };
146    option (google.api.method_signature) = "name";
147    option (google.longrunning.operation_info) = {
148      response_type: "google.protobuf.Empty"
149      metadata_type: "OperationMetadata"
150    };
151  }
152
153  // Generate the JWT auth token required to get the stream HLS contents.
154  rpc GenerateStreamHlsToken(GenerateStreamHlsTokenRequest) returns (GenerateStreamHlsTokenResponse) {
155    option (google.api.http) = {
156      post: "/v1alpha1/{stream=projects/*/locations/*/clusters/*/streams/*}:generateStreamHlsToken"
157      body: "*"
158    };
159    option (google.api.method_signature) = "stream";
160  }
161
162  // Lists Events in a given project and location.
163  rpc ListEvents(ListEventsRequest) returns (ListEventsResponse) {
164    option (google.api.http) = {
165      get: "/v1alpha1/{parent=projects/*/locations/*/clusters/*}/events"
166    };
167    option (google.api.method_signature) = "parent";
168  }
169
170  // Gets details of a single Event.
171  rpc GetEvent(GetEventRequest) returns (Event) {
172    option (google.api.http) = {
173      get: "/v1alpha1/{name=projects/*/locations/*/clusters/*/events/*}"
174    };
175    option (google.api.method_signature) = "name";
176  }
177
178  // Creates a new Event in a given project and location.
179  rpc CreateEvent(CreateEventRequest) returns (google.longrunning.Operation) {
180    option (google.api.http) = {
181      post: "/v1alpha1/{parent=projects/*/locations/*/clusters/*}/events"
182      body: "event"
183    };
184    option (google.api.method_signature) = "parent,event,event_id";
185    option (google.longrunning.operation_info) = {
186      response_type: "Event"
187      metadata_type: "OperationMetadata"
188    };
189  }
190
191  // Updates the parameters of a single Event.
192  rpc UpdateEvent(UpdateEventRequest) returns (google.longrunning.Operation) {
193    option (google.api.http) = {
194      patch: "/v1alpha1/{event.name=projects/*/locations/*/clusters/*/events/*}"
195      body: "event"
196    };
197    option (google.api.method_signature) = "event,update_mask";
198    option (google.longrunning.operation_info) = {
199      response_type: "Event"
200      metadata_type: "OperationMetadata"
201    };
202  }
203
204  // Deletes a single Event.
205  rpc DeleteEvent(DeleteEventRequest) returns (google.longrunning.Operation) {
206    option (google.api.http) = {
207      delete: "/v1alpha1/{name=projects/*/locations/*/clusters/*/events/*}"
208    };
209    option (google.api.method_signature) = "name";
210    option (google.longrunning.operation_info) = {
211      response_type: "google.protobuf.Empty"
212      metadata_type: "OperationMetadata"
213    };
214  }
215
216  // Lists Series in a given project and location.
217  rpc ListSeries(ListSeriesRequest) returns (ListSeriesResponse) {
218    option (google.api.http) = {
219      get: "/v1alpha1/{parent=projects/*/locations/*/clusters/*}/series"
220    };
221    option (google.api.method_signature) = "parent";
222  }
223
224  // Gets details of a single Series.
225  rpc GetSeries(GetSeriesRequest) returns (Series) {
226    option (google.api.http) = {
227      get: "/v1alpha1/{name=projects/*/locations/*/clusters/*/series/*}"
228    };
229    option (google.api.method_signature) = "name";
230  }
231
232  // Creates a new Series in a given project and location.
233  rpc CreateSeries(CreateSeriesRequest) returns (google.longrunning.Operation) {
234    option (google.api.http) = {
235      post: "/v1alpha1/{parent=projects/*/locations/*/clusters/*}/series"
236      body: "series"
237    };
238    option (google.api.method_signature) = "parent,series,series_id";
239    option (google.longrunning.operation_info) = {
240      response_type: "Series"
241      metadata_type: "OperationMetadata"
242    };
243  }
244
245  // Updates the parameters of a single Event.
246  rpc UpdateSeries(UpdateSeriesRequest) returns (google.longrunning.Operation) {
247    option (google.api.http) = {
248      patch: "/v1alpha1/{series.name=projects/*/locations/*/clusters/*/series/*}"
249      body: "series"
250    };
251    option (google.api.method_signature) = "series,update_mask";
252    option (google.longrunning.operation_info) = {
253      response_type: "Series"
254      metadata_type: "OperationMetadata"
255    };
256  }
257
258  // Deletes a single Series.
259  rpc DeleteSeries(DeleteSeriesRequest) returns (google.longrunning.Operation) {
260    option (google.api.http) = {
261      delete: "/v1alpha1/{name=projects/*/locations/*/clusters/*/series/*}"
262    };
263    option (google.api.method_signature) = "name";
264    option (google.longrunning.operation_info) = {
265      response_type: "google.protobuf.Empty"
266      metadata_type: "OperationMetadata"
267    };
268  }
269
270  // Materialize a channel.
271  rpc MaterializeChannel(MaterializeChannelRequest) returns (google.longrunning.Operation) {
272    option (google.api.http) = {
273      post: "/v1alpha1/{parent=projects/*/locations/*/clusters/*}/channels"
274      body: "channel"
275    };
276    option (google.api.method_signature) = "parent,channel,channel_id";
277    option (google.longrunning.operation_info) = {
278      response_type: "Channel"
279      metadata_type: "OperationMetadata"
280    };
281  }
282}
283
284// Message for requesting list of Clusters.
285message ListClustersRequest {
286  // Required. Parent value for ListClustersRequest.
287  string parent = 1 [
288    (google.api.field_behavior) = REQUIRED,
289    (google.api.resource_reference) = {
290      type: "locations.googleapis.com/Location"
291    }
292  ];
293
294  // Requested page size. Server may return fewer items than requested.
295  // If unspecified, server will pick an appropriate default.
296  int32 page_size = 2;
297
298  // A token identifying a page of results the server should return.
299  string page_token = 3;
300
301  // Filtering results.
302  string filter = 4;
303
304  // Hint for how to order the results.
305  string order_by = 5;
306}
307
308// Message for response to listing Clusters.
309message ListClustersResponse {
310  // The list of Cluster.
311  repeated Cluster clusters = 1;
312
313  // A token identifying a page of results the server should return.
314  string next_page_token = 2;
315
316  // Locations that could not be reached.
317  repeated string unreachable = 3;
318}
319
320// Message for getting a Cluster.
321message GetClusterRequest {
322  // Required. Name of the resource.
323  string name = 1 [
324    (google.api.field_behavior) = REQUIRED,
325    (google.api.resource_reference) = {
326      type: "visionai.googleapis.com/Cluster"
327    }
328  ];
329}
330
331// Message for creating a Cluster.
332message CreateClusterRequest {
333  // Required. Value for parent.
334  string parent = 1 [
335    (google.api.field_behavior) = REQUIRED,
336    (google.api.resource_reference) = {
337      child_type: "visionai.googleapis.com/Cluster"
338    }
339  ];
340
341  // Required. Id of the requesting object.
342  string cluster_id = 2 [(google.api.field_behavior) = REQUIRED];
343
344  // Required. The resource being created.
345  Cluster cluster = 3 [(google.api.field_behavior) = REQUIRED];
346
347  // Optional. An optional request ID to identify requests. Specify a unique request ID
348  // so that if you must retry your request, the server will know to ignore
349  // the request if it has already been completed. The server will guarantee
350  // that for at least 60 minutes since the first request.
351  //
352  // For example, consider a situation where you make an initial request and the
353  // request times out. If you make the request again with the same request ID,
354  // the server can check if original operation with the same request ID was
355  // received, and if so, will ignore the second request. This prevents clients
356  // from accidentally creating duplicate commitments.
357  //
358  // The request ID must be a valid UUID with the exception that zero UUID is
359  // not supported (00000000-0000-0000-0000-000000000000).
360  string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
361}
362
363// Message for updating a Cluster.
364message UpdateClusterRequest {
365  // Required. Field mask is used to specify the fields to be overwritten in the
366  // Cluster resource by the update.
367  // The fields specified in the update_mask are relative to the resource, not
368  // the full request. A field will be overwritten if it is in the mask. If the
369  // user does not provide a mask then all fields will be overwritten.
370  google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED];
371
372  // Required. The resource being updated
373  Cluster cluster = 2 [(google.api.field_behavior) = REQUIRED];
374
375  // Optional. An optional request ID to identify requests. Specify a unique request ID
376  // so that if you must retry your request, the server will know to ignore
377  // the request if it has already been completed. The server will guarantee
378  // that for at least 60 minutes since the first request.
379  //
380  // For example, consider a situation where you make an initial request and the
381  // request times out. If you make the request again with the same request ID,
382  // the server can check if original operation with the same request ID was
383  // received, and if so, will ignore the second request. This prevents clients
384  // from accidentally creating duplicate commitments.
385  //
386  // The request ID must be a valid UUID with the exception that zero UUID is
387  // not supported (00000000-0000-0000-0000-000000000000).
388  string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
389}
390
391// Message for deleting a Cluster.
392message DeleteClusterRequest {
393  // Required. Name of the resource
394  string name = 1 [
395    (google.api.field_behavior) = REQUIRED,
396    (google.api.resource_reference) = {
397      type: "visionai.googleapis.com/Cluster"
398    }
399  ];
400
401  // Optional. An optional request ID to identify requests. Specify a unique request ID
402  // so that if you must retry your request, the server will know to ignore
403  // the request if it has already been completed. The server will guarantee
404  // that for at least 60 minutes after the first request.
405  //
406  // For example, consider a situation where you make an initial request and the
407  // request times out. If you make the request again with the same request ID,
408  // the server can check if original operation with the same request ID was
409  // received, and if so, will ignore the second request. This prevents clients
410  // from accidentally creating duplicate commitments.
411  //
412  // The request ID must be a valid UUID with the exception that zero UUID is
413  // not supported (00000000-0000-0000-0000-000000000000).
414  string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
415}
416
417// Message for requesting list of Streams.
418message ListStreamsRequest {
419  // Required. Parent value for ListStreamsRequest.
420  string parent = 1 [
421    (google.api.field_behavior) = REQUIRED,
422    (google.api.resource_reference) = {
423      type: "visionai.googleapis.com/Cluster"
424    }
425  ];
426
427  // Requested page size. Server may return fewer items than requested.
428  // If unspecified, server will pick an appropriate default.
429  int32 page_size = 2;
430
431  // A token identifying a page of results the server should return.
432  string page_token = 3;
433
434  // Filtering results.
435  string filter = 4;
436
437  // Hint for how to order the results.
438  string order_by = 5;
439}
440
441// Message for response to listing Streams.
442message ListStreamsResponse {
443  // The list of Stream.
444  repeated Stream streams = 1;
445
446  // A token identifying a page of results the server should return.
447  string next_page_token = 2;
448
449  // Locations that could not be reached.
450  repeated string unreachable = 3;
451}
452
453// Message for getting a Stream.
454message GetStreamRequest {
455  // Required. Name of the resource.
456  string name = 1 [
457    (google.api.field_behavior) = REQUIRED,
458    (google.api.resource_reference) = {
459      type: "visionai.googleapis.com/Stream"
460    }
461  ];
462}
463
464// Message for creating a Stream.
465message CreateStreamRequest {
466  // Required. Value for parent.
467  string parent = 1 [
468    (google.api.field_behavior) = REQUIRED,
469    (google.api.resource_reference) = {
470      type: "visionai.googleapis.com/Cluster"
471    }
472  ];
473
474  // Required. Id of the requesting object.
475  string stream_id = 2 [(google.api.field_behavior) = REQUIRED];
476
477  // Required. The resource being created.
478  Stream stream = 3 [(google.api.field_behavior) = REQUIRED];
479
480  // Optional. An optional request ID to identify requests. Specify a unique request ID
481  // so that if you must retry your request, the server will know to ignore
482  // the request if it has already been completed. The server will guarantee
483  // that for at least 60 minutes since the first request.
484  //
485  // For example, consider a situation where you make an initial request and the
486  // request times out. If you make the request again with the same request ID,
487  // the server can check if original operation with the same request ID was
488  // received, and if so, will ignore the second request. This prevents clients
489  // from accidentally creating duplicate commitments.
490  //
491  // The request ID must be a valid UUID with the exception that zero UUID is
492  // not supported (00000000-0000-0000-0000-000000000000).
493  string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
494}
495
496// Message for updating a Stream.
497message UpdateStreamRequest {
498  // Required. Field mask is used to specify the fields to be overwritten in the
499  // Stream resource by the update.
500  // The fields specified in the update_mask are relative to the resource, not
501  // the full request. A field will be overwritten if it is in the mask. If the
502  // user does not provide a mask then all fields will be overwritten.
503  google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED];
504
505  // Required. The resource being updated.
506  Stream stream = 2 [(google.api.field_behavior) = REQUIRED];
507
508  // Optional. An optional request ID to identify requests. Specify a unique request ID
509  // so that if you must retry your request, the server will know to ignore
510  // the request if it has already been completed. The server will guarantee
511  // that for at least 60 minutes since the first request.
512  //
513  // For example, consider a situation where you make an initial request and the
514  // request times out. If you make the request again with the same request ID,
515  // the server can check if original operation with the same request ID was
516  // received, and if so, will ignore the second request. This prevents clients
517  // from accidentally creating duplicate commitments.
518  //
519  // The request ID must be a valid UUID with the exception that zero UUID is
520  // not supported (00000000-0000-0000-0000-000000000000).
521  string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
522}
523
524// Message for deleting a Stream.
525message DeleteStreamRequest {
526  // Required. Name of the resource.
527  string name = 1 [
528    (google.api.field_behavior) = REQUIRED,
529    (google.api.resource_reference) = {
530      type: "visionai.googleapis.com/Stream"
531    }
532  ];
533
534  // Optional. An optional request ID to identify requests. Specify a unique request ID
535  // so that if you must retry your request, the server will know to ignore
536  // the request if it has already been completed. The server will guarantee
537  // that for at least 60 minutes after the first request.
538  //
539  // For example, consider a situation where you make an initial request and the
540  // request times out. If you make the request again with the same request ID,
541  // the server can check if original operation with the same request ID was
542  // received, and if so, will ignore the second request. This prevents clients
543  // from accidentally creating duplicate commitments.
544  //
545  // The request ID must be a valid UUID with the exception that zero UUID is
546  // not supported (00000000-0000-0000-0000-000000000000).
547  string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
548}
549
550// Message for the response of GetStreamThumbnail. The empty response message
551// indicates the thumbnail image has been uploaded to GCS successfully.
552message GetStreamThumbnailResponse {
553
554}
555
556// Request message for getting the auth token to access the stream HLS contents.
557message GenerateStreamHlsTokenRequest {
558  // Required. The name of the stream.
559  string stream = 1 [(google.api.field_behavior) = REQUIRED];
560}
561
562// Response message for GenerateStreamHlsToken.
563message GenerateStreamHlsTokenResponse {
564  // The generated JWT token.
565  //
566  // The caller should insert this token to the authorization header of the HTTP
567  // requests to get the HLS playlist manifest and the video chunks.
568  // eg: curl -H "Authorization: Bearer $TOKEN"
569  //     https://domain.com/test-stream.playback/master.m3u8
570  string token = 1;
571
572  // The expiration time of the token.
573  google.protobuf.Timestamp expiration_time = 2;
574}
575
576// Message for requesting list of Events.
577message ListEventsRequest {
578  // Required. Parent value for ListEventsRequest.
579  string parent = 1 [
580    (google.api.field_behavior) = REQUIRED,
581    (google.api.resource_reference) = {
582      type: "visionai.googleapis.com/Cluster"
583    }
584  ];
585
586  // Requested page size. Server may return fewer items than requested.
587  // If unspecified, server will pick an appropriate default.
588  int32 page_size = 2;
589
590  // A token identifying a page of results the server should return.
591  string page_token = 3;
592
593  // Filtering results.
594  string filter = 4;
595
596  // Hint for how to order the results.
597  string order_by = 5;
598}
599
600// Message for response to listing Events.
601message ListEventsResponse {
602  // The list of Event.
603  repeated Event events = 1;
604
605  // A token identifying a page of results the server should return.
606  string next_page_token = 2;
607
608  // Locations that could not be reached.
609  repeated string unreachable = 3;
610}
611
612// Message for getting a Event.
613message GetEventRequest {
614  // Required. Name of the resource.
615  string name = 1 [
616    (google.api.field_behavior) = REQUIRED,
617    (google.api.resource_reference) = {
618      type: "visionai.googleapis.com/Event"
619    }
620  ];
621}
622
623// Message for creating a Event.
624message CreateEventRequest {
625  // Required. Value for parent.
626  string parent = 1 [
627    (google.api.field_behavior) = REQUIRED,
628    (google.api.resource_reference) = {
629      type: "visionai.googleapis.com/Cluster"
630    }
631  ];
632
633  // Required. Id of the requesting object.
634  string event_id = 2 [(google.api.field_behavior) = REQUIRED];
635
636  // Required. The resource being created.
637  Event event = 3 [(google.api.field_behavior) = REQUIRED];
638
639  // Optional. An optional request ID to identify requests. Specify a unique request ID
640  // so that if you must retry your request, the server will know to ignore
641  // the request if it has already been completed. The server will guarantee
642  // that for at least 60 minutes since the first request.
643  //
644  // For example, consider a situation where you make an initial request and the
645  // request times out. If you make the request again with the same request ID,
646  // the server can check if original operation with the same request ID was
647  // received, and if so, will ignore the second request. This prevents clients
648  // from accidentally creating duplicate commitments.
649  //
650  // The request ID must be a valid UUID with the exception that zero UUID is
651  // not supported (00000000-0000-0000-0000-000000000000).
652  string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
653}
654
655// Message for updating a Event.
656message UpdateEventRequest {
657  // Required. Field mask is used to specify the fields to be overwritten in the
658  // Event resource by the update.
659  // The fields specified in the update_mask are relative to the resource, not
660  // the full request. A field will be overwritten if it is in the mask. If the
661  // user does not provide a mask then all fields will be overwritten.
662  google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED];
663
664  // Required. The resource being updated.
665  Event event = 2 [(google.api.field_behavior) = REQUIRED];
666
667  // Optional. An optional request ID to identify requests. Specify a unique request ID
668  // so that if you must retry your request, the server will know to ignore
669  // the request if it has already been completed. The server will guarantee
670  // that for at least 60 minutes since the first request.
671  //
672  // For example, consider a situation where you make an initial request and the
673  // request times out. If you make the request again with the same request ID,
674  // the server can check if original operation with the same request ID was
675  // received, and if so, will ignore the second request. This prevents clients
676  // from accidentally creating duplicate commitments.
677  //
678  // The request ID must be a valid UUID with the exception that zero UUID is
679  // not supported (00000000-0000-0000-0000-000000000000).
680  string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
681}
682
683// Message for deleting a Event.
684message DeleteEventRequest {
685  // Required. Name of the resource.
686  string name = 1 [
687    (google.api.field_behavior) = REQUIRED,
688    (google.api.resource_reference) = {
689      type: "visionai.googleapis.com/Event"
690    }
691  ];
692
693  // Optional. An optional request ID to identify requests. Specify a unique request ID
694  // so that if you must retry your request, the server will know to ignore
695  // the request if it has already been completed. The server will guarantee
696  // that for at least 60 minutes after the first request.
697  //
698  // For example, consider a situation where you make an initial request and the
699  // request times out. If you make the request again with the same request ID,
700  // the server can check if original operation with the same request ID was
701  // received, and if so, will ignore the second request. This prevents clients
702  // from accidentally creating duplicate commitments.
703  //
704  // The request ID must be a valid UUID with the exception that zero UUID is
705  // not supported (00000000-0000-0000-0000-000000000000).
706  string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
707}
708
709// Message for requesting list of Series.
710message ListSeriesRequest {
711  // Required. Parent value for ListSeriesRequest.
712  string parent = 1 [
713    (google.api.field_behavior) = REQUIRED,
714    (google.api.resource_reference) = {
715      type: "visionai.googleapis.com/Cluster"
716    }
717  ];
718
719  // Requested page size. Server may return fewer items than requested.
720  // If unspecified, server will pick an appropriate default.
721  int32 page_size = 2;
722
723  // A token identifying a page of results the server should return.
724  string page_token = 3;
725
726  // Filtering results.
727  string filter = 4;
728
729  // Hint for how to order the results.
730  string order_by = 5;
731}
732
733// Message for response to listing Series.
734message ListSeriesResponse {
735  // The list of Series.
736  repeated Series series = 1;
737
738  // A token identifying a page of results the server should return.
739  string next_page_token = 2;
740
741  // Locations that could not be reached.
742  repeated string unreachable = 3;
743}
744
745// Message for getting a Series.
746message GetSeriesRequest {
747  // Required. Name of the resource.
748  string name = 1 [
749    (google.api.field_behavior) = REQUIRED,
750    (google.api.resource_reference) = {
751      type: "visionai.googleapis.com/Series"
752    }
753  ];
754}
755
756// Message for creating a Series.
757message CreateSeriesRequest {
758  // Required. Value for parent.
759  string parent = 1 [
760    (google.api.field_behavior) = REQUIRED,
761    (google.api.resource_reference) = {
762      type: "visionai.googleapis.com/Cluster"
763    }
764  ];
765
766  // Required. Id of the requesting object.
767  string series_id = 2 [(google.api.field_behavior) = REQUIRED];
768
769  // Required. The resource being created.
770  Series series = 3 [(google.api.field_behavior) = REQUIRED];
771
772  // Optional. An optional request ID to identify requests. Specify a unique request ID
773  // so that if you must retry your request, the server will know to ignore
774  // the request if it has already been completed. The server will guarantee
775  // that for at least 60 minutes since the first request.
776  //
777  // For example, consider a situation where you make an initial request and the
778  // request times out. If you make the request again with the same request ID,
779  // the server can check if original operation with the same request ID was
780  // received, and if so, will ignore the second request. This prevents clients
781  // from accidentally creating duplicate commitments.
782  //
783  // The request ID must be a valid UUID with the exception that zero UUID is
784  // not supported (00000000-0000-0000-0000-000000000000).
785  string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
786}
787
788// Message for updating a Series.
789message UpdateSeriesRequest {
790  // Required. Field mask is used to specify the fields to be overwritten in the Series
791  // resource by the update. The fields specified in the update_mask are
792  // relative to the resource, not the full request. A field will be overwritten
793  // if it is in the mask. If the user does not provide a mask then all fields
794  // will be overwritten.
795  google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED];
796
797  // Required. The resource being updated
798  Series series = 2 [(google.api.field_behavior) = REQUIRED];
799
800  // Optional. An optional request ID to identify requests. Specify a unique request ID
801  // so that if you must retry your request, the server will know to ignore
802  // the request if it has already been completed. The server will guarantee
803  // that for at least 60 minutes since the first request.
804  //
805  // For example, consider a situation where you make an initial request and the
806  // request times out. If you make the request again with the same request ID,
807  // the server can check if original operation with the same request ID was
808  // received, and if so, will ignore the second request. This prevents clients
809  // from accidentally creating duplicate commitments.
810  //
811  // The request ID must be a valid UUID with the exception that zero UUID is
812  // not supported (00000000-0000-0000-0000-000000000000).
813  string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
814}
815
816// Message for deleting a Series.
817message DeleteSeriesRequest {
818  // Required. Name of the resource.
819  string name = 1 [
820    (google.api.field_behavior) = REQUIRED,
821    (google.api.resource_reference) = {
822      type: "visionai.googleapis.com/Series"
823    }
824  ];
825
826  // Optional. An optional request ID to identify requests. Specify a unique request ID
827  // so that if you must retry your request, the server will know to ignore
828  // the request if it has already been completed. The server will guarantee
829  // that for at least 60 minutes after the first request.
830  //
831  // For example, consider a situation where you make an initial request and the
832  // request times out. If you make the request again with the same request ID,
833  // the server can check if original operation with the same request ID was
834  // received, and if so, will ignore the second request. This prevents clients
835  // from accidentally creating duplicate commitments.
836  //
837  // The request ID must be a valid UUID with the exception that zero UUID is
838  // not supported (00000000-0000-0000-0000-000000000000).
839  string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
840}
841
842// Message for materializing a channel.
843message MaterializeChannelRequest {
844  // Required. Value for parent.
845  string parent = 1 [
846    (google.api.field_behavior) = REQUIRED,
847    (google.api.resource_reference) = {
848      type: "visionai.googleapis.com/Cluster"
849    }
850  ];
851
852  // Required. Id of the channel.
853  string channel_id = 2 [(google.api.field_behavior) = REQUIRED];
854
855  // Required. The resource being created.
856  Channel channel = 3 [(google.api.field_behavior) = REQUIRED];
857
858  // Optional. An optional request ID to identify requests. Specify a unique request ID
859  // so that if you must retry your request, the server will know to ignore
860  // the request if it has already been completed. The server will guarantee
861  // that for at least 60 minutes since the first request.
862  //
863  // For example, consider a situation where you make an initial request and the
864  // request times out. If you make the request again with the same request ID,
865  // the server can check if original operation with the same request ID was
866  // received, and if so, will ignore the second request. This prevents clients
867  // from accidentally creating duplicate commitments.
868  //
869  // The request ID must be a valid UUID with the exception that zero UUID is
870  // not supported (00000000-0000-0000-0000-000000000000).
871  string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
872}
873