// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v3.21.12
// source: yandex/cloud/video/v1/episode_service.proto

package video

import (
	_ "github.com/yandex-cloud/go-genproto/yandex/cloud"
	_ "github.com/yandex-cloud/go-genproto/yandex/cloud/api"
	operation "github.com/yandex-cloud/go-genproto/yandex/cloud/operation"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	durationpb "google.golang.org/protobuf/types/known/durationpb"
	fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type GetEpisodeRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// ID of the episode to retrieve.
	EpisodeId     string `protobuf:"bytes,1,opt,name=episode_id,json=episodeId,proto3" json:"episode_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetEpisodeRequest) Reset() {
	*x = GetEpisodeRequest{}
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetEpisodeRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetEpisodeRequest) ProtoMessage() {}

func (x *GetEpisodeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetEpisodeRequest.ProtoReflect.Descriptor instead.
func (*GetEpisodeRequest) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_video_v1_episode_service_proto_rawDescGZIP(), []int{0}
}

func (x *GetEpisodeRequest) GetEpisodeId() string {
	if x != nil {
		return x.EpisodeId
	}
	return ""
}

type ListEpisodesRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Specifies the parent resource to list episodes from (exactly one must be chosen).
	//
	// Types that are valid to be assigned to ParentId:
	//
	//	*ListEpisodesRequest_StreamId
	//	*ListEpisodesRequest_LineId
	ParentId isListEpisodesRequest_ParentId `protobuf_oneof:"parent_id"`
	// The maximum number of episodes to return per page.
	PageSize int64 `protobuf:"varint,100,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// Page token for retrieving the next page of results.
	// This token is obtained from the next_page_token field in the previous ListEpisodesResponse.
	PageToken string `protobuf:"bytes,101,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	// Specifies the ordering of results.
	// Format is "<field> <order>" (e.g., "createdAt desc").
	// Default: "id asc".
	// Supported fields: ["id", "createdAt", "updatedAt"].
	// Both snake_case and camelCase field names are supported.
	OrderBy string `protobuf:"bytes,102,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
	// Filter expression to narrow down the list of returned episodes.
	// Expressions consist of terms connected by logical operators.
	// Values containing spaces or quotes must be enclosed in quotes (`'` or `"`)
	// with inner quotes being backslash-escaped.
	// Supported logical operators: ["AND", "OR"].
	// Supported comparison operators: ["=", "!=", ":"] where ":" enables substring matching.
	// Parentheses can be used to group logical expressions.
	// Example: `title:'highlight' AND id='episode-1'`
	// Filterable fields: ["id", "title"].
	// Both snake_case and camelCase field names are supported.
	Filter        string `protobuf:"bytes,103,opt,name=filter,proto3" json:"filter,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListEpisodesRequest) Reset() {
	*x = ListEpisodesRequest{}
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListEpisodesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListEpisodesRequest) ProtoMessage() {}

func (x *ListEpisodesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListEpisodesRequest.ProtoReflect.Descriptor instead.
func (*ListEpisodesRequest) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_video_v1_episode_service_proto_rawDescGZIP(), []int{1}
}

func (x *ListEpisodesRequest) GetParentId() isListEpisodesRequest_ParentId {
	if x != nil {
		return x.ParentId
	}
	return nil
}

func (x *ListEpisodesRequest) GetStreamId() string {
	if x != nil {
		if x, ok := x.ParentId.(*ListEpisodesRequest_StreamId); ok {
			return x.StreamId
		}
	}
	return ""
}

func (x *ListEpisodesRequest) GetLineId() string {
	if x != nil {
		if x, ok := x.ParentId.(*ListEpisodesRequest_LineId); ok {
			return x.LineId
		}
	}
	return ""
}

func (x *ListEpisodesRequest) GetPageSize() int64 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *ListEpisodesRequest) GetPageToken() string {
	if x != nil {
		return x.PageToken
	}
	return ""
}

func (x *ListEpisodesRequest) GetOrderBy() string {
	if x != nil {
		return x.OrderBy
	}
	return ""
}

func (x *ListEpisodesRequest) GetFilter() string {
	if x != nil {
		return x.Filter
	}
	return ""
}

type isListEpisodesRequest_ParentId interface {
	isListEpisodesRequest_ParentId()
}

type ListEpisodesRequest_StreamId struct {
	// ID of the stream containing the episodes to list.
	StreamId string `protobuf:"bytes,1,opt,name=stream_id,json=streamId,proto3,oneof"`
}

type ListEpisodesRequest_LineId struct {
	// ID of the stream line containing the episodes to list.
	LineId string `protobuf:"bytes,2,opt,name=line_id,json=lineId,proto3,oneof"`
}

func (*ListEpisodesRequest_StreamId) isListEpisodesRequest_ParentId() {}

func (*ListEpisodesRequest_LineId) isListEpisodesRequest_ParentId() {}

type ListEpisodesResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// List of episodes matching the request criteria.
	// May be empty if no episodes match the criteria or if the parent resource has no episodes.
	Episodes []*Episode `protobuf:"bytes,1,rep,name=episodes,proto3" json:"episodes,omitempty"`
	// Token for retrieving the next page of results.
	// Empty if there are no more results available.
	NextPageToken string `protobuf:"bytes,100,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListEpisodesResponse) Reset() {
	*x = ListEpisodesResponse{}
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListEpisodesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListEpisodesResponse) ProtoMessage() {}

func (x *ListEpisodesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListEpisodesResponse.ProtoReflect.Descriptor instead.
func (*ListEpisodesResponse) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_video_v1_episode_service_proto_rawDescGZIP(), []int{2}
}

func (x *ListEpisodesResponse) GetEpisodes() []*Episode {
	if x != nil {
		return x.Episodes
	}
	return nil
}

func (x *ListEpisodesResponse) GetNextPageToken() string {
	if x != nil {
		return x.NextPageToken
	}
	return ""
}

type BatchGetEpisodesRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// ID of the channel containing the episodes to retrieve.
	ChannelId string `protobuf:"bytes,1,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
	// List of episode IDs to retrieve.
	EpisodeIds    []string `protobuf:"bytes,2,rep,name=episode_ids,json=episodeIds,proto3" json:"episode_ids,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *BatchGetEpisodesRequest) Reset() {
	*x = BatchGetEpisodesRequest{}
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *BatchGetEpisodesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*BatchGetEpisodesRequest) ProtoMessage() {}

func (x *BatchGetEpisodesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BatchGetEpisodesRequest.ProtoReflect.Descriptor instead.
func (*BatchGetEpisodesRequest) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_video_v1_episode_service_proto_rawDescGZIP(), []int{3}
}

func (x *BatchGetEpisodesRequest) GetChannelId() string {
	if x != nil {
		return x.ChannelId
	}
	return ""
}

func (x *BatchGetEpisodesRequest) GetEpisodeIds() []string {
	if x != nil {
		return x.EpisodeIds
	}
	return nil
}

type BatchGetEpisodesResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// List of episodes matching the requested IDs.
	Episodes      []*Episode `protobuf:"bytes,1,rep,name=episodes,proto3" json:"episodes,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *BatchGetEpisodesResponse) Reset() {
	*x = BatchGetEpisodesResponse{}
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *BatchGetEpisodesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*BatchGetEpisodesResponse) ProtoMessage() {}

func (x *BatchGetEpisodesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BatchGetEpisodesResponse.ProtoReflect.Descriptor instead.
func (*BatchGetEpisodesResponse) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_video_v1_episode_service_proto_rawDescGZIP(), []int{4}
}

func (x *BatchGetEpisodesResponse) GetEpisodes() []*Episode {
	if x != nil {
		return x.Episodes
	}
	return nil
}

type CreateEpisodeRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Parent resource ID to link the episode to (exactly one must be chosen).
	//
	// Types that are valid to be assigned to ParentId:
	//
	//	*CreateEpisodeRequest_StreamId
	//	*CreateEpisodeRequest_LineId
	ParentId isCreateEpisodeRequest_ParentId `protobuf_oneof:"parent_id"`
	// Episode access permission settings (exactly one must be chosen).
	//
	// Types that are valid to be assigned to AccessRights:
	//
	//	*CreateEpisodeRequest_PublicAccess
	//	*CreateEpisodeRequest_SignUrlAccess
	AccessRights isCreateEpisodeRequest_AccessRights `protobuf_oneof:"access_rights"`
	// Episode title.
	Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
	// Episode description.
	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// ID of the thumbnail.
	ThumbnailId string `protobuf:"bytes,4,opt,name=thumbnail_id,json=thumbnailId,proto3" json:"thumbnail_id,omitempty"`
	// Episode start time.
	StartTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
	// Episode finish time.
	FinishTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=finish_time,json=finishTime,proto3" json:"finish_time,omitempty"`
	// Enables episode DVR mode.
	// 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
	DvrSeconds int64 `protobuf:"varint,7,opt,name=dvr_seconds,json=dvrSeconds,proto3" json:"dvr_seconds,omitempty"`
	// ID of the style preset.
	StylePresetId string `protobuf:"bytes,8,opt,name=style_preset_id,json=stylePresetId,proto3" json:"style_preset_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CreateEpisodeRequest) Reset() {
	*x = CreateEpisodeRequest{}
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CreateEpisodeRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateEpisodeRequest) ProtoMessage() {}

func (x *CreateEpisodeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateEpisodeRequest.ProtoReflect.Descriptor instead.
func (*CreateEpisodeRequest) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_video_v1_episode_service_proto_rawDescGZIP(), []int{5}
}

func (x *CreateEpisodeRequest) GetParentId() isCreateEpisodeRequest_ParentId {
	if x != nil {
		return x.ParentId
	}
	return nil
}

func (x *CreateEpisodeRequest) GetStreamId() string {
	if x != nil {
		if x, ok := x.ParentId.(*CreateEpisodeRequest_StreamId); ok {
			return x.StreamId
		}
	}
	return ""
}

func (x *CreateEpisodeRequest) GetLineId() string {
	if x != nil {
		if x, ok := x.ParentId.(*CreateEpisodeRequest_LineId); ok {
			return x.LineId
		}
	}
	return ""
}

func (x *CreateEpisodeRequest) GetAccessRights() isCreateEpisodeRequest_AccessRights {
	if x != nil {
		return x.AccessRights
	}
	return nil
}

func (x *CreateEpisodeRequest) GetPublicAccess() *EpisodePublicAccessParams {
	if x != nil {
		if x, ok := x.AccessRights.(*CreateEpisodeRequest_PublicAccess); ok {
			return x.PublicAccess
		}
	}
	return nil
}

func (x *CreateEpisodeRequest) GetSignUrlAccess() *EpisodeSignURLAccessParams {
	if x != nil {
		if x, ok := x.AccessRights.(*CreateEpisodeRequest_SignUrlAccess); ok {
			return x.SignUrlAccess
		}
	}
	return nil
}

func (x *CreateEpisodeRequest) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *CreateEpisodeRequest) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *CreateEpisodeRequest) GetThumbnailId() string {
	if x != nil {
		return x.ThumbnailId
	}
	return ""
}

func (x *CreateEpisodeRequest) GetStartTime() *timestamppb.Timestamp {
	if x != nil {
		return x.StartTime
	}
	return nil
}

func (x *CreateEpisodeRequest) GetFinishTime() *timestamppb.Timestamp {
	if x != nil {
		return x.FinishTime
	}
	return nil
}

func (x *CreateEpisodeRequest) GetDvrSeconds() int64 {
	if x != nil {
		return x.DvrSeconds
	}
	return 0
}

func (x *CreateEpisodeRequest) GetStylePresetId() string {
	if x != nil {
		return x.StylePresetId
	}
	return ""
}

type isCreateEpisodeRequest_ParentId interface {
	isCreateEpisodeRequest_ParentId()
}

type CreateEpisodeRequest_StreamId struct {
	// ID of the stream.
	StreamId string `protobuf:"bytes,100,opt,name=stream_id,json=streamId,proto3,oneof"`
}

type CreateEpisodeRequest_LineId struct {
	// ID of the line.
	LineId string `protobuf:"bytes,101,opt,name=line_id,json=lineId,proto3,oneof"`
}

func (*CreateEpisodeRequest_StreamId) isCreateEpisodeRequest_ParentId() {}

func (*CreateEpisodeRequest_LineId) isCreateEpisodeRequest_ParentId() {}

type isCreateEpisodeRequest_AccessRights interface {
	isCreateEpisodeRequest_AccessRights()
}

type CreateEpisodeRequest_PublicAccess struct {
	// Episode is publicly available.
	PublicAccess *EpisodePublicAccessParams `protobuf:"bytes,1000,opt,name=public_access,json=publicAccess,proto3,oneof"`
}

type CreateEpisodeRequest_SignUrlAccess struct {
	// Access to the episode is restricted by temporarily signed links.
	SignUrlAccess *EpisodeSignURLAccessParams `protobuf:"bytes,1003,opt,name=sign_url_access,json=signUrlAccess,proto3,oneof"`
}

func (*CreateEpisodeRequest_PublicAccess) isCreateEpisodeRequest_AccessRights() {}

func (*CreateEpisodeRequest_SignUrlAccess) isCreateEpisodeRequest_AccessRights() {}

// Parameters for episode public access rights.
type EpisodePublicAccessParams struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *EpisodePublicAccessParams) Reset() {
	*x = EpisodePublicAccessParams{}
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *EpisodePublicAccessParams) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*EpisodePublicAccessParams) ProtoMessage() {}

func (x *EpisodePublicAccessParams) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use EpisodePublicAccessParams.ProtoReflect.Descriptor instead.
func (*EpisodePublicAccessParams) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_video_v1_episode_service_proto_rawDescGZIP(), []int{6}
}

// Parameters for episode access restrictions based on temporary signed links.
type EpisodeSignURLAccessParams struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *EpisodeSignURLAccessParams) Reset() {
	*x = EpisodeSignURLAccessParams{}
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *EpisodeSignURLAccessParams) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*EpisodeSignURLAccessParams) ProtoMessage() {}

func (x *EpisodeSignURLAccessParams) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use EpisodeSignURLAccessParams.ProtoReflect.Descriptor instead.
func (*EpisodeSignURLAccessParams) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_video_v1_episode_service_proto_rawDescGZIP(), []int{7}
}

type CreateEpisodeMetadata struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// ID of the episode being created.
	EpisodeId     string `protobuf:"bytes,1,opt,name=episode_id,json=episodeId,proto3" json:"episode_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CreateEpisodeMetadata) Reset() {
	*x = CreateEpisodeMetadata{}
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CreateEpisodeMetadata) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateEpisodeMetadata) ProtoMessage() {}

func (x *CreateEpisodeMetadata) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[8]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateEpisodeMetadata.ProtoReflect.Descriptor instead.
func (*CreateEpisodeMetadata) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_video_v1_episode_service_proto_rawDescGZIP(), []int{8}
}

func (x *CreateEpisodeMetadata) GetEpisodeId() string {
	if x != nil {
		return x.EpisodeId
	}
	return ""
}

type UpdateEpisodeRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Episode access rights.
	//
	// Types that are valid to be assigned to AccessRights:
	//
	//	*UpdateEpisodeRequest_PublicAccess
	//	*UpdateEpisodeRequest_SignUrlAccess
	AccessRights isUpdateEpisodeRequest_AccessRights `protobuf_oneof:"access_rights"`
	// ID of the episode.
	EpisodeId string `protobuf:"bytes,1,opt,name=episode_id,json=episodeId,proto3" json:"episode_id,omitempty"`
	// Field mask specifying which fields of the episode should be updated.
	// Only fields specified in this mask will be modified;
	// all other fields will retain their current values.
	// This allows for partial updates.
	FieldMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=field_mask,json=fieldMask,proto3" json:"field_mask,omitempty"`
	// Episode title.
	Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"`
	// Episode description.
	Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
	// ID of the thumbnail.
	ThumbnailId string `protobuf:"bytes,5,opt,name=thumbnail_id,json=thumbnailId,proto3" json:"thumbnail_id,omitempty"`
	// Episode start time.
	StartTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
	// Episode finish time.
	FinishTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=finish_time,json=finishTime,proto3" json:"finish_time,omitempty"`
	// Enables episode DVR mode.
	// 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
	DvrSeconds int64 `protobuf:"varint,8,opt,name=dvr_seconds,json=dvrSeconds,proto3" json:"dvr_seconds,omitempty"`
	// New ID of the style preset to be applied to the episode player.
	StylePresetId string `protobuf:"bytes,9,opt,name=style_preset_id,json=stylePresetId,proto3" json:"style_preset_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UpdateEpisodeRequest) Reset() {
	*x = UpdateEpisodeRequest{}
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UpdateEpisodeRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateEpisodeRequest) ProtoMessage() {}

func (x *UpdateEpisodeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[9]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateEpisodeRequest.ProtoReflect.Descriptor instead.
func (*UpdateEpisodeRequest) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_video_v1_episode_service_proto_rawDescGZIP(), []int{9}
}

func (x *UpdateEpisodeRequest) GetAccessRights() isUpdateEpisodeRequest_AccessRights {
	if x != nil {
		return x.AccessRights
	}
	return nil
}

func (x *UpdateEpisodeRequest) GetPublicAccess() *EpisodePublicAccessParams {
	if x != nil {
		if x, ok := x.AccessRights.(*UpdateEpisodeRequest_PublicAccess); ok {
			return x.PublicAccess
		}
	}
	return nil
}

func (x *UpdateEpisodeRequest) GetSignUrlAccess() *EpisodeSignURLAccessParams {
	if x != nil {
		if x, ok := x.AccessRights.(*UpdateEpisodeRequest_SignUrlAccess); ok {
			return x.SignUrlAccess
		}
	}
	return nil
}

func (x *UpdateEpisodeRequest) GetEpisodeId() string {
	if x != nil {
		return x.EpisodeId
	}
	return ""
}

func (x *UpdateEpisodeRequest) GetFieldMask() *fieldmaskpb.FieldMask {
	if x != nil {
		return x.FieldMask
	}
	return nil
}

func (x *UpdateEpisodeRequest) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *UpdateEpisodeRequest) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *UpdateEpisodeRequest) GetThumbnailId() string {
	if x != nil {
		return x.ThumbnailId
	}
	return ""
}

func (x *UpdateEpisodeRequest) GetStartTime() *timestamppb.Timestamp {
	if x != nil {
		return x.StartTime
	}
	return nil
}

func (x *UpdateEpisodeRequest) GetFinishTime() *timestamppb.Timestamp {
	if x != nil {
		return x.FinishTime
	}
	return nil
}

func (x *UpdateEpisodeRequest) GetDvrSeconds() int64 {
	if x != nil {
		return x.DvrSeconds
	}
	return 0
}

func (x *UpdateEpisodeRequest) GetStylePresetId() string {
	if x != nil {
		return x.StylePresetId
	}
	return ""
}

type isUpdateEpisodeRequest_AccessRights interface {
	isUpdateEpisodeRequest_AccessRights()
}

type UpdateEpisodeRequest_PublicAccess struct {
	// Episode is publicly available.
	PublicAccess *EpisodePublicAccessParams `protobuf:"bytes,1000,opt,name=public_access,json=publicAccess,proto3,oneof"`
}

type UpdateEpisodeRequest_SignUrlAccess struct {
	// Access to the episode is restricted by temporarily signed links.
	SignUrlAccess *EpisodeSignURLAccessParams `protobuf:"bytes,1003,opt,name=sign_url_access,json=signUrlAccess,proto3,oneof"`
}

func (*UpdateEpisodeRequest_PublicAccess) isUpdateEpisodeRequest_AccessRights() {}

func (*UpdateEpisodeRequest_SignUrlAccess) isUpdateEpisodeRequest_AccessRights() {}

type UpdateEpisodeMetadata struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// ID of the episode being updated.
	EpisodeId     string `protobuf:"bytes,1,opt,name=episode_id,json=episodeId,proto3" json:"episode_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UpdateEpisodeMetadata) Reset() {
	*x = UpdateEpisodeMetadata{}
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UpdateEpisodeMetadata) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateEpisodeMetadata) ProtoMessage() {}

func (x *UpdateEpisodeMetadata) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[10]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateEpisodeMetadata.ProtoReflect.Descriptor instead.
func (*UpdateEpisodeMetadata) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_video_v1_episode_service_proto_rawDescGZIP(), []int{10}
}

func (x *UpdateEpisodeMetadata) GetEpisodeId() string {
	if x != nil {
		return x.EpisodeId
	}
	return ""
}

type DeleteEpisodeRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// ID of the episode to delete.
	EpisodeId     string `protobuf:"bytes,1,opt,name=episode_id,json=episodeId,proto3" json:"episode_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteEpisodeRequest) Reset() {
	*x = DeleteEpisodeRequest{}
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteEpisodeRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteEpisodeRequest) ProtoMessage() {}

func (x *DeleteEpisodeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[11]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteEpisodeRequest.ProtoReflect.Descriptor instead.
func (*DeleteEpisodeRequest) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_video_v1_episode_service_proto_rawDescGZIP(), []int{11}
}

func (x *DeleteEpisodeRequest) GetEpisodeId() string {
	if x != nil {
		return x.EpisodeId
	}
	return ""
}

type DeleteEpisodeMetadata struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// ID of the episode being deleted.
	// This identifier can be used to track the episode deletion operation.
	EpisodeId     string `protobuf:"bytes,1,opt,name=episode_id,json=episodeId,proto3" json:"episode_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteEpisodeMetadata) Reset() {
	*x = DeleteEpisodeMetadata{}
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteEpisodeMetadata) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteEpisodeMetadata) ProtoMessage() {}

func (x *DeleteEpisodeMetadata) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[12]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteEpisodeMetadata.ProtoReflect.Descriptor instead.
func (*DeleteEpisodeMetadata) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_video_v1_episode_service_proto_rawDescGZIP(), []int{12}
}

func (x *DeleteEpisodeMetadata) GetEpisodeId() string {
	if x != nil {
		return x.EpisodeId
	}
	return ""
}

type BatchDeleteEpisodesRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Specifies the parent resource containing the episodes to delete (exactly one must be chosen).
	//
	// Types that are valid to be assigned to Id:
	//
	//	*BatchDeleteEpisodesRequest_StreamId
	//	*BatchDeleteEpisodesRequest_LineId
	Id isBatchDeleteEpisodesRequest_Id `protobuf_oneof:"id"`
	// List of episode IDs to delete.
	// All episodes must exist and be linked to the specified parent resource.
	EpisodeIds    []string `protobuf:"bytes,1,rep,name=episode_ids,json=episodeIds,proto3" json:"episode_ids,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *BatchDeleteEpisodesRequest) Reset() {
	*x = BatchDeleteEpisodesRequest{}
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *BatchDeleteEpisodesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*BatchDeleteEpisodesRequest) ProtoMessage() {}

func (x *BatchDeleteEpisodesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[13]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BatchDeleteEpisodesRequest.ProtoReflect.Descriptor instead.
func (*BatchDeleteEpisodesRequest) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_video_v1_episode_service_proto_rawDescGZIP(), []int{13}
}

func (x *BatchDeleteEpisodesRequest) GetId() isBatchDeleteEpisodesRequest_Id {
	if x != nil {
		return x.Id
	}
	return nil
}

func (x *BatchDeleteEpisodesRequest) GetStreamId() string {
	if x != nil {
		if x, ok := x.Id.(*BatchDeleteEpisodesRequest_StreamId); ok {
			return x.StreamId
		}
	}
	return ""
}

func (x *BatchDeleteEpisodesRequest) GetLineId() string {
	if x != nil {
		if x, ok := x.Id.(*BatchDeleteEpisodesRequest_LineId); ok {
			return x.LineId
		}
	}
	return ""
}

func (x *BatchDeleteEpisodesRequest) GetEpisodeIds() []string {
	if x != nil {
		return x.EpisodeIds
	}
	return nil
}

type isBatchDeleteEpisodesRequest_Id interface {
	isBatchDeleteEpisodesRequest_Id()
}

type BatchDeleteEpisodesRequest_StreamId struct {
	// ID of the stream containing the episodes to delete.
	StreamId string `protobuf:"bytes,100,opt,name=stream_id,json=streamId,proto3,oneof"`
}

type BatchDeleteEpisodesRequest_LineId struct {
	// ID of the stream line containing the episodes to delete.
	LineId string `protobuf:"bytes,101,opt,name=line_id,json=lineId,proto3,oneof"`
}

func (*BatchDeleteEpisodesRequest_StreamId) isBatchDeleteEpisodesRequest_Id() {}

func (*BatchDeleteEpisodesRequest_LineId) isBatchDeleteEpisodesRequest_Id() {}

type BatchDeleteEpisodesMetadata struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// List of episode IDs being deleted.
	// This list can be used to track which episodes are included
	// in the batch deletion operation.
	EpisodeIds    []string `protobuf:"bytes,1,rep,name=episode_ids,json=episodeIds,proto3" json:"episode_ids,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *BatchDeleteEpisodesMetadata) Reset() {
	*x = BatchDeleteEpisodesMetadata{}
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *BatchDeleteEpisodesMetadata) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*BatchDeleteEpisodesMetadata) ProtoMessage() {}

