Skip to content

Commit

Permalink
feat: added LogConfig feature for users to define configurations of p…
Browse files Browse the repository at this point in the history
…latform logs

feat: added silver languages namespace annotations
docs: updated comments with more examples

PiperOrigin-RevId: 423383860
  • Loading branch information
Google APIs authored and Copybara-Service committed Jan 21, 2022
1 parent f4bd29f commit 12b3038
Show file tree
Hide file tree
Showing 3 changed files with 88 additions and 21 deletions.
23 changes: 18 additions & 5 deletions google/cloud/video/livestream/v1/outputs.proto
Expand Up @@ -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
Expand Down Expand Up @@ -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`.
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -203,16 +214,18 @@ 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
// rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for
// 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
Expand Down
77 changes: 61 additions & 16 deletions google/cloud/video/livestream/v1/resources.proto
Expand Up @@ -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.
Expand All @@ -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.
Expand All @@ -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;
Expand All @@ -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.
Expand Down Expand Up @@ -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.
Expand Down
9 changes: 9 additions & 0 deletions google/cloud/video/livestream/v1/service.proto
Expand Up @@ -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
Expand Down Expand Up @@ -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".
Expand Down

0 comments on commit 12b3038

Please sign in to comment.