1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
// This file is @generated by prost-build.
/// Logs of activities related to the Channels.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChannelActivity {
    /// Message is for more details of the log and instructions to users.
    #[prost(string, tag = "1")]
    pub message: ::prost::alloc::string::String,
    /// Different types of the logs.
    #[prost(oneof = "channel_activity::ActivityType", tags = "2, 3, 4, 5, 6, 7, 8")]
    pub activity_type: ::core::option::Option<channel_activity::ActivityType>,
}
/// Nested message and enum types in `ChannelActivity`.
pub mod channel_activity {
    /// Different types of the logs.
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum ActivityType {
        /// The channel streaming state changes.
        #[prost(message, tag = "2")]
        StreamingStateChange(super::StreamingStateChange),
        /// An error happens with the video pipeline.
        #[prost(message, tag = "3")]
        StreamingError(super::StreamingError),
        /// The channel has accepted an input stream.
        #[prost(message, tag = "4")]
        InputAccept(super::InputAccept),
        /// An error happens with the input stream.
        #[prost(message, tag = "5")]
        InputError(super::InputError),
        /// An input stream disconnects.
        #[prost(message, tag = "6")]
        InputDisconnect(super::InputDisconnect),
        /// An event state changes.
        #[prost(message, tag = "7")]
        EventStateChange(super::EventStateChange),
        /// A SCTE35 command is received.
        #[prost(message, tag = "8")]
        Scte35CommandReceived(super::Scte35Command),
    }
}
/// StreamingStateChange records when the channel streaming state changes.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct StreamingStateChange {
    /// New streaming state of the channel.
    #[prost(enumeration = "super::super::v1::channel::StreamingState", tag = "1")]
    pub new_state: i32,
    /// Previous streaming state of the channel.
    #[prost(enumeration = "super::super::v1::channel::StreamingState", tag = "2")]
    pub previous_state: i32,
}
/// StreamingError records when an error happens with the video pipeline.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamingError {
    /// A description of the reason for the streaming error.
    #[prost(message, optional, tag = "1")]
    pub error: ::core::option::Option<super::super::super::super::super::rpc::Status>,
}
/// InputAccept records when the channel has accepted an input stream.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InputAccept {
    /// ID of the input stream.
    #[prost(string, tag = "1")]
    pub stream_id: ::prost::alloc::string::String,
    /// The user-defined key for the input attachment.
    #[prost(string, tag = "2")]
    pub input_attachment: ::prost::alloc::string::String,
    /// Properties of the input stream.
    #[prost(message, optional, tag = "3")]
    pub input_stream_property: ::core::option::Option<InputStreamProperty>,
}
/// InputError records when an error happens with the input stream.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InputError {
    /// ID of the input stream.
    #[prost(string, tag = "1")]
    pub stream_id: ::prost::alloc::string::String,
    /// The user-defined key for the input attachment. If the stream doesn’t belong
    /// to any input attachment, this field is empty.
    #[prost(string, tag = "2")]
    pub input_attachment: ::prost::alloc::string::String,
    /// Properties of the input stream.
    #[prost(message, optional, tag = "3")]
    pub input_stream_property: ::core::option::Option<InputStreamProperty>,
    /// A description of the reason for the error with the input stream.
    #[prost(message, optional, tag = "4")]
    pub error: ::core::option::Option<super::super::super::super::super::rpc::Status>,
}
/// Properties of the input stream.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InputStreamProperty {
    /// Properties of the video streams.
    #[prost(message, repeated, tag = "1")]
    pub video_streams: ::prost::alloc::vec::Vec<VideoStream>,
    /// Properties of the audio streams.
    #[prost(message, repeated, tag = "2")]
    pub audio_streams: ::prost::alloc::vec::Vec<AudioStream>,
}
/// Properties of the video stream.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VideoStream {
    /// Index of this video stream.
    #[prost(int32, tag = "1")]
    pub index: i32,
    /// Properties of the video format.
    #[prost(message, optional, tag = "2")]
    pub video_format: ::core::option::Option<VideoFormat>,
}
/// Properties of the video format.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VideoFormat {
    /// Video codec used in this video stream.
    #[prost(string, tag = "1")]
    pub codec: ::prost::alloc::string::String,
    /// The width of the video stream in pixels.
    #[prost(int32, tag = "2")]
    pub width_pixels: i32,
    /// The height of the video stream in pixels.
    #[prost(int32, tag = "3")]
    pub height_pixels: i32,
    /// The frame rate of the input video stream.
    #[prost(double, tag = "4")]
    pub frame_rate: f64,
}
/// Properties of the audio stream.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AudioStream {
    /// Index of this audio stream.
    #[prost(int32, tag = "1")]
    pub index: i32,
    /// Properties of the audio format.
    #[prost(message, optional, tag = "2")]
    pub audio_format: ::core::option::Option<AudioFormat>,
}
/// Properties of the audio format.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AudioFormat {
    /// Audio codec used in this audio stream.
    #[prost(string, tag = "1")]
    pub codec: ::prost::alloc::string::String,
    /// The number of audio channels.
    #[prost(int32, tag = "2")]
    pub channel_count: i32,
    /// A list of channel names specifying the layout of the audio channels.
    #[prost(string, repeated, tag = "3")]
    pub channel_layout: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