func (x *BatchDeleteEpisodesMetadata) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[14]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BatchDeleteEpisodesMetadata.ProtoReflect.Descriptor instead.
func (*BatchDeleteEpisodesMetadata) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_video_v1_episode_service_proto_rawDescGZIP(), []int{14}
}

func (x *BatchDeleteEpisodesMetadata) GetEpisodeIds() []string {
	if x != nil {
		return x.EpisodeIds
	}
	return nil
}

type PerformEpisodeActionRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Specifies which action to perform on the episode (exactly one must be chosen).
	//
	// Types that are valid to be assigned to Action:
	//
	//	*PerformEpisodeActionRequest_Publish
	//	*PerformEpisodeActionRequest_Unpublish
	Action isPerformEpisodeActionRequest_Action `protobuf_oneof:"action"`
	// ID of the episode on which to perform the action.
	EpisodeId     string `protobuf:"bytes,1,opt,name=episode_id,json=episodeId,proto3" json:"episode_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *PerformEpisodeActionRequest) Reset() {
	*x = PerformEpisodeActionRequest{}
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *PerformEpisodeActionRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PerformEpisodeActionRequest) ProtoMessage() {}

func (x *PerformEpisodeActionRequest) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[15]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PerformEpisodeActionRequest.ProtoReflect.Descriptor instead.
func (*PerformEpisodeActionRequest) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_video_v1_episode_service_proto_rawDescGZIP(), []int{15}
}

func (x *PerformEpisodeActionRequest) GetAction() isPerformEpisodeActionRequest_Action {
	if x != nil {
		return x.Action
	}
	return nil
}

func (x *PerformEpisodeActionRequest) GetPublish() *PublishEpisodeAction {
	if x != nil {
		if x, ok := x.Action.(*PerformEpisodeActionRequest_Publish); ok {
			return x.Publish
		}
	}
	return nil
}

func (x *PerformEpisodeActionRequest) GetUnpublish() *UnpublishEpisodeAction {
	if x != nil {
		if x, ok := x.Action.(*PerformEpisodeActionRequest_Unpublish); ok {
			return x.Unpublish
		}
	}
	return nil
}

func (x *PerformEpisodeActionRequest) GetEpisodeId() string {
	if x != nil {
		return x.EpisodeId
	}
	return ""
}

type isPerformEpisodeActionRequest_Action interface {
	isPerformEpisodeActionRequest_Action()
}

type PerformEpisodeActionRequest_Publish struct {
	// Publish the episode, making it available for watching.
	// Changes the episode's visibility status to PUBLISHED.
	Publish *PublishEpisodeAction `protobuf:"bytes,1002,opt,name=publish,proto3,oneof"`
}

type PerformEpisodeActionRequest_Unpublish struct {
	// Unpublish the episode, making it unavailable for watching.
	// Changes the episode's visibility status to UNPUBLISHED.
	Unpublish *UnpublishEpisodeAction `protobuf:"bytes,1003,opt,name=unpublish,proto3,oneof"`
}

func (*PerformEpisodeActionRequest_Publish) isPerformEpisodeActionRequest_Action() {}

func (*PerformEpisodeActionRequest_Unpublish) isPerformEpisodeActionRequest_Action() {}

// Parameters for the publish action.
type PublishEpisodeAction struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *PublishEpisodeAction) Reset() {
	*x = PublishEpisodeAction{}
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *PublishEpisodeAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PublishEpisodeAction) ProtoMessage() {}

func (x *PublishEpisodeAction) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[16]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PublishEpisodeAction.ProtoReflect.Descriptor instead.
func (*PublishEpisodeAction) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_video_v1_episode_service_proto_rawDescGZIP(), []int{16}
}

// Parameters for the unpublish action.
type UnpublishEpisodeAction struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UnpublishEpisodeAction) Reset() {
	*x = UnpublishEpisodeAction{}
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UnpublishEpisodeAction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UnpublishEpisodeAction) ProtoMessage() {}

func (x *UnpublishEpisodeAction) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[17]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UnpublishEpisodeAction.ProtoReflect.Descriptor instead.
func (*UnpublishEpisodeAction) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_video_v1_episode_service_proto_rawDescGZIP(), []int{17}
}

type PerformEpisodeActionMetadata struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// ID of the episode on which the action is being performed.
	// This identifier can be used to track the action operation
	// and to verify that the action is being applied to the correct episode.
	EpisodeId     string `protobuf:"bytes,1,opt,name=episode_id,json=episodeId,proto3" json:"episode_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *PerformEpisodeActionMetadata) Reset() {
	*x = PerformEpisodeActionMetadata{}
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *PerformEpisodeActionMetadata) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PerformEpisodeActionMetadata) ProtoMessage() {}

func (x *PerformEpisodeActionMetadata) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[18]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PerformEpisodeActionMetadata.ProtoReflect.Descriptor instead.
func (*PerformEpisodeActionMetadata) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_video_v1_episode_service_proto_rawDescGZIP(), []int{18}
}

func (x *PerformEpisodeActionMetadata) GetEpisodeId() string {
	if x != nil {
		return x.EpisodeId
	}
	return ""
}

type GetEpisodePlayerURLRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// ID of the episode for which to generate a player URL.
	EpisodeId string `protobuf:"bytes,1,opt,name=episode_id,json=episodeId,proto3" json:"episode_id,omitempty"`
	// Optional player parameters to customize the playback experience.
	// These parameters control initial player state such as mute, autoplay, and visibility of interface controls.
	Params *EpisodePlayerParams `protobuf:"bytes,2,opt,name=params,proto3" json:"params,omitempty"`
	// For episodes with signed URL access, specifies how long the generated URL will be valid.
	// If not provided, a default expiration duration will be used.
	SignedUrlExpirationDuration *durationpb.Duration `protobuf:"bytes,3,opt,name=signed_url_expiration_duration,json=signedUrlExpirationDuration,proto3" json:"signed_url_expiration_duration,omitempty"`
	unknownFields               protoimpl.UnknownFields
	sizeCache                   protoimpl.SizeCache
}

func (x *GetEpisodePlayerURLRequest) Reset() {
	*x = GetEpisodePlayerURLRequest{}
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetEpisodePlayerURLRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetEpisodePlayerURLRequest) ProtoMessage() {}

func (x *GetEpisodePlayerURLRequest) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[19]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetEpisodePlayerURLRequest.ProtoReflect.Descriptor instead.
func (*GetEpisodePlayerURLRequest) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_video_v1_episode_service_proto_rawDescGZIP(), []int{19}
}

func (x *GetEpisodePlayerURLRequest) GetEpisodeId() string {
	if x != nil {
		return x.EpisodeId
	}
	return ""
}

