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