livekit-server-sdk 0.5.6 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/banner_dark.png +0 -0
- data/.github/banner_light.png +0 -0
- data/Gemfile.lock +1 -1
- data/NOTICE +13 -0
- data/README.md +15 -10
- data/lib/livekit/egress_service_client.rb +41 -4
- data/lib/livekit/ingress_service_client.rb +7 -1
- data/lib/livekit/proto/livekit_egress_pb.rb +30 -262
- data/lib/livekit/proto/livekit_egress_twirp.rb +4 -2
- data/lib/livekit/proto/livekit_ingress_pb.rb +25 -120
- data/lib/livekit/proto/livekit_ingress_twirp.rb +1 -1
- data/lib/livekit/proto/livekit_models_pb.rb +27 -281
- data/lib/livekit/proto/livekit_models_twirp.rb +1 -1
- data/lib/livekit/proto/livekit_room_pb.rb +26 -75
- data/lib/livekit/proto/livekit_room_twirp.rb +1 -1
- data/lib/livekit/proto/livekit_webhook_pb.rb +27 -12
- data/lib/livekit/proto/livekit_webhook_twirp.rb +1 -1
- data/lib/livekit/room_service_client.rb +18 -2
- data/lib/livekit/version.rb +1 -1
- metadata +8 -7
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 8b58f808c349a7091f04fad6dc6cfb7c41a3de141018ec8092513102ff3f7eea
         | 
| 4 | 
            +
              data.tar.gz: 2ee2f7816d43aa52bd332e99e883b4ebf7bc598be1f64e17f862e472b925903b
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: ef2df5a94cf49ef4631723ccf1466c5cf476f097bea31c0a9ed7a0677dce66983e10c36b0f27134a99715cde351c06c4ba480f9b5a84ce4efd2bbd975dbc6123
         | 
| 7 | 
            +
              data.tar.gz: 95619bcb926a6461e22c00aa19f2194631d3a4c22d0b9003144609968685e91eb186b6bc1c72a1c79bf816baed20a37b7bb456ba9090fda115c44bd71e4c9bb4
         | 
    
        data/.github/banner_dark.png
    CHANGED
    
    | Binary file | 
    
        data/.github/banner_light.png
    CHANGED
    
    | Binary file | 
    
        data/Gemfile.lock
    CHANGED
    
    
    
        data/NOTICE
    ADDED
    
    | @@ -0,0 +1,13 @@ | |
| 1 | 
            +
            Copyright 2021 LiveKit, Inc.
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            Licensed under the Apache License, Version 2.0 (the "License");
         | 
| 4 | 
            +
            you may not use this file except in compliance with the License.
         | 
| 5 | 
            +
            You may obtain a copy of the License at
         | 
| 6 | 
            +
             | 
| 7 | 
            +
               http://www.apache.org/licenses/LICENSE-2.0
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            Unless required by applicable law or agreed to in writing, software
         | 
| 10 | 
            +
            distributed under the License is distributed on an "AS IS" BASIS,
         | 
| 11 | 
            +
            WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         | 
| 12 | 
            +
            See the License for the specific language governing permissions and
         | 
| 13 | 
            +
            limitations under the License.
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,14 +1,18 @@ | |
| 1 1 | 
             
            <!--BEGIN_BANNER_IMAGE-->
         | 
| 2 | 
            -
             | 
| 3 | 
            -
             | 
| 4 | 
            -
             | 
| 5 | 
            -
             | 
| 6 | 
            -
               | 
| 7 | 
            -
             | 
| 2 | 
            +
             | 
| 3 | 
            +
            <picture>
         | 
| 4 | 
            +
              <source media="(prefers-color-scheme: dark)" srcset="/.github/banner_dark.png">
         | 
| 5 | 
            +
              <source media="(prefers-color-scheme: light)" srcset="/.github/banner_light.png">
         | 
| 6 | 
            +
              <img style="width:100%;" alt="The LiveKit icon, the name of the repository and some sample code in the background." src="https://raw.githubusercontent.com/livekit/server-sdk-ruby/main/.github/banner_light.png">
         | 
| 7 | 
            +
            </picture>
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            <!--END_BANNER_IMAGE-->
         | 
| 8 10 |  | 
| 9 11 | 
             
            # LiveKit Server API for Ruby
         | 
| 10 12 |  | 
| 11 | 
            -
            <!--BEGIN_DESCRIPTION--> | 
| 13 | 
            +
            <!--BEGIN_DESCRIPTION-->
         | 
| 14 | 
            +
            Use this SDK to manage <a href="https://livekit.io/">LiveKit</a> rooms and create access tokens from your Ruby backend.
         | 
| 15 | 
            +
            <!--END_DESCRIPTION-->
         | 
| 12 16 |  | 
| 13 17 | 
             
            This library is designed to work with Ruby 2.6.0 and above.
         | 
| 14 18 |  | 
| @@ -135,9 +139,10 @@ The gem is available as open source under the terms of Apache 2.0 License. | |
| 135 139 | 
             
            <br/><table>
         | 
| 136 140 | 
             
            <thead><tr><th colspan="2">LiveKit Ecosystem</th></tr></thead>
         | 
| 137 141 | 
             
            <tbody>
         | 
| 138 | 
            -
            <tr><td> | 
| 139 | 
            -
            <tr><td>Server  | 
| 140 | 
            -
            <tr><td> | 
| 142 | 
            +
            <tr><td>Real-time SDKs</td><td><a href="https://github.com/livekit/components-js">React Components</a> · <a href="https://github.com/livekit/client-sdk-js">JavaScript</a> · <a href="https://github.com/livekit/client-sdk-swift">iOS/macOS</a> · <a href="https://github.com/livekit/client-sdk-android">Android</a> · <a href="https://github.com/livekit/client-sdk-flutter">Flutter</a> · <a href="https://github.com/livekit/client-sdk-react-native">React Native</a> · <a href="https://github.com/livekit/client-sdk-rust">Rust</a> · <a href="https://github.com/livekit/client-sdk-python">Python</a> · <a href="https://github.com/livekit/client-sdk-unity-web">Unity (web)</a> · <a href="https://github.com/livekit/client-sdk-unity">Unity (beta)</a></td></tr><tr></tr>
         | 
| 143 | 
            +
            <tr><td>Server APIs</td><td><a href="https://github.com/livekit/server-sdk-js">Node.js</a> · <a href="https://github.com/livekit/server-sdk-go">Golang</a> · <b>Ruby</b> · <a href="https://github.com/livekit/server-sdk-kotlin">Java/Kotlin</a> · <a href="https://github.com/livekit/client-sdk-python">Python</a> · <a href="https://github.com/livekit/client-sdk-rust">Rust</a> · <a href="https://github.com/agence104/livekit-server-sdk-php">PHP (community)</a></td></tr><tr></tr>
         | 
| 144 | 
            +
            <tr><td>Agents Frameworks</td><td><a href="https://github.com/livekit/agents">Python</a> · <a href="https://github.com/livekit/agent-playground">Playground</a></td></tr><tr></tr>
         | 
| 145 | 
            +
            <tr><td>Services</td><td><a href="https://github.com/livekit/livekit">Livekit server</a> · <a href="https://github.com/livekit/egress">Egress</a> · <a href="https://github.com/livekit/ingress">Ingress</a> · <a href="https://github.com/livekit/sip">SIP</a></td></tr><tr></tr>
         | 
| 141 146 | 
             
            <tr><td>Resources</td><td><a href="https://docs.livekit.io">Docs</a> · <a href="https://github.com/livekit-examples">Example apps</a> · <a href="https://livekit.io/cloud">Cloud</a> · <a href="https://docs.livekit.io/oss/deployment">Self-hosting</a> · <a href="https://github.com/livekit/livekit-cli">CLI</a></td></tr>
         | 
| 142 147 | 
             
            </tbody>
         | 
| 143 148 | 
             
            </table>
         | 