func (x *GetEpisodePlayerURLRequest) GetParams() *EpisodePlayerParams {
	if x != nil {
		return x.Params
	}
	return nil
}

func (x *GetEpisodePlayerURLRequest) GetSignedUrlExpirationDuration() *durationpb.Duration {
	if x != nil {
		return x.SignedUrlExpirationDuration
	}
	return nil
}

type EpisodePlayerParams struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// If true, the player will start with audio muted.
	// Users can unmute the audio manually after playback starts.
	Mute bool `protobuf:"varint,1,opt,name=mute,proto3" json:"mute,omitempty"`
	// If true, the episode will start playing automatically when the player loads.
	// This may be subject to browser autoplay policies that restrict autoplay with sound.
	Autoplay bool `protobuf:"varint,2,opt,name=autoplay,proto3" json:"autoplay,omitempty"`
	// If true, the player interface controls will be hidden initially.
	// Users can typically reveal the controls by moving the mouse over the player.
	Hidden        bool `protobuf:"varint,3,opt,name=hidden,proto3" json:"hidden,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *EpisodePlayerParams) Reset() {
	*x = EpisodePlayerParams{}
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *EpisodePlayerParams) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*EpisodePlayerParams) ProtoMessage() {}

func (x *EpisodePlayerParams) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[20]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use EpisodePlayerParams.ProtoReflect.Descriptor instead.
func (*EpisodePlayerParams) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_video_v1_episode_service_proto_rawDescGZIP(), []int{20}
}

func (x *EpisodePlayerParams) GetMute() bool {
	if x != nil {
		return x.Mute
	}
	return false
}

func (x *EpisodePlayerParams) GetAutoplay() bool {
	if x != nil {
		return x.Autoplay
	}
	return false
}

func (x *EpisodePlayerParams) GetHidden() bool {
	if x != nil {
		return x.Hidden
	}
	return false
}

type GetEpisodePlayerURLResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Direct URL to the episode player.
	// This URL can be used to access the episode in a web browser
	// or shared with users who have appropriate permissions.
	PlayerUrl string `protobuf:"bytes,1,opt,name=player_url,json=playerUrl,proto3" json:"player_url,omitempty"`
	// HTML embed code in iframe format that can be inserted into web pages.
	// This code allows the episode to be embedded directly in third-party websites.
	Html          string `protobuf:"bytes,2,opt,name=html,proto3" json:"html,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetEpisodePlayerURLResponse) Reset() {
	*x = GetEpisodePlayerURLResponse{}
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetEpisodePlayerURLResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetEpisodePlayerURLResponse) ProtoMessage() {}

func (x *GetEpisodePlayerURLResponse) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[21]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetEpisodePlayerURLResponse.ProtoReflect.Descriptor instead.
func (*GetEpisodePlayerURLResponse) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_video_v1_episode_service_proto_rawDescGZIP(), []int{21}
}

func (x *GetEpisodePlayerURLResponse) GetPlayerUrl() string {
	if x != nil {
		return x.PlayerUrl
	}
	return ""
}

func (x *GetEpisodePlayerURLResponse) GetHtml() string {
	if x != nil {
		return x.Html
	}
	return ""
}

type GetEpisodeManifestsRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// ID of the episode for which to retrieve manifest URLs.
	EpisodeId     string `protobuf:"bytes,1,opt,name=episode_id,json=episodeId,proto3" json:"episode_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetEpisodeManifestsRequest) Reset() {
	*x = GetEpisodeManifestsRequest{}
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetEpisodeManifestsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetEpisodeManifestsRequest) ProtoMessage() {}

func (x *GetEpisodeManifestsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[22]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetEpisodeManifestsRequest.ProtoReflect.Descriptor instead.
func (*GetEpisodeManifestsRequest) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_video_v1_episode_service_proto_rawDescGZIP(), []int{22}
}

func (x *GetEpisodeManifestsRequest) GetEpisodeId() string {
	if x != nil {
		return x.EpisodeId
	}
	return ""
}

type GetEpisodeManifestsResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// List of manifests available for the episode.
	// Different manifests may represent different streaming formats (e.g., HLS, DASH)
	Manifests     []*Manifest `protobuf:"bytes,1,rep,name=manifests,proto3" json:"manifests,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetEpisodeManifestsResponse) Reset() {
	*x = GetEpisodeManifestsResponse{}
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetEpisodeManifestsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetEpisodeManifestsResponse) ProtoMessage() {}

func (x *GetEpisodeManifestsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_video_v1_episode_service_proto_msgTypes[23]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetEpisodeManifestsResponse.ProtoReflect.Descriptor instead.
func (*GetEpisodeManifestsResponse) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_video_v1_episode_service_proto_rawDescGZIP(), []int{23}
}

func (x *GetEpisodeManifestsResponse) GetManifests() []*Manifest {
	if x != nil {
		return x.Manifests
	}
	return nil
}

var File_yandex_cloud_video_v1_episode_service_proto protoreflect.FileDescriptor

