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