| @@ -15,7 +15,7 @@ module LiveKit | |
| 15 15 |  | 
| 16 16 | 
             
                def start_room_composite_egress(
         | 
| 17 17 | 
             
                  room_name,
         | 
| 18 | 
            -
                  # EncodedFileOutput, SegmentedFileOutput, StreamOutput, or array containing up to one of each
         | 
| 18 | 
            +
                  # EncodedFileOutput, SegmentedFileOutput, StreamOutput, ImageOutput or array containing up to one of each
         | 
| 19 19 | 
             
                  output,
         | 
| 20 20 | 
             
                  # EncodingOptionsPreset, only one of preset or advanced could be set
         | 
| 21 21 | 
             
                  preset: nil,
         | 
| @@ -47,9 +47,36 @@ module LiveKit | |
| 47 47 | 
             
                  )
         | 
| 48 48 | 
             
                end
         | 
| 49 49 |  | 
| 50 | 
            +
                def start_participant_egress(
         | 
| 51 | 
            +
                  room_name,
         | 
| 52 | 
            +
                  identity,
         | 
| 53 | 
            +
                  # EncodedFileOutput, SegmentedFileOutput, StreamOutput, ImageOutput, or array containing up to one of each
         | 
| 54 | 
            +
                  output,
         | 
| 55 | 
            +
                  # true to record the participant's screenshare and screenshare_audio track
         | 
| 56 | 
            +
                  screen_share: false,
         | 
| 57 | 
            +
                  # EncodingOptionsPreset, only one of preset or advanced could be set
         | 
| 58 | 
            +
                  preset: nil,
         | 
| 59 | 
            +
                  # EncodingOptions, only one of preset or advanced could be set
         | 
| 60 | 
            +
                  advanced: nil
         | 
| 61 | 
            +
                )
         | 
| 62 | 
            +
                  request = Proto::ParticipantEgressRequest.new(
         | 
| 63 | 
            +
                    room_name: room_name,
         | 
| 64 | 
            +
                    identity: identity,
         | 
| 65 | 
            +
                    screen_share: screen_share,
         | 
| 66 | 
            +
                    preset: preset,
         | 
| 67 | 
            +
                    advanced: advanced,
         | 
| 68 | 
            +
                  )
         | 
| 69 | 
            +
                  self.set_output(request, output)
         | 
| 70 | 
            +
                  self.rpc(
         | 
| 71 | 
            +
                    :StartParticipantEgress,
         | 
| 72 | 
            +
                    request,
         | 
| 73 | 
            +
                    headers: auth_header(roomRecord: true),
         | 
| 74 | 
            +
                  )
         | 
| 75 | 
            +
                end
         | 
| 76 | 
            +
             | 