const file_yandex_cloud_video_v1_episode_service_proto_rawDesc = "" +
	"\n" +
	"+yandex/cloud/video/v1/episode_service.proto\x12\x15yandex.cloud.video.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1egoogle/protobuf/duration.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a yandex/cloud/api/operation.proto\x1a&yandex/cloud/operation/operation.proto\x1a\x1dyandex/cloud/validation.proto\x1a#yandex/cloud/video/v1/episode.proto\x1a$yandex/cloud/video/v1/manifest.proto\"@\n" +
	"\x11GetEpisodeRequest\x12+\n" +
	"\n" +
	"episode_id\x18\x01 \x01(\tB\f\xe8\xc71\x01\x8a\xc81\x04<=50R\tepisodeId\"\x99\x02\n" +
	"\x13ListEpisodesRequest\x12'\n" +
	"\tstream_id\x18\x01 \x01(\tB\b\x8a\xc81\x04<=50H\x00R\bstreamId\x12#\n" +
	"\aline_id\x18\x02 \x01(\tB\b\x8a\xc81\x04<=50H\x00R\x06lineId\x12&\n" +
	"\tpage_size\x18d \x01(\x03B\t\xfa\xc71\x05<=100R\bpageSize\x12*\n" +
	"\n" +
	"page_token\x18e \x01(\tB\v\x8a\xc81\a<=15000R\tpageToken\x12#\n" +
	"\border_by\x18f \x01(\tB\b\x8a\xc81\x04<=50R\aorderBy\x12\"\n" +
	"\x06filter\x18g \x01(\tB\n" +
	"\x8a\xc81\x06<=1000R\x06filterB\x11\n" +
	"\tparent_id\x12\x04\xc0\xc11\x01J\x04\b\x03\x10d\"\x80\x01\n" +
	"\x14ListEpisodesResponse\x12:\n" +
	"\bepisodes\x18\x01 \x03(\v2\x1e.yandex.cloud.video.v1.EpisodeR\bepisodes\x12&\n" +
	"\x0fnext_page_token\x18d \x01(\tR\rnextPageTokenJ\x04\b\x02\x10d\"z\n" +
	"\x17BatchGetEpisodesRequest\x12+\n" +
	"\n" +
	"channel_id\x18\x01 \x01(\tB\f\xe8\xc71\x01\x8a\xc81\x04<=50R\tchannelId\x122\n" +
	"\vepisode_ids\x18\x02 \x03(\tB\x11\x82\xc81\x051-100\x8a\xc81\x04<=50R\n" +
	"episodeIds\"V\n" +
	"\x18BatchGetEpisodesResponse\x12:\n" +
	"\bepisodes\x18\x01 \x03(\v2\x1e.yandex.cloud.video.v1.EpisodeR\bepisodes\"\xac\x05\n" +
	"\x14CreateEpisodeRequest\x12'\n" +
	"\tstream_id\x18d \x01(\tB\b\x8a\xc81\x04<=50H\x00R\bstreamId\x12#\n" +
	"\aline_id\x18e \x01(\tB\b\x8a\xc81\x04<=50H\x00R\x06lineId\x12X\n" +
	"\rpublic_access\x18\xe8\a \x01(\v20.yandex.cloud.video.v1.EpisodePublicAccessParamsH\x01R\fpublicAccess\x12\\\n" +
	"\x0fsign_url_access\x18\xeb\a \x01(\v21.yandex.cloud.video.v1.EpisodeSignURLAccessParamsH\x01R\rsignUrlAccess\x12#\n" +
	"\x05title\x18\x02 \x01(\tB\r\xe8\xc71\x01\x8a\xc81\x05<=300R\x05title\x12,\n" +
	"\vdescription\x18\x03 \x01(\tB\n" +
	"\x8a\xc81\x06<=5000R\vdescription\x12+\n" +
	"\fthumbnail_id\x18\x04 \x01(\tB\b\x8a\xc81\x04<=50R\vthumbnailId\x129\n" +
	"\n" +
	"start_time\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\tstartTime\x12;\n" +
	"\vfinish_time\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\n" +
	"finishTime\x12\x1f\n" +
	"\vdvr_seconds\x18\a \x01(\x03R\n" +
	"dvrSeconds\x120\n" +
	"\x0fstyle_preset_id\x18\b \x01(\tB\b\x8a\xc81\x04<=50R\rstylePresetIdB\x11\n" +
	"\tparent_id\x12\x04\xc0\xc11\x01B\x15\n" +
	"\raccess_rights\x12\x04\xc0\xc11\x01J\x04\b\x01\x10\x02J\x04\b\t\x10dJ\x05\bf\x10\xe8\aJ\x06\b\xe9\a\x10\xeb\a\"\x1b\n" +
	"\x19EpisodePublicAccessParams\"\x1c\n" +
	"\x1aEpisodeSignURLAccessParams\"6\n" +
	"\x15CreateEpisodeMetadata\x12\x1d\n" +
	"\n" +
	"episode_id\x18\x01 \x01(\tR\tepisodeId\"\xa3\x05\n" +
	"\x14UpdateEpisodeRequest\x12X\n" +
	"\rpublic_access\x18\xe8\a \x01(\v20.yandex.cloud.video.v1.EpisodePublicAccessParamsH\x00R\fpublicAccess\x12\\\n" +
	"\x0fsign_url_access\x18\xeb\a \x01(\v21.yandex.cloud.video.v1.EpisodeSignURLAccessParamsH\x00R\rsignUrlAccess\x12+\n" +
	"\n" +
	"episode_id\x18\x01 \x01(\tB\f\xe8\xc71\x01\x8a\xc81\x04<=50R\tepisodeId\x12?\n" +
	"\n" +
	"field_mask\x18\x02 \x01(\v2\x1a.google.protobuf.FieldMaskB\x04\xe8\xc71\x01R\tfieldMask\x12\x1f\n" +
	"\x05title\x18\x03 \x01(\tB\t\x8a\xc81\x05<=300R\x05title\x12,\n" +
	"\vdescription\x18\x04 \x01(\tB\n" +
	"\x8a\xc81\x06<=5000R\vdescription\x12+\n" +
	"\fthumbnail_id\x18\x05 \x01(\tB\b\x8a\xc81\x04<=50R\vthumbnailId\x129\n" +
	"\n" +
	"start_time\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\tstartTime\x12;\n" +
	"\vfinish_time\x18\a \x01(\v2\x1a.google.protobuf.TimestampR\n" +
	"finishTime\x12\x1f\n" +
	"\vdvr_seconds\x18\b \x01(\x03R\n" +
	"dvrSeconds\x120\n" +
	"\x0fstyle_preset_id\x18\t \x01(\tB\b\x8a\xc81\x04<=50R\rstylePresetIdB\x0f\n" +
	"\raccess_rightsJ\x05\b\n" +
	"\x10\xe8\aJ\x06\b\xe9\a\x10\xeb\a\"6\n" +
	"\x15UpdateEpisodeMetadata\x12\x1d\n" +
	"\n" +
	"episode_id\x18\x01 \x01(\tR\tepisodeId\"C\n" +
	"\x14DeleteEpisodeRequest\x12+\n" +
	"\n" +
	"episode_id\x18\x01 \x01(\tB\f\xe8\xc71\x01\x8a\xc81\x04<=50R\tepisodeId\"6\n" +
	"\x15DeleteEpisodeMetadata\x12\x1d\n" +
	"\n" +
	"episode_id\x18\x01 \x01(\tR\tepisodeId\"\xb0\x01\n" +
	"\x1aBatchDeleteEpisodesRequest\x12'\n" +
	"\tstream_id\x18d \x01(\tB\b\x8a\xc81\x04<=50H\x00R\bstreamId\x12#\n" +
	"\aline_id\x18e \x01(\tB\b\x8a\xc81\x04<=50H\x00R\x06lineId\x122\n" +
	"\vepisode_ids\x18\x01 \x03(\tB\x11\x82\xc81\x051-100\x8a\xc81\x04<=50R\n" +
	"episodeIdsB\n" +
	"\n" +
	"\x02id\x12\x04\xc0\xc11\x01J\x04\b\x02\x10d\">\n" +
	"\x1bBatchDeleteEpisodesMetadata\x12\x1f\n" +
	"\vepisode_ids\x18\x01 \x03(\tR\n" +
	"episodeIds\"\xfb\x01\n" +
	"\x1bPerformEpisodeActionRequest\x12H\n" +
	"\apublish\x18\xea\a \x01(\v2+.yandex.cloud.video.v1.PublishEpisodeActionH\x00R\apublish\x12N\n" +
	"\tunpublish\x18\xeb\a \x01(\v2-.yandex.cloud.video.v1.UnpublishEpisodeActionH\x00R\tunpublish\x12+\n" +
	"\n" +
	"episode_id\x18\x01 \x01(\tB\f\xe8\xc71\x01\x8a\xc81\x04<=50R\tepisodeIdB\x0e\n" +
	"\x06action\x12\x04\xc0\xc11\x01J\x05\b\x02\x10\xea\a\"\x16\n" +
	"\x14PublishEpisodeAction\"\x18\n" +
	"\x16UnpublishEpisodeAction\"=\n" +
	"\x1cPerformEpisodeActionMetadata\x12\x1d\n" +
	"\n" +
	"episode_id\x18\x01 \x01(\tR\tepisodeId\"\xed\x01\n" +
	"\x1aGetEpisodePlayerURLRequest\x12+\n" +
	"\n" +
	"episode_id\x18\x01 \x01(\tB\f\xe8\xc71\x01\x8a\xc81\x04<=50R\tepisodeId\x12B\n" +
	"\x06params\x18\x02 \x01(\v2*.yandex.cloud.video.v1.EpisodePlayerParamsR\x06params\x12^\n" +
	"\x1esigned_url_expiration_duration\x18\x03 \x01(\v2\x19.google.protobuf.DurationR\x1bsignedUrlExpirationDuration\"]\n" +
	"\x13EpisodePlayerParams\x12\x12\n" +
	"\x04mute\x18\x01 \x01(\bR\x04mute\x12\x1a\n" +
	"\bautoplay\x18\x02 \x01(\bR\bautoplay\x12\x16\n" +
	"\x06hidden\x18\x03 \x01(\bR\x06hidden\"P\n" +
	"\x1bGetEpisodePlayerURLResponse\x12\x1d\n" +
	"\n" +
	"player_url\x18\x01 \x01(\tR\tplayerUrl\x12\x12\n" +
	"\x04html\x18\x02 \x01(\tR\x04html\"I\n" +
	"\x1aGetEpisodeManifestsRequest\x12+\n" +
	"\n" +
	"episode_id\x18\x01 \x01(\tB\f\xe8\xc71\x01\x8a\xc81\x04<=50R\tepisodeId\"\\\n" +
	"\x1bGetEpisodeManifestsResponse\x12=\n" +
	"\tmanifests\x18\x01 \x03(\v2\x1f.yandex.cloud.video.v1.ManifestR\tmanifests2\xe6\f\n" +
	"\x0eEpisodeService\x12x\n" +
	"\x03Get\x12(.yandex.cloud.video.v1.GetEpisodeRequest\x1a\x1e.yandex.cloud.video.v1.Episode\"'\x82\xd3\xe4\x93\x02!\x12\x1f/video/v1/episodes/{episode_id}\x12{\n" +
	"\x04List\x12*.yandex.cloud.video.v1.ListEpisodesRequest\x1a+.yandex.cloud.video.v1.ListEpisodesResponse\"\x1a\x82\xd3\xe4\x93\x02\x14\x12\x12/video/v1/episodes\x12\x93\x01\n" +
	"\bBatchGet\x12..yandex.cloud.video.v1.BatchGetEpisodesRequest\x1a/.yandex.cloud.video.v1.BatchGetEpisodesResponse\"&\x82\xd3\xe4\x93\x02 :\x01*\"\x1b/video/v1/episodes:batchGet\x12\x9b\x01\n" +
	"\x06Create\x12+.yandex.cloud.video.v1.CreateEpisodeRequest\x1a!.yandex.cloud.operation.Operation\"A\xb2\xd2* \n" +
	"\x15CreateEpisodeMetadata\x12\aEpisode\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/video/v1/episodes\x12\xa8\x01\n" +
	"\x06Update\x12+.yandex.cloud.video.v1.UpdateEpisodeRequest\x1a!.yandex.cloud.operation.Operation\"N\xb2\xd2* \n" +
	"\x15UpdateEpisodeMetadata\x12\aEpisode\x82\xd3\xe4\x93\x02$:\x01*2\x1f/video/v1/episodes/{episode_id}\x12\xb3\x01\n" +
	"\x06Delete\x12+.yandex.cloud.video.v1.DeleteEpisodeRequest\x1a!.yandex.cloud.operation.Operation\"Y\xb2\xd2*.\n" +
	"\x15DeleteEpisodeMetadata\x12\x15google.protobuf.Empty\x82\xd3\xe4\x93\x02!*\x1f/video/v1/episodes/{episode_id}\x12\x9d\x01\n" +
	"\vBatchDelete\x121.yandex.cloud.video.v1.BatchDeleteEpisodesRequest\x1a!.yandex.cloud.operation.Operation\"8\xb2\xd2*4\n" +
	"\x1bBatchDeleteEpisodesMetadata\x12\x15google.protobuf.Empty\x12\xcb\x01\n" +
	"\rPerformAction\x122.yandex.cloud.video.v1.PerformEpisodeActionRequest\x1a!.yandex.cloud.operation.Operation\"c\xb2\xd2*'\n" +
	"\x1cPerformEpisodeActionMetadata\x12\aEpisode\x82\xd3\xe4\x93\x022:\x01*\"-/video/v1/episodes/{episode_id}:performAction\x12\xab\x01\n" +
	"\fGetPlayerURL\x121.yandex.cloud.video.v1.GetEpisodePlayerURLRequest\x1a2.yandex.cloud.video.v1.GetEpisodePlayerURLResponse\"4\x82\xd3\xe4\x93\x02.\x12,/video/v1/episodes/{episode_id}:getPlayerUrl\x12\xab\x01\n" +
	"\fGetManifests\x121.yandex.cloud.video.v1.GetEpisodeManifestsRequest\x1a2.yandex.cloud.video.v1.GetEpisodeManifestsResponse\"4\x82\xd3\xe4\x93\x02.\x12,/video/v1/episodes/{episode_id}:getManifestsB\\\n" +
	"\x19yandex.cloud.api.video.v1Z?github.com/yandex-cloud/go-genproto/yandex/cloud/video/v1;videob\x06proto3"