/// InputDisconnect records when an input stream disconnects.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InputDisconnect {
    /// ID of the input stream.
    #[prost(string, tag = "1")]
    pub stream_id: ::prost::alloc::string::String,
    /// The user-defined key for the input attachment.
    #[prost(string, tag = "2")]
    pub input_attachment: ::prost::alloc::string::String,
}
/// EventStateChange records when an Event state changes.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EventStateChange {
    /// Resource name of the event.
    #[prost(string, tag = "1")]
    pub event_id: ::prost::alloc::string::String,
    /// New state of the event.
    #[prost(enumeration = "super::super::v1::event::State", tag = "2")]
    pub new_state: i32,
    /// Previous state of the event.
    #[prost(enumeration = "super::super::v1::event::State", tag = "3")]
    pub previous_state: i32,
}
/// Scte35Command includes details of a received SCTE35 command.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Scte35Command {
    /// Information about the splice insert.
    #[prost(message, optional, tag = "1")]
    pub splice_info_section: ::core::option::Option<scte35_command::SpliceInfoSection>,
}
/// Nested message and enum types in `Scte35Command`.
pub mod scte35_command {
    /// SpliceTime contains information about the execution time of the splice
    /// insert.
    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
    pub struct SpliceTime {
        /// If true, the execution time of the splice insert is specified.
        #[prost(bool, tag = "1")]
        pub time_specified_flag: bool,
        /// The time of the splice insert.
        #[prost(int64, tag = "2")]
        pub pts_time: i64,
    }
    /// BreakDuration contains information about the duration of the splice
    /// insert.
    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
    pub struct BreakDuration {
        /// If true, the splice insert will automatically return upon finishing.
        #[prost(bool, tag = "1")]
        pub auto_return: bool,
        /// Duration of the splice insert.
        #[prost(int64, tag = "2")]
        pub duration: i64,
    }
    /// Fine grained control on the scte command insertion for a specific
    /// elementary stream. This is ignored if program_splice_flag is true.
    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
    pub struct Component {
        /// Elementary stream PID that the scte command should be inserted into.
        #[prost(int32, tag = "1")]
        pub component_tag: i32,
        /// The time of the insert.
        #[prost(message, optional, tag = "2")]
        pub splice_time: ::core::option::Option<SpliceTime>,
    }
    /// SpliceInsert contains information about the splice insert.
    #[derive(Clone, PartialEq, ::prost::Message)]
    pub struct SpliceInsert {
        /// Event ID of the scte command.
        #[prost(int32, tag = "1")]
        pub splice_event_id: i32,
        /// Whether this scte command is to cancel another scheduled scte command.
        #[prost(bool, tag = "2")]
        pub splice_event_cancel_indicator: bool,
        /// Whether this scte command is cueing out the current program.
        #[prost(bool, tag = "3")]
        pub out_of_network_indicator: bool,
        /// If true, send splice insert to all streams.
        #[prost(bool, tag = "4")]
        pub program_splice_flag: bool,
        /// If true, the duration of the event is specified.
        #[prost(bool, tag = "5")]
        pub duration_flag: bool,
        /// If true, the event should be executed immediately.
        #[prost(bool, tag = "6")]
        pub splice_immediate_flag: bool,
        /// Information about the execution time of the splice insert.
        #[prost(message, optional, tag = "7")]
        pub splice_time: ::core::option::Option<SpliceTime>,
        /// Information about the duration of the splice insert.
        #[prost(message, optional, tag = "8")]
        pub break_duration: ::core::option::Option<BreakDuration>,
        /// Unique ID for a viewing event.
        #[prost(int32, tag = "9")]
        pub unique_program_id: i32,
        /// ID for an avail within one unique_program_id.
        #[prost(int32, tag = "10")]
        pub avail_num: i32,
        /// The number of avails within the current viewing event.
        #[prost(int32, tag = "11")]
        pub avails_expected: i32,
        /// Number of components.
        #[prost(int32, tag = "12")]
        pub component_count: i32,
        /// Components of the program.
        #[prost(message, repeated, tag = "13")]
        pub components: ::prost::alloc::vec::Vec<Component>,
    }
    /// SpliceInfoSection contains information about the splice insert.
    #[derive(Clone, PartialEq, ::prost::Message)]
    pub struct SpliceInfoSection {
        /// Overflow of pts_time, when pts_time doesn't have enough bits
        /// to represent the time.
        #[prost(int64, tag = "1")]
        pub pts_adjustment: i64,
        /// Information about the splice insert.
        #[prost(message, optional, tag = "2")]
        pub splice_insert: ::core::option::Option<SpliceInsert>,
    }
}