| 50 77 | 
             
                def start_track_composite_egress(
         | 
| 51 78 | 
             
                  room_name,
         | 
| 52 | 
            -
                  # EncodedFileOutput, SegmentedFileOutput, StreamOutput, or array containing up to one of each
         | 
| 79 | 
            +
                  # EncodedFileOutput, SegmentedFileOutput, StreamOutput, ImageOutput, or array containing up to one of each
         | 
| 53 80 | 
             
                  output,
         | 
| 54 81 | 
             
                  # TrackID of an audio track
         | 
| 55 82 | 
             
                  audio_track_id: nil,
         | 
| @@ -99,7 +126,7 @@ module LiveKit | |
| 99 126 |  | 
| 100 127 | 
             
                def start_web_egress(
         | 
| 101 128 | 
             
                  url,
         | 
| 102 | 
            -
                  # EncodedFileOutput, SegmentedFileOutput, StreamOutput, or array containing up to one of each
         | 
| 129 | 
            +
                  # EncodedFileOutput, SegmentedFileOutput, StreamOutput, ImageOutput, or array containing up to one of each
         | 
| 103 130 | 
             
                  output,
         | 
| 104 131 | 
             
                  # EncodingOptionsPreset, only one of preset or advanced could be set
         | 
| 105 132 | 
             
                  preset: nil,
         | 
| @@ -157,11 +184,16 @@ module LiveKit | |
| 157 184 | 
             
                # list all egress or only egress for a room
         | 
| 158 185 | 
             
                def list_egress(
         | 
| 159 186 | 
             
                  room_name: nil,
         | 
| 187 | 
            +
                  egress_id: nil,
         | 
| 160 188 | 
             
                  active: false
         | 
| 161 189 | 
             
                )
         | 
| 162 190 | 
             
                  self.rpc(
         | 
| 163 191 | 
             
                    :ListEgress,
         | 
| 164 | 
            -
                    Proto::ListEgressRequest.new( | 
| 192 | 
            +
                    Proto::ListEgressRequest.new(
         | 
| 193 | 
            +
                      room_name: room_name,
         | 
| 194 | 
            +
                      active: active,
         | 
| 195 | 
            +
                      egress_id: egress_id,
         | 
| 196 | 
            +
                    ),
         | 
| 165 197 | 
             
                    headers: auth_header(roomRecord: true),
         | 
| 166 198 | 
             
                  )
         | 
| 167 199 | 
             
                end
         | 
| @@ -190,6 +222,9 @@ module LiveKit | |
| 190 222 | 
             
                      elsif out.is_a? Livekit::Proto::StreamOutput
         | 
| 191 223 | 
             
                        raise "cannot add multiple stream outputs" if request.stream_outputs.any?
         | 
| 192 224 | 
             
                        request.stream_outputs = Google::Protobuf::RepeatedField.new(:message, Proto::StreamOutput, [out])
         | 
| 225 | 
            +
                      elsif out.is_a? LiveKit::Proto::ImageOutput
         | 
| 226 | 
            +
                        raise "cannot add multiple image outputs" if request.image_outputs.any?
         | 
| 227 | 
            +
                        request.image_outputs = Google::Protobuf::RepeatedField.new(:message, Proto::ImageOutput, [out])
         | 
| 193 228 | 
             
                      end
         | 
| 194 229 | 
             
                    end
         | 
| 195 230 | 
             
                  elsif output.is_a? LiveKit::Proto::EncodedFileOutput
         | 
| @@ -201,6 +236,8 @@ module LiveKit | |
| 201 236 | 
             
                  elsif output.is_a? LiveKit::Proto::StreamOutput
         | 
| 202 237 | 
             
                    request.stream = output
         | 
| 203 238 | 
             
                    request.stream_outputs = Google::Protobuf::RepeatedField.new(:message, Proto::StreamOutput, [output])
         | 
| 239 | 
            +
                  elsif output.is_a? LiveKit::Proto::ImageOutput
         | 
| 240 | 
            +
                    request.image_outputs = Google::Protobuf::RepeatedField.new(:message, Proto::ImageOutput, [output])
         | 
| 204 241 | 
             
                  end
         | 
| 205 242 | 
             
                end
         | 
| 206 243 | 
             
              end
         | 
| @@ -84,9 +84,15 @@ module LiveKit | |
| 84 84 | 
             
                  )
         | 
| 85 85 | 
             
                end
         | 
| 86 86 |  | 
| 87 | 
            -
                def list_ingress( | 
| 87 | 
            +
                def list_ingress(
         | 
| 88 | 
            +
                  # optional, filter by room name
         | 
| 89 | 
            +
                  room_name: nil,
         | 
| 90 | 
            +
                  # optional, list by ingress id
         | 
| 91 | 
            +
                  ingress_id: nil
         | 
| 92 | 
            +
                )
         | 
| 88 93 | 
             
                  request = Proto::ListIngressRequest.new(
         | 
| 89 94 | 
             
                    room_name: room_name,
         | 
| 95 | 
            +
                    ingress_id: ingress_id,
         | 
| 90 96 | 
             
                  )
         | 
| 91 97 | 
             
                  self.rpc(
         | 
| 92 98 | 
             
                    :ListIngress,
         | 
| @@ -1,3 +1,4 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 1 2 | 
             
            # Generated by the protocol buffer compiler.  DO NOT EDIT!
         | 
| 2 3 | 
             
            # source: livekit_egress.proto
         | 
| 3 4 |  | 
| @@ -5,281 +6,44 @@ require 'google/protobuf' | |
| 5 6 |  | 
| 6 7 | 
             
            require 'livekit_models_pb'
         | 
| 7 8 |  | 
| 8 | 
            -
             | 
| 9 | 
            -
              add_file("livekit_egress.proto", :syntax => :proto3) do
         | 
| 10 | 
            -
             | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 24 | 
            -
             | 
| 25 | 
            -
             | 
| 26 | 
            -
             | 
| 27 | 
            -
             | 
| 28 | 
            -
             | 
| 29 | 
            -
                add_message "livekit.WebEgressRequest" do
         | 
| 30 | 
            -
                  optional :url, :string, 1
         | 
| 31 | 
            -
                  optional :audio_only, :bool, 2
         | 
| 32 | 
            -
                  optional :video_only, :bool, 3
         | 
| 33 | 
            -
                  optional :await_start_signal, :bool, 12
         | 
| 34 | 
            -
                  repeated :file_outputs, :message, 9, "livekit.EncodedFileOutput"
         | 
| 35 | 
            -
                  repeated :stream_outputs, :message, 10, "livekit.StreamOutput"
         | 
| 36 | 
            -
                  repeated :segment_outputs, :message, 11, "livekit.SegmentedFileOutput"
         | 
| 37 | 
            -
                  oneof :output do
         | 
| 38 | 
            -
                    optional :file, :message, 4, "livekit.EncodedFileOutput"
         | 
| 39 | 
            -
                    optional :stream, :message, 5, "livekit.StreamOutput"
         | 
| 40 | 
            -
                    optional :segments, :message, 6, "livekit.SegmentedFileOutput"
         | 
| 41 | 
            -
                  end
         | 
| 42 | 
            -
                  oneof :options do
         | 
| 43 | 
            -
                    optional :preset, :enum, 7, "livekit.EncodingOptionsPreset"
         | 
| 44 | 
            -
                    optional :advanced, :message, 8, "livekit.EncodingOptions"
         | 
| 45 | 
            -
                  end
         | 
| 46 | 
            -
                end
         | 
| 47 | 
            -
                add_message "livekit.TrackCompositeEgressRequest" do
         | 
| 48 | 
            -
                  optional :room_name, :string, 1
         | 
| 49 | 
            -
                  optional :audio_track_id, :string, 2
         | 
| 50 | 
            -
                  optional :video_track_id, :string, 3
         | 
| 51 | 
            -
                  repeated :file_outputs, :message, 11, "livekit.EncodedFileOutput"
         | 
| 52 | 
            -
                  repeated :stream_outputs, :message, 12, "livekit.StreamOutput"
         | 
| 53 | 
            -
                  repeated :segment_outputs, :message, 13, "livekit.SegmentedFileOutput"
         | 
| 54 | 
            -
                  oneof :output do
         | 
| 55 | 
            -
                    optional :file, :message, 4, "livekit.EncodedFileOutput"
         | 
| 56 | 
            -
                    optional :stream, :message, 5, "livekit.StreamOutput"
         | 
| 57 | 
            -
                    optional :segments, :message, 8, "livekit.SegmentedFileOutput"
         | 
| 58 | 
            -
                  end
         | 
| 59 | 
            -
                  oneof :options do
         | 
| 60 | 
            -
                    optional :preset, :enum, 6, "livekit.EncodingOptionsPreset"
         | 
| 61 | 
            -
                    optional :advanced, :message, 7, "livekit.EncodingOptions"
         | 
| 62 | 
            -
                  end
         | 
| 63 | 
            -
                end
         | 
| 64 | 
            -
                add_message "livekit.TrackEgressRequest" do
         | 
| 65 | 
            -
                  optional :room_name, :string, 1
         | 
| 66 | 
            -
                  optional :track_id, :string, 2
         | 
| 67 | 
            -
                  oneof :output do
         | 
| 68 | 
            -
                    optional :file, :message, 3, "livekit.DirectFileOutput"
         | 
| 69 | 
            -
                    optional :websocket_url, :string, 4
         | 
| 70 | 
            -
                  end
         | 
| 71 | 
            -
                end
         | 
| 72 | 
            -
                add_message "livekit.EncodedFileOutput" do
         | 
| 73 | 
            -
                  optional :file_type, :enum, 1, "livekit.EncodedFileType"
         | 
| 74 | 
            -
                  optional :filepath, :string, 2
         | 
| 75 | 
            -
                  optional :disable_manifest, :bool, 6
         | 
| 76 | 
            -
                  oneof :output do
         | 
| 77 | 
            -
                    optional :s3, :message, 3, "livekit.S3Upload"
         | 
| 78 | 
            -
                    optional :gcp, :message, 4, "livekit.GCPUpload"
         | 
| 79 | 
            -
                    optional :azure, :message, 5, "livekit.AzureBlobUpload"
         | 
| 80 | 
            -
                    optional :aliOSS, :message, 7, "livekit.AliOSSUpload"
         | 
| 81 | 
            -
                  end
         | 
| 82 | 
            -
                end
         | 
| 83 | 
            -
                add_message "livekit.SegmentedFileOutput" do
         | 
| 84 | 
            -
                  optional :protocol, :enum, 1, "livekit.SegmentedFileProtocol"
         | 
| 85 | 
            -
                  optional :filename_prefix, :string, 2
         | 
| 86 | 
            -
                  optional :playlist_name, :string, 3
         | 
| 87 | 
            -
                  optional :segment_duration, :uint32, 4
         | 
| 88 | 
            -
                  optional :filename_suffix, :enum, 10, "livekit.SegmentedFileSuffix"
         | 
| 89 | 
            -
                  optional :disable_manifest, :bool, 8
         | 
| 90 | 
            -
                  oneof :output do
         | 
| 91 | 
            -
                    optional :s3, :message, 5, "livekit.S3Upload"
         | 
| 92 | 
            -
                    optional :gcp, :message, 6, "livekit.GCPUpload"
         | 
| 93 | 
            -
                    optional :azure, :message, 7, "livekit.AzureBlobUpload"
         | 
| 94 | 
            -
                    optional :aliOSS, :message, 9, "livekit.AliOSSUpload"
         | 
| 95 | 
            -
                  end
         | 
| 96 | 
            -
                end
         | 
| 97 | 
            -
                add_message "livekit.DirectFileOutput" do
         | 
| 98 | 
            -
                  optional :filepath, :string, 1
         | 
| 99 | 
            -
                  optional :disable_manifest, :bool, 5
         | 
| 100 | 
            -
                  oneof :output do
         | 
| 101 | 
            -
                    optional :s3, :message, 2, "livekit.S3Upload"
         | 
| 102 | 
            -
                    optional :gcp, :message, 3, "livekit.GCPUpload"
         | 
| 103 | 
            -
                    optional :azure, :message, 4, "livekit.AzureBlobUpload"
         | 
| 104 | 
            -
                    optional :aliOSS, :message, 6, "livekit.AliOSSUpload"
         | 
| 105 | 
            -
                  end
         | 
| 106 | 
            -
                end
         | 
| 107 | 
            -
                add_message "livekit.S3Upload" do
         | 
| 108 | 
            -
                  optional :access_key, :string, 1
         | 
| 109 | 
            -
                  optional :secret, :string, 2
         | 
| 110 | 
            -
                  optional :region, :string, 3
         | 
| 111 | 
            -
                  optional :endpoint, :string, 4
         | 
| 112 | 
            -
                  optional :bucket, :string, 5
         | 
| 113 | 
            -
                  optional :force_path_style, :bool, 6
         | 
| 114 | 
            -
                  map :metadata, :string, :string, 7
         | 
| 115 | 
            -
                  optional :tagging, :string, 8
         | 
| 116 | 
            -
                end
         | 
| 117 | 
            -
                add_message "livekit.GCPUpload" do
         | 
| 118 | 
            -
                  optional :credentials, :string, 1
         | 
| 119 | 
            -
                  optional :bucket, :string, 2
         | 
| 120 | 
            -
                end
         | 
| 121 | 
            -
                add_message "livekit.AzureBlobUpload" do
         | 
| 122 | 
            -
                  optional :account_name, :string, 1
         | 
| 123 | 
            -
                  optional :account_key, :string, 2
         | 
| 124 | 
            -
                  optional :container_name, :string, 3
         | 
| 125 | 
            -
                end
         | 
| 126 | 
            -
                add_message "livekit.AliOSSUpload" do
         | 
| 127 | 
            -
                  optional :access_key, :string, 1
         | 
| 128 | 
            -
                  optional :secret, :string, 2
         | 
| 129 | 
            -
                  optional :region, :string, 3
         | 
| 130 | 
            -
                  optional :endpoint, :string, 4
         | 
| 131 | 
            -
                  optional :bucket, :string, 5
         | 
| 132 | 
            -
                end
         | 
| 133 | 
            -
                add_message "livekit.StreamOutput" do
         | 
| 134 | 
            -
                  optional :protocol, :enum, 1, "livekit.StreamProtocol"
         | 
| 135 | 
            -
                  repeated :urls, :string, 2
         | 
| 136 | 
            -
                end
         | 
| 137 | 
            -
                add_message "livekit.EncodingOptions" do
         | 
| 138 | 
            -
                  optional :width, :int32, 1
         | 
| 139 | 
            -
                  optional :height, :int32, 2
         | 
| 140 | 
            -
                  optional :depth, :int32, 3
         | 
| 141 | 
            -
                  optional :framerate, :int32, 4
         | 
| 142 | 
            -
                  optional :audio_codec, :enum, 5, "livekit.AudioCodec"
         | 
| 143 | 
            -
                  optional :audio_bitrate, :int32, 6
         | 
| 144 | 
            -
                  optional :audio_frequency, :int32, 7
         | 
| 145 | 
            -
                  optional :video_codec, :enum, 8, "livekit.VideoCodec"
         | 
| 146 | 
            -
                  optional :video_bitrate, :int32, 9
         | 
| 147 | 
            -
                  optional :key_frame_interval, :double, 10
         | 
| 148 | 
            -
                end
         | 
| 149 | 
            -
                add_message "livekit.UpdateLayoutRequest" do
         | 
| 150 | 
            -
                  optional :egress_id, :string, 1
         | 
| 151 | 
            -
                  optional :layout, :string, 2
         | 
| 152 | 
            -
                end
         | 
| 153 | 
            -
                add_message "livekit.UpdateStreamRequest" do
         | 
| 154 | 
            -
                  optional :egress_id, :string, 1
         | 
| 155 | 
            -
                  repeated :add_output_urls, :string, 2
         | 
| 156 | 
            -
                  repeated :remove_output_urls, :string, 3
         | 
| 157 | 
            -
                end
         | 
| 158 | 
            -
                add_message "livekit.ListEgressRequest" do
         | 
| 159 | 
            -
                  optional :room_name, :string, 1
         | 
| 160 | 
            -
                  optional :egress_id, :string, 2
         | 
| 161 | 
            -
                  optional :active, :bool, 3
         | 
| 162 | 
            -
                end
         | 
| 163 | 
            -
                add_message "livekit.ListEgressResponse" do
         | 
| 164 | 
            -
                  repeated :items, :message, 1, "livekit.EgressInfo"
         | 
| 165 | 
            -
                end
         | 
| 166 | 
            -
                add_message "livekit.StopEgressRequest" do
         | 
| 167 | 
            -
                  optional :egress_id, :string, 1
         | 
| 168 | 
            -
                end
         | 
| 169 | 
            -
                add_message "livekit.EgressInfo" do
         | 
| 170 | 
            -
                  optional :egress_id, :string, 1
         | 
| 171 | 
            -
                  optional :room_id, :string, 2
         | 
| 172 | 
            -
                  optional :room_name, :string, 13
         | 
| 173 | 
            -
                  optional :status, :enum, 3, "livekit.EgressStatus"
         | 
| 174 | 
            -
                  optional :started_at, :int64, 10
         | 
| 175 | 
            -
                  optional :ended_at, :int64, 11
         | 
| 176 | 
            -
                  optional :updated_at, :int64, 18
         | 
| 177 | 
            -
                  optional :error, :string, 9
         | 
| 178 | 
            -
                  repeated :stream_results, :message, 15, "livekit.StreamInfo"
         | 
| 179 | 
            -
                  repeated :file_results, :message, 16, "livekit.FileInfo"
         | 
| 180 | 
            -
                  repeated :segment_results, :message, 17, "livekit.SegmentsInfo"
         | 
| 181 | 
            -
                  oneof :request do
         | 
| 182 | 
            -
                    optional :room_composite, :message, 4, "livekit.RoomCompositeEgressRequest"
         | 
| 183 | 
            -
                    optional :track_composite, :message, 5, "livekit.TrackCompositeEgressRequest"
         | 
| 184 | 
            -
                    optional :track, :message, 6, "livekit.TrackEgressRequest"
         | 
| 185 | 
            -
                    optional :web, :message, 14, "livekit.WebEgressRequest"
         | 
| 186 | 
            -
                  end
         | 
| 187 | 
            -
                  oneof :result do
         | 
| 188 | 
            -
                    optional :stream, :message, 7, "livekit.StreamInfoList"
         | 
| 189 | 
            -
                    optional :file, :message, 8, "livekit.FileInfo"
         | 
| 190 | 
            -
                    optional :segments, :message, 12, "livekit.SegmentsInfo"
         | 
| 191 | 
            -
                  end
         | 
| 192 | 
            -
                end
         | 
| 193 | 
            -
                add_message "livekit.StreamInfoList" do
         | 
| 194 | 
            -
                  repeated :info, :message, 1, "livekit.StreamInfo"
         | 
| 195 | 
            -
                end
         | 
| 196 | 
            -
                add_message "livekit.StreamInfo" do
         | 
| 197 | 
            -
                  optional :url, :string, 1
         | 
| 198 | 
            -
                  optional :started_at, :int64, 2
         | 
| 199 | 
            -
                  optional :ended_at, :int64, 3
         | 
| 200 | 
            -
                  optional :duration, :int64, 4
         | 
| 201 | 
            -
                  optional :status, :enum, 5, "livekit.StreamInfo.Status"
         | 
| 202 | 
            -
                  optional :error, :string, 6
         | 
| 203 | 
            -
                end
         | 
| 204 | 
            -
                add_enum "livekit.StreamInfo.Status" do
         | 
| 205 | 
            -
                  value :ACTIVE, 0
         | 
| 206 | 
            -
                  value :FINISHED, 1
         | 
| 207 | 
            -
                  value :FAILED, 2
         | 
| 208 | 
            -
                end
         | 
| 209 | 
            -
                add_message "livekit.FileInfo" do
         | 
| 210 | 
            -
                  optional :filename, :string, 1
         | 
| 211 | 
            -
                  optional :started_at, :int64, 2
         | 
| 212 | 
            -
                  optional :ended_at, :int64, 3
         | 
| 213 | 
            -
                  optional :duration, :int64, 6
         | 
| 214 | 
            -
                  optional :size, :int64, 4
         | 
| 215 | 
            -
                  optional :location, :string, 5
         | 
| 216 | 
            -
                end
         | 
| 217 | 
            -
                add_message "livekit.SegmentsInfo" do
         | 
| 218 | 
            -
                  optional :playlist_name, :string, 1
         | 
| 219 | 
            -
                  optional :duration, :int64, 2
         | 
| 220 | 
            -
                  optional :size, :int64, 3
         | 
| 221 | 
            -
                  optional :playlist_location, :string, 4
         | 
| 222 | 
            -
                  optional :segment_count, :int64, 5
         | 
| 223 | 
            -
                  optional :started_at, :int64, 6
         | 
| 224 | 
            -
                  optional :ended_at, :int64, 7
         | 
| 225 | 
            -
                end
         | 
| 226 | 
            -
                add_message "livekit.AutoTrackEgress" do
         | 
| 227 | 
            -
                  optional :filepath, :string, 1
         | 
| 228 | 
            -
                  optional :disable_manifest, :bool, 5
         | 
| 229 | 
            -
                  oneof :output do
         | 
| 230 | 
            -
                    optional :s3, :message, 2, "livekit.S3Upload"
         | 
| 231 | 
            -
                    optional :gcp, :message, 3, "livekit.GCPUpload"
         | 
| 232 | 
            -
                    optional :azure, :message, 4, "livekit.AzureBlobUpload"
         | 
| 233 | 
            -
                  end
         | 
| 234 | 
            -
                end
         | 
| 235 | 
            -
                add_enum "livekit.EncodedFileType" do
         | 
| 236 | 
            -
                  value :DEFAULT_FILETYPE, 0
         | 
| 237 | 
            -
                  value :MP4, 1
         | 
| 238 | 
            -
                  value :OGG, 2
         | 
| 239 | 
            -
                end
         | 
| 240 | 
            -
                add_enum "livekit.SegmentedFileProtocol" do
         | 
| 241 | 
            -
                  value :DEFAULT_SEGMENTED_FILE_PROTOCOL, 0
         | 
| 242 | 
            -
                  value :HLS_PROTOCOL, 1
         | 
| 243 | 
            -
                end
         | 
| 244 | 
            -
                add_enum "livekit.SegmentedFileSuffix" do
         | 
| 245 | 
            -
                  value :INDEX, 0
         | 
| 246 | 
            -
                  value :TIMESTAMP, 1
         | 
| 247 | 
            -
                end
         | 
| 248 | 
            -
                add_enum "livekit.StreamProtocol" do
         | 
| 249 | 
            -
                  value :DEFAULT_PROTOCOL, 0
         | 
| 250 | 
            -
                  value :RTMP, 1
         | 
| 251 | 
            -
                end
         | 
| 252 | 
            -
                add_enum "livekit.EncodingOptionsPreset" do
         | 
| 253 | 
            -
                  value :H264_720P_30, 0
         | 
| 254 | 
            -
                  value :H264_720P_60, 1
         | 
| 255 | 
            -
                  value :H264_1080P_30, 2
         | 
| 256 | 
            -
                  value :H264_1080P_60, 3
         | 
| 257 | 
            -
                  value :PORTRAIT_H264_720P_30, 4
         | 
| 258 | 
            -
                  value :PORTRAIT_H264_720P_60, 5
         | 
| 259 | 
            -
                  value :PORTRAIT_H264_1080P_30, 6
         | 
| 260 | 
            -
                  value :PORTRAIT_H264_1080P_60, 7
         | 
| 261 | 
            -
                end
         | 
| 262 | 
            -
                add_enum "livekit.EgressStatus" do
         | 
| 263 | 
            -
                  value :EGRESS_STARTING, 0
         | 
| 264 | 
            -
                  value :EGRESS_ACTIVE, 1
         | 
| 265 | 
            -
                  value :EGRESS_ENDING, 2
         | 
| 266 | 
            -
                  value :EGRESS_COMPLETE, 3
         | 
| 267 | 
            -
                  value :EGRESS_FAILED, 4
         | 
| 268 | 
            -
                  value :EGRESS_ABORTED, 5
         | 
| 269 | 
            -
                  value :EGRESS_LIMIT_REACHED, 6
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            descriptor_data = "\n\x14livekit_egress.proto\x12\x07livekit\x1a\x14livekit_models.proto\"\xcd\x04\n\x1aRoomCompositeEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12\x0e\n\x06layout\x18\x02 \x01(\t\x12\x12\n\naudio_only\x18\x03 \x01(\x08\x12\x12\n\nvideo_only\x18\x04 \x01(\x08\x12\x17\n\x0f\x63ustom_base_url\x18\x05 \x01(\t\x12.\n\x04\x66ile\x18\x06 \x01(\x0b\x32\x1a.livekit.EncodedFileOutputB\x02\x18\x01H\x00\x12+\n\x06stream\x18\x07 \x01(\x0b\x32\x15.livekit.StreamOutputB\x02\x18\x01H\x00\x12\x34\n\x08segments\x18\n \x01(\x0b\x32\x1c.livekit.SegmentedFileOutputB\x02\x18\x01H\x00\x12\x30\n\x06preset\x18\x08 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x01\x12,\n\x08\x61\x64vanced\x18\t \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x01\x12\x30\n\x0c\x66ile_outputs\x18\x0b \x03(\x0b\x32\x1a.livekit.EncodedFileOutput\x12-\n\x0estream_outputs\x18\x0c \x03(\x0b\x32\x15.livekit.StreamOutput\x12\x35\n\x0fsegment_outputs\x18\r \x03(\x0b\x32\x1c.livekit.SegmentedFileOutput\x12+\n\rimage_outputs\x18\x0e \x03(\x0b\x32\x14.livekit.ImageOutputB\x08\n\x06outputB\t\n\x07options\"\xb0\x04\n\x10WebEgressRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x12\n\naudio_only\x18\x02 \x01(\x08\x12\x12\n\nvideo_only\x18\x03 \x01(\x08\x12\x1a\n\x12\x61wait_start_signal\x18\x0c \x01(\x08\x12.\n\x04\x66ile\x18\x04 \x01(\x0b\x32\x1a.livekit.EncodedFileOutputB\x02\x18\x01H\x00\x12+\n\x06stream\x18\x05 \x01(\x0b\x32\x15.livekit.StreamOutputB\x02\x18\x01H\x00\x12\x34\n\x08segments\x18\x06 \x01(\x0b\x32\x1c.livekit.SegmentedFileOutputB\x02\x18\x01H\x00\x12\x30\n\x06preset\x18\x07 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x01\x12,\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x01\x12\x30\n\x0c\x66ile_outputs\x18\t \x03(\x0b\x32\x1a.livekit.EncodedFileOutput\x12-\n\x0estream_outputs\x18\n \x03(\x0b\x32\x15.livekit.StreamOutput\x12\x35\n\x0fsegment_outputs\x18\x0b \x03(\x0b\x32\x1c.livekit.SegmentedFileOutput\x12+\n\rimage_outputs\x18\r \x03(\x0b\x32\x14.livekit.ImageOutputB\x08\n\x06outputB\t\n\x07options\"\x85\x03\n\x18ParticipantEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x14\n\x0cscreen_share\x18\x03 \x01(\x08\x12\x30\n\x06preset\x18\x04 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x00\x12,\n\x08\x61\x64vanced\x18\x05 \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x00\x12\x30\n\x0c\x66ile_outputs\x18\x06 \x03(\x0b\x32\x1a.livekit.EncodedFileOutput\x12-\n\x0estream_outputs\x18\x07 \x03(\x0b\x32\x15.livekit.StreamOutput\x12\x35\n\x0fsegment_outputs\x18\x08 \x03(\x0b\x32\x1c.livekit.SegmentedFileOutput\x12+\n\rimage_outputs\x18\t \x03(\x0b\x32\x14.livekit.ImageOutputB\t\n\x07options\"\xad\x04\n\x1bTrackCompositeEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12\x16\n\x0e\x61udio_track_id\x18\x02 \x01(\t\x12\x16\n\x0evideo_track_id\x18\x03 \x01(\t\x12.\n\x04\x66ile\x18\x04 \x01(\x0b\x32\x1a.livekit.EncodedFileOutputB\x02\x18\x01H\x00\x12+\n\x06stream\x18\x05 \x01(\x0b\x32\x15.livekit.StreamOutputB\x02\x18\x01H\x00\x12\x34\n\x08segments\x18\x08 \x01(\x0b\x32\x1c.livekit.SegmentedFileOutputB\x02\x18\x01H\x00\x12\x30\n\x06preset\x18\x06 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x01\x12,\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x01\x12\x30\n\x0c\x66ile_outputs\x18\x0b \x03(\x0b\x32\x1a.livekit.EncodedFileOutput\x12-\n\x0estream_outputs\x18\x0c \x03(\x0b\x32\x15.livekit.StreamOutput\x12\x35\n\x0fsegment_outputs\x18\r \x03(\x0b\x32\x1c.livekit.SegmentedFileOutput\x12+\n\rimage_outputs\x18\x0e \x03(\x0b\x32\x14.livekit.ImageOutputB\x08\n\x06outputB\t\n\x07options\"\x87\x01\n\x12TrackEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12\x10\n\x08track_id\x18\x02 \x01(\t\x12)\n\x04\x66ile\x18\x03 \x01(\x0b\x32\x19.livekit.DirectFileOutputH\x00\x12\x17\n\rwebsocket_url\x18\x04 \x01(\tH\x00\x42\x08\n\x06output\"\x8e\x02\n\x11\x45ncodedFileOutput\x12+\n\tfile_type\x18\x01 \x01(\x0e\x32\x18.livekit.EncodedFileType\x12\x10\n\x08\x66ilepath\x18\x02 \x01(\t\x12\x18\n\x10\x64isable_manifest\x18\x06 \x01(\x08\x12\x1f\n\x02s3\x18\x03 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\x04 \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\x05 \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\x07 \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\x08\n\x06output\"\xa0\x03\n\x13SegmentedFileOutput\x12\x30\n\x08protocol\x18\x01 \x01(\x0e\x32\x1e.livekit.SegmentedFileProtocol\x12\x17\n\x0f\x66ilename_prefix\x18\x02 \x01(\t\x12\x15\n\rplaylist_name\x18\x03 \x01(\t\x12\x1a\n\x12live_playlist_name\x18\x0b \x01(\t\x12\x18\n\x10segment_duration\x18\x04 \x01(\r\x12\x35\n\x0f\x66ilename_suffix\x18\n \x01(\x0e\x32\x1c.livekit.SegmentedFileSuffix\x12\x18\n\x10\x64isable_manifest\x18\x08 \x01(\x08\x12\x1f\n\x02s3\x18\x05 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\x06 \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\x07 \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\t \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\x08\n\x06output\"\xe0\x01\n\x10\x44irectFileOutput\x12\x10\n\x08\x66ilepath\x18\x01 \x01(\t\x12\x18\n\x10\x64isable_manifest\x18\x05 \x01(\x08\x12\x1f\n\x02s3\x18\x02 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\x03 \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\x04 \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\x06 \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\x08\n\x06output\"\xf8\x02\n\x0bImageOutput\x12\x18\n\x10\x63\x61pture_interval\x18\x01 \x01(\r\x12\r\n\x05width\x18\x02 \x01(\x05\x12\x0e\n\x06height\x18\x03 \x01(\x05\x12\x17\n\x0f\x66ilename_prefix\x18\x04 \x01(\t\x12\x31\n\x0f\x66ilename_suffix\x18\x05 \x01(\x0e\x32\x18.livekit.ImageFileSuffix\x12(\n\x0bimage_codec\x18\x06 \x01(\x0e\x32\x13.livekit.ImageCodec\x12\x18\n\x10\x64isable_manifest\x18\x07 \x01(\x08\x12\x1f\n\x02s3\x18\x08 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\t \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\n \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\x0b \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\x08\n\x06output\"\xef\x01\n\x08S3Upload\x12\x12\n\naccess_key\x18\x01 \x01(\t\x12\x0e\n\x06secret\x18\x02 \x01(\t\x12\x0e\n\x06region\x18\x03 \x01(\t\x12\x10\n\x08\x65ndpoint\x18\x04 \x01(\t\x12\x0e\n\x06\x62ucket\x18\x05 \x01(\t\x12\x18\n\x10\x66orce_path_style\x18\x06 \x01(\x08\x12\x31\n\x08metadata\x18\x07 \x03(\x0b\x32\x1f.livekit.S3Upload.MetadataEntry\x12\x0f\n\x07tagging\x18\x08 \x01(\t\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"0\n\tGCPUpload\x12\x13\n\x0b\x63redentials\x18\x01 \x01(\t\x12\x0e\n\x06\x62ucket\x18\x02 \x01(\t\"T\n\x0f\x41zureBlobUpload\x12\x14\n\x0c\x61\x63\x63ount_name\x18\x01 \x01(\t\x12\x13\n\x0b\x61\x63\x63ount_key\x18\x02 \x01(\t\x12\x16\n\x0e\x63ontainer_name\x18\x03 \x01(\t\"d\n\x0c\x41liOSSUpload\x12\x12\n\naccess_key\x18\x01 \x01(\t\x12\x0e\n\x06secret\x18\x02 \x01(\t\x12\x0e\n\x06region\x18\x03 \x01(\t\x12\x10\n\x08\x65ndpoint\x18\x04 \x01(\t\x12\x0e\n\x06\x62ucket\x18\x05 \x01(\t\"G\n\x0cStreamOutput\x12)\n\x08protocol\x18\x01 \x01(\x0e\x32\x17.livekit.StreamProtocol\x12\x0c\n\x04urls\x18\x02 \x03(\t\"\x89\x02\n\x0f\x45ncodingOptions\x12\r\n\x05width\x18\x01 \x01(\x05\x12\x0e\n\x06height\x18\x02 \x01(\x05\x12\r\n\x05\x64\x65pth\x18\x03 \x01(\x05\x12\x11\n\tframerate\x18\x04 \x01(\x05\x12(\n\x0b\x61udio_codec\x18\x05 \x01(\x0e\x32\x13.livekit.AudioCodec\x12\x15\n\raudio_bitrate\x18\x06 \x01(\x05\x12\x17\n\x0f\x61udio_frequency\x18\x07 \x01(\x05\x12(\n\x0bvideo_codec\x18\x08 \x01(\x0e\x32\x13.livekit.VideoCodec\x12\x15\n\rvideo_bitrate\x18\t \x01(\x05\x12\x1a\n\x12key_frame_interval\x18\n \x01(\x01\"8\n\x13UpdateLayoutRequest\x12\x11\n\tegress_id\x18\x01 \x01(\t\x12\x0e\n\x06layout\x18\x02 \x01(\t\"]\n\x13UpdateStreamRequest\x12\x11\n\tegress_id\x18\x01 \x01(\t\x12\x17\n\x0f\x61\x64\x64_output_urls\x18\x02 \x03(\t\x12\x1a\n\x12remove_output_urls\x18\x03 \x03(\t\"\x8e\x01\n\x14UpdateOutputsRequest\x12\x11\n\tegress_id\x18\x01 \x01(\t\x12/\n\x11\x61\x64\x64_image_outputs\x18\x02 \x03(\x0b\x32\x14.livekit.ImageOutput\x12\x32\n\x14remove_image_outputs\x18\x03 \x03(\x0b\x32\x14.livekit.ImageOutput\"I\n\x11ListEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12\x11\n\tegress_id\x18\x02 \x01(\t\x12\x0e\n\x06\x61\x63tive\x18\x03 \x01(\x08\"8\n\x12ListEgressResponse\x12\"\n\x05items\x18\x01 \x03(\x0b\x32\x13.livekit.EgressInfo\"&\n\x11StopEgressRequest\x12\x11\n\tegress_id\x18\x01 \x01(\t\"\x91\x06\n\nEgressInfo\x12\x11\n\tegress_id\x18\x01 \x01(\t\x12\x0f\n\x07room_id\x18\x02 \x01(\t\x12\x11\n\troom_name\x18\r \x01(\t\x12%\n\x06status\x18\x03 \x01(\x0e\x32\x15.livekit.EgressStatus\x12\x12\n\nstarted_at\x18\n \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x0b \x01(\x03\x12\x12\n\nupdated_at\x18\x12 \x01(\x03\x12\r\n\x05\x65rror\x18\t \x01(\t\x12=\n\x0eroom_composite\x18\x04 \x01(\x0b\x32#.livekit.RoomCompositeEgressRequestH\x00\x12(\n\x03web\x18\x0e \x01(\x0b\x32\x19.livekit.WebEgressRequestH\x00\x12\x38\n\x0bparticipant\x18\x13 \x01(\x0b\x32!.livekit.ParticipantEgressRequestH\x00\x12?\n\x0ftrack_composite\x18\x05 \x01(\x0b\x32$.livekit.TrackCompositeEgressRequestH\x00\x12,\n\x05track\x18\x06 \x01(\x0b\x32\x1b.livekit.TrackEgressRequestH\x00\x12-\n\x06stream\x18\x07 \x01(\x0b\x32\x17.livekit.StreamInfoListB\x02\x18\x01H\x01\x12%\n\x04\x66ile\x18\x08 \x01(\x0b\x32\x11.livekit.FileInfoB\x02\x18\x01H\x01\x12-\n\x08segments\x18\x0c \x01(\x0b\x32\x15.livekit.SegmentsInfoB\x02\x18\x01H\x01\x12+\n\x0estream_results\x18\x0f \x03(\x0b\x32\x13.livekit.StreamInfo\x12\'\n\x0c\x66ile_results\x18\x10 \x03(\x0b\x32\x11.livekit.FileInfo\x12.\n\x0fsegment_results\x18\x11 \x03(\x0b\x32\x15.livekit.SegmentsInfo\x12*\n\rimage_results\x18\x14 \x03(\x0b\x32\x13.livekit.ImagesInfoB\t\n\x07requestB\x08\n\x06result\"7\n\x0eStreamInfoList\x12!\n\x04info\x18\x01 \x03(\x0b\x32\x13.livekit.StreamInfo:\x02\x18\x01\"\xbc\x01\n\nStreamInfo\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x12\n\nstarted_at\x18\x02 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x03 \x01(\x03\x12\x10\n\x08\x64uration\x18\x04 \x01(\x03\x12*\n\x06status\x18\x05 \x01(\x0e\x32\x1a.livekit.StreamInfo.Status\x12\r\n\x05\x65rror\x18\x06 \x01(\t\".\n\x06Status\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\x0c\n\x08\x46INISHED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\"t\n\x08\x46ileInfo\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x12\n\nstarted_at\x18\x02 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x03 \x01(\x03\x12\x10\n\x08\x64uration\x18\x06 \x01(\x03\x12\x0c\n\x04size\x18\x04 \x01(\x03\x12\x10\n\x08location\x18\x05 \x01(\t\"\xd9\x01\n\x0cSegmentsInfo\x12\x15\n\rplaylist_name\x18\x01 \x01(\t\x12\x1a\n\x12live_playlist_name\x18\x08 \x01(\t\x12\x10\n\x08\x64uration\x18\x02 \x01(\x03\x12\x0c\n\x04size\x18\x03 \x01(\x03\x12\x19\n\x11playlist_location\x18\x04 \x01(\t\x12\x1e\n\x16live_playlist_location\x18\t \x01(\t\x12\x15\n\rsegment_count\x18\x05 \x01(\x03\x12\x12\n\nstarted_at\x18\x06 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x07 \x01(\x03\"G\n\nImagesInfo\x12\x13\n\x0bimage_count\x18\x01 \x01(\x03\x12\x12\n\nstarted_at\x18\x02 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x03 \x01(\x03\"\xeb\x01\n\x15\x41utoParticipantEgress\x12\x30\n\x06preset\x18\x01 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x00\x12,\n\x08\x61\x64vanced\x18\x02 \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x00\x12\x30\n\x0c\x66ile_outputs\x18\x03 \x03(\x0b\x32\x1a.livekit.EncodedFileOutput\x12\x35\n\x0fsegment_outputs\x18\x04 \x03(\x0b\x32\x1c.livekit.SegmentedFileOutputB\t\n\x07options\"\xb6\x01\n\x0f\x41utoTrackEgress\x12\x10\n\x08\x66ilepath\x18\x01 \x01(\t\x12\x18\n\x10\x64isable_manifest\x18\x05 \x01(\x08\x12\x1f\n\x02s3\x18\x02 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\x03 \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\x04 \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x42\x08\n\x06output*9\n\x0f\x45ncodedFileType\x12\x14\n\x10\x44\x45\x46\x41ULT_FILETYPE\x10\x00\x12\x07\n\x03MP4\x10\x01\x12\x07\n\x03OGG\x10\x02*N\n\x15SegmentedFileProtocol\x12#\n\x1f\x44\x45\x46\x41ULT_SEGMENTED_FILE_PROTOCOL\x10\x00\x12\x10\n\x0cHLS_PROTOCOL\x10\x01*/\n\x13SegmentedFileSuffix\x12\t\n\x05INDEX\x10\x00\x12\r\n\tTIMESTAMP\x10\x01*E\n\x0fImageFileSuffix\x12\x16\n\x12IMAGE_SUFFIX_INDEX\x10\x00\x12\x1a\n\x16IMAGE_SUFFIX_TIMESTAMP\x10\x01*0\n\x0eStreamProtocol\x12\x14\n\x10\x44\x45\x46\x41ULT_PROTOCOL\x10\x00\x12\x08\n\x04RTMP\x10\x01*\xcf\x01\n\x15\x45ncodingOptionsPreset\x12\x10\n\x0cH264_720P_30\x10\x00\x12\x10\n\x0cH264_720P_60\x10\x01\x12\x11\n\rH264_1080P_30\x10\x02\x12\x11\n\rH264_1080P_60\x10\x03\x12\x19\n\x15PORTRAIT_H264_720P_30\x10\x04\x12\x19\n\x15PORTRAIT_H264_720P_60\x10\x05\x12\x1a\n\x16PORTRAIT_H264_1080P_30\x10\x06\x12\x1a\n\x16PORTRAIT_H264_1080P_60\x10\x07*\x9f\x01\n\x0c\x45gressStatus\x12\x13\n\x0f\x45GRESS_STARTING\x10\x00\x12\x11\n\rEGRESS_ACTIVE\x10\x01\x12\x11\n\rEGRESS_ENDING\x10\x02\x12\x13\n\x0f\x45GRESS_COMPLETE\x10\x03\x12\x11\n\rEGRESS_FAILED\x10\x04\x12\x12\n\x0e\x45GRESS_ABORTED\x10\x05\x12\x18\n\x14\x45GRESS_LIMIT_REACHED\x10\x06\x32\xe1\x05\n\x06\x45gress\x12T\n\x18StartRoomCompositeEgress\x12#.livekit.RoomCompositeEgressRequest\x1a\x13.livekit.EgressInfo\x12@\n\x0eStartWebEgress\x12\x19.livekit.WebEgressRequest\x1a\x13.livekit.EgressInfo\x12P\n\x16StartParticipantEgress\x12!.livekit.ParticipantEgressRequest\x1a\x13.livekit.EgressInfo\x12V\n\x19StartTrackCompositeEgress\x12$.livekit.TrackCompositeEgressRequest\x1a\x13.livekit.EgressInfo\x12\x44\n\x10StartTrackEgress\x12\x1b.livekit.TrackEgressRequest\x1a\x13.livekit.EgressInfo\x12\x41\n\x0cUpdateLayout\x12\x1c.livekit.UpdateLayoutRequest\x1a\x13.livekit.EgressInfo\x12\x41\n\x0cUpdateStream\x12\x1c.livekit.UpdateStreamRequest\x1a\x13.livekit.EgressInfo\x12\x43\n\rUpdateOutputs\x12\x1d.livekit.UpdateOutputsRequest\x1a\x13.livekit.EgressInfo\x12\x45\n\nListEgress\x12\x1a.livekit.ListEgressRequest\x1a\x1b.livekit.ListEgressResponse\x12=\n\nStopEgress\x12\x1a.livekit.StopEgressRequest\x1a\x13.livekit.EgressInfoBFZ#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3"
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            pool = Google::Protobuf::DescriptorPool.generated_pool
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            begin
         | 
| 15 | 
            +
              pool.add_serialized_file(descriptor_data)
         | 
| 16 | 
            +
            rescue TypeError => e
         | 
| 17 | 
            +
              # Compatibility code: will be removed in the next major version.
         | 
| 18 | 
            +
              require 'google/protobuf/descriptor_pb'
         | 
| 19 | 
            +
              parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
         | 
| 20 | 
            +
              parsed.clear_dependency
         | 
| 21 | 
            +
              serialized = parsed.class.encode(parsed)
         | 
| 22 | 
            +
              file = pool.add_serialized_file(serialized)
         | 
| 23 | 
            +
              warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
         | 
| 24 | 
            +
              imports = [
         | 
| 25 | 
            +
              ]
         | 
| 26 | 
            +
              imports.each do |type_name, expected_filename|
         | 
| 27 | 
            +
                import_file = pool.lookup(type_name).file_descriptor
         | 
| 28 | 
            +
                if import_file.name != expected_filename
         | 
| 29 | 
            +
                  warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
         | 
| 270 30 | 
             
                end
         | 
| 271 31 | 
             
              end
         | 
| 32 | 
            +
              warn "Each proto file must use a consistent fully-qualified name."
         | 
| 33 | 
            +
              warn "This will become an error in the next major version."
         | 
| 272 34 | 
             
            end
         | 
| 273 35 |  | 
| 274 36 | 
             
            module LiveKit
         | 
| 275 37 | 
             
              module Proto
         | 
| 276 38 | 
             
                RoomCompositeEgressRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.RoomCompositeEgressRequest").msgclass
         | 
| 277 39 | 
             
                WebEgressRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.WebEgressRequest").msgclass
         | 
| 40 | 
            +
                ParticipantEgressRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.ParticipantEgressRequest").msgclass
         | 
| 278 41 | 
             
                TrackCompositeEgressRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.TrackCompositeEgressRequest").msgclass
         | 
| 279 42 | 
             
                TrackEgressRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.TrackEgressRequest").msgclass
         | 
| 280 43 | 
             
                EncodedFileOutput = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.EncodedFileOutput").msgclass
         | 
| 281 44 | 
             
                SegmentedFileOutput = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.SegmentedFileOutput").msgclass
         | 
| 282 45 | 
             
                DirectFileOutput = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.DirectFileOutput").msgclass
         | 
| 46 | 
            +
                ImageOutput = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.ImageOutput").msgclass
         | 
| 283 47 | 
             
                S3Upload = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.S3Upload").msgclass
         | 
| 284 48 | 
             
                GCPUpload = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.GCPUpload").msgclass
         | 
| 285 49 | 
             
                AzureBlobUpload = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.AzureBlobUpload").msgclass
         | 
| @@ -288,6 +52,7 @@ module LiveKit | |
| 288 52 | 
             
                EncodingOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.EncodingOptions").msgclass
         | 
| 289 53 | 
             
                UpdateLayoutRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.UpdateLayoutRequest").msgclass
         | 
| 290 54 | 
             
                UpdateStreamRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.UpdateStreamRequest").msgclass
         | 
| 55 | 
            +
                UpdateOutputsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.UpdateOutputsRequest").msgclass
         | 
| 291 56 | 
             
                ListEgressRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.ListEgressRequest").msgclass
         | 
| 292 57 | 
             
                ListEgressResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.ListEgressResponse").msgclass
         | 
| 293 58 | 
             
                StopEgressRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.StopEgressRequest").msgclass
         | 
| @@ -297,10 +62,13 @@ module LiveKit | |
| 297 62 | 
             
                StreamInfo::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.StreamInfo.Status").enummodule
         | 
| 298 63 | 
             
                FileInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.FileInfo").msgclass
         | 
| 299 64 | 
             
                SegmentsInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.SegmentsInfo").msgclass
         | 
| 65 | 
            +
                ImagesInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.ImagesInfo").msgclass
         | 
| 66 | 
            +
                AutoParticipantEgress = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.AutoParticipantEgress").msgclass
         | 
| 300 67 | 
             
                AutoTrackEgress = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.AutoTrackEgress").msgclass
         | 
| 301 68 | 
             
                EncodedFileType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.EncodedFileType").enummodule
         | 
| 302 69 | 
             
                SegmentedFileProtocol = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.SegmentedFileProtocol").enummodule
         | 
| 303 70 | 
             
                SegmentedFileSuffix = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.SegmentedFileSuffix").enummodule
         | 
| 71 | 
            +
                ImageFileSuffix = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.ImageFileSuffix").enummodule
         | 
| 304 72 | 
             
                StreamProtocol = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.StreamProtocol").enummodule
         | 
| 305 73 | 
             
                EncodingOptionsPreset = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.EncodingOptionsPreset").enummodule
         | 
| 306 74 | 
             
                EgressStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.EgressStatus").enummodule
         | 
| @@ -1,4 +1,4 @@ | |
| 1 | 
            -
            # Code generated by protoc-gen-twirp_ruby 1. | 
| 1 | 
            +
            # Code generated by protoc-gen-twirp_ruby 1.10.0, DO NOT EDIT.
         | 
| 2 2 | 
             
            require 'twirp'
         | 
| 3 3 | 
             
            require_relative 'livekit_egress_pb.rb'
         | 
| 4 4 |  | 
| @@ -8,11 +8,13 @@ module LiveKit | |
| 8 8 | 
             
                  package 'livekit'
         | 
| 9 9 | 
             
                  service 'Egress'
         | 
| 10 10 | 
             
                  rpc :StartRoomCompositeEgress, RoomCompositeEgressRequest, EgressInfo, :ruby_method => :start_room_composite_egress
         | 
| 11 | 
            +
                  rpc :StartWebEgress, WebEgressRequest, EgressInfo, :ruby_method => :start_web_egress
         | 
| 12 | 
            +
                  rpc :StartParticipantEgress, ParticipantEgressRequest, EgressInfo, :ruby_method => :start_participant_egress
         | 
| 11 13 | 
             
                  rpc :StartTrackCompositeEgress, TrackCompositeEgressRequest, EgressInfo, :ruby_method => :start_track_composite_egress
         | 
| 12 14 | 
             
                  rpc :StartTrackEgress, TrackEgressRequest, EgressInfo, :ruby_method => :start_track_egress
         | 
| 13 | 
            -
                  rpc :StartWebEgress, WebEgressRequest, EgressInfo, :ruby_method => :start_web_egress
         | 
| 14 15 | 
             
                  rpc :UpdateLayout, UpdateLayoutRequest, EgressInfo, :ruby_method => :update_layout
         | 
| 15 16 | 
             
                  rpc :UpdateStream, UpdateStreamRequest, EgressInfo, :ruby_method => :update_stream
         | 
| 17 | 
            +
                  rpc :UpdateOutputs, UpdateOutputsRequest, EgressInfo, :ruby_method => :update_outputs
         | 
| 16 18 | 
             
                  rpc :ListEgress, ListEgressRequest, ListEgressResponse, :ruby_method => :list_egress
         | 
| 17 19 | 
             
                  rpc :StopEgress, StopEgressRequest, EgressInfo, :ruby_method => :stop_egress
         | 
| 18 20 | 
             
                end
         |