var (
	file_yandex_cloud_video_v1_episode_service_proto_rawDescOnce sync.Once
	file_yandex_cloud_video_v1_episode_service_proto_rawDescData []byte
)

func file_yandex_cloud_video_v1_episode_service_proto_rawDescGZIP() []byte {
	file_yandex_cloud_video_v1_episode_service_proto_rawDescOnce.Do(func() {
		file_yandex_cloud_video_v1_episode_service_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_yandex_cloud_video_v1_episode_service_proto_rawDesc), len(file_yandex_cloud_video_v1_episode_service_proto_rawDesc)))
	})
	return file_yandex_cloud_video_v1_episode_service_proto_rawDescData
}

var file_yandex_cloud_video_v1_episode_service_proto_msgTypes = make([]protoimpl.MessageInfo, 24)
var file_yandex_cloud_video_v1_episode_service_proto_goTypes = []any{
	(*GetEpisodeRequest)(nil),            // 0: yandex.cloud.video.v1.GetEpisodeRequest
	(*ListEpisodesRequest)(nil),          // 1: yandex.cloud.video.v1.ListEpisodesRequest
	(*ListEpisodesResponse)(nil),         // 2: yandex.cloud.video.v1.ListEpisodesResponse
	(*BatchGetEpisodesRequest)(nil),      // 3: yandex.cloud.video.v1.BatchGetEpisodesRequest
	(*BatchGetEpisodesResponse)(nil),     // 4: yandex.cloud.video.v1.BatchGetEpisodesResponse
	(*CreateEpisodeRequest)(nil),         // 5: yandex.cloud.video.v1.CreateEpisodeRequest
	(*EpisodePublicAccessParams)(nil),    // 6: yandex.cloud.video.v1.EpisodePublicAccessParams
	(*EpisodeSignURLAccessParams)(nil),   // 7: yandex.cloud.video.v1.EpisodeSignURLAccessParams
	(*CreateEpisodeMetadata)(nil),        // 8: yandex.cloud.video.v1.CreateEpisodeMetadata
	(*UpdateEpisodeRequest)(nil),         // 9: yandex.cloud.video.v1.UpdateEpisodeRequest
	(*UpdateEpisodeMetadata)(nil),        // 10: yandex.cloud.video.v1.UpdateEpisodeMetadata
	(*DeleteEpisodeRequest)(nil),         // 11: yandex.cloud.video.v1.DeleteEpisodeRequest
	(*DeleteEpisodeMetadata)(nil),        // 12: yandex.cloud.video.v1.DeleteEpisodeMetadata
	(*BatchDeleteEpisodesRequest)(nil),   // 13: yandex.cloud.video.v1.BatchDeleteEpisodesRequest
	(*BatchDeleteEpisodesMetadata)(nil),  // 14: yandex.cloud.video.v1.BatchDeleteEpisodesMetadata
	(*PerformEpisodeActionRequest)(nil),  // 15: yandex.cloud.video.v1.PerformEpisodeActionRequest
	(*PublishEpisodeAction)(nil),         // 16: yandex.cloud.video.v1.PublishEpisodeAction
	(*UnpublishEpisodeAction)(nil),       // 17: yandex.cloud.video.v1.UnpublishEpisodeAction
	(*PerformEpisodeActionMetadata)(nil), // 18: yandex.cloud.video.v1.PerformEpisodeActionMetadata
	(*GetEpisodePlayerURLRequest)(nil),   // 19: yandex.cloud.video.v1.GetEpisodePlayerURLRequest
	(*EpisodePlayerParams)(nil),          // 20: yandex.cloud.video.v1.EpisodePlayerParams
	(*GetEpisodePlayerURLResponse)(nil),  // 21: yandex.cloud.video.v1.GetEpisodePlayerURLResponse
	(*GetEpisodeManifestsRequest)(nil),   // 22: yandex.cloud.video.v1.GetEpisodeManifestsRequest
	(*GetEpisodeManifestsResponse)(nil),  // 23: yandex.cloud.video.v1.GetEpisodeManifestsResponse
	(*Episode)(nil),                      // 24: yandex.cloud.video.v1.Episode
	(*timestamppb.Timestamp)(nil),        // 25: google.protobuf.Timestamp
	(*fieldmaskpb.FieldMask)(nil),        // 26: google.protobuf.FieldMask
	(*durationpb.Duration)(nil),          // 27: google.protobuf.Duration
	(*Manifest)(nil),                     // 28: yandex.cloud.video.v1.Manifest
	(*operation.Operation)(nil),          // 29: yandex.cloud.operation.Operation
}
var file_yandex_cloud_video_v1_episode_service_proto_depIdxs = []int32{
	24, // 0: yandex.cloud.video.v1.ListEpisodesResponse.episodes:type_name -> yandex.cloud.video.v1.Episode
	24, // 1: yandex.cloud.video.v1.BatchGetEpisodesResponse.episodes:type_name -> yandex.cloud.video.v1.Episode
	6,  // 2: yandex.cloud.video.v1.CreateEpisodeRequest.public_access:type_name -> yandex.cloud.video.v1.EpisodePublicAccessParams
	7,  // 3: yandex.cloud.video.v1.CreateEpisodeRequest.sign_url_access:type_name -> yandex.cloud.video.v1.EpisodeSignURLAccessParams
	25, // 4: yandex.cloud.video.v1.CreateEpisodeRequest.start_time:type_name -> google.protobuf.Timestamp
	25, // 5: yandex.cloud.video.v1.CreateEpisodeRequest.finish_time:type_name -> google.protobuf.Timestamp
	6,  // 6: yandex.cloud.video.v1.UpdateEpisodeRequest.public_access:type_name -> yandex.cloud.video.v1.EpisodePublicAccessParams
	7,  // 7: yandex.cloud.video.v1.UpdateEpisodeRequest.sign_url_access:type_name -> yandex.cloud.video.v1.EpisodeSignURLAccessParams
	26, // 8: yandex.cloud.video.v1.UpdateEpisodeRequest.field_mask:type_name -> google.protobuf.FieldMask
	25, // 9: yandex.cloud.video.v1.UpdateEpisodeRequest.start_time:type_name -> google.protobuf.Timestamp
	25, // 10: yandex.cloud.video.v1.UpdateEpisodeRequest.finish_time:type_name -> google.protobuf.Timestamp
	16, // 11: yandex.cloud.video.v1.PerformEpisodeActionRequest.publish:type_name -> yandex.cloud.video.v1.PublishEpisodeAction
	17, // 12: yandex.cloud.video.v1.PerformEpisodeActionRequest.unpublish:type_name -> yandex.cloud.video.v1.UnpublishEpisodeAction
	20, // 13: yandex.cloud.video.v1.GetEpisodePlayerURLRequest.params:type_name -> yandex.cloud.video.v1.EpisodePlayerParams
	27, // 14: yandex.cloud.video.v1.GetEpisodePlayerURLRequest.signed_url_expiration_duration:type_name -> google.protobuf.Duration
	28, // 15: yandex.cloud.video.v1.GetEpisodeManifestsResponse.manifests:type_name -> yandex.cloud.video.v1.Manifest
	0,  // 16: yandex.cloud.video.v1.EpisodeService.Get:input_type -> yandex.cloud.video.v1.GetEpisodeRequest
	1,  // 17: yandex.cloud.video.v1.EpisodeService.List:input_type -> yandex.cloud.video.v1.ListEpisodesRequest
	3,  // 18: yandex.cloud.video.v1.EpisodeService.BatchGet:input_type -> yandex.cloud.video.v1.BatchGetEpisodesRequest
	5,  // 19: yandex.cloud.video.v1.EpisodeService.Create:input_type -> yandex.cloud.video.v1.CreateEpisodeRequest
	9,  // 20: yandex.cloud.video.v1.EpisodeService.Update:input_type -> yandex.cloud.video.v1.UpdateEpisodeRequest
	11, // 21: yandex.cloud.video.v1.EpisodeService.Delete:input_type -> yandex.cloud.video.v1.DeleteEpisodeRequest
	13, // 22: yandex.cloud.video.v1.EpisodeService.BatchDelete:input_type -> yandex.cloud.video.v1.BatchDeleteEpisodesRequest
	15, // 23: yandex.cloud.video.v1.EpisodeService.PerformAction:input_type -> yandex.cloud.video.v1.PerformEpisodeActionRequest
	19, // 24: yandex.cloud.video.v1.EpisodeService.GetPlayerURL:input_type -> yandex.cloud.video.v1.GetEpisodePlayerURLRequest
	22, // 25: yandex.cloud.video.v1.EpisodeService.GetManifests:input_type -> yandex.cloud.video.v1.GetEpisodeManifestsRequest
	24, // 26: yandex.cloud.video.v1.EpisodeService.Get:output_type -> yandex.cloud.video.v1.Episode
	2,  // 27: yandex.cloud.video.v1.EpisodeService.List:output_type -> yandex.cloud.video.v1.ListEpisodesResponse
	4,  // 28: yandex.cloud.video.v1.EpisodeService.BatchGet:output_type -> yandex.cloud.video.v1.BatchGetEpisodesResponse
	29, // 29: yandex.cloud.video.v1.EpisodeService.Create:output_type -> yandex.cloud.operation.Operation
	29, // 30: yandex.cloud.video.v1.EpisodeService.Update:output_type -> yandex.cloud.operation.Operation
	29, // 31: yandex.cloud.video.v1.EpisodeService.Delete:output_type -> yandex.cloud.operation.Operation
	29, // 32: yandex.cloud.video.v1.EpisodeService.BatchDelete:output_type -> yandex.cloud.operation.Operation
	29, // 33: yandex.cloud.video.v1.EpisodeService.PerformAction:output_type -> yandex.cloud.operation.Operation
	21, // 34: yandex.cloud.video.v1.EpisodeService.GetPlayerURL:output_type -> yandex.cloud.video.v1.GetEpisodePlayerURLResponse
	23, // 35: yandex.cloud.video.v1.EpisodeService.GetManifests:output_type -> yandex.cloud.video.v1.GetEpisodeManifestsResponse
	26, // [26:36] is the sub-list for method output_type
	16, // [16:26] is the sub-list for method input_type
	16, // [16:16] is the sub-list for extension type_name
	16, // [16:16] is the sub-list for extension extendee
	0,  // [0:16] is the sub-list for field type_name
}

