diff options
author | iddqd <iddqd@yandex-team.com> | 2024-06-11 10:12:13 +0300 |
---|---|---|
committer | iddqd <iddqd@yandex-team.com> | 2024-06-11 10:22:43 +0300 |
commit | 07f57e35443ab7f09471caf2dbf1afbcced4d9f7 (patch) | |
tree | a4a7b66ead62e83fa988a2ec2ce6576311c1f4b1 /contrib/libs/yandex-cloud-api-protos/yandex/cloud/video | |
parent | 6db3b8ca95e44179e48306a58656fb1f9317d9c3 (diff) | |
download | ydb-07f57e35443ab7f09471caf2dbf1afbcced4d9f7.tar.gz |
add contrib/python/yandexcloud to import
03b7d3cad2237366b55b393e18d4dc5eb222798c
Diffstat (limited to 'contrib/libs/yandex-cloud-api-protos/yandex/cloud/video')
12 files changed, 1540 insertions, 0 deletions
diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/channel.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/channel.proto new file mode 100644 index 0000000000..e7f4d2a833 --- /dev/null +++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/channel.proto @@ -0,0 +1,31 @@ +syntax = "proto3"; + +package yandex.cloud.video.v1; + +import "google/protobuf/timestamp.proto"; + +option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/video/v1;video"; +option java_package = "yandex.cloud.api.video.v1"; + +// Root entity for content separation. +message Channel { + reserved 102 to 199; + reserved 5 to 99; + // ID of the channel. + string id = 1; + // ID of the organization where channel should be created. + string organization_id = 2; + + // Channel title. + string title = 3; + // Channel description. + string description = 4; + + // Time when channel was created. + google.protobuf.Timestamp created_at = 100; + // Time of last channel update. + google.protobuf.Timestamp updated_at = 101; + + // Custom labels as `` key:value `` pairs. Maximum 64 per resource. + map<string, string> labels = 200; +} diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/channel_service.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/channel_service.proto new file mode 100644 index 0000000000..4f138c95e7 --- /dev/null +++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/channel_service.proto @@ -0,0 +1,134 @@ +syntax = "proto3"; + +package yandex.cloud.video.v1; + +import "google/protobuf/field_mask.proto"; +import "yandex/cloud/api/operation.proto"; +import "yandex/cloud/operation/operation.proto"; +import "yandex/cloud/video/v1/channel.proto"; + +option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/video/v1;video"; +option java_package = "yandex.cloud.api.video.v1"; + +// Channel management service. +service ChannelService { + // Returns the specific channel. + rpc Get(GetChannelRequest) returns (Channel) {} + + // List channels for organization. + rpc List(ListChannelsRequest) returns (ListChannelsResponse) {} + + // Create channel. + rpc Create(CreateChannelRequest) returns (operation.Operation) { + option (yandex.cloud.api.operation) = { + metadata: "CreateChannelMetadata" + response: "Channel" + }; + } + + // Update channel. + rpc Update(UpdateChannelRequest) returns (operation.Operation) { + option (yandex.cloud.api.operation) = { + metadata: "UpdateChannelMetadata" + response: "Channel" + }; + } + + // Delete channel. + rpc Delete(DeleteChannelRequest) returns (operation.Operation) { + option (yandex.cloud.api.operation) = { + metadata: "DeleteChannelMetadata" + response: "google.protobuf.Empty" + }; + } +} + +message GetChannelRequest { + // ID of the channel. + string channel_id = 1; +} + +message ListChannelsRequest { + reserved 2 to 99; + // ID of the organization. + string organization_id = 1; + + // The maximum number of the results per page to return. Default value: 100. + int64 page_size = 100; + // Page token for getting the next page of the result. + string page_token = 101; + + // By which column the listing should be ordered and in which direction, + // format is "createdAt desc". "id asc" if omitted. + // Possible fields: ["id", "createdAt", "updatedAt"] + // Both snake_case and camelCase are supported for fields. + string order_by = 102; + + // Filter expression that filters resources listed in the response. + // Expressions are composed of terms connected by logic operators. + // Value in quotes: `'` or `"` + // Example: "key1='value' AND key2='value'" + // Supported operators: ["AND"]. + // Supported fields: ["title"] + // Both snake_case and camelCase are supported for fields. + string filter = 103; +} + +message ListChannelsResponse { + reserved 2 to 99; + // List of channels for specific organization. + repeated Channel channels = 1; + + // Token for getting the next page. + string next_page_token = 100; +} + +message CreateChannelRequest { + reserved 4 to 199; + // ID of the organization. + string organization_id = 1; + + // Channel title. + string title = 2; + // Channel description. + string description = 3; + + // Custom labels as `` key:value `` pairs. Maximum 64 per resource. + map<string, string> labels = 200; +} + +message CreateChannelMetadata { + // ID of the channel. + string channel_id = 1; +} + +message UpdateChannelRequest { + reserved 5 to 199; + // ID of the channel. + string channel_id = 1; + // Field mask that specifies which fields of the channel are going to be updated. + google.protobuf.FieldMask field_mask = 2; + + // Channel title. + string title = 3; + // Channel description. + string description = 4; + + // Custom labels as `` key:value `` pairs. Maximum 64 per resource. + map<string, string> labels = 200; +} + +message UpdateChannelMetadata { + // ID of the channel. + string channel_id = 1; +} + +message DeleteChannelRequest { + // ID of the channel. + string channel_id = 1; +} + +message DeleteChannelMetadata { + // ID of the channel. + string channel_id = 1; +} diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/episode.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/episode.proto new file mode 100644 index 0000000000..85ddb2d354 --- /dev/null +++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/episode.proto @@ -0,0 +1,64 @@ +syntax = "proto3"; + +package yandex.cloud.video.v1; + +import "google/protobuf/timestamp.proto"; + +option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/video/v1;video"; +option java_package = "yandex.cloud.api.video.v1"; + +message Episode { + reserved 102 to 999; + reserved 11 to 99; + reserved 1001; + + // ID of the episode. + string id = 1; + // ID of the stream. Optional, empty if the episode is linked to the line + string stream_id = 2; + // ID of the line. Optional, empty if the episode is linked to the stream + string line_id = 3; + + // Channel title. + string title = 4; + // Channel description. + string description = 5; + // ID of the thumbnail. + string thumbnail_id = 6; + + // Episode start time. + google.protobuf.Timestamp start_time = 7; + // Episode finish time. + google.protobuf.Timestamp finish_time = 8; + // Enables episode DVR mode. DVR seconds determines how many last seconds of the stream are available. + // + // possible values: + // * `0`: infinite dvr size, the full length of the stream allowed to display + // * `>0`: size of dvr window in seconds, the minimum value is 30s + int64 dvr_seconds = 9; + + VisibilityStatus visibility_status = 10; + + // Episode access rights. + oneof access_rights { + // Episode is available to everyone. + EpisodePublicAccessRights public_access = 1000; + // Checking access rights using the authorization system. + EpisodeAuthSystemAccessRights auth_system_access = 1002; + } + + // Time when episode was created. + google.protobuf.Timestamp created_at = 100; + // Time of last episode update. + google.protobuf.Timestamp updated_at = 101; + + enum VisibilityStatus { + VISIBILITY_STATUS_UNSPECIFIED = 0; + PUBLISHED = 1; + UNPUBLISHED = 2; + } +} + +message EpisodePublicAccessRights {} + +message EpisodeAuthSystemAccessRights {} diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/episode_service.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/episode_service.proto new file mode 100644 index 0000000000..cf0ecad2c7 --- /dev/null +++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/episode_service.proto @@ -0,0 +1,239 @@ +syntax = "proto3"; + +package yandex.cloud.video.v1; + +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; +import "yandex/cloud/api/operation.proto"; +import "yandex/cloud/operation/operation.proto"; +import "yandex/cloud/video/v1/episode.proto"; + +option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/video/v1;video"; +option java_package = "yandex.cloud.api.video.v1"; + +// Episode management service. +service EpisodeService { + // Returns the specific channel. + rpc Get(GetEpisodeRequest) returns (Episode) {} + + // List episodes for stream or line. + rpc List(ListEpisodesRequest) returns (ListEpisodesResponse) {} + + // Create episode. + rpc Create(CreateEpisodeRequest) returns (operation.Operation) { + option (yandex.cloud.api.operation) = { + metadata: "CreateEpisodeMetadata" + response: "Episode" + }; + } + + // Update episode. + rpc Update(UpdateEpisodeRequest) returns (operation.Operation) { + option (yandex.cloud.api.operation) = { + metadata: "UpdateEpisodeMetadata" + response: "Episode" + }; + } + + // Delete episode. + rpc Delete(DeleteEpisodeRequest) returns (operation.Operation) { + option (yandex.cloud.api.operation) = { + metadata: "DeleteEpisodeMetadata" + response: "google.protobuf.Empty" + }; + } + + // Perform an action on the episode. + rpc PerformAction(PerformEpisodeActionRequest) returns (operation.Operation) { + option (yandex.cloud.api.operation) = { + metadata: "PerformEpisodeActionMetadata" + response: "Episode" + }; + } + + // Returns url to the player. + rpc GetPlayerURL(GetEpisodePlayerURLRequest) returns (GetEpisodePlayerURLResponse) {} +} + +message GetEpisodeRequest { + // ID of the episode. + string episode_id = 1; +} + +message ListEpisodesRequest { + reserved 3 to 99; + oneof parent_id { + // ID of the stream. + string stream_id = 1; + // ID of the line. + string line_id = 2; + } + + // The maximum number of the results per page to return. Default value: 100. + int64 page_size = 100; + // Page token for getting the next page of the result. + string page_token = 101; + + // By which column the listing should be ordered and in which direction, + // format is "createdAt desc". "id asc" if omitted. + // Possible fields: ["id", "createdAt", "updatedAt"] + // Both snake_case and camelCase are supported for fields. + string order_by = 102; + + // Filter expression that filters resources listed in the response. + // Expressions are composed of terms connected by logic operators. + // Value in quotes: `'` or `"` + // Example: "key1='value' AND key2='value'" + // Supported operators: ["AND"]. + // Supported fields: ["title"] + // Both snake_case and camelCase are supported for fields. + string filter = 103; +} + +message ListEpisodesResponse { + reserved 2 to 99; + // List of episodes for specific parent_id. + repeated Episode episodes = 1; + + // Token for getting the next page. + string next_page_token = 100; +} + +message CreateEpisodeRequest { + reserved 102 to 999; + reserved 8 to 99; + reserved 1, 1001; + + oneof parent_id { + // ID of the stream. + string stream_id = 100; + // ID of the line. + string line_id = 101; + } + + // Episode title. + string title = 2; + // Episode description. + string description = 3; + // ID of the thumbnail. + string thumbnail_id = 4; + // Episode start time. + google.protobuf.Timestamp start_time = 5; + // Episode finish time. + google.protobuf.Timestamp finish_time = 6; + // Enables episode DVR mode. DVR seconds determines how many last seconds of the stream are available. + // + // possible values: + // * `0`: infinite dvr size, the full length of the stream allowed to display + // * `>0`: size of dvr window in seconds, the minimum value is 30s + int64 dvr_seconds = 7; + + // Episode access rights. + oneof access_rights { + // Episode is available to everyone. + EpisodePublicAccessParams public_access = 1000; + // Checking access rights using the authorization system. + EpisodeAuthSystemAccessParams auth_system_access = 1002; + } +} + +message EpisodePublicAccessParams {} + +message EpisodeAuthSystemAccessParams {} + +message CreateEpisodeMetadata { + // ID of the episode. + string episode_id = 1; +} + +message UpdateEpisodeRequest { + reserved 9 to 999; + reserved 1001; + + // ID of the episode. + string episode_id = 1; + // Field mask that specifies which fields of the episode are going to be updated. + google.protobuf.FieldMask field_mask = 2; + + // Episode title. + string title = 3; + // Episode description. + string description = 4; + // ID of the thumbnail. + string thumbnail_id = 5; + google.protobuf.Timestamp start_time = 6; + // Episode finish time. + google.protobuf.Timestamp finish_time = 7; + // Enables episode DVR mode. DVR seconds determines how many last seconds of the stream are available. + // + // possible values: + // * `0`: infinite dvr size, the full length of the stream allowed to display + // * `>0`: size of dvr window in seconds, the minimum value is 30s + int64 dvr_seconds = 8; + + // Episode access rights. + oneof access_rights { + // Episode is available to everyone. + EpisodePublicAccessParams public_access = 1000; + // Checking access rights using the authorization system. + EpisodeAuthSystemAccessParams auth_system_access = 1002; + } +} + +message UpdateEpisodeMetadata { + // ID of the episode. + string episode_id = 1; +} + +message DeleteEpisodeRequest { + // ID of the episode. + string episode_id = 1; +} + +message DeleteEpisodeMetadata { + // ID of the episode. + string episode_id = 1; +} + +message PerformEpisodeActionRequest { + reserved 2 to 999; + reserved 1000, 1001; + + // ID of the episode. + string episode_id = 1; + oneof action { + PublishEpisodeAction publish = 1002; + UnpublishEpisodeAction unpublish = 1003; + } +} + +message PublishEpisodeAction {} + +message UnpublishEpisodeAction {} + +message PerformEpisodeActionMetadata { + // ID of the episode. + string episode_id = 1; +} + +message GetEpisodePlayerURLRequest { + // ID of the episode. + string episode_id = 1; + EpisodePlayerParams params = 2; +} + +message EpisodePlayerParams { + // If true, a player will be muted by default. + bool mute = 1; + // If true, playback will start automatically. + bool autoplay = 2; + // If true, a player interface will be hidden by default. + bool hidden = 3; +} + +message GetEpisodePlayerURLResponse { + // Direct link to the video. + string player_url = 1; + // HTML embed code in Iframe format. + string html = 2; +} diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/stream.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/stream.proto new file mode 100644 index 0000000000..4173fe9fec --- /dev/null +++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/stream.proto @@ -0,0 +1,79 @@ +syntax = "proto3"; + +package yandex.cloud.video.v1; + +import "google/protobuf/timestamp.proto"; + +option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/video/v1;video"; +option java_package = "yandex.cloud.api.video.v1"; + +message Stream { + reserved 102 to 199; + reserved 201 to 999; + reserved 12 to 99; + reserved 7; + + // ID of the stream. + string id = 1; + // ID of the channel where the stream was created. + string channel_id = 2; + // ID of the line to which stream is linked. + string line_id = 3; + + // Stream title. + string title = 4; + // Stream description. + string description = 5; + // ID of the thumbnail. + string thumbnail_id = 6; + + // Stream status. + StreamStatus status = 8; + // Stream start time. + google.protobuf.Timestamp start_time = 9; + // Stream publish time. Time when stream switched to ONAIR status. + google.protobuf.Timestamp publish_time = 10; + // Stream finish time. + google.protobuf.Timestamp finish_time = 11; + + // Stream type. + oneof stream_type { + // On demand stream. It starts immediately when a signal appears. + OnDemand on_demand = 1000; + // Schedule stream. Determines when to start receiving the signal or finish time. + Schedule schedule = 1001; + } + + // Time when stream was created. + google.protobuf.Timestamp created_at = 100; + // Time of last stream update. + google.protobuf.Timestamp updated_at = 101; + + // Custom labels as `` key:value `` pairs. Maximum 64 per resource. + map<string, string> labels = 200; + + // Stream status. + enum StreamStatus { + // Stream status unspecified. + STREAM_STATUS_UNSPECIFIED = 0; + // Stream offline. + OFFLINE = 1; + // Preparing the infrastructure for receiving video signal. + PREPARING = 2; + // Everything is ready to launch stream. + READY = 3; + // Stream onair. + ONAIR = 4; + // Stream finished. + FINISHED = 5; + } +} + +// If "OnDemand" is used, client should start and finish explicitly. +message OnDemand {} + +// If "Schedule" is used, stream automatically start and finish at this time. +message Schedule { + google.protobuf.Timestamp start_time = 1; + google.protobuf.Timestamp finish_time = 2; +} diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/stream_line.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/stream_line.proto new file mode 100644 index 0000000000..23bb14a581 --- /dev/null +++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/stream_line.proto @@ -0,0 +1,113 @@ +syntax = "proto3"; + +package yandex.cloud.video.v1; + +import "google/protobuf/timestamp.proto"; + +option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/video/v1;video"; +option java_package = "yandex.cloud.api.video.v1"; + +// Entity that is responsible for the incoming video signal settings. +message StreamLine { + reserved 102 to 199; + reserved 201 to 999; + reserved 1005; + reserved 1007 to 1999; + reserved 5 to 99; + // ID of the line. + string id = 1; + // ID of the channel where the line was created. + string channel_id = 2; + + // Line title. + string title = 3; + // ID of the thumbnail. + string thumbnail_id = 4; + + // Video signal settings. + oneof input_type { + // RTMP push input type. + RTMPPushInput rtmp_push = 1000; + // SRT push input type. + SRTPushInput srt_push = 1001; + // RTMP pull input type. + RTMPPullInput rtmp_pull = 1002; + // SRT pull input type. + SRTPullInput srt_pull = 1003; + // TCP pull input type. + TCPPullInput tcp_pull = 1004; + // RTSP pull input type. + RTSPPullInput rtsp_pull = 1006; + } + + // Line type. + oneof line_type { + // Manual control of stream. + ManualLine manual_line = 2000; + // Automatic control of stream. + AutoLine auto_line = 2001; + } + + // Time when line was created. + google.protobuf.Timestamp created_at = 100; + // Time of last line update. + google.protobuf.Timestamp updated_at = 101; + + // Custom labels as `` key:value `` pairs. Maximum 64 per resource. + map<string, string> labels = 200; +} + +// Push stream key. +message PushStreamKey { + // Unique stream key. + string key = 1; +} + +message RTMPPushInput { + // RTMP server url. + string url = 1; +} + +message SRTPushInput { + // SRT server url. + string url = 1; +} + +message RTMPPullInput { + // RTMP url for receiving video signal. + string url = 1; +} + +message SRTPullInput { + // SRT url for receiving video signal. + string url = 1; +} + +message TCPPullInput { + // TCP url for receiving video signal. + string url = 1; +} + +message RTSPPullInput { + // RTSP url for receiving video signal. + string url = 1; +} + +// Manual line type. +message ManualLine {} + +// Auto line type. +message AutoLine { + // Status of auto line. + AutoLineStatus status = 1; + + // Auto line status. + enum AutoLineStatus { + // Auto line status unspecified. + AUTO_LINE_STATUS_UNSPECIFIED = 0; + // Auto line deactivated. + DEACTIVATED = 1; + // Auto line active. + ACTIVE = 2; + } +} diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/stream_line_service.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/stream_line_service.proto new file mode 100644 index 0000000000..bb145f6ceb --- /dev/null +++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/stream_line_service.proto @@ -0,0 +1,259 @@ +syntax = "proto3"; + +package yandex.cloud.video.v1; + +import "google/protobuf/field_mask.proto"; +import "yandex/cloud/api/operation.proto"; +import "yandex/cloud/operation/operation.proto"; +import "yandex/cloud/video/v1/stream_line.proto"; + +option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/video/v1;video"; +option java_package = "yandex.cloud.api.video.v1"; + +// Stream line management service. +service StreamLineService { + // Returns the specific stream line. + rpc Get(GetStreamLineRequest) returns (StreamLine) {} + + // List lines for channel. + rpc List(ListStreamLinesRequest) returns (ListStreamLinesResponse) {} + + // Create stream line. + rpc Create(CreateStreamLineRequest) returns (operation.Operation) { + option (yandex.cloud.api.operation) = { + metadata: "CreateStreamLineMetadata" + response: "StreamLine" + }; + } + + // Update stream line. + rpc Update(UpdateStreamLineRequest) returns (operation.Operation) { + option (yandex.cloud.api.operation) = { + metadata: "UpdateStreamLineMetadata" + response: "StreamLine" + }; + } + + // Delete stream line. + rpc Delete(DeleteStreamLineRequest) returns (operation.Operation) { + option (yandex.cloud.api.operation) = { + metadata: "DeleteStreamLineMetadata" + response: "google.protobuf.Empty" + }; + } + + // Perform an action on the line. + rpc PerformAction(PerformLineActionRequest) returns (operation.Operation) { + option (yandex.cloud.api.operation) = { + metadata: "PerformLineActionMetadata" + response: "StreamLine" + }; + } + + // Returns unique stream key. + rpc GetStreamKey(GetStreamKeyRequest) returns (PushStreamKey) {} + + // Change stream key. + rpc UpdateStreamKey(UpdateStreamKeyRequest) returns (operation.Operation) { + option (yandex.cloud.api.operation) = { + metadata: "UpdateStreamKeyMetadata" + response: "PushStreamKey" + }; + } +} + +message GetStreamLineRequest { + // ID of the line. + string stream_line_id = 1; +} + +message ListStreamLinesRequest { + reserved 2 to 99; + // ID of the channel. + string channel_id = 1; + + // The maximum number of the results per page to return. Default value: 100. + int64 page_size = 100; + // Page token for getting the next page of the result. + string page_token = 101; + + // By which column the listing should be ordered and in which direction, + // format is "createdAt desc". "id asc" if omitted. + // Possible fields: ["id", "title", "createdAt", "updatedAt"] + // Both snake_case and camelCase are supported for fields. + string order_by = 102; + + // Filter expression that filters resources listed in the response. + // Expressions are composed of terms connected by logic operators. + // Value in quotes: `'` or `"` + // Example: "key1='value' AND key2='value'" + // Supported operators: ["AND"]. + // Supported fields: ["title"] + // Both snake_case and camelCase are supported for fields. + string filter = 103; +} + +message ListStreamLinesResponse { + reserved 2 to 99; + // List of lines for channel. + repeated StreamLine stream_lines = 1; + + // Token for getting the next page. + string next_page_token = 100; +} + +message CreateStreamLineRequest { + reserved 201 to 999; + reserved 1005; + reserved 1007 to 1999; + reserved 4 to 199; + // ID of the channel. + string channel_id = 1; + // Line title. + string title = 2; + // ID of the thumbnail. + string thumbnail_id = 3; + + // Custom labels as `` key:value `` pairs. Maximum 64 per resource. + map<string, string> labels = 200; + + // Video signal settings. + oneof input_params { + // RTMP push input type. + RTMPPushParams rtmp_push = 1000; + // SRT push input type. + SRTPushParams srt_push = 1001; + // RTMP pull input type. + RTMPPullParams rtmp_pull = 1002; + // SRT pull input type. + SRTPullParams srt_pull = 1003; + // TCP pull input type. + TCPPullParams tcp_pull = 1004; + // RTSP pull input type. + RTSPPullParams rtsp_pull = 1006; + } + + // Line type. + oneof line_type_params { + // Manual control of stream. + ManualLineParams manual_line = 2000; + // Automatic control of stream. + AutoLineParams auto_line = 2001; + } +} + +message CreateStreamLineMetadata { + // ID of the line. + string stream_line_id = 1; +} + +message UpdateStreamLineRequest { + reserved 201 to 999; + reserved 1005; + reserved 5 to 199; + // ID of the line. + string stream_line_id = 1; + // Field mask that specifies which fields of the line are going to be updated. + google.protobuf.FieldMask field_mask = 2; + + // Line title. + string title = 3; + // ID of the thumbnail. + string thumbnail_id = 4; + + // Custom labels as `` key:value `` pairs. Maximum 64 per resource. + map<string, string> labels = 200; + + // Video signal settings. + oneof input_params { + // RTMP push input type. + RTMPPushParams rtmp_push = 1000; + // SRT push input type. + SRTPushParams srt_push = 1001; + // RTMP pull input type. + RTMPPullParams rtmp_pull = 1002; + // SRT pull input type. + SRTPullParams srt_pull = 1003; + // TCP pull input type. + TCPPullParams tcp_pull = 1004; + // RTSP pull input type. + RTSPPullParams rtsp_pull = 1006; + } +} + +message UpdateStreamLineMetadata { + // ID of the line. + string stream_line_id = 1; +} + +message DeleteStreamLineRequest { + // ID of the line. + string stream_line_id = 1; +} + +message DeleteStreamLineMetadata { + // ID of the line. + string stream_line_id = 1; +} + +message PerformLineActionRequest { + reserved 2 to 999; + // ID of the line. + string stream_line_id = 1; + oneof action { + ActivateAction activate = 1000; + DeactivateAction deactivate = 1001; + } +} + +message PerformLineActionMetadata { + // ID of the line. + string stream_line_id = 1; +} + +message RTMPPushParams {} + +message SRTPushParams {} + +message RTMPPullParams { + // URL of a RTMP streaming server. + string url = 1; +} + +message SRTPullParams { + // URL of a SRT streaming server. + string url = 1; +} + +message TCPPullParams { + // URL of a TCP streaming server. + string url = 2; +} + +message RTSPPullParams { + // URL of a RTSP streaming server. + string url = 1; +} + +message ManualLineParams {} + +message AutoLineParams {} + +message ActivateAction {} + +message DeactivateAction {} + +message GetStreamKeyRequest { + // ID of the line. + string stream_line_id = 1; +} + +message UpdateStreamKeyRequest { + // ID of the line. + string stream_line_id = 1; +} + +message UpdateStreamKeyMetadata { + // ID of the line. + string stream_line_id = 1; +} diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/stream_service.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/stream_service.proto new file mode 100644 index 0000000000..f3f8cd8689 --- /dev/null +++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/stream_service.proto @@ -0,0 +1,197 @@ +syntax = "proto3"; + +package yandex.cloud.video.v1; + +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; +import "yandex/cloud/api/operation.proto"; +import "yandex/cloud/operation/operation.proto"; +import "yandex/cloud/video/v1/stream.proto"; + +option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/video/v1;video"; +option java_package = "yandex.cloud.api.video.v1"; + +// Stream management service. +service StreamService { + // Returns the specific stream. + rpc Get(GetStreamRequest) returns (Stream) {} + + // List streams for channel. + rpc List(ListStreamsRequest) returns (ListStreamsResponse) {} + + // Create stream. + rpc Create(CreateStreamRequest) returns (operation.Operation) { + option (yandex.cloud.api.operation) = { + metadata: "CreateStreamMetadata" + response: "Stream" + }; + } + + // Update stream. + rpc Update(UpdateStreamRequest) returns (operation.Operation) { + option (yandex.cloud.api.operation) = { + metadata: "UpdateStreamMetadata" + response: "Stream" + }; + } + + // Delete stream. + rpc Delete(DeleteStreamRequest) returns (operation.Operation) { + option (yandex.cloud.api.operation) = { + metadata: "DeleteStreamMetadata" + response: "google.protobuf.Empty" + }; + } + + // Perform an action on the episode. + rpc PerformAction(PerformStreamActionRequest) returns (operation.Operation) { + option (yandex.cloud.api.operation) = { + metadata: "PerformStreamActionMetadata" + response: "Stream" + }; + } +} + +message GetStreamRequest { + // ID of the stream. + string stream_id = 1; +} + +message ListStreamsRequest { + reserved 2 to 99; + // ID of the channel. + string channel_id = 1; + + // The maximum number of the results per page to return. Default value: 100. + int64 page_size = 100; + // Page token for getting the next page of the result. + string page_token = 101; + + // By which column the listing should be ordered and in which direction, + // format is "createdAt desc". "id asc" if omitted. + // Possible fields: ["id", "title", "startTime", "finishTime", "createdAt", "updatedAt"] + // Both snake_case and camelCase are supported for fields. + string order_by = 102; + + // Filter expression that filters resources listed in the response. + // Expressions are composed of terms connected by logic operators. + // Value in quotes: `'` or `"` + // Example: "key1='value' AND key2='value'" + // Supported operators: ["AND"]. + // Supported fields: ["title", "lineId", "status"] + // Both snake_case and camelCase are supported for fields. + string filter = 103; +} + +message ListStreamsResponse { + reserved 2 to 99; + // List of streams for channel. + repeated Stream streams = 1; + + // Token for getting the next page. + string next_page_token = 100; +} + +message CreateStreamRequest { + reserved 201 to 999; + reserved 6 to 199; + // ID of the channel. + string channel_id = 1; + + // ID of the line. + string line_id = 2; + // Stream title. + string title = 3; + // Stream description. + string description = 4; + // ID of the thumbnail. + string thumbnail_id = 5; + + // Custom labels as `` key:value `` pairs. Maximum 64 per resource. + map<string, string> labels = 200; + + // Stream type. + oneof stream_type { + // On demand stream. It starts immediately when a signal appears. + OnDemandParams on_demand = 1000; + // Schedule stream. Determines when to start receiving the signal or finish time. + ScheduleParams schedule = 1001; + } +} + +message OnDemandParams {} + +message ScheduleParams { + google.protobuf.Timestamp start_time = 1; + google.protobuf.Timestamp finish_time = 2; +} + +message CreateStreamMetadata { + // ID of the stream. + string stream_id = 1; +} + +message UpdateStreamRequest { + reserved 201 to 999; + reserved 7 to 199; + // ID of the stream. + string stream_id = 1; + // Field mask that specifies which fields of the stream are going to be updated. + google.protobuf.FieldMask field_mask = 2; + + // ID of the line. + string line_id = 3; + // Stream title. + string title = 4; + // Stream description. + string description = 5; + // ID of the thumbnail. + string thumbnail_id = 6; + + // Custom labels as `` key:value `` pairs. Maximum 64 per resource. + map<string, string> labels = 200; + + // Stream type. + oneof stream_type { + // On demand stream. It starts immediately when a signal appears. + OnDemandParams on_demand = 1000; + // Schedule stream. Determines when to start receiving the signal or finish time. + ScheduleParams schedule = 1001; + } +} + +message UpdateStreamMetadata { + // ID of the stream. + string stream_id = 1; +} + +message DeleteStreamRequest { + // ID of the stream. + string stream_id = 1; +} + +message DeleteStreamMetadata { + // ID of the stream. + string stream_id = 1; +} + +message PerformStreamActionRequest { + reserved 2 to 999; + reserved 1001; + + // ID of the stream. + string stream_id = 1; + oneof action { + PublishAction publish = 1000; + StopAction stop = 1002; + } +} + +message PublishAction {} + +message StopAction {} + +message PerformStreamActionMetadata { + // ID of the stream. + string stream_id = 1; +} diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/thumbnail.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/thumbnail.proto new file mode 100644 index 0000000000..a9ac8ba5e6 --- /dev/null +++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/thumbnail.proto @@ -0,0 +1,19 @@ +syntax = "proto3"; + +package yandex.cloud.video.v1; + +import "google/protobuf/timestamp.proto"; + +option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/video/v1;video"; +option java_package = "yandex.cloud.api.video.v1"; + +message Thumbnail { + reserved 3 to 99; + // ID of the thumbnail. + string id = 1; + // ID of the channel where the thumbnail was created. + string channel_id = 2; + + // Time when thumbnail was created. + google.protobuf.Timestamp created_at = 100; +} diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/thumbnail_service.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/thumbnail_service.proto new file mode 100644 index 0000000000..3b36d1c10b --- /dev/null +++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/thumbnail_service.proto @@ -0,0 +1,89 @@ +syntax = "proto3"; + +package yandex.cloud.video.v1; + +import "yandex/cloud/api/operation.proto"; +import "yandex/cloud/operation/operation.proto"; +import "yandex/cloud/video/v1/thumbnail.proto"; + +option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/video/v1;video"; +option java_package = "yandex.cloud.api.video.v1"; + +// Thumbnail management service. +service ThumbnailService { + // List thumbnails for channel. + rpc List(ListThumbnailRequest) returns (ListThumbnailResponse) {} + + // Create thumbnail. + rpc Create(CreateThumbnailRequest) returns (operation.Operation) { + option (yandex.cloud.api.operation) = { + metadata: "CreateThumbnailMetadata" + response: "Thumbnail" + }; + } + + // Generate urls for download images. + rpc BatchGenerateDownloadURLs(BatchGenerateDownloadURLsRequest) returns (BatchGenerateDownloadURLsResponse) {} + + // Generate url for upload image. + rpc GenerateUploadURL(GenerateThumbnailUploadURLRequest) returns (GenerateThumbnailUploadURLResponse) {} +} + +message ListThumbnailRequest { + reserved 2 to 99; + // ID of the channel. + string channel_id = 1; + + // The maximum number of the results per page to return. Default value: 100. + int64 page_size = 100; + // Page token for getting the next page of the result. + string page_token = 101; +} + +message ListThumbnailResponse { + reserved 2 to 99; + // List of thumbnails. + repeated Thumbnail thumbnails = 1; + + // Token for getting the next page. + string next_page_token = 100; +} + +message CreateThumbnailRequest { + // ID of the channel. + string channel_id = 1; +} + +message CreateThumbnailMetadata { + // ID of the thumbnail. + string thumbnail_id = 1; +} + +message BatchGenerateDownloadURLsRequest { + // ID of the channel. + string channel_id = 1; + // List of thumbnails IDs. + repeated string thumbnail_ids = 2; +} + +message BatchGenerateDownloadURLsResponse { + // List of download urls. + repeated ThumbnailDownloadURL download_urls = 1; +} + +message ThumbnailDownloadURL { + // ID of the thumbnail. + string thumbnail_id = 1; + // Download url. + string download_url = 2; +} + +message GenerateThumbnailUploadURLRequest { + // ID of the thumbnail. + string thumbnail_id = 1; +} + +message GenerateThumbnailUploadURLResponse { + // Upload url. + string upload_url = 1; +} diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/video.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/video.proto new file mode 100644 index 0000000000..ac18d4ded3 --- /dev/null +++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/video.proto @@ -0,0 +1,91 @@ +syntax = "proto3"; + +package yandex.cloud.video.v1; + +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/video/v1;video"; +option java_package = "yandex.cloud.api.video.v1"; + +message Video { + reserved 102 to 199; + reserved 201 to 999; + reserved 1001 to 1999; + reserved 10 to 99; + reserved 7, 2001; + + // ID of the video. + string id = 1; + // ID of the channel where the video was created. + string channel_id = 2; + + // Video title. + string title = 3; + // Video description. + string description = 4; + // ID of the thumbnail. + string thumbnail_id = 5; + + // Video status. + VideoStatus status = 6; + + // Video duration. Optional, may be empty until the transcoding result is ready. + google.protobuf.Duration duration = 8; + + // Video visibility status. + VisibilityStatus visibility_status = 9; + + // Source type. + oneof source { + // Upload video using the tus protocol. + VideoTUSDSource tusd = 1000; + } + + // Video access rights. + oneof access_rights { + // Video is available to everyone. + VideoPublicAccessRights public_access = 2000; + // Checking access rights using the authorization system. + VideoAuthSystemAccessRights auth_system_access = 2002; + } + + // Time when video was created. + google.protobuf.Timestamp created_at = 100; + // Time of last video update. + google.protobuf.Timestamp updated_at = 101; + + // Custom labels as `` key:value `` pairs. Maximum 64 per resource. + map<string, string> labels = 200; + + enum VideoStatus { + // Video status unspecified. + VIDEO_STATUS_UNSPECIFIED = 0; + // Waiting for the whole number of bytes to be loaded. + WAIT_UPLOADING = 1; + // Video processing. + PROCESSING = 4; + // Video is ready, processing is completed. + READY = 5; + // An error occurred during video processing. + ERROR = 7; + } + + enum VisibilityStatus { + // Visibility status unspecified. + VISIBILITY_STATUS_UNSPECIFIED = 0; + // Video is published and available for viewing. + PUBLISHED = 1; + // Video is unpublished, only admin can watch. + UNPUBLISHED = 2; + } +} + +message VideoTUSDSource { + // URL for uploading video via the tus protocol. + string url = 1; +} + +message VideoPublicAccessRights {} + +message VideoAuthSystemAccessRights {} diff --git a/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/video_service.proto b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/video_service.proto new file mode 100644 index 0000000000..84784c0c6b --- /dev/null +++ b/contrib/libs/yandex-cloud-api-protos/yandex/cloud/video/v1/video_service.proto @@ -0,0 +1,225 @@ +syntax = "proto3"; + +package yandex.cloud.video.v1; + +import "google/protobuf/field_mask.proto"; +import "yandex/cloud/api/operation.proto"; +import "yandex/cloud/operation/operation.proto"; +import "yandex/cloud/video/v1/video.proto"; + +option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/video/v1;video"; +option java_package = "yandex.cloud.api.video.v1"; + +// Video management service. +service VideoService { + // Returns the specific video. + rpc Get(GetVideoRequest) returns (Video) {} + + // List videos for channel. + rpc List(ListVideoRequest) returns (ListVideoResponse) {} + + // Create video. + rpc Create(CreateVideoRequest) returns (operation.Operation) { + option (yandex.cloud.api.operation) = { + metadata: "CreateVideoMetadata" + response: "Video" + }; + } + + // Update video. + rpc Update(UpdateVideoRequest) returns (operation.Operation) { + option (yandex.cloud.api.operation) = { + metadata: "UpdateVideoMetadata" + response: "Video" + }; + } + + // Delete video. + rpc Delete(DeleteVideoRequest) returns (operation.Operation) { + option (yandex.cloud.api.operation) = { + metadata: "DeleteVideoMetadata" + response: "google.protobuf.Empty" + }; + } + + // Perform an action on the episode. + rpc PerformAction(PerformVideoActionRequest) returns (operation.Operation) { + option (yandex.cloud.api.operation) = { + metadata: "PerformVideoActionMetadata" + response: "Video" + }; + } + + // Returns url to the player. + rpc GetPlayerURL(GetVideoPlayerURLRequest) returns (GetVideoPlayerURLResponse) {} +} + +message GetVideoRequest { + // ID of the video. + string video_id = 1; +} + +message ListVideoRequest { + reserved 2 to 99; + // ID of the channel. + string channel_id = 1; + + // The maximum number of the results per page to return. Default value: 100. + int64 page_size = 100; + // Page token for getting the next page of the result. + string page_token = 101; + + // By which column the listing should be ordered and in which direction, + // format is "createdAt desc". "id asc" if omitted. + // Possible fields: ["id", "createdAt", "updatedAt"] + // Both snake_case and camelCase are supported for fields. + string order_by = 102; + + // Filter expression that filters resources listed in the response. + // Expressions are composed of terms connected by logic operators. + // Value in quotes: `'` or `"` + // Example: "key1='value' AND key2='value'" + // Supported operators: ["AND"]. + // Supported fields: ["title", "status", "visibility_status"] + // Both snake_case and camelCase are supported for fields. + string filter = 103; +} + +message ListVideoResponse { + reserved 2 to 99; + repeated Video videos = 1; + + // Token for getting the next page. + string next_page_token = 100; +} + +message CreateVideoRequest { + reserved 201 to 999; + reserved 1001 to 1999; + reserved 2001; + reserved 5 to 199; + + // ID of the channel. + string channel_id = 1; + + // Video title. + string title = 2; + // Video description. + string description = 3; + // ID of the thumbnail. + string thumbnail_id = 4; + + // Custom labels as `` key:value `` pairs. Maximum 64 per resource. + map<string, string> labels = 200; + + // Source type. + oneof source { + // Upload video using the tus protocol. + VideoTUSDParams tusd = 1000; + } + + // Video access rights. + oneof access_rights { + // Video is available to everyone. + VideoPublicAccessParams public_access = 2000; + // Checking access rights using the authorization system. + VideoAuthSystemAccessParams auth_system_access = 2002; + } +} + +message VideoTUSDParams { + // File size. + int64 file_size = 1; + // File name. + string file_name = 2; +} + +message VideoPublicAccessParams {} + +message VideoAuthSystemAccessParams {} + +message CreateVideoMetadata { + // ID of the video. + string video_id = 1; +} + +message UpdateVideoRequest { + reserved 201 to 1999; + reserved 2001; + reserved 6 to 199; + + // ID of the video. + string video_id = 1; + // Field mask that specifies which fields of the video are going to be updated. + google.protobuf.FieldMask field_mask = 2; + + // Video title. + string title = 3; + // Video description. + string description = 4; + // ID of the thumbnail. + string thumbnail_id = 5; + // Custom labels as `` key:value `` pairs. Maximum 64 per resource. + map<string, string> labels = 200; + + oneof access_rights { + VideoPublicAccessParams public_access = 2000; + VideoAuthSystemAccessParams auth_system_access = 2002; + } +} + +message UpdateVideoMetadata { + // ID of the video. + string video_id = 1; +} + +message DeleteVideoRequest { + // ID of the video. + string video_id = 1; +} + +message DeleteVideoMetadata { + // ID of the video. + string video_id = 1; +} + +message PerformVideoActionRequest { + // ID of the video. + string video_id = 1; + reserved 2 to 999; + oneof action { + PublishVideoAction publish = 1000; + UnpublishVideoAction unpublish = 1001; + } +} + +message PublishVideoAction {} + +message UnpublishVideoAction {} + +message PerformVideoActionMetadata { + // ID of the video. + string video_id = 1; +} + +message GetVideoPlayerURLRequest { + // ID of the video. + string video_id = 1; + VideoPlayerParams params = 2; +} + +message VideoPlayerParams { + // If true, a player will be muted by default. + bool mute = 1; + // If true, playback will start automatically. + bool autoplay = 2; + // If true, a player interface will be hidden by default. + bool hidden = 3; +} + +message GetVideoPlayerURLResponse { + // Direct link to the video. + string player_url = 1; + // HTML embed code in Iframe format. + string html = 2; +} |