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.video.stitcher.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/video/stitcher/v1/ad_tag_details.proto"; 24import "google/cloud/video/stitcher/v1/cdn_keys.proto"; 25import "google/cloud/video/stitcher/v1/live_configs.proto"; 26import "google/cloud/video/stitcher/v1/sessions.proto"; 27import "google/cloud/video/stitcher/v1/slates.proto"; 28import "google/cloud/video/stitcher/v1/stitch_details.proto"; 29import "google/longrunning/operations.proto"; 30import "google/protobuf/empty.proto"; 31import "google/protobuf/field_mask.proto"; 32import "google/protobuf/timestamp.proto"; 33 34option go_package = "cloud.google.com/go/video/stitcher/apiv1/stitcherpb;stitcherpb"; 35option java_multiple_files = true; 36option java_outer_classname = "VideoStitcherServiceProto"; 37option java_package = "com.google.cloud.video.stitcher.v1"; 38 39// Video-On-Demand content stitching API allows you to insert ads 40// into (VoD) video on demand files. You will be able to render custom 41// scrubber bars with highlighted ads, enforce ad policies, allow 42// seamless playback and tracking on native players and monetize 43// content with any standard VMAP compliant ad server. 44service VideoStitcherService { 45 option (google.api.default_host) = "videostitcher.googleapis.com"; 46 option (google.api.oauth_scopes) = 47 "https://www.googleapis.com/auth/cloud-platform"; 48 49 // Creates a new CDN key. 50 rpc CreateCdnKey(CreateCdnKeyRequest) returns (google.longrunning.Operation) { 51 option (google.api.http) = { 52 post: "/v1/{parent=projects/*/locations/*}/cdnKeys" 53 body: "cdn_key" 54 }; 55 option (google.api.method_signature) = "parent,cdn_key,cdn_key_id"; 56 option (google.longrunning.operation_info) = { 57 response_type: "google.cloud.video.stitcher.v1.CdnKey" 58 metadata_type: "google.cloud.video.stitcher.v1.OperationMetadata" 59 }; 60 } 61 62 // Lists all CDN keys in the specified project and location. 63 rpc ListCdnKeys(ListCdnKeysRequest) returns (ListCdnKeysResponse) { 64 option (google.api.http) = { 65 get: "/v1/{parent=projects/*/locations/*}/cdnKeys" 66 }; 67 option (google.api.method_signature) = "parent"; 68 } 69 70 // Returns the specified CDN key. 71 rpc GetCdnKey(GetCdnKeyRequest) returns (CdnKey) { 72 option (google.api.http) = { 73 get: "/v1/{name=projects/*/locations/*/cdnKeys/*}" 74 }; 75 option (google.api.method_signature) = "name"; 76 } 77 78 // Deletes the specified CDN key. 79 rpc DeleteCdnKey(DeleteCdnKeyRequest) returns (google.longrunning.Operation) { 80 option (google.api.http) = { 81 delete: "/v1/{name=projects/*/locations/*/cdnKeys/*}" 82 }; 83 option (google.api.method_signature) = "name"; 84 option (google.longrunning.operation_info) = { 85 response_type: "google.protobuf.Empty" 86 metadata_type: "google.cloud.video.stitcher.v1.OperationMetadata" 87 }; 88 } 89 90 // Updates the specified CDN key. Only update fields specified 91 // in the call method body. 92 rpc UpdateCdnKey(UpdateCdnKeyRequest) returns (google.longrunning.Operation) { 93 option (google.api.http) = { 94 patch: "/v1/{cdn_key.name=projects/*/locations/*/cdnKeys/*}" 95 body: "cdn_key" 96 }; 97 option (google.api.method_signature) = "cdn_key,update_mask"; 98 option (google.longrunning.operation_info) = { 99 response_type: "google.cloud.video.stitcher.v1.CdnKey" 100 metadata_type: "google.cloud.video.stitcher.v1.OperationMetadata" 101 }; 102 } 103 104 // Creates a client side playback VOD session and returns the full 105 // tracking and playback metadata of the session. 106 rpc CreateVodSession(CreateVodSessionRequest) returns (VodSession) { 107 option (google.api.http) = { 108 post: "/v1/{parent=projects/*/locations/*}/vodSessions" 109 body: "vod_session" 110 }; 111 option (google.api.method_signature) = "parent,vod_session"; 112 } 113 114 // Returns the full tracking, playback metadata, and relevant ad-ops 115 // logs for the specified VOD session. 116 rpc GetVodSession(GetVodSessionRequest) returns (VodSession) { 117 option (google.api.http) = { 118 get: "/v1/{name=projects/*/locations/*/vodSessions/*}" 119 }; 120 option (google.api.method_signature) = "name"; 121 } 122 123 // Returns a list of detailed stitching information of the specified VOD 124 // session. 125 rpc ListVodStitchDetails(ListVodStitchDetailsRequest) 126 returns (ListVodStitchDetailsResponse) { 127 option (google.api.http) = { 128 get: "/v1/{parent=projects/*/locations/*/vodSessions/*}/vodStitchDetails" 129 }; 130 option (google.api.method_signature) = "parent"; 131 } 132 133 // Returns the specified stitching information for the specified VOD session. 134 rpc GetVodStitchDetail(GetVodStitchDetailRequest) returns (VodStitchDetail) { 135 option (google.api.http) = { 136 get: "/v1/{name=projects/*/locations/*/vodSessions/*/vodStitchDetails/*}" 137 }; 138 option (google.api.method_signature) = "name"; 139 } 140 141 // Return the list of ad tag details for the specified VOD session. 142 rpc ListVodAdTagDetails(ListVodAdTagDetailsRequest) 143 returns (ListVodAdTagDetailsResponse) { 144 option (google.api.http) = { 145 get: "/v1/{parent=projects/*/locations/*/vodSessions/*}/vodAdTagDetails" 146 }; 147 option (google.api.method_signature) = "parent"; 148 } 149 150 // Returns the specified ad tag detail for the specified VOD session. 151 rpc GetVodAdTagDetail(GetVodAdTagDetailRequest) returns (VodAdTagDetail) { 152 option (google.api.http) = { 153 get: "/v1/{name=projects/*/locations/*/vodSessions/*/vodAdTagDetails/*}" 154 }; 155 option (google.api.method_signature) = "name"; 156 } 157 158 // Return the list of ad tag details for the specified live session. 159 rpc ListLiveAdTagDetails(ListLiveAdTagDetailsRequest) 160 returns (ListLiveAdTagDetailsResponse) { 161 option (google.api.http) = { 162 get: "/v1/{parent=projects/*/locations/*/liveSessions/*}/liveAdTagDetails" 163 }; 164 option (google.api.method_signature) = "parent"; 165 } 166 167 // Returns the specified ad tag detail for the specified live session. 168 rpc GetLiveAdTagDetail(GetLiveAdTagDetailRequest) returns (LiveAdTagDetail) { 169 option (google.api.http) = { 170 get: "/v1/{name=projects/*/locations/*/liveSessions/*/liveAdTagDetails/*}" 171 }; 172 option (google.api.method_signature) = "name"; 173 } 174 175 // Creates a slate. 176 rpc CreateSlate(CreateSlateRequest) returns (google.longrunning.Operation) { 177 option (google.api.http) = { 178 post: "/v1/{parent=projects/*/locations/*}/slates" 179 body: "slate" 180 }; 181 option (google.api.method_signature) = "parent,slate,slate_id"; 182 option (google.longrunning.operation_info) = { 183 response_type: "google.cloud.video.stitcher.v1.Slate" 184 metadata_type: "google.cloud.video.stitcher.v1.OperationMetadata" 185 }; 186 } 187 188 // Lists all slates in the specified project and location. 189 rpc ListSlates(ListSlatesRequest) returns (ListSlatesResponse) { 190 option (google.api.http) = { 191 get: "/v1/{parent=projects/*/locations/*}/slates" 192 }; 193 option (google.api.method_signature) = "parent"; 194 } 195 196 // Returns the specified slate. 197 rpc GetSlate(GetSlateRequest) returns (Slate) { 198 option (google.api.http) = { 199 get: "/v1/{name=projects/*/locations/*/slates/*}" 200 }; 201 option (google.api.method_signature) = "name"; 202 } 203 204 // Updates the specified slate. 205 rpc UpdateSlate(UpdateSlateRequest) returns (google.longrunning.Operation) { 206 option (google.api.http) = { 207 patch: "/v1/{slate.name=projects/*/locations/*/slates/*}" 208 body: "slate" 209 }; 210 option (google.api.method_signature) = "slate,update_mask"; 211 option (google.longrunning.operation_info) = { 212 response_type: "google.cloud.video.stitcher.v1.Slate" 213 metadata_type: "google.cloud.video.stitcher.v1.OperationMetadata" 214 }; 215 } 216 217 // Deletes the specified slate. 218 rpc DeleteSlate(DeleteSlateRequest) returns (google.longrunning.Operation) { 219 option (google.api.http) = { 220 delete: "/v1/{name=projects/*/locations/*/slates/*}" 221 }; 222 option (google.api.method_signature) = "name"; 223 option (google.longrunning.operation_info) = { 224 response_type: "google.protobuf.Empty" 225 metadata_type: "google.cloud.video.stitcher.v1.OperationMetadata" 226 }; 227 } 228 229 // Creates a new live session. 230 rpc CreateLiveSession(CreateLiveSessionRequest) returns (LiveSession) { 231 option (google.api.http) = { 232 post: "/v1/{parent=projects/*/locations/*}/liveSessions" 233 body: "live_session" 234 }; 235 option (google.api.method_signature) = "parent,live_session"; 236 } 237 238 // Returns the details for the specified live session. 239 rpc GetLiveSession(GetLiveSessionRequest) returns (LiveSession) { 240 option (google.api.http) = { 241 get: "/v1/{name=projects/*/locations/*/liveSessions/*}" 242 }; 243 option (google.api.method_signature) = "name"; 244 } 245 246 // Registers the live config with the provided unique ID in 247 // the specified region. 248 rpc CreateLiveConfig(CreateLiveConfigRequest) 249 returns (google.longrunning.Operation) { 250 option (google.api.http) = { 251 post: "/v1/{parent=projects/*/locations/*}/liveConfigs" 252 body: "live_config" 253 }; 254 option (google.api.method_signature) = "parent,live_config,live_config_id"; 255 option (google.longrunning.operation_info) = { 256 response_type: "google.cloud.video.stitcher.v1.LiveConfig" 257 metadata_type: "google.cloud.video.stitcher.v1.OperationMetadata" 258 }; 259 } 260 261 // Lists all live configs managed by the Video Stitcher that 262 // belong to the specified project and region. 263 rpc ListLiveConfigs(ListLiveConfigsRequest) 264 returns (ListLiveConfigsResponse) { 265 option (google.api.http) = { 266 get: "/v1/{parent=projects/*/locations/*}/liveConfigs" 267 }; 268 option (google.api.method_signature) = "parent"; 269 } 270 271 // Returns the specified live config managed by the Video 272 // Stitcher service. 273 rpc GetLiveConfig(GetLiveConfigRequest) returns (LiveConfig) { 274 option (google.api.http) = { 275 get: "/v1/{name=projects/*/locations/*/liveConfigs/*}" 276 }; 277 option (google.api.method_signature) = "name"; 278 } 279 280 // Deletes the specified live config. 281 rpc DeleteLiveConfig(DeleteLiveConfigRequest) 282 returns (google.longrunning.Operation) { 283 option (google.api.http) = { 284 delete: "/v1/{name=projects/*/locations/*/liveConfigs/*}" 285 }; 286 option (google.api.method_signature) = "name"; 287 option (google.longrunning.operation_info) = { 288 response_type: "google.protobuf.Empty" 289 metadata_type: "google.cloud.video.stitcher.v1.OperationMetadata" 290 }; 291 } 292} 293 294// Request message for VideoStitcherService.createCdnKey. 295message CreateCdnKeyRequest { 296 // Required. The project in which the CDN key should be created, in the form 297 // of `projects/{project_number}/locations/{location}`. 298 string parent = 1 [ 299 (google.api.field_behavior) = REQUIRED, 300 (google.api.resource_reference) = { 301 child_type: "videostitcher.googleapis.com/CdnKey" 302 } 303 ]; 304 305 // Required. The CDN key resource to create. 306 CdnKey cdn_key = 2 [(google.api.field_behavior) = REQUIRED]; 307 308 // Required. The ID to use for the CDN key, which will become the final 309 // component of the CDN key's resource name. 310 // 311 // This value should conform to RFC-1034, which restricts to 312 // lower-case letters, numbers, and hyphen, with the first character a 313 // letter, the last a letter or a number, and a 63 character maximum. 314 string cdn_key_id = 3 [(google.api.field_behavior) = REQUIRED]; 315} 316 317// Request message for VideoStitcherService.listCdnKeys. 318message ListCdnKeysRequest { 319 // Required. The project that contains the list of CDN keys, in the form of 320 // `projects/{project_number}/locations/{location}`. 321 string parent = 1 [ 322 (google.api.field_behavior) = REQUIRED, 323 (google.api.resource_reference) = { 324 child_type: "videostitcher.googleapis.com/CdnKey" 325 } 326 ]; 327 328 // Requested page size. Server may return fewer items than requested. 329 // If unspecified, server will pick an appropriate default. 330 int32 page_size = 2; 331 332 // A token identifying a page of results the server should return. 333 string page_token = 3; 334 335 // Filtering results 336 string filter = 4; 337 338 // Hint for how to order the results 339 string order_by = 5; 340} 341 342// Response message for VideoStitcher.ListCdnKeys. 343message ListCdnKeysResponse { 344 // List of CDN keys. 345 repeated CdnKey cdn_keys = 1; 346 347 // A token identifying a page of results the server should return. 348 string next_page_token = 2; 349 350 // Locations that could not be reached. 351 repeated string unreachable = 3; 352} 353 354// Request message for VideoStitcherService.getCdnKey. 355message GetCdnKeyRequest { 356 // Required. The name of the CDN key to be retrieved, in the form of 357 // `projects/{project}/locations/{location}/cdnKeys/{id}`. 358 string name = 1 [ 359 (google.api.field_behavior) = REQUIRED, 360 (google.api.resource_reference) = { 361 type: "videostitcher.googleapis.com/CdnKey" 362 } 363 ]; 364} 365 366// Request message for VideoStitcherService.deleteCdnKey. 367message DeleteCdnKeyRequest { 368 // Required. The name of the CDN key to be deleted, in the form of 369 // `projects/{project_number}/locations/{location}/cdnKeys/{id}`. 370 string name = 1 [ 371 (google.api.field_behavior) = REQUIRED, 372 (google.api.resource_reference) = { 373 type: "videostitcher.googleapis.com/CdnKey" 374 } 375 ]; 376} 377 378// Request message for VideoStitcherService.updateCdnKey. 379message UpdateCdnKeyRequest { 380 // Required. The CDN key resource which replaces the resource on the server. 381 CdnKey cdn_key = 1 [(google.api.field_behavior) = REQUIRED]; 382 383 // Required. The update mask applies to the resource. 384 // For the `FieldMask` definition, see 385 // https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask 386 google.protobuf.FieldMask update_mask = 2 387 [(google.api.field_behavior) = REQUIRED]; 388} 389 390// Request message for VideoStitcherService.createVodSession 391message CreateVodSessionRequest { 392 // Required. The project and location in which the VOD session should be 393 // created, in the form of `projects/{project_number}/locations/{location}`. 394 string parent = 1 [ 395 (google.api.field_behavior) = REQUIRED, 396 (google.api.resource_reference) = { 397 child_type: "videostitcher.googleapis.com/VodSession" 398 } 399 ]; 400 401 // Required. Parameters for creating a session. 402 VodSession vod_session = 2 [(google.api.field_behavior) = REQUIRED]; 403} 404 405// Request message for VideoStitcherService.getVodSession 406message GetVodSessionRequest { 407 // Required. The name of the VOD session to be retrieved, in the form of 408 // `projects/{project_number}/locations/{location}/vodSessions/{id}`. 409 string name = 1 [ 410 (google.api.field_behavior) = REQUIRED, 411 (google.api.resource_reference) = { 412 type: "videostitcher.googleapis.com/VodSession" 413 } 414 ]; 415} 416 417// Request message for VideoStitcherService.listVodStitchDetails. 418message ListVodStitchDetailsRequest { 419 // Required. The VOD session where the stitch details belong to, in the form 420 // of `projects/{project}/locations/{location}/vodSessions/{id}`. 421 string parent = 1 [ 422 (google.api.field_behavior) = REQUIRED, 423 (google.api.resource_reference) = { 424 child_type: "videostitcher.googleapis.com/VodStitchDetail" 425 } 426 ]; 427 428 // The maximum number of items to return. 429 int32 page_size = 2; 430 431 // The next_page_token value returned from a previous List request, if any. 432 string page_token = 3; 433} 434 435// Response message for VideoStitcherService.listVodStitchDetails. 436message ListVodStitchDetailsResponse { 437 // A List of stitch Details. 438 repeated VodStitchDetail vod_stitch_details = 1; 439 440 // The pagination token. 441 string next_page_token = 2; 442} 443 444// Request message for VideoStitcherService.getVodStitchDetail. 445message GetVodStitchDetailRequest { 446 // Required. The name of the stitch detail in the specified VOD session, in 447 // the form of 448 // `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodStitchDetails/{id}`. 449 string name = 1 [ 450 (google.api.field_behavior) = REQUIRED, 451 (google.api.resource_reference) = { 452 type: "videostitcher.googleapis.com/VodStitchDetail" 453 } 454 ]; 455} 456 457// Request message for VideoStitcherService.listVodAdTagDetails. 458message ListVodAdTagDetailsRequest { 459 // Required. The VOD session which the ad tag details belong to, in the form 460 // of `projects/{project}/locations/{location}/vodSessions/{vod_session_id}`. 461 string parent = 1 [ 462 (google.api.field_behavior) = REQUIRED, 463 (google.api.resource_reference) = { 464 child_type: "videostitcher.googleapis.com/VodAdTagDetail" 465 } 466 ]; 467 468 // The maximum number of items to return. 469 int32 page_size = 2; 470 471 // The next_page_token value returned from a previous List request, if any. 472 string page_token = 3; 473} 474 475// Response message for VideoStitcherService.listVodAdTagDetails. 476message ListVodAdTagDetailsResponse { 477 // A List of ad tag details. 478 repeated VodAdTagDetail vod_ad_tag_details = 1; 479 480 // The pagination token. 481 string next_page_token = 2; 482} 483 484// Request message for VideoStitcherService.getVodAdTagDetail 485message GetVodAdTagDetailRequest { 486 // Required. The name of the ad tag detail for the specified VOD session, in 487 // the form of 488 // `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodAdTagDetails/{vod_ad_tag_detail}`. 489 string name = 1 [ 490 (google.api.field_behavior) = REQUIRED, 491 (google.api.resource_reference) = { 492 type: "videostitcher.googleapis.com/VodAdTagDetail" 493 } 494 ]; 495} 496 497// Request message for VideoStitcherService.listLiveAdTagDetails. 498message ListLiveAdTagDetailsRequest { 499 // Required. The resource parent in the form of 500 // `projects/{project}/locations/{location}/liveSessions/{live_session}`. 501 string parent = 1 [ 502 (google.api.field_behavior) = REQUIRED, 503 (google.api.resource_reference) = { 504 child_type: "videostitcher.googleapis.com/LiveAdTagDetail" 505 } 506 ]; 507 508 // The maximum number of items to return. 509 int32 page_size = 2; 510 511 // The pagination token returned from a previous List request. 512 string page_token = 3; 513} 514 515// Response message for VideoStitcherService.listLiveAdTagDetails. 516message ListLiveAdTagDetailsResponse { 517 // A list of live session ad tag details. 518 repeated LiveAdTagDetail live_ad_tag_details = 1; 519 520 // The pagination token. 521 string next_page_token = 2; 522} 523 524// Request message for VideoStitcherService.getLiveAdTagDetail 525message GetLiveAdTagDetailRequest { 526 // Required. The resource name in the form of 527 // `projects/{project}/locations/{location}/liveSessions/{live_session}/liveAdTagDetails/{live_ad_tag_detail}`. 528 string name = 1 [ 529 (google.api.field_behavior) = REQUIRED, 530 (google.api.resource_reference) = { 531 type: "videostitcher.googleapis.com/LiveAdTagDetail" 532 } 533 ]; 534} 535 536// Request message for VideoStitcherService.createSlate. 537message CreateSlateRequest { 538 // Required. The project in which the slate should be created, in the form of 539 // `projects/{project_number}/locations/{location}`. 540 string parent = 1 [ 541 (google.api.field_behavior) = REQUIRED, 542 (google.api.resource_reference) = { 543 child_type: "videostitcher.googleapis.com/Slate" 544 } 545 ]; 546 547 // Required. The unique identifier for the slate. 548 // This value should conform to RFC-1034, which restricts to 549 // lower-case letters, numbers, and hyphen, with the first character a 550 // letter, the last a letter or a number, and a 63 character maximum. 551 string slate_id = 2 [(google.api.field_behavior) = REQUIRED]; 552 553 // Required. The slate to create. 554 Slate slate = 3 [(google.api.field_behavior) = REQUIRED]; 555 556 // A request ID to identify requests. Specify a unique request ID 557 // so that if you must retry your request, the server will know to ignore 558 // the request if it has already been completed. The server will guarantee 559 // that for at least 60 minutes since the first request. 560 // 561 // For example, consider a situation where you make an initial request and the 562 // request times out. If you make the request again with the same request ID, 563 // the server can check if original operation with the same request ID was 564 // received, and if so, will ignore the second request. This prevents clients 565 // from accidentally creating duplicate commitments. 566 // 567 // The request ID must be a valid UUID with the exception that zero UUID is 568 // not supported `(00000000-0000-0000-0000-000000000000)`. 569 string request_id = 4; 570} 571 572// Request message for VideoStitcherService.getSlate. 573message GetSlateRequest { 574 // Required. The name of the slate to be retrieved, of the slate, in the form 575 // of `projects/{project_number}/locations/{location}/slates/{id}`. 576 string name = 1 [ 577 (google.api.field_behavior) = REQUIRED, 578 (google.api.resource_reference) = { 579 type: "videostitcher.googleapis.com/Slate" 580 } 581 ]; 582} 583 584// Request message for VideoStitcherService.listSlates. 585message ListSlatesRequest { 586 // Required. The project to list slates, in the form of 587 // `projects/{project_number}/locations/{location}`. 588 string parent = 1 [ 589 (google.api.field_behavior) = REQUIRED, 590 (google.api.resource_reference) = { 591 child_type: "videostitcher.googleapis.com/Slate" 592 } 593 ]; 594 595 // Requested page size. Server may return fewer items than requested. 596 // If unspecified, server will pick an appropriate default. 597 int32 page_size = 2; 598 599 // A token identifying a page of results the server should return. 600 string page_token = 3; 601 602 // Filtering results 603 string filter = 4; 604 605 // Hint for how to order the results 606 string order_by = 5; 607} 608 609// Response message for VideoStitcherService.listSlates. 610message ListSlatesResponse { 611 // The list of slates 612 repeated Slate slates = 1; 613 614 // A token identifying a page of results the server should return. 615 string next_page_token = 2; 616 617 // Locations that could not be reached. 618 repeated string unreachable = 3; 619} 620 621// Request message for VideoStitcherService.updateSlate. 622message UpdateSlateRequest { 623 // Required. The resource with updated fields. 624 Slate slate = 1 [(google.api.field_behavior) = REQUIRED]; 625 626 // Required. The update mask which specifies fields which should be updated. 627 google.protobuf.FieldMask update_mask = 2 628 [(google.api.field_behavior) = REQUIRED]; 629} 630 631// Request message for VideoStitcherService.deleteSlate. 632message DeleteSlateRequest { 633 // Required. The name of the slate to be deleted, in the form of 634 // `projects/{project_number}/locations/{location}/slates/{id}`. 635 string name = 1 [ 636 (google.api.field_behavior) = REQUIRED, 637 (google.api.resource_reference) = { 638 type: "videostitcher.googleapis.com/Slate" 639 } 640 ]; 641} 642 643// Request message for VideoStitcherService.createLiveSession. 644message CreateLiveSessionRequest { 645 // Required. The project and location in which the live session should be 646 // created, in the form of `projects/{project_number}/locations/{location}`. 647 string parent = 1 [ 648 (google.api.field_behavior) = REQUIRED, 649 (google.api.resource_reference) = { 650 child_type: "videostitcher.googleapis.com/LiveSession" 651 } 652 ]; 653 654 // Required. Parameters for creating a live session. 655 LiveSession live_session = 2 [(google.api.field_behavior) = REQUIRED]; 656} 657 658// Request message for VideoStitcherService.getSession. 659message GetLiveSessionRequest { 660 // Required. The name of the live session, in the form of 661 // `projects/{project_number}/locations/{location}/liveSessions/{id}`. 662 string name = 1 [ 663 (google.api.field_behavior) = REQUIRED, 664 (google.api.resource_reference) = { 665 type: "videostitcher.googleapis.com/LiveSession" 666 } 667 ]; 668} 669 670// Request message for VideoStitcherService.createLiveConfig 671message CreateLiveConfigRequest { 672 // Required. The project in which the live config should be created, in 673 // the form of `projects/{project_number}/locations/{location}`. 674 string parent = 1 [ 675 (google.api.field_behavior) = REQUIRED, 676 (google.api.resource_reference) = { 677 child_type: "videostitcher.googleapis.com/LiveConfig" 678 } 679 ]; 680 681 // Required. The unique identifier ID to use for the live config. 682 string live_config_id = 2 [(google.api.field_behavior) = REQUIRED]; 683 684 // Required. The live config resource to create. 685 LiveConfig live_config = 3 [(google.api.field_behavior) = REQUIRED]; 686 687 // A request ID to identify requests. Specify a unique request ID 688 // so that if you must retry your request, the server will know to ignore 689 // the request if it has already been completed. The server will guarantee 690 // that for at least 60 minutes since the first request. 691 // 692 // For example, consider a situation where you make an initial request and the 693 // request times out. If you make the request again with the same request ID, 694 // the server can check if original operation with the same request ID was 695 // received, and if so, will ignore the second request. This prevents clients 696 // from accidentally creating duplicate commitments. 697 // 698 // The request ID must be a valid UUID with the exception that zero UUID is 699 // not supported `(00000000-0000-0000-0000-000000000000)`. 700 string request_id = 4; 701} 702 703// Request message for VideoStitcherService.listLiveConfig. 704message ListLiveConfigsRequest { 705 // Required. The project that contains the list of live configs, in the 706 // form of `projects/{project_number}/locations/{location}`. 707 string parent = 1 [ 708 (google.api.field_behavior) = REQUIRED, 709 (google.api.resource_reference) = { 710 child_type: "videostitcher.googleapis.com/LiveConfig" 711 } 712 ]; 713 714 // The maximum number of items to return. 715 int32 page_size = 2; 716 717 // The next_page_token value returned from a previous List request, if any. 718 string page_token = 3; 719 720 // Optional. The filter to apply to list results (see 721 // [Filtering](https://google.aip.dev/160)). 722 string filter = 4 [(google.api.field_behavior) = OPTIONAL]; 723 724 // Optional. Specifies the ordering of results following 725 // [Cloud API 726 // syntax](https://cloud.google.com/apis/design/design_patterns#sorting_order). 727 string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; 728} 729 730// Response message for VideoStitcher.ListLiveConfig. 731message ListLiveConfigsResponse { 732 // List of live configs. 733 repeated LiveConfig live_configs = 1; 734 735 // The pagination token. 736 string next_page_token = 2; 737 738 // Locations that could not be reached. 739 repeated string unreachable = 3; 740} 741 742// Request message for VideoStitcherService.getLiveConfig. 743message GetLiveConfigRequest { 744 // Required. The name of the live config to be retrieved, in the form 745 // of 746 // `projects/{project_number}/locations/{location}/liveConfigs/{id}`. 747 string name = 1 [ 748 (google.api.field_behavior) = REQUIRED, 749 (google.api.resource_reference) = { 750 type: "videostitcher.googleapis.com/LiveConfig" 751 } 752 ]; 753} 754 755// Request message for VideoStitcherService.deleteLiveConfig. 756message DeleteLiveConfigRequest { 757 // Required. The name of the live config to be deleted, in the form of 758 // `projects/{project_number}/locations/{location}/liveConfigs/{id}`. 759 string name = 1 [ 760 (google.api.field_behavior) = REQUIRED, 761 (google.api.resource_reference) = { 762 type: "videostitcher.googleapis.com/LiveConfig" 763 } 764 ]; 765} 766 767// Represents the metadata of the long-running operation. 768message OperationMetadata { 769 // The time the operation was created. 770 google.protobuf.Timestamp create_time = 1; 771 772 // The time the operation finished running. 773 google.protobuf.Timestamp end_time = 2; 774 775 // Server-defined resource path for the target of the operation. 776 string target = 3; 777 778 // Name of the verb executed by the operation. 779 string verb = 4; 780} 781