func init() { file_yandex_cloud_video_v1_episode_service_proto_init() }
func file_yandex_cloud_video_v1_episode_service_proto_init() {
	if File_yandex_cloud_video_v1_episode_service_proto != nil {
		return
	}
	file_yandex_cloud_video_v1_episode_proto_init()
	file_yandex_cloud_video_v1_manifest_proto_init()
	file_yandex_cloud_video_v1_episode_service_proto_msgTypes[1].OneofWrappers = []any{
		(*ListEpisodesRequest_StreamId)(nil),
		(*ListEpisodesRequest_LineId)(nil),
	}
	file_yandex_cloud_video_v1_episode_service_proto_msgTypes[5].OneofWrappers = []any{
		(*CreateEpisodeRequest_StreamId)(nil),
		(*CreateEpisodeRequest_LineId)(nil),
		(*CreateEpisodeRequest_PublicAccess)(nil),
		(*CreateEpisodeRequest_SignUrlAccess)(nil),
	}
	file_yandex_cloud_video_v1_episode_service_proto_msgTypes[9].OneofWrappers = []any{
		(*UpdateEpisodeRequest_PublicAccess)(nil),
		(*UpdateEpisodeRequest_SignUrlAccess)(nil),
	}
	file_yandex_cloud_video_v1_episode_service_proto_msgTypes[13].OneofWrappers = []any{
		(*BatchDeleteEpisodesRequest_StreamId)(nil),
		(*BatchDeleteEpisodesRequest_LineId)(nil),
	}
	file_yandex_cloud_video_v1_episode_service_proto_msgTypes[15].OneofWrappers = []any{
		(*PerformEpisodeActionRequest_Publish)(nil),
		(*PerformEpisodeActionRequest_Unpublish)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_yandex_cloud_video_v1_episode_service_proto_rawDesc), len(file_yandex_cloud_video_v1_episode_service_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   24,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_yandex_cloud_video_v1_episode_service_proto_goTypes,
		DependencyIndexes: file_yandex_cloud_video_v1_episode_service_proto_depIdxs,
		MessageInfos:      file_yandex_cloud_video_v1_episode_service_proto_msgTypes,
	}.Build()
	File_yandex_cloud_video_v1_episode_service_proto = out.File
	file_yandex_cloud_video_v1_episode_service_proto_goTypes = nil
	file_yandex_cloud_video_v1_episode_service_proto_depIdxs = nil
}
