diff options
Diffstat (limited to 'third_party/googleapis/google/cloud/video/stitcher')
12 files changed, 1802 insertions, 0 deletions
diff --git a/third_party/googleapis/google/cloud/video/stitcher/BUILD.bazel b/third_party/googleapis/google/cloud/video/stitcher/BUILD.bazel new file mode 100644 index 0000000..e5f3d61 --- /dev/null +++ b/third_party/googleapis/google/cloud/video/stitcher/BUILD.bazel @@ -0,0 +1,39 @@ +# This build file includes a target for the Ruby wrapper library for +# google-cloud-video-stitcher. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +# Export yaml configs. +exports_files(glob(["*.yaml"])) + +load( +    "@com_google_googleapis_imports//:imports.bzl", +    "ruby_cloud_gapic_library", +    "ruby_gapic_assembly_pkg", +) + +# Generates a Ruby wrapper client for videostitcher. +# Ruby wrapper clients are versionless, but are generated from source protos +# for a particular service version, v1 in this case. +ruby_cloud_gapic_library( +    name = "stitcher_ruby_wrapper", +    srcs = ["//google/cloud/video/stitcher/v1:stitcher_proto_with_info"], +    extra_protoc_parameters = [ +        "ruby-cloud-gem-name=google-cloud-video-stitcher", +        "ruby-cloud-wrapper-of=v1:0.0", +        "ruby-cloud-product-url=https://cloud.google.com/video-stitcher/", +        "ruby-cloud-api-id=videostitcher.googleapis.com", +        "ruby-cloud-api-shortname=videostitcher", +    ], +    ruby_cloud_description = "The Video Stitcher API allows you to manipulate video content to dynamically insert ads prior to delivery to client devices. Using the Video Stitcher API, you can monetize your video-on-demand (VOD) and livestreaming videos by inserting ads as described by metadata stored on ad servers.", +    ruby_cloud_title = "Video Stitcher", +) + +# Open Source package. +ruby_gapic_assembly_pkg( +    name = "google-cloud-video-stitcher-ruby", +    deps = [ +        ":stitcher_ruby_wrapper", +    ], +) diff --git a/third_party/googleapis/google/cloud/video/stitcher/v1/BUILD.bazel b/third_party/googleapis/google/cloud/video/stitcher/v1/BUILD.bazel new file mode 100644 index 0000000..99669a1 --- /dev/null +++ b/third_party/googleapis/google/cloud/video/stitcher/v1/BUILD.bazel @@ -0,0 +1,383 @@ +# This file was automatically generated by BuildFileGenerator +# https://github.com/googleapis/rules_gapic/tree/master/bazel + +# Most of the manual changes to this file will be overwritten. +# It's **only** allowed to change the following rule attribute values: +# - names of *_gapic_assembly_* rules +# - certain parameters of *_gapic_library rules, including but not limited to: +#    * extra_protoc_parameters +#    * extra_protoc_file_parameters +# The complete list of preserved parameters can be found in the source code. + +# This is an API workspace, having public visibility by default makes perfect sense. +package(default_visibility = ["//visibility:public"]) + +############################################################################## +# Common +############################################################################## +load("@rules_proto//proto:defs.bzl", "proto_library") +load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info") + +proto_library( +    name = "stitcher_proto", +    srcs = [ +        "ad_tag_details.proto", +        "cdn_keys.proto", +        "companions.proto", +        "events.proto", +        "sessions.proto", +        "slates.proto", +        "stitch_details.proto", +        "video_stitcher_service.proto", +    ], +    deps = [ +        "//google/api:annotations_proto", +        "//google/api:client_proto", +        "//google/api:field_behavior_proto", +        "//google/api:resource_proto", +        "@com_google_protobuf//:duration_proto", +        "@com_google_protobuf//:empty_proto", +        "@com_google_protobuf//:field_mask_proto", +        "@com_google_protobuf//:struct_proto", +    ], +) + +proto_library_with_info( +    name = "stitcher_proto_with_info", +    deps = [ +        ":stitcher_proto", +        "//google/cloud:common_resources_proto", +    ], +) + +############################################################################## +# Java +############################################################################## +load( +    "@com_google_googleapis_imports//:imports.bzl", +    "java_gapic_assembly_gradle_pkg", +    "java_gapic_library", +    "java_gapic_test", +    "java_grpc_library", +    "java_proto_library", +) + +java_proto_library( +    name = "stitcher_java_proto", +    deps = [":stitcher_proto"], +) + +java_grpc_library( +    name = "stitcher_java_grpc", +    srcs = [":stitcher_proto"], +    deps = [":stitcher_java_proto"], +) + +java_gapic_library( +    name = "stitcher_java_gapic", +    srcs = [":stitcher_proto_with_info"], +    gapic_yaml = None, +    grpc_service_config = "videostitcher_grpc_service_config.json", +    service_yaml = "videostitcher_v1.yaml", +    test_deps = [ +        ":stitcher_java_grpc", +    ], +    deps = [ +        ":stitcher_java_proto", +        "//google/api:api_java_proto", +    ], +) + +java_gapic_test( +    name = "stitcher_java_gapic_test_suite", +    test_classes = [ +        "com.google.cloud.video.stitcher.v1.VideoStitcherServiceClientTest", +    ], +    runtime_deps = [":stitcher_java_gapic_test"], +) + +# Open Source Packages +java_gapic_assembly_gradle_pkg( +    name = "google-cloud-video-stitcher-v1-java", +    include_samples = True, +    deps = [ +        ":stitcher_java_gapic", +        ":stitcher_java_grpc", +        ":stitcher_java_proto", +        ":stitcher_proto", +    ], +) + +############################################################################## +# Go +############################################################################## +load( +    "@com_google_googleapis_imports//:imports.bzl", +    "go_gapic_assembly_pkg", +    "go_gapic_library", +    "go_proto_library", +    "go_test", +) + +go_proto_library( +    name = "stitcher_go_proto", +    compilers = ["@io_bazel_rules_go//proto:go_grpc"], +    importpath = "google.golang.org/genproto/googleapis/cloud/video/stitcher/v1", +    protos = [":stitcher_proto"], +    deps = [ +        "//google/api:annotations_go_proto", +    ], +) + +go_gapic_library( +    name = "stitcher_go_gapic", +    srcs = [":stitcher_proto_with_info"], +    grpc_service_config = "videostitcher_grpc_service_config.json", +    importpath = "cloud.google.com/go/video/stitcher/apiv1;stitcher", +    metadata = True, +    service_yaml = "videostitcher_v1.yaml", +    deps = [ +        ":stitcher_go_proto", +        "@io_bazel_rules_go//proto/wkt:duration_go_proto", +    ], +) + +go_test( +    name = "stitcher_go_gapic_test", +    srcs = [":stitcher_go_gapic_srcjar_test"], +    embed = [":stitcher_go_gapic"], +    importpath = "cloud.google.com/go/video/stitcher/apiv1", +) + +# Open Source Packages +go_gapic_assembly_pkg( +    name = "gapi-cloud-video-stitcher-v1-go", +    deps = [ +        ":stitcher_go_gapic", +        ":stitcher_go_gapic_srcjar-metadata.srcjar", +        ":stitcher_go_gapic_srcjar-test.srcjar", +        ":stitcher_go_proto", +    ], +) + +############################################################################## +# Python +############################################################################## +load( +    "@com_google_googleapis_imports//:imports.bzl", +    "py_gapic_assembly_pkg", +    "py_gapic_library", +    "py_test", +) + +py_gapic_library( +    name = "stitcher_py_gapic", +    srcs = [":stitcher_proto"], +    grpc_service_config = "videostitcher_grpc_service_config.json", +    service_yaml = "videostitcher_v1.yaml", +    transport = "grpc+rest", +) + +py_test( +    name = "stitcher_py_gapic_test", +    srcs = [ +        "stitcher_py_gapic_pytest.py", +        "stitcher_py_gapic_test.py", +    ], +    legacy_create_init = False, +    deps = [":stitcher_py_gapic"], +) + +# Open Source Packages +py_gapic_assembly_pkg( +    name = "video-stitcher-v1-py", +    deps = [ +        ":stitcher_py_gapic", +    ], +) + +############################################################################## +# PHP +############################################################################## +load( +    "@com_google_googleapis_imports//:imports.bzl", +    "php_gapic_assembly_pkg", +    "php_gapic_library", +    "php_grpc_library", +    "php_proto_library", +) + +php_proto_library( +    name = "stitcher_php_proto", +    deps = [":stitcher_proto"], +) + +php_grpc_library( +    name = "stitcher_php_grpc", +    srcs = [":stitcher_proto"], +    deps = [":stitcher_php_proto"], +) + +php_gapic_library( +    name = "stitcher_php_gapic", +    srcs = [":stitcher_proto_with_info"], +    grpc_service_config = "videostitcher_grpc_service_config.json", +    service_yaml = "videostitcher_v1.yaml", +    deps = [ +        ":stitcher_php_grpc", +        ":stitcher_php_proto", +    ], +) + +# Open Source Packages +php_gapic_assembly_pkg( +    name = "google-cloud-video-stitcher-v1-php", +    deps = [ +        ":stitcher_php_gapic", +        ":stitcher_php_grpc", +        ":stitcher_php_proto", +    ], +) + +############################################################################## +# Node.js +############################################################################## +load( +    "@com_google_googleapis_imports//:imports.bzl", +    "nodejs_gapic_assembly_pkg", +    "nodejs_gapic_library", +) + +nodejs_gapic_library( +    name = "stitcher_nodejs_gapic", +    package_name = "@google-cloud/video-stitcher", +    src = ":stitcher_proto_with_info", +    extra_protoc_parameters = ["metadata"], +    grpc_service_config = "videostitcher_grpc_service_config.json", +    package = "google.cloud.video.stitcher.v1", +    service_yaml = "videostitcher_v1.yaml", +    deps = [], +) + +nodejs_gapic_assembly_pkg( +    name = "video-stitcher-v1-nodejs", +    deps = [ +        ":stitcher_nodejs_gapic", +        ":stitcher_proto", +    ], +) + +############################################################################## +# Ruby +############################################################################## +load( +    "@com_google_googleapis_imports//:imports.bzl", +    "ruby_cloud_gapic_library", +    "ruby_gapic_assembly_pkg", +    "ruby_grpc_library", +    "ruby_proto_library", +) + +ruby_proto_library( +    name = "stitcher_ruby_proto", +    deps = [":stitcher_proto"], +) + +ruby_grpc_library( +    name = "stitcher_ruby_grpc", +    srcs = [":stitcher_proto"], +    deps = [":stitcher_ruby_proto"], +) + +ruby_cloud_gapic_library( +    name = "stitcher_ruby_gapic", +    srcs = [":stitcher_proto_with_info"], +    extra_protoc_parameters = [ +        "ruby-cloud-api-id=videostitcher.googleapis.com", +        "ruby-cloud-api-shortname=videostitcher", +        "ruby-cloud-gem-name=google-cloud-video-stitcher-v1", +        "ruby-cloud-product-url=https://cloud.google.com/video-stitcher/", +    ], +    grpc_service_config = "videostitcher_grpc_service_config.json", +    ruby_cloud_description = "The Video Stitcher API allows you to manipulate video content to dynamically insert ads prior to delivery to client devices. Using the Video Stitcher API, you can monetize your video-on-demand (VOD) and livestreaming videos by inserting ads as described by metadata stored on ad servers.", +    ruby_cloud_title = "Video Stitcher V1", +    deps = [ +        ":stitcher_ruby_grpc", +        ":stitcher_ruby_proto", +    ], +) + +# Open Source Packages +ruby_gapic_assembly_pkg( +    name = "google-cloud-video-stitcher-v1-ruby", +    deps = [ +        ":stitcher_ruby_gapic", +        ":stitcher_ruby_grpc", +        ":stitcher_ruby_proto", +    ], +) + +############################################################################## +# C# +############################################################################## +load( +    "@com_google_googleapis_imports//:imports.bzl", +    "csharp_gapic_assembly_pkg", +    "csharp_gapic_library", +    "csharp_grpc_library", +    "csharp_proto_library", +) + +csharp_proto_library( +    name = "stitcher_csharp_proto", +    deps = [":stitcher_proto"], +) + +csharp_grpc_library( +    name = "stitcher_csharp_grpc", +    srcs = [":stitcher_proto"], +    deps = [":stitcher_csharp_proto"], +) + +csharp_gapic_library( +    name = "stitcher_csharp_gapic", +    srcs = [":stitcher_proto_with_info"], +    common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json", +    grpc_service_config = "videostitcher_grpc_service_config.json", +    service_yaml = "videostitcher_v1.yaml", +    deps = [ +        ":stitcher_csharp_grpc", +        ":stitcher_csharp_proto", +    ], +) + +# Open Source Packages +csharp_gapic_assembly_pkg( +    name = "google-cloud-video-stitcher-v1-csharp", +    deps = [ +        ":stitcher_csharp_gapic", +        ":stitcher_csharp_grpc", +        ":stitcher_csharp_proto", +    ], +) + +############################################################################## +# C++ +############################################################################## +load( +    "@com_google_googleapis_imports//:imports.bzl", +    "cc_grpc_library", +    "cc_proto_library", +) + +cc_proto_library( +    name = "stitcher_cc_proto", +    deps = [":stitcher_proto"], +) + +cc_grpc_library( +    name = "stitcher_cc_grpc", +    srcs = [":stitcher_proto"], +    grpc_only = True, +    deps = [":stitcher_cc_proto"], +) diff --git a/third_party/googleapis/google/cloud/video/stitcher/v1/ad_tag_details.proto b/third_party/googleapis/google/cloud/video/stitcher/v1/ad_tag_details.proto new file mode 100644 index 0000000..3c1c018 --- /dev/null +++ b/third_party/googleapis/google/cloud/video/stitcher/v1/ad_tag_details.proto @@ -0,0 +1,95 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +//     http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.video.stitcher.v1; + +import "google/api/resource.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/struct.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/video/stitcher/v1;stitcher"; +option java_multiple_files = true; +option java_outer_classname = "AdTagDetailsProto"; +option java_package = "com.google.cloud.video.stitcher.v1"; + +// Container for a live session's ad tag detail. +message LiveAdTagDetail { +  option (google.api.resource) = { +    type: "videostitcher.googleapis.com/LiveAdTagDetail" +    pattern: "projects/{project}/locations/{location}/liveSessions/{live_session}/liveAdTagDetails/{live_ad_tag_detail}" +  }; + +  // The resource name in the form of +  // `projects/{project}/locations/{location}/liveSessions/{live_session}/liveAdTagDetails/{id}`. +  string name = 1; + +  // A list of ad requests. +  repeated AdRequest ad_requests = 2; +} + +// Information related to the details for one ad tag. +message VodAdTagDetail { +  option (google.api.resource) = { +    type: "videostitcher.googleapis.com/VodAdTagDetail" +    pattern: "projects/{project}/locations/{location}/vodSessions/{vod_session}/vodAdTagDetails/{vod_ad_tag_detail}" +  }; + +  // The name of the ad tag detail for the specified VOD session, in the form of +  // `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodAdTagDetails/{id}`. +  string name = 1; + +  // A list of ad requests for one ad tag. +  repeated AdRequest ad_requests = 2; +} + +// Details of an ad request to an ad server. +message AdRequest { +  // The ad tag URI processed with integrated macros. +  string uri = 1; + +  // The request metadata used to make the ad request. +  RequestMetadata request_metadata = 2; + +  // The response metadata received from the ad request. +  ResponseMetadata response_metadata = 3; +} + +// Metadata for an ad request. +message RequestMetadata { +  // The HTTP headers of the ad request. +  google.protobuf.Struct headers = 1; +} + +// Metadata for the response of an ad request. +message ResponseMetadata { +  // Error message received when making the ad request. +  string error = 1; + +  // Headers from the response. +  google.protobuf.Struct headers = 2; + +  // Status code for the response. +  string status_code = 3; + +  // Size in bytes of the response. +  int32 size_bytes = 4; + +  // Total time elapsed for the response. +  google.protobuf.Duration duration = 5; + +  // The body of the response. +  string body = 6; +} diff --git a/third_party/googleapis/google/cloud/video/stitcher/v1/cdn_keys.proto b/third_party/googleapis/google/cloud/video/stitcher/v1/cdn_keys.proto new file mode 100644 index 0000000..254f415 --- /dev/null +++ b/third_party/googleapis/google/cloud/video/stitcher/v1/cdn_keys.proto @@ -0,0 +1,67 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +//     http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.video.stitcher.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/video/stitcher/v1;stitcher"; +option java_multiple_files = true; +option java_outer_classname = "CdnKeysProto"; +option java_package = "com.google.cloud.video.stitcher.v1"; + +// Configuration for a CDN key. Used by the Video Stitcher +// to sign URIs for fetching video manifests and signing +// media segments for playback. +message CdnKey { +  option (google.api.resource) = { +    type: "videostitcher.googleapis.com/CdnKey" +    pattern: "projects/{project}/locations/{location}/cdnKeys/{cdn_key}" +  }; + +  // Configuration associated with the CDN key. +  oneof cdn_key_config { +    // The configuration for a Google Cloud CDN key. +    GoogleCdnKey google_cdn_key = 5; + +    // The configuration for an Akamai CDN key. +    AkamaiCdnKey akamai_cdn_key = 6; +  } + +  // The resource name of the CDN key, in the form of +  // `projects/{project}/locations/{location}/cdnKeys/{id}`. +  // The name is ignored when creating a CDN key. +  string name = 1; + +  // The hostname this key applies to. +  string hostname = 4; +} + +// Configuration for a Google Cloud CDN key. +message GoogleCdnKey { +  // Input only. Secret for this Google Cloud CDN key. +  bytes private_key = 1 [(google.api.field_behavior) = INPUT_ONLY]; + +  // The public name of the Google Cloud CDN key. +  string key_name = 2; +} + +// Configuration for an Akamai CDN key. +message AkamaiCdnKey { +  // Input only. Token key for the Akamai CDN edge configuration. +  bytes token_key = 1 [(google.api.field_behavior) = INPUT_ONLY]; +} diff --git a/third_party/googleapis/google/cloud/video/stitcher/v1/companions.proto b/third_party/googleapis/google/cloud/video/stitcher/v1/companions.proto new file mode 100644 index 0000000..af57e92 --- /dev/null +++ b/third_party/googleapis/google/cloud/video/stitcher/v1/companions.proto @@ -0,0 +1,113 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +//     http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.video.stitcher.v1; + +import "google/cloud/video/stitcher/v1/events.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/video/stitcher/v1;stitcher"; +option java_multiple_files = true; +option java_outer_classname = "CompanionsProto"; +option java_package = "com.google.cloud.video.stitcher.v1"; + +// Metadata for companion ads. +message CompanionAds { +  // Indicates how many of the companions should be displayed with the ad. +  enum DisplayRequirement { +    // Required companions are not specified. The default is ALL. +    DISPLAY_REQUIREMENT_UNSPECIFIED = 0; + +    // All companions are required to be displayed. +    ALL = 1; + +    // At least one of companions needs to be displayed. +    ANY = 2; + +    // All companions are optional for display. +    NONE = 3; +  } + +  // Indicates how many of the companions should be displayed with the ad. +  DisplayRequirement display_requirement = 1; + +  // List of companion ads. +  repeated Companion companions = 2; +} + +// Metadata for a companion. +message Companion { +  // Ad resource associated with the companion ad. +  oneof ad_resource { +    // The IFrame ad resource associated with the companion ad. +    IframeAdResource iframe_ad_resource = 10; + +    // The static ad resource associated with the companion ad. +    StaticAdResource static_ad_resource = 11; + +    // The HTML ad resource associated with the companion ad. +    HtmlAdResource html_ad_resource = 12; +  } + +  // The API necessary to communicate with the creative if available. +  string api_framework = 1; + +  // The pixel height of the placement slot for the intended creative. +  int32 height_px = 2; + +  // The pixel width of the placement slot for the intended creative. +  int32 width_px = 3; + +  // The pixel height of the creative. +  int32 asset_height_px = 4; + +  // The maximum pixel height of the creative in its expanded state. +  int32 expanded_height_px = 5; + +  // The pixel width of the creative. +  int32 asset_width_px = 6; + +  // The maximum pixel width of the creative in its expanded state. +  int32 expanded_width_px = 7; + +  // The ID used to identify the desired placement on a publisher's page. +  // Values to be used should be discussed between publishers and +  // advertisers. +  string ad_slot_id = 8; + +  // The list of tracking events for the companion. +  repeated Event events = 9; +} + +// Metadata for an HTML ad resource. +message HtmlAdResource { +  // The HTML to display for the ad resource. +  string html_source = 1; +} + +// Metadata for an IFrame ad resource. +message IframeAdResource { +  // URI source for an IFrame to display for the ad resource. +  string uri = 1; +} + +// Metadata for a static ad resource. +message StaticAdResource { +  // URI to the static file for the ad resource. +  string uri = 1; + +  // Describes the MIME type of the ad resource. +  string creative_type = 2; +} diff --git a/third_party/googleapis/google/cloud/video/stitcher/v1/events.proto b/third_party/googleapis/google/cloud/video/stitcher/v1/events.proto new file mode 100644 index 0000000..3a5e967 --- /dev/null +++ b/third_party/googleapis/google/cloud/video/stitcher/v1/events.proto @@ -0,0 +1,131 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +//     http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.video.stitcher.v1; + +import "google/protobuf/duration.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/video/stitcher/v1;stitcher"; +option java_multiple_files = true; +option java_outer_classname = "EventsProto"; +option java_package = "com.google.cloud.video.stitcher.v1"; + +// Describes an event and a trigger URI. +message Event { +  // Describes the event that occurred. +  enum EventType { +    // The event type is unspecified. +    EVENT_TYPE_UNSPECIFIED = 0; + +    // First frame of creative ad viewed. +    CREATIVE_VIEW = 1; + +    // Creative ad started. +    START = 2; + +    // Start of an ad break. +    BREAK_START = 3; + +    // End of an ad break. +    BREAK_END = 4; + +    // Impression. +    IMPRESSION = 5; + +    // First quartile progress. +    FIRST_QUARTILE = 6; + +    // Midpoint progress. +    MIDPOINT = 7; + +    // Third quartile progress. +    THIRD_QUARTILE = 8; + +    // Ad progress completed. +    COMPLETE = 9; + +    // Specific progress event with an offset. +    PROGRESS = 10; + +    // Player muted. +    MUTE = 11; + +    // Player unmuted. +    UNMUTE = 12; + +    // Player paused. +    PAUSE = 13; + +    // Click event. +    CLICK = 14; + +    // Click-through event. +    CLICK_THROUGH = 15; + +    // Player rewinding. +    REWIND = 16; + +    // Player resumed. +    RESUME = 17; + +    // Error event. +    ERROR = 18; + +    // Ad expanded to a larger size. +    EXPAND = 21; + +    // Ad collapsed to a smaller size. +    COLLAPSE = 22; + +    // Non-linear ad closed. +    CLOSE = 24; + +    // Linear ad closed. +    CLOSE_LINEAR = 25; + +    // Ad skipped. +    SKIP = 26; + +    // Accept invitation event. +    ACCEPT_INVITATION = 27; +  } + +  // Describes the event that occurred. +  EventType type = 1; + +  // The URI to trigger for this event. +  string uri = 2; + +  // The ID of the event. +  string id = 3; + +  // The offset in seconds if the event type is `PROGRESS`. +  google.protobuf.Duration offset = 4; +} + +// Indicates a time in which a list of events should be triggered +// during media playback. +message ProgressEvent { +  // The time when the following tracking events occurs. The time is in +  // seconds relative to the start of the VOD asset. +  google.protobuf.Duration time_offset = 1; + +  // The list of progress tracking events for the ad break. These can be of +  // the following IAB types: `BREAK_START`, `BREAK_END`, `IMPRESSION`, +  // `CREATIVE_VIEW`, `START`, `FIRST_QUARTILE`, `MIDPOINT`, `THIRD_QUARTILE`, +  // `COMPLETE`, `PROGRESS`. +  repeated Event events = 2; +} diff --git a/third_party/googleapis/google/cloud/video/stitcher/v1/sessions.proto b/third_party/googleapis/google/cloud/video/stitcher/v1/sessions.proto new file mode 100644 index 0000000..8bbbea8 --- /dev/null +++ b/third_party/googleapis/google/cloud/video/stitcher/v1/sessions.proto @@ -0,0 +1,246 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +//     http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.video.stitcher.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/video/stitcher/v1/companions.proto"; +import "google/cloud/video/stitcher/v1/events.proto"; +import "google/protobuf/duration.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/video/stitcher/v1;stitcher"; +option java_multiple_files = true; +option java_outer_classname = "SessionsProto"; +option java_package = "com.google.cloud.video.stitcher.v1"; + +// Metadata for a VOD session. +message VodSession { +  option (google.api.resource) = { +    type: "videostitcher.googleapis.com/VodSession" +    pattern: "projects/{project}/locations/{location}/vodSessions/{vod_session}" +  }; + +  // Output only. The name of the VOD session, in the form of +  // `projects/{project_number}/locations/{location}/vodSessions/{id}`. +  string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + +  // Output only. Metadata of what was stitched into the content. +  Interstitials interstitials = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + +  // Output only. The playback URI of the stitched content. +  string play_uri = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + +  // Required. URI of the media to stitch. +  string source_uri = 5 [(google.api.field_behavior) = REQUIRED]; + +  // Required. Ad tag URI. +  string ad_tag_uri = 6 [(google.api.field_behavior) = REQUIRED]; + +  // Key value pairs for ad tag macro replacement. If the +  // specified ad tag URI has macros, this field provides the mapping +  // to the value that will replace the macro in the ad tag URI. +  // Macros are designated by square brackets. +  // For example: +  // +  //   Ad tag URI: `"https://doubleclick.google.com/ad/1?geo_id=[geoId]"` +  // +  //   Ad tag macro map: `{"geoId": "123"}` +  // +  //   Fully qualified ad tag: +  //   `"`https://doubleclick.google.com/ad/1?geo_id=123"` +  map<string, string> ad_tag_macro_map = 7; + +  // Indicates whether client side ad tracking is enabled. If client +  // side ad tracking is enabled, then the client player is expected +  // to trigger playback and activity events itself. +  // If this is set to false, server side ad tracking is enabled, +  // causing the Video Stitcher service will trigger playback events +  // on behalf of the client player. +  bool client_ad_tracking = 8; + +  // Additional options that affect the output of the manifest. +  ManifestOptions manifest_options = 9; + +  // Output only. The generated ID of the VodSession's source media. +  string asset_id = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Describes what was stitched into a VOD session's manifest. +message Interstitials { +  // List of ad breaks ordered by time. +  repeated VodSessionAdBreak ad_breaks = 1; + +  // Information related to the content of the VOD session. +  VodSessionContent session_content = 2; +} + +// Metadata for an inserted ad in a VOD session. +message VodSessionAd { +  // Duration in seconds of the ad. +  google.protobuf.Duration duration = 1; + +  // Metadata of companion ads associated with the ad. +  CompanionAds companion_ads = 2; + +  // The list of progress tracking events for the ad break. These can be of +  // the following IAB types: `MUTE`, `UNMUTE`, `PAUSE`, `CLICK`, +  // `CLICK_THROUGH`, `REWIND`, `RESUME`, `ERROR`, `FULLSCREEN`, +  // `EXIT_FULLSCREEN`, `EXPAND`, `COLLAPSE`, `ACCEPT_INVITATION_LINEAR`, +  // `CLOSE_LINEAR`, `SKIP`. +  repeated Event activity_events = 3; +} + +// Metadata for the entire stitched content in a VOD session. +message VodSessionContent { +  // The total duration in seconds of the content including the ads stitched +  // in. +  google.protobuf.Duration duration = 1; +} + +// Metadata for an inserted ad break. +message VodSessionAdBreak { +  // List of events that are expected to be triggered, ordered by time. +  repeated ProgressEvent progress_events = 1; + +  // Ordered list of ads stitched into the ad break. +  repeated VodSessionAd ads = 2; + +  // Ad break end time in seconds relative to the start of the VOD asset. +  google.protobuf.Duration end_time_offset = 3; + +  // Ad break start time in seconds relative to the start of the VOD asset. +  google.protobuf.Duration start_time_offset = 4; +} + +// Metadata for a live session. +message LiveSession { +  option (google.api.resource) = { +    type: "videostitcher.googleapis.com/LiveSession" +    pattern: "projects/{project}/locations/{location}/liveSessions/{live_session}" +  }; + +  // Defines the stitcher behavior in case an ad does not align exactly with +  // the ad break boundaries. If not specified, the default is COMPLETE_AD. +  enum StitchingPolicy { +    // Stitching policy is not specified. +    STITCHING_POLICY_UNSPECIFIED = 0; + +    // Finishes stitching the current ad before returning to content. +    COMPLETE_AD = 1; + +    // Cuts an ad short and returns to content in the middle of the ad. +    CUT_CURRENT = 3; +  } + +  // Output only. The name of the live session, in the form of +  // `projects/{project}/locations/{location}/liveSessions/{id}`. +  string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + +  // Output only. The URI to play the live session's ad-stitched stream. +  string play_uri = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + +  // The URI of the live session's source stream. +  string source_uri = 3; + +  // The default ad tag to use when no ad tag ids are specified in an ad break's +  // SCTE-35 message. +  // +  // default_ad_tag_id is necessary when `adTagMap` has more than one key. Its +  // value must be present in the `adTagMap`. +  string default_ad_tag_id = 4; + +  // Key value pairs for ad tags. Ads parsed from ad tags must be MP4 videos +  // each with at least one audio track. +  map<string, AdTag> ad_tag_map = 5; + +  // Key value pairs for ad tag macro replacement. If the +  // specified ad tag URI has macros, this field provides the mapping +  // to the value that will replace the macro in the ad tag URI. +  // Macros are designated by square brackets. +  // +  // For example: +  // +  //   Ad tag URI: "https://doubleclick.google.com/ad/1?geo_id=[geoId]" +  // +  //   Ad tag macros: `{"geoId": "123"}` +  // +  //   Fully qualified ad tag: +  //   `"https://doubleclick.google.com/ad/1?geo_id=123"` +  map<string, string> ad_tag_macros = 6; + +  // Whether client side ad tracking is enabled. If enabled, the client player +  // is expected to trigger playback and activity events itself. Otherwise, +  // server side ad tracking is enabled and the Video Stitcher API will trigger +  // playback events on behalf of the client player. +  bool client_ad_tracking = 7; + +  // The default slate to use when no slates are specified in an ad break's +  // SCTE-35 message. When specified, this value must match the ID for a slate +  // that has already been created via the +  // [CreateSlate](projects.locations.slates/create) method. +  string default_slate_id = 8; + +  // Defines the stitcher behavior in case an ad does not align exactly with +  // the ad break boundaries. If not specified, the default is `COMPLETE_AD`. +  StitchingPolicy stitching_policy = 9; + +  // Additional options that affect the output of the manifest. +  ManifestOptions manifest_options = 10; + +  // Output only. The generated ID of the LiveSession's source stream. +  string stream_id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Metadata of an ad tag. +message AdTag { +  // Ad tag URI template. +  string uri = 1; +} + +// Options for manifest generation. +message ManifestOptions { +  // Defines the ordering policy during manifest generation. +  enum OrderPolicy { +    // Ordering policy is not specified. +    ORDER_POLICY_UNSPECIFIED = 0; + +    // Order by ascending. +    ASCENDING = 1; + +    // Order by descending. +    DESCENDING = 2; +  } + +  // If specified, the output manifest will only return renditions matching the +  // specified filters. +  repeated RenditionFilter include_renditions = 1; + +  // If specified, the output manifest will orders the video and muxed +  // renditions by bitrate according to the ordering policy. +  OrderPolicy bitrate_order = 2; +} + +// Filters for a video or muxed redition. +message RenditionFilter { +  // Bitrate in bits per second for the rendition. If set, only renditions with +  // the exact bitrate will match. +  int32 bitrate_bps = 1; + +  // Codecs for the rendition. If set, only renditions with the exact value +  // will match. +  string codecs = 2; +} diff --git a/third_party/googleapis/google/cloud/video/stitcher/v1/slates.proto b/third_party/googleapis/google/cloud/video/stitcher/v1/slates.proto new file mode 100644 index 0000000..a52de64 --- /dev/null +++ b/third_party/googleapis/google/cloud/video/stitcher/v1/slates.proto @@ -0,0 +1,41 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +//     http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.video.stitcher.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/video/stitcher/v1;stitcher"; +option java_multiple_files = true; +option java_outer_classname = "SlatesProto"; +option java_package = "com.google.cloud.video.stitcher.v1"; + +// Slate object +message Slate { +  option (google.api.resource) = { +    type: "videostitcher.googleapis.com/Slate" +    pattern: "projects/{project}/locations/{location}/slates/{slate}" +  }; + +  // Output only. The name of the slate, in the form of +  // `projects/{project_number}/locations/{location}/slates/{id}`. +  string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + +  // The URI to fetch the source content for the slate. This URI must return an +  // MP4 video with at least one audio track. +  string uri = 2; +} diff --git a/third_party/googleapis/google/cloud/video/stitcher/v1/stitch_details.proto b/third_party/googleapis/google/cloud/video/stitcher/v1/stitch_details.proto new file mode 100644 index 0000000..e23224e --- /dev/null +++ b/third_party/googleapis/google/cloud/video/stitcher/v1/stitch_details.proto @@ -0,0 +1,60 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +//     http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.video.stitcher.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/struct.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/video/stitcher/v1;stitcher"; +option java_multiple_files = true; +option java_outer_classname = "StitchDetailsProto"; +option java_package = "com.google.cloud.video.stitcher.v1"; + +// Detailed information related to the interstitial of a VOD session. +message VodStitchDetail { +  option (google.api.resource) = { +    type: "videostitcher.googleapis.com/VodStitchDetail" +    pattern: "projects/{project}/locations/{location}/vodSessions/{vod_session}/vodStitchDetails/{vod_stitch_detail}" +  }; + +  // The name of the stitch detail in the specified VOD session, in the form of +  // `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodStitchDetails/{id}`. +  string name = 1; + +  // A list of ad processing details for the fetched ad playlist. +  repeated AdStitchDetail ad_stitch_details = 3; +} + +// Metadata for a stitched ad. +message AdStitchDetail { +  // Required. The ad break ID of the processed ad. +  string ad_break_id = 1 [(google.api.field_behavior) = REQUIRED]; + +  // Required. The ad ID of the processed ad. +  string ad_id = 2 [(google.api.field_behavior) = REQUIRED]; + +  // Required. The time offset of the processed ad. +  google.protobuf.Duration ad_time_offset = 3 [(google.api.field_behavior) = REQUIRED]; + +  // Optional. Indicates the reason why the ad has been skipped. +  string skip_reason = 4 [(google.api.field_behavior) = OPTIONAL]; + +  // Optional. The metadata of the chosen media file for the ad. +  map<string, google.protobuf.Value> media = 5 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/third_party/googleapis/google/cloud/video/stitcher/v1/video_stitcher_service.proto b/third_party/googleapis/google/cloud/video/stitcher/v1/video_stitcher_service.proto new file mode 100644 index 0000000..938f01c --- /dev/null +++ b/third_party/googleapis/google/cloud/video/stitcher/v1/video_stitcher_service.proto @@ -0,0 +1,570 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +//     http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.cloud.video.stitcher.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/video/stitcher/v1/ad_tag_details.proto"; +import "google/cloud/video/stitcher/v1/cdn_keys.proto"; +import "google/cloud/video/stitcher/v1/sessions.proto"; +import "google/cloud/video/stitcher/v1/slates.proto"; +import "google/cloud/video/stitcher/v1/stitch_details.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/video/stitcher/v1;stitcher"; +option java_multiple_files = true; +option java_outer_classname = "VideoStitcherServiceProto"; +option java_package = "com.google.cloud.video.stitcher.v1"; + +// Video-On-Demand content stitching API allows you to insert ads +// into (VoD) video on demand files. You will be able to render custom +// scrubber bars with highlighted ads, enforce ad policies, allow +// seamless playback and tracking on native players and monetize +// content with any standard VMAP compliant ad server. +service VideoStitcherService { +  option (google.api.default_host) = "videostitcher.googleapis.com"; +  option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + +  // Creates a new CDN key. +  rpc CreateCdnKey(CreateCdnKeyRequest) returns (CdnKey) { +    option (google.api.http) = { +      post: "/v1/{parent=projects/*/locations/*}/cdnKeys" +      body: "cdn_key" +    }; +    option (google.api.method_signature) = "parent,cdn_key,cdn_key_id"; +  } + +  // Lists all CDN keys in the specified project and location. +  rpc ListCdnKeys(ListCdnKeysRequest) returns (ListCdnKeysResponse) { +    option (google.api.http) = { +      get: "/v1/{parent=projects/*/locations/*}/cdnKeys" +    }; +    option (google.api.method_signature) = "parent"; +  } + +  // Returns the specified CDN key. +  rpc GetCdnKey(GetCdnKeyRequest) returns (CdnKey) { +    option (google.api.http) = { +      get: "/v1/{name=projects/*/locations/*/cdnKeys/*}" +    }; +    option (google.api.method_signature) = "name"; +  } + +  // Deletes the specified CDN key. +  rpc DeleteCdnKey(DeleteCdnKeyRequest) returns (google.protobuf.Empty) { +    option (google.api.http) = { +      delete: "/v1/{name=projects/*/locations/*/cdnKeys/*}" +    }; +    option (google.api.method_signature) = "name"; +  } + +  // Updates the specified CDN key. Only update fields specified +  // in the call method body. +  rpc UpdateCdnKey(UpdateCdnKeyRequest) returns (CdnKey) { +    option (google.api.http) = { +      patch: "/v1/{cdn_key.name=projects/*/locations/*/cdnKeys/*}" +      body: "cdn_key" +    }; +    option (google.api.method_signature) = "cdn_key,update_mask"; +  } + +  // Creates a client side playback VOD session and returns the full +  // tracking and playback metadata of the session. +  rpc CreateVodSession(CreateVodSessionRequest) returns (VodSession) { +    option (google.api.http) = { +      post: "/v1/{parent=projects/*/locations/*}/vodSessions" +      body: "vod_session" +    }; +    option (google.api.method_signature) = "parent,vod_session"; +  } + +  // Returns the full tracking, playback metadata, and relevant ad-ops +  // logs for the specified VOD session. +  rpc GetVodSession(GetVodSessionRequest) returns (VodSession) { +    option (google.api.http) = { +      get: "/v1/{name=projects/*/locations/*/vodSessions/*}" +    }; +    option (google.api.method_signature) = "name"; +  } + +  // Returns a list of detailed stitching information of the specified VOD +  // session. +  rpc ListVodStitchDetails(ListVodStitchDetailsRequest) returns (ListVodStitchDetailsResponse) { +    option (google.api.http) = { +      get: "/v1/{parent=projects/*/locations/*/vodSessions/*}/vodStitchDetails" +    }; +    option (google.api.method_signature) = "parent"; +  } + +  // Returns the specified stitching information for the specified VOD session. +  rpc GetVodStitchDetail(GetVodStitchDetailRequest) returns (VodStitchDetail) { +    option (google.api.http) = { +      get: "/v1/{name=projects/*/locations/*/vodSessions/*/vodStitchDetails/*}" +    }; +    option (google.api.method_signature) = "name"; +  } + +  // Return the list of ad tag details for the specified VOD session. +  rpc ListVodAdTagDetails(ListVodAdTagDetailsRequest) returns (ListVodAdTagDetailsResponse) { +    option (google.api.http) = { +      get: "/v1/{parent=projects/*/locations/*/vodSessions/*}/vodAdTagDetails" +    }; +    option (google.api.method_signature) = "parent"; +  } + +  // Returns the specified ad tag detail for the specified VOD session. +  rpc GetVodAdTagDetail(GetVodAdTagDetailRequest) returns (VodAdTagDetail) { +    option (google.api.http) = { +      get: "/v1/{name=projects/*/locations/*/vodSessions/*/vodAdTagDetails/*}" +    }; +    option (google.api.method_signature) = "name"; +  } + +  // Return the list of ad tag details for the specified live session. +  rpc ListLiveAdTagDetails(ListLiveAdTagDetailsRequest) returns (ListLiveAdTagDetailsResponse) { +    option (google.api.http) = { +      get: "/v1/{parent=projects/*/locations/*/liveSessions/*}/liveAdTagDetails" +    }; +    option (google.api.method_signature) = "parent"; +  } + +  // Returns the specified ad tag detail for the specified live session. +  rpc GetLiveAdTagDetail(GetLiveAdTagDetailRequest) returns (LiveAdTagDetail) { +    option (google.api.http) = { +      get: "/v1/{name=projects/*/locations/*/liveSessions/*/liveAdTagDetails/*}" +    }; +    option (google.api.method_signature) = "name"; +  } + +  // Creates a slate. +  rpc CreateSlate(CreateSlateRequest) returns (Slate) { +    option (google.api.http) = { +      post: "/v1/{parent=projects/*/locations/*}/slates" +      body: "slate" +    }; +    option (google.api.method_signature) = "parent,slate,slate_id"; +  } + +  // Lists all slates in the specified project and location. +  rpc ListSlates(ListSlatesRequest) returns (ListSlatesResponse) { +    option (google.api.http) = { +      get: "/v1/{parent=projects/*/locations/*}/slates" +    }; +    option (google.api.method_signature) = "parent"; +  } + +  // Returns the specified slate. +  rpc GetSlate(GetSlateRequest) returns (Slate) { +    option (google.api.http) = { +      get: "/v1/{name=projects/*/locations/*/slates/*}" +    }; +    option (google.api.method_signature) = "name"; +  } + +  // Updates the specified slate. +  rpc UpdateSlate(UpdateSlateRequest) returns (Slate) { +    option (google.api.http) = { +      patch: "/v1/{slate.name=projects/*/locations/*/slates/*}" +      body: "slate" +    }; +    option (google.api.method_signature) = "slate,update_mask"; +  } + +  // Deletes the specified slate. +  rpc DeleteSlate(DeleteSlateRequest) returns (google.protobuf.Empty) { +    option (google.api.http) = { +      delete: "/v1/{name=projects/*/locations/*/slates/*}" +    }; +    option (google.api.method_signature) = "name"; +  } + +  // Creates a new live session. +  rpc CreateLiveSession(CreateLiveSessionRequest) returns (LiveSession) { +    option (google.api.http) = { +      post: "/v1/{parent=projects/*/locations/*}/liveSessions" +      body: "live_session" +    }; +    option (google.api.method_signature) = "parent,live_session"; +  } + +  // Returns the details for the specified live session. +  rpc GetLiveSession(GetLiveSessionRequest) returns (LiveSession) { +    option (google.api.http) = { +      get: "/v1/{name=projects/*/locations/*/liveSessions/*}" +    }; +    option (google.api.method_signature) = "name"; +  } +} + +// Request message for VideoStitcherService.createCdnKey. +message CreateCdnKeyRequest { +  // Required. The project in which the CDN key should be created, in the form of +  // `projects/{project_number}/locations/{location}`. +  string parent = 1 [ +    (google.api.field_behavior) = REQUIRED, +    (google.api.resource_reference) = { +      child_type: "videostitcher.googleapis.com/CdnKey" +    } +  ]; + +  // Required. The CDN key resource to create. +  CdnKey cdn_key = 2 [(google.api.field_behavior) = REQUIRED]; + +  // Required. The ID to use for the CDN key, which will become the final component of +  // the CDN key's resource name. +  // +  // This value should conform to RFC-1034, which restricts to +  // lower-case letters, numbers, and hyphen, with the first character a +  // letter, the last a letter or a number, and a 63 character maximum. +  string cdn_key_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for VideoStitcherService.listCdnKeys. +message ListCdnKeysRequest { +  // Required. The project that contains the list of CDN keys, in the form of +  // `projects/{project_number}/locations/{location}`. +  string parent = 1 [ +    (google.api.field_behavior) = REQUIRED, +    (google.api.resource_reference) = { +      child_type: "videostitcher.googleapis.com/CdnKey" +    } +  ]; + +  // Requested page size. Server may return fewer items than requested. +  // If unspecified, server will pick an appropriate default. +  int32 page_size = 2; + +  // A token identifying a page of results the server should return. +  string page_token = 3; + +  // Filtering results +  string filter = 4; + +  // Hint for how to order the results +  string order_by = 5; +} + +// Response message for VideoStitcher.ListCdnKeys. +message ListCdnKeysResponse { +  // List of CDN keys. +  repeated CdnKey cdn_keys = 1; + +  // A token identifying a page of results the server should return. +  string next_page_token = 2; + +  // Locations that could not be reached. +  repeated string unreachable = 3; +} + +// Request message for VideoStitcherService.getCdnKey. +message GetCdnKeyRequest { +  // Required. The name of the CDN key to be retrieved, in the form of +  // `projects/{project}/locations/{location}/cdnKeys/{id}`. +  string name = 1 [ +    (google.api.field_behavior) = REQUIRED, +    (google.api.resource_reference) = { +      type: "videostitcher.googleapis.com/CdnKey" +    } +  ]; +} + +// Request message for VideoStitcherService.deleteCdnKey. +message DeleteCdnKeyRequest { +  // Required. The name of the CDN key to be deleted, in the form of +  // `projects/{project_number}/locations/{location}/cdnKeys/{id}`. +  string name = 1 [ +    (google.api.field_behavior) = REQUIRED, +    (google.api.resource_reference) = { +      type: "videostitcher.googleapis.com/CdnKey" +    } +  ]; +} + +// Request message for VideoStitcherService.updateCdnKey. +message UpdateCdnKeyRequest { +  // Required. The CDN key resource which replaces the resource on the server. +  CdnKey cdn_key = 1 [(google.api.field_behavior) = REQUIRED]; + +  // Required. The update mask applies to the resource. +  // For the `FieldMask` definition, see +  // https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask +  google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for VideoStitcherService.createVodSession +message CreateVodSessionRequest { +  // Required. The project and location in which the VOD session should be created, in the +  // form of `projects/{project_number}/locations/{location}`. +  string parent = 1 [ +    (google.api.field_behavior) = REQUIRED, +    (google.api.resource_reference) = { +      child_type: "videostitcher.googleapis.com/VodSession" +    } +  ]; + +  // Required. Parameters for creating a session. +  VodSession vod_session = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for VideoStitcherService.getVodSession +message GetVodSessionRequest { +  // Required. The name of the VOD session to be retrieved, in the form of +  // `projects/{project_number}/locations/{location}/vodSessions/{id}`. +  string name = 1 [ +    (google.api.field_behavior) = REQUIRED, +    (google.api.resource_reference) = { +      type: "videostitcher.googleapis.com/VodSession" +    } +  ]; +} + +// Request message for VideoStitcherService.listVodStitchDetails. +message ListVodStitchDetailsRequest { +  // Required. The VOD session where the stitch details belong to, in the form of +  // `projects/{project}/locations/{location}/vodSessions/{id}`. +  string parent = 1 [ +    (google.api.field_behavior) = REQUIRED, +    (google.api.resource_reference) = { +      child_type: "videostitcher.googleapis.com/VodStitchDetail" +    } +  ]; + +  // The maximum number of items to return. +  int32 page_size = 2; + +  // The next_page_token value returned from a previous List request, if any. +  string page_token = 3; +} + +// Response message for VideoStitcherService.listVodStitchDetails. +message ListVodStitchDetailsResponse { +  // A List of stitch Details. +  repeated VodStitchDetail vod_stitch_details = 1; + +  // The pagination token. +  string next_page_token = 2; +} + +// Request message for VideoStitcherService.getVodStitchDetail. +message GetVodStitchDetailRequest { +  // Required. The name of the stitch detail in the specified VOD session, in the form of +  // `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodStitchDetails/{id}`. +  string name = 1 [ +    (google.api.field_behavior) = REQUIRED, +    (google.api.resource_reference) = { +      type: "videostitcher.googleapis.com/VodStitchDetail" +    } +  ]; +} + +// Request message for VideoStitcherService.listVodAdTagDetails. +message ListVodAdTagDetailsRequest { +  // Required. The VOD session which the ad tag details belong to, in the form of +  // `projects/{project}/locations/{location}/vodSessions/{vod_session_id}`. +  string parent = 1 [ +    (google.api.field_behavior) = REQUIRED, +    (google.api.resource_reference) = { +      child_type: "videostitcher.googleapis.com/VodAdTagDetail" +    } +  ]; + +  // The maximum number of items to return. +  int32 page_size = 2; + +  // The next_page_token value returned from a previous List request, if any. +  string page_token = 3; +} + +// Response message for VideoStitcherService.listVodAdTagDetails. +message ListVodAdTagDetailsResponse { +  // A List of ad tag details. +  repeated VodAdTagDetail vod_ad_tag_details = 1; + +  // The pagination token. +  string next_page_token = 2; +} + +// Request message for VideoStitcherService.getVodAdTagDetail +message GetVodAdTagDetailRequest { +  // Required. The name of the ad tag detail for the specified VOD session, in the form of +  // `projects/{project}/locations/{location}/vodSessions/{vod_session_id}/vodAdTagDetails/{vod_ad_tag_detail}`. +  string name = 1 [ +    (google.api.field_behavior) = REQUIRED, +    (google.api.resource_reference) = { +      type: "videostitcher.googleapis.com/VodAdTagDetail" +    } +  ]; +} + +// Request message for VideoStitcherService.listLiveAdTagDetails. +message ListLiveAdTagDetailsRequest { +  // Required. The resource parent in the form of +  // `projects/{project}/locations/{location}/liveSessions/{live_session}`. +  string parent = 1 [ +    (google.api.field_behavior) = REQUIRED, +    (google.api.resource_reference) = { +      child_type: "videostitcher.googleapis.com/LiveAdTagDetail" +    } +  ]; + +  // The maximum number of items to return. +  int32 page_size = 2; + +  // The pagination token returned from a previous List request. +  string page_token = 3; +} + +// Response message for VideoStitcherService.listLiveAdTagDetails. +message ListLiveAdTagDetailsResponse { +  // A list of live session ad tag details. +  repeated LiveAdTagDetail live_ad_tag_details = 1; + +  // The pagination token. +  string next_page_token = 2; +} + +// Request message for VideoStitcherService.getLiveAdTagDetail +message GetLiveAdTagDetailRequest { +  // Required. The resource name in the form of +  // `projects/{project}/locations/{location}/liveSessions/{live_session}/liveAdTagDetails/{live_ad_tag_detail}`. +  string name = 1 [ +    (google.api.field_behavior) = REQUIRED, +    (google.api.resource_reference) = { +      type: "videostitcher.googleapis.com/LiveAdTagDetail" +    } +  ]; +} + +// Request message for VideoStitcherService.createSlate. +message CreateSlateRequest { +  // Required. The project in which the slate should be created, in the form of +  // `projects/{project_number}`. +  string parent = 1 [ +    (google.api.field_behavior) = REQUIRED, +    (google.api.resource_reference) = { +      child_type: "videostitcher.googleapis.com/Slate" +    } +  ]; + +  // Required. The unique identifier for the slate. +  // This value should conform to RFC-1034, which restricts to +  // lower-case letters, numbers, and hyphen, with the first character a +  // letter, the last a letter or a number, and a 63 character maximum. +  string slate_id = 2 [(google.api.field_behavior) = REQUIRED]; + +  // Required. The slate to create. +  Slate slate = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for VideoStitcherService.getSlate. +message GetSlateRequest { +  // Required. The name of the slate to be retrieved, of the slate, in the form of +  // `projects/{project_number}/locations/{location}/slates/{id}`. +  string name = 1 [ +    (google.api.field_behavior) = REQUIRED, +    (google.api.resource_reference) = { +      type: "videostitcher.googleapis.com/Slate" +    } +  ]; +} + +// Request message for VideoStitcherService.listSlates. +message ListSlatesRequest { +  // Required. The project to list slates, in the form of `projects/{project_number}`. +  string parent = 1 [ +    (google.api.field_behavior) = REQUIRED, +    (google.api.resource_reference) = { +      child_type: "videostitcher.googleapis.com/Slate" +    } +  ]; + +  // Requested page size. Server may return fewer items than requested. +  // If unspecified, server will pick an appropriate default. +  int32 page_size = 2; + +  // A token identifying a page of results the server should return. +  string page_token = 3; + +  // Filtering results +  string filter = 4; + +  // Hint for how to order the results +  string order_by = 5; +} + +// Response message for VideoStitcherService.listSlates. +message ListSlatesResponse { +  // The list of slates +  repeated Slate slates = 1; + +  // A token identifying a page of results the server should return. +  string next_page_token = 2; + +  // Locations that could not be reached. +  repeated string unreachable = 3; +} + +// Request message for VideoStitcherService.updateSlate. +message UpdateSlateRequest { +  // Required. The resource with updated fields. +  Slate slate = 1 [(google.api.field_behavior) = REQUIRED]; + +  // Required. The update mask which specifies fields which should be updated. +  google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for VideoStitcherService.deleteSlate. +message DeleteSlateRequest { +  // Required. The name of the slate to be deleted, in the form of +  // `projects/{project_number}/locations/{location}/slates/{id}`. +  string name = 1 [ +    (google.api.field_behavior) = REQUIRED, +    (google.api.resource_reference) = { +      type: "videostitcher.googleapis.com/Slate" +    } +  ]; +} + +// Request message for VideoStitcherService.createLiveSession. +message CreateLiveSessionRequest { +  // Required. The project and location in which the live session should be created, +  // in the form of `projects/{project_number}/locations/{location}`. +  string parent = 1 [ +    (google.api.field_behavior) = REQUIRED, +    (google.api.resource_reference) = { +      type: "videostitcher.googleapis.com/LiveSession" +    } +  ]; + +  // Required. Parameters for creating a live session. +  LiveSession live_session = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for VideoStitcherService.getSession. +message GetLiveSessionRequest { +  // Required. The name of the live session, in the form of +  // `projects/{project_number}/locations/{location}/liveSessions/{id}`. +  string name = 1 [ +    (google.api.field_behavior) = REQUIRED, +    (google.api.resource_reference) = { +      type: "videostitcher.googleapis.com/LiveSession" +    } +  ]; +} diff --git a/third_party/googleapis/google/cloud/video/stitcher/v1/videostitcher_grpc_service_config.json b/third_party/googleapis/google/cloud/video/stitcher/v1/videostitcher_grpc_service_config.json new file mode 100644 index 0000000..ae04888 --- /dev/null +++ b/third_party/googleapis/google/cloud/video/stitcher/v1/videostitcher_grpc_service_config.json @@ -0,0 +1,38 @@ +{ +  "methodConfig": [{ +    "name": [{ "service": "google.cloud.video.stitcher.v1.VideoStitcherService" }], +    "timeout": "60s", +    "retryPolicy": { +      "maxAttempts": 5, +      "initialBackoff": "1s", +      "maxBackoff": "10s", +      "backoffMultiplier": 1.3, +      "retryableStatusCodes": ["UNAVAILABLE"] +    } +  }, +  { +    "name": [ +      { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "CreateCdnKey" }, +      { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "ListCdnKeys" }, +      { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "GetCdnKey" }, +      { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "DeleteCdnKey" }, +      { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "UpdateCdnKey" }, +      { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "CreateSlate" }, +      { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "ListSlates" }, +      { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "GetSlate" }, +      { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "DeleteSlate" }, +      { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "UpdateSlate" }, +      { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "CreateLiveSession" }, +      { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "GetLiveSession" }, +      { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "ListLiveAdTagDetails" }, +      { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "GetLiveAdTagDetail" }, +      { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "CreateVodSession" }, +      { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "GetVodSession" }, +      { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "ListVodAdTagDetails" }, +      { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "GetVodAdTagDetail" }, +      { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "ListVodStitchDetails" }, +      { "service": "google.cloud.video.stitcher.v1.VideoStitcherService", "method": "GetVodStitchDetail" } +    ], +    "timeout": "60s" +  }] +} diff --git a/third_party/googleapis/google/cloud/video/stitcher/v1/videostitcher_v1.yaml b/third_party/googleapis/google/cloud/video/stitcher/v1/videostitcher_v1.yaml new file mode 100644 index 0000000..d762119 --- /dev/null +++ b/third_party/googleapis/google/cloud/video/stitcher/v1/videostitcher_v1.yaml @@ -0,0 +1,19 @@ +type: google.api.Service +config_version: 3 +name: videostitcher.googleapis.com +title: Video Stitcher API + +apis: +- name: google.cloud.video.stitcher.v1.VideoStitcherService + +backend: +  rules: +  - selector: 'google.cloud.video.stitcher.v1.VideoStitcherService.*' +    deadline: 30.0 + +authentication: +  rules: +  - selector: 'google.cloud.video.stitcher.v1.VideoStitcherService.*' +    oauth: +      canonical_scopes: |- +        https://www.googleapis.com/auth/cloud-platform  | 
