diff --git a/google/cloud/video/livestream/v1/outputs.proto b/google/cloud/video/livestream/v1/outputs.proto index 55a98d67d2f8d..d54fa653fde8a 100644 --- a/google/cloud/video/livestream/v1/outputs.proto +++ b/google/cloud/video/livestream/v1/outputs.proto @@ -16,14 +16,17 @@ syntax = "proto3"; package google.cloud.video.livestream.v1; +import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/protobuf/duration.proto"; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.Video.LiveStream.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/video/livestream/v1;livestream"; option java_multiple_files = true; option java_outer_classname = "OutputsProto"; option java_package = "com.google.cloud.video.livestream.v1"; +option php_namespace = "Google\\Cloud\\Video\\LiveStream\\V1"; +option ruby_package = "Google::Cloud::Video::LiveStream::V1"; // Encoding of an input element such as an audio, video, or text track. // Elementary streams must be packaged before mapping and sharing between @@ -55,11 +58,15 @@ message MuxStream { // Supported container formats: // // - `fmp4` - the corresponding file extension is `.m4s` - // - `ts` + // - `ts` - the corresponding file extension is `.ts` string container = 3; // List of `ElementaryStream` [key][google.cloud.video.livestream.v1.ElementaryStream.key]s multiplexed in this // stream. + // + // - For `fmp4` container, must contain either one video or one audio stream. + // - For `ts` container, must contain exactly one audio stream and up to one + // video stream. repeated string elementary_streams = 4; // Segment settings for `fmp4` and `ts`. @@ -90,6 +97,10 @@ message Manifest { // Required. List of `MuxStream` [key][google.cloud.video.livestream.v1.MuxStream.key]s that should appear in this // manifest. + // + // - For HLS, either `fmp4` or `ts` mux streams can be specified but not + // mixed. + // - For DASH, only `fmp4` mux streams can be specified. repeated string mux_streams = 3 [(google.api.field_behavior) = REQUIRED]; // Maximum number of segments that this manifest holds. Once the manifest @@ -203,7 +214,7 @@ message VideoStream { int32 height_pixels = 2; // Required. The target video frame rate in frames per second (FPS). Must be less - // than or equal to 120. Will default to the input frame rate if larger + // than or equal to 60. Will default to the input frame rate if larger // than the input frame rate. The API will generate an output FPS that is // divisible by the input FPS, and smaller or equal to the target FPS. See // [Calculating frame @@ -211,8 +222,10 @@ message VideoStream { // more information. double frame_rate = 3 [(google.api.field_behavior) = REQUIRED]; - // Required. The video bitrate in bits per second. Must be between 10,000 and - // 80,000,000. + // Required. The video bitrate in bits per second. Minimum value is 10,000. + // + // - For SD resolution (< 720p), must be <= 3,000,000 (3 Mbps). + // - For HD resolution (<= 1080p), must be <= 15,000,000 (15 Mbps). int32 bitrate_bps = 4 [(google.api.field_behavior) = REQUIRED]; // Specifies whether an open Group of Pictures (GOP) structure should be diff --git a/google/cloud/video/livestream/v1/resources.proto b/google/cloud/video/livestream/v1/resources.proto index 10df59e79050b..40407465f807c 100644 --- a/google/cloud/video/livestream/v1/resources.proto +++ b/google/cloud/video/livestream/v1/resources.proto @@ -16,18 +16,21 @@ syntax = "proto3"; package google.cloud.video.livestream.v1; +import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/video/livestream/v1/outputs.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; -import "google/api/annotations.proto"; +option csharp_namespace = "Google.Cloud.Video.LiveStream.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/video/livestream/v1;livestream"; option java_multiple_files = true; option java_outer_classname = "ResourcesProto"; option java_package = "com.google.cloud.video.livestream.v1"; +option php_namespace = "Google\\Cloud\\Video\\LiveStream\\V1"; +option ruby_package = "Google::Cloud::Video::LiveStream::V1"; // Input resource represents the endpoint from which the channel ingests // the input stream. @@ -37,16 +40,6 @@ message Input { pattern: "projects/{project}/locations/{location}/inputs/{input}" }; - // Security rules for access control. Each field represents one security rule. - // Only when the source of the input stream satisfies all the fields, this - // input stream can be accepted. - message SecurityRule { - // At least one ip range must match unless none specified. The IP range is - // defined by CIDR block: for example, `192.0.1.0/24` for a range and - // `192.0.1.0/32` for a single IP address. - repeated string ip_ranges = 1; - } - // The type of the input. enum Type { // Input type is not specified. @@ -64,16 +57,26 @@ message Input { // Tier is not specified. TIER_UNSPECIFIED = 0; - // Resolution less than 1280x720. + // Resolution < 1280x720. Bitrate <= 6 Mbps. FPS <= 60. SD = 1; - // Resolution from 1280x720 to 1920x1080. + // Resolution <= 1920x1080. Bitrate <= 25 Mbps. FPS <= 60. HD = 2; - // Resolution more than 1920x1080 to 4096x2160. + // Resolution <= 4096x2160. Not supported yet. UHD = 3; } + // Security rules for access control. Each field represents one security rule. + // Only when the source of the input stream satisfies all the fields, this + // input stream can be accepted. + message SecurityRule { + // At least one ip range must match unless none specified. The IP range is + // defined by CIDR block: for example, `192.0.1.0/24` for a range and + // `192.0.1.0/32` for a single IP address. + repeated string ip_ranges = 1; + } + // The resource name of the input, in the form of: // `projects/{project}/locations/{location}/inputs/{inputId}`. string name = 1; @@ -90,8 +93,10 @@ message Input { // Source type. Type type = 5; - // Tier defines the maximum input specification (for example, resolution) - // that will be accepted by the video pipeline. The default is `HD`. + // Tier defines the maximum input specification that is accepted by the + // video pipeline. The billing is charged based on the tier specified here. + // See [Pricing](https://cloud.google.com/livestream/pricing) for more detail. + // The default is `HD`. Tier tier = 14; // Output only. URI to push the input stream to. @@ -206,6 +211,46 @@ message Channel { // always present when [streaming_state][google.cloud.video.livestream.v1.Channel.streaming_state] is // [STREAMING_ERROR][google.cloud.video.livestream.v1.Channel.StreamingState.STREAMING_ERROR]. google.rpc.Status streaming_error = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Configuration of platform logs for this channel. + LogConfig log_config = 19; +} + +// Configuration of platform logs. +// See [Using and managing platform +// logs](https://cloud.google.com/logging/docs/api/platform-logs#managing-logs) +// for more information about how to view platform logs through Cloud Logging. +message LogConfig { + // The severity level of platform logging for this channel. Logs with a + // severity level higher than or equal to the chosen severity level will be + // logged and can be viewed through Cloud Logging. + // The severity level of a log is ranked as followed from low to high: DEBUG < + // INFO < NOTICE < WARNING < ERROR < CRITICAL < ALERT < EMERGENCY. + // See + // [LogSeverity](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#logseverity) + // for more information. + enum LogSeverity { + // Log severity is not specified. This is the same as log severity is OFF. + LOG_SEVERITY_UNSPECIFIED = 0; + + // Log is turned off. + OFF = 1; + + // Log with severity higher than or equal to DEBUG are logged. + DEBUG = 100; + + // Logs with severity higher than or equal to INFO are logged. + INFO = 200; + + // Logs with severity higher than or equal to WARNING are logged. + WARNING = 400; + + // Logs with severity higher than or equal to ERROR are logged. + ERROR = 500; + } + + // The severity level of platform logging for this resource. + LogSeverity log_severity = 1; } // Properties of the input stream. diff --git a/google/cloud/video/livestream/v1/service.proto b/google/cloud/video/livestream/v1/service.proto index fa1ccd1786310..c2c6f87979aa1 100644 --- a/google/cloud/video/livestream/v1/service.proto +++ b/google/cloud/video/livestream/v1/service.proto @@ -26,10 +26,13 @@ import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; +option csharp_namespace = "Google.Cloud.Video.LiveStream.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/video/livestream/v1;livestream"; option java_multiple_files = true; option java_outer_classname = "ServiceProto"; option java_package = "com.google.cloud.video.livestream.v1"; +option php_namespace = "Google\\Cloud\\Video\\LiveStream\\V1"; +option ruby_package = "Google::Cloud::Video::LiveStream::V1"; // Using Live Stream API, you can generate live streams in the various // renditions and streaming formats. The streaming format include HTTP Live @@ -325,6 +328,12 @@ message DeleteChannelRequest { // The request ID must be a valid UUID with the exception that zero UUID is // not supported `(00000000-0000-0000-0000-000000000000)`. string request_id = 2; + + // If the `force` field is set to the default value of `false`, you must + // delete all of a channel's events before you can delete the channel itself. + // If the field is set to `true`, requests to delete a channel also delete + // associated channel events. + bool force = 3; } // Request message for "LivestreamService.UpdateChannel".