From 1faadbddd87467d74625dfe55ca51679ac270b05 Mon Sep 17 00:00:00 2001
From: Ben Cherry
Date: Wed, 13 Nov 2024 09:56:20 -0800
Subject: [PATCH 01/11] docs updates
---
livekit-api/livekit/api/__init__.py | 5 +-
livekit-api/livekit/api/livekit_api.py | 26 ++++++--
livekit-api/livekit/api/room_service.py | 88 +++++++++++++------------
3 files changed, 72 insertions(+), 47 deletions(-)
diff --git a/livekit-api/livekit/api/__init__.py b/livekit-api/livekit/api/__init__.py
index 0355cbb4..4c965977 100644
--- a/livekit-api/livekit/api/__init__.py
+++ b/livekit-api/livekit/api/__init__.py
@@ -12,7 +12,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-"""LiveKit API SDK"""
+"""LiveKit Server APIs for Python
+
+See https://docs.livekit.io/home/server/ for docs and examples.
+"""
# flake8: noqa
# re-export packages from protocol
diff --git a/livekit-api/livekit/api/livekit_api.py b/livekit-api/livekit/api/livekit_api.py
index 29834842..276f7043 100644
--- a/livekit-api/livekit/api/livekit_api.py
+++ b/livekit-api/livekit/api/livekit_api.py
@@ -9,6 +9,17 @@
class LiveKitAPI:
+ """LiveKit Server API Client
+
+ Usage:
+
+ ```python
+ from livekit import api
+ lkapi = api.LiveKitAPI()
+ rooms = await lkapi.room.list_rooms(api.proto_room.ListRoomsRequest(names=['test-room']))
+ ```
+ """
+
def __init__(
self,
url: Optional[str] = None,
@@ -37,23 +48,28 @@ def __init__(
)
@property
- def agent_dispatch(self):
+ def agent_dispatch(self) -> AgentDispatchService:
+ """See :class:`AgentDispatchService`"""
return self._agent_dispatch
@property
- def room(self):
+ def room(self) -> RoomService:
+ """See :class:`RoomService`"""
return self._room
@property
- def ingress(self):
+ def ingress(self) -> IngressService:
+ """See :class:`IngressService`"""
return self._ingress
@property
- def egress(self):
+ def egress(self) -> EgressService:
+ """See :class:`EgressService`"""
return self._egress
@property
- def sip(self):
+ def sip(self) -> SipService:
+ """See: :class:`SipService`"""
return self._sip
async def aclose(self):
diff --git a/livekit-api/livekit/api/room_service.py b/livekit-api/livekit/api/room_service.py
index 9c1b197a..18cd9257 100644
--- a/livekit-api/livekit/api/room_service.py
+++ b/livekit-api/livekit/api/room_service.py
@@ -1,6 +1,24 @@
import aiohttp
-from livekit.protocol import room as proto_room
-from livekit.protocol import models as proto_models
+from livekit.protocol.room import (
+ CreateRoomRequest,
+ ListRoomsRequest,
+ DeleteRoomRequest,
+ ListRoomsResponse,
+ DeleteRoomResponse,
+ ListParticipantsRequest,
+ ListParticipantsResponse,
+ RoomParticipantIdentity,
+ MuteRoomTrackRequest,
+ MuteRoomTrackResponse,
+ UpdateParticipantRequest,
+ UpdateSubscriptionsRequest,
+ SendDataRequest,
+ SendDataResponse,
+ UpdateRoomMetadataRequest,
+ RemoveParticipantResponse,
+ UpdateSubscriptionsResponse,
+)
+from livekit.protocol.models import Room, ParticipantInfo
from ._service import Service
from .access_token import VideoGrants
@@ -13,124 +31,112 @@ def __init__(
):
super().__init__(session, url, api_key, api_secret)
- async def create_room(
- self, create: proto_room.CreateRoomRequest
- ) -> proto_models.Room:
+ async def create_room(self, create: CreateRoomRequest) -> Room:
return await self._client.request(
SVC,
"CreateRoom",
create,
self._auth_header(VideoGrants(room_create=True)),
- proto_models.Room,
+ Room,
)
- async def list_rooms(
- self, list: proto_room.ListRoomsRequest
- ) -> proto_room.ListRoomsResponse:
+ async def list_rooms(self, list: ListRoomsRequest) -> ListRoomsResponse:
return await self._client.request(
SVC,
"ListRooms",
list,
self._auth_header(VideoGrants(room_list=True)),
- proto_room.ListRoomsResponse,
+ ListRoomsResponse,
)
- async def delete_room(
- self, delete: proto_room.DeleteRoomRequest
- ) -> proto_room.DeleteRoomResponse:
+ async def delete_room(self, delete: DeleteRoomRequest) -> DeleteRoomResponse:
return await self._client.request(
SVC,
"DeleteRoom",
delete,
self._auth_header(VideoGrants(room_create=True)),
- proto_room.DeleteRoomResponse,
+ DeleteRoomResponse,
)
- async def update_room_metadata(
- self, update: proto_room.UpdateRoomMetadataRequest
- ) -> proto_models.Room:
+ async def update_room_metadata(self, update: UpdateRoomMetadataRequest) -> Room:
return await self._client.request(
SVC,
"UpdateRoomMetadata",
update,
self._auth_header(VideoGrants(room_admin=True, room=update.room)),
- proto_models.Room,
+ Room,
)
async def list_participants(
- self, list: proto_room.ListParticipantsRequest
- ) -> proto_room.ListParticipantsResponse:
+ self, list: ListParticipantsRequest
+ ) -> ListParticipantsResponse:
return await self._client.request(
SVC,
"ListParticipants",
list,
self._auth_header(VideoGrants(room_admin=True, room=list.room)),
- proto_room.ListParticipantsResponse,
+ ListParticipantsResponse,
)
- async def get_participant(
- self, get: proto_room.RoomParticipantIdentity
- ) -> proto_models.ParticipantInfo:
+ async def get_participant(self, get: RoomParticipantIdentity) -> ParticipantInfo:
return await self._client.request(
SVC,
"GetParticipant",
get,
self._auth_header(VideoGrants(room_admin=True, room=get.room)),
- proto_models.ParticipantInfo,
+ ParticipantInfo,
)
async def remove_participant(
- self, remove: proto_room.RoomParticipantIdentity
- ) -> proto_room.RemoveParticipantResponse:
+ self, remove: RoomParticipantIdentity
+ ) -> RemoveParticipantResponse:
return await self._client.request(
SVC,
"RemoveParticipant",
remove,
self._auth_header(VideoGrants(room_admin=True, room=remove.room)),
- proto_room.RemoveParticipantResponse,
+ RemoveParticipantResponse,
)
async def mute_published_track(
self,
- update: proto_room.MuteRoomTrackRequest,
- ) -> proto_room.MuteRoomTrackResponse:
+ update: MuteRoomTrackRequest,
+ ) -> MuteRoomTrackResponse:
return await self._client.request(
SVC,
"MutePublishedTrack",
update,
self._auth_header(VideoGrants(room_admin=True, room=update.room)),
- proto_room.MuteRoomTrackResponse,
+ MuteRoomTrackResponse,
)
async def update_participant(
- self, update: proto_room.UpdateParticipantRequest
- ) -> proto_models.ParticipantInfo:
+ self, update: UpdateParticipantRequest
+ ) -> ParticipantInfo:
return await self._client.request(
SVC,
"UpdateParticipant",
update,
self._auth_header(VideoGrants(room_admin=True, room=update.room)),
- proto_models.ParticipantInfo,
+ ParticipantInfo,
)
async def update_subscriptions(
- self, update: proto_room.UpdateSubscriptionsRequest
- ) -> proto_room.UpdateSubscriptionsResponse:
+ self, update: UpdateSubscriptionsRequest
+ ) -> UpdateSubscriptionsResponse:
return await self._client.request(
SVC,
"UpdateSubscriptions",
update,
self._auth_header(VideoGrants(room_admin=True, room=update.room)),
- proto_room.UpdateSubscriptionsResponse,
+ UpdateSubscriptionsResponse,
)
- async def send_data(
- self, send: proto_room.SendDataRequest
- ) -> proto_room.SendDataResponse:
+ async def send_data(self, send: SendDataRequest) -> SendDataResponse:
return await self._client.request(
SVC,
"SendData",
send,
self._auth_header(VideoGrants(room_admin=True, room=send.room)),
- proto_room.SendDataResponse,
+ SendDataResponse,
)
From 45d34a00dda4f4ebc131d0396acb0116c27cf06f Mon Sep 17 00:00:00 2001
From: Ben Cherry
Date: Wed, 13 Nov 2024 11:09:49 -0800
Subject: [PATCH 02/11] updates
---
docs/index.html | 7 +
docs/livekit/api.html | 2252 +++++++++++++++++
docs/livekit/api/_service.html | 390 +++
docs/livekit/api/access_token.html | 1942 ++++++++++++++
docs/livekit/api/agent_dispatch_service.html | 743 ++++++
docs/livekit/api/egress_service.html | 810 ++++++
docs/livekit/api/ingress_service.html | 550 ++++
docs/livekit/api/livekit_api.html | 665 +++++
docs/livekit/api/room_service.html | 882 +++++++
docs/livekit/api/sip_service.html | 978 +++++++
docs/livekit/api/twirp_client.html | 952 +++++++
docs/livekit/api/version.html | 242 ++
docs/livekit/api/webhook.html | 393 +++
docs/search.js | 46 +
livekit-api/livekit/api/__init__.py | 22 +-
.../livekit/api/agent_dispatch_service.py | 35 +-
livekit-api/livekit/api/egress_service.py | 70 +-
livekit-api/livekit/api/ingress_service.py | 40 +-
livekit-api/livekit/api/livekit_api.py | 31 +-
livekit-api/livekit/api/room_service.py | 34 +-
livekit-api/livekit/api/sip_service.py | 86 +-
livekit-api/livekit/api/webhook.py | 6 +-
22 files changed, 11052 insertions(+), 124 deletions(-)
create mode 100644 docs/index.html
create mode 100644 docs/livekit/api.html
create mode 100644 docs/livekit/api/_service.html
create mode 100644 docs/livekit/api/access_token.html
create mode 100644 docs/livekit/api/agent_dispatch_service.html
create mode 100644 docs/livekit/api/egress_service.html
create mode 100644 docs/livekit/api/ingress_service.html
create mode 100644 docs/livekit/api/livekit_api.html
create mode 100644 docs/livekit/api/room_service.html
create mode 100644 docs/livekit/api/sip_service.html
create mode 100644 docs/livekit/api/twirp_client.html
create mode 100644 docs/livekit/api/version.html
create mode 100644 docs/livekit/api/webhook.html
create mode 100644 docs/search.js
diff --git a/docs/index.html b/docs/index.html
new file mode 100644
index 00000000..b3d77804
--- /dev/null
+++ b/docs/index.html
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/docs/livekit/api.html b/docs/livekit/api.html
new file mode 100644
index 00000000..aa95c10c
--- /dev/null
+++ b/docs/livekit/api.html
@@ -0,0 +1,2252 @@
+
+
+
+
+
+
+ livekit.api API documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+livekit.api
+
+
+
+
+
+ View Source
+
+ 1 # Copyright 2023 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.
+14
+15 """LiveKit Server APIs for Python
+16
+17 Manage rooms, participants, egress, ingress, SIP, and Agent dispatch.
+18
+19 Primary entry point is `LiveKitAPI`.
+20
+21 See https://docs.livekit.io/reference/server/server-apis for more information.
+22 """
+23
+24 # flake8: noqa
+25 # re-export packages from protocol
+26 from livekit.protocol.agent_dispatch import *
+27 from livekit.protocol.agent import *
+28 from livekit.protocol.egress import *
+29 from livekit.protocol.ingress import *
+30 from livekit.protocol.models import *
+31 from livekit.protocol.room import *
+32 from livekit.protocol.webhook import *
+33 from livekit.protocol.sip import *
+34
+35 from .twirp_client import TwirpError , TwirpErrorCode
+36 from .livekit_api import LiveKitAPI
+37 from .access_token import VideoGrants , SIPGrants , AccessToken , TokenVerifier
+38 from .webhook import WebhookReceiver
+39 from .version import __version__
+40
+41 __all__ = [
+42 "LiveKitAPI" ,
+43 "room_service" ,
+44 "egress_service" ,
+45 "ingress_service" ,
+46 "sip_service" ,
+47 "agent_dispatch_service" ,
+48 "VideoGrants" ,
+49 "SIPGrants" ,
+50 "AccessToken" ,
+51 "TokenVerifier" ,
+52 "WebhookReceiver" ,
+53 "TwirpError" ,
+54 "TwirpErrorCode" ,
+55 ]
+
+
+
+
+
+
+
+
+ class
+ LiveKitAPI :
+
+ View Source
+
+
+
+ 12 class LiveKitAPI :
+13 """LiveKit Server API Client
+14
+15 This class is the main entrypoint, which exposes all services.
+16
+17 Usage:
+18
+19 ```python
+20 from livekit import api
+21 lkapi = api.LiveKitAPI()
+22 rooms = await lkapi.room.list_rooms(api.proto_room.ListRoomsRequest(names=['test-room']))
+23 ```
+24 """
+25
+26 def __init__ (
+27 self ,
+28 url : Optional [ str ] = None ,
+29 api_key : Optional [ str ] = None ,
+30 api_secret : Optional [ str ] = None ,
+31 * ,
+32 timeout : aiohttp . ClientTimeout = aiohttp . ClientTimeout ( total = 60 ), # 60 seconds
+33 ):
+34 """Create a new LiveKitAPI instance.
+35
+36 Args:
+37 url: LiveKit server URL (read from `LIVEKIT_URL` environment variable if not provided)
+38 api_key: API key (read from `LIVEKIT_API_KEY` environment variable if not provided)
+39 api_secret: API secret (read from `LIVEKIT_API_SECRET` environment variable if not provided)
+40 timeout: Request timeout (default: 60 seconds)
+41 """
+42 url = url or os . getenv ( "LIVEKIT_URL" )
+43 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
+44 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
+45
+46 if not url :
+47 raise ValueError ( "url must be set" )
+48
+49 if not api_key or not api_secret :
+50 raise ValueError ( "api_key and api_secret must be set" )
+51
+52 self . _session = aiohttp . ClientSession ( timeout = timeout )
+53 self . _room = RoomService ( self . _session , url , api_key , api_secret )
+54 self . _ingress = IngressService ( self . _session , url , api_key , api_secret )
+55 self . _egress = EgressService ( self . _session , url , api_key , api_secret )
+56 self . _sip = SipService ( self . _session , url , api_key , api_secret )
+57 self . _agent_dispatch = AgentDispatchService (
+58 self . _session , url , api_key , api_secret
+59 )
+60
+61 @property
+62 def agent_dispatch ( self ) -> AgentDispatchService :
+63 """Instance of the AgentDispatchService
+64
+65 See `livekit.api.agent_dispatch_service.AgentDispatchService`"""
+66 return self . _agent_dispatch
+67
+68 @property
+69 def room ( self ) -> RoomService :
+70 """Instance of the RoomService
+71
+72 See `livekit.api.room_service.RoomService`"""
+73 return self . _room
+74
+75 @property
+76 def ingress ( self ) -> IngressService :
+77 """Instance of the IngressService
+78
+79 See `livekit.api.ingress_service.IngressService`"""
+80 return self . _ingress
+81
+82 @property
+83 def egress ( self ) -> EgressService :
+84 """Instance of the EgressService
+85
+86 See `livekit.api.egress_service.EgressService`"""
+87 return self . _egress
+88
+89 @property
+90 def sip ( self ) -> SipService :
+91 """Instance of the SipService
+92
+93 See `livekit.api.sip_service.SipService`"""
+94 return self . _sip
+95
+96 async def aclose ( self ):
+97 """@private"""
+98 await self . _session . close ()
+
+
+
+ LiveKit Server API Client
+
+
This class is the main entrypoint, which exposes all services.
+
+
Usage:
+
+
+
from livekit import api
+lkapi = api . LiveKitAPI ()
+rooms = await lkapi . room . list_rooms ( api . proto_room . ListRoomsRequest ( names = [ 'test-room' ]))
+
+
+
+
+
+
+
+
+
+ LiveKitAPI ( url : Optional [ str ] = None , api_key : Optional [ str ] = None , api_secret : Optional [ str ] = None , * , timeout : aiohttp . client . ClientTimeout = ClientTimeout ( total = 60 , connect = None , sock_read = None , sock_connect = None , ceil_threshold = 5 ) )
+
+ View Source
+
+
+
+
26 def __init__ (
+27 self ,
+28 url : Optional [ str ] = None ,
+29 api_key : Optional [ str ] = None ,
+30 api_secret : Optional [ str ] = None ,
+31 * ,
+32 timeout : aiohttp . ClientTimeout = aiohttp . ClientTimeout ( total = 60 ), # 60 seconds
+33 ):
+34 """Create a new LiveKitAPI instance.
+35
+36 Args:
+37 url: LiveKit server URL (read from `LIVEKIT_URL` environment variable if not provided)
+38 api_key: API key (read from `LIVEKIT_API_KEY` environment variable if not provided)
+39 api_secret: API secret (read from `LIVEKIT_API_SECRET` environment variable if not provided)
+40 timeout: Request timeout (default: 60 seconds)
+41 """
+42 url = url or os . getenv ( "LIVEKIT_URL" )
+43 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
+44 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
+45
+46 if not url :
+47 raise ValueError ( "url must be set" )
+48
+49 if not api_key or not api_secret :
+50 raise ValueError ( "api_key and api_secret must be set" )
+51
+52 self . _session = aiohttp . ClientSession ( timeout = timeout )
+53 self . _room = RoomService ( self . _session , url , api_key , api_secret )
+54 self . _ingress = IngressService ( self . _session , url , api_key , api_secret )
+55 self . _egress = EgressService ( self . _session , url , api_key , api_secret )
+56 self . _sip = SipService ( self . _session , url , api_key , api_secret )
+57 self . _agent_dispatch = AgentDispatchService (
+58 self . _session , url , api_key , api_secret
+59 )
+
+
+
+
Create a new LiveKitAPI instance.
+
+
Arguments:
+
+
+url: LiveKit server URL (read from LIVEKIT_URL environment variable if not provided)
+api_key: API key (read from LIVEKIT_API_KEY environment variable if not provided)
+api_secret: API secret (read from LIVEKIT_API_SECRET environment variable if not provided)
+timeout: Request timeout (default: 60 seconds)
+
+
+
+
+
+
+
+
+
+
61 @property
+62 def agent_dispatch ( self ) -> AgentDispatchService :
+63 """Instance of the AgentDispatchService
+64
+65 See `livekit.api.agent_dispatch_service.AgentDispatchService`"""
+66 return self . _agent_dispatch
+
+
+
+
+
+
+
+
+
+
+
+
68 @property
+69 def room ( self ) -> RoomService :
+70 """Instance of the RoomService
+71
+72 See `livekit.api.room_service.RoomService`"""
+73 return self . _room
+
+
+
+
+
+
+
+
+
+
+
+
75 @property
+76 def ingress ( self ) -> IngressService :
+77 """Instance of the IngressService
+78
+79 See `livekit.api.ingress_service.IngressService`"""
+80 return self . _ingress
+
+
+
+
+
+
+
+
+
+
+
+
82 @property
+83 def egress ( self ) -> EgressService :
+84 """Instance of the EgressService
+85
+86 See `livekit.api.egress_service.EgressService`"""
+87 return self . _egress
+
+
+
+
+
+
+
+
+
+
+
+
89 @property
+90 def sip ( self ) -> SipService :
+91 """Instance of the SipService
+92
+93 See `livekit.api.sip_service.SipService`"""
+94 return self . _sip
+
+
+
+
+
+
+
+
+
+
+
+
@dataclasses.dataclass
+
+
class
+
VideoGrants :
+
+
View Source
+
+
+
+ 31 @dataclasses . dataclass
+32 class VideoGrants :
+33 # actions on rooms
+34 room_create : Optional [ bool ] = None
+35 room_list : Optional [ bool ] = None
+36 room_record : Optional [ bool ] = None
+37
+38 # actions on a particular room
+39 room_admin : Optional [ bool ] = None
+40 room_join : Optional [ bool ] = None
+41 room : str = ""
+42
+43 # permissions within a room
+44 can_publish : bool = True
+45 can_subscribe : bool = True
+46 can_publish_data : bool = True
+47
+48 # TrackSource types that a participant may publish.
+49 # When set, it supersedes CanPublish. Only sources explicitly set here can be
+50 # published
+51 can_publish_sources : Optional [ List [ str ]] = None
+52
+53 # by default, a participant is not allowed to update its own metadata
+54 can_update_own_metadata : Optional [ bool ] = None
+55
+56 # actions on ingresses
+57 ingress_admin : Optional [ bool ] = None # applies to all ingress
+58
+59 # participant is not visible to other participants (useful when making bots)
+60 hidden : Optional [ bool ] = None
+61
+62 # [deprecated] indicates to the room that current participant is a recorder
+63 recorder : Optional [ bool ] = None
+64
+65 # indicates that the holder can register as an Agent framework worker
+66 agent : Optional [ bool ] = None
+
+
+
+
+
+
+
+
+ VideoGrants ( room_create : Optional [ bool ] = None , room_list : Optional [ bool ] = None , room_record : Optional [ bool ] = None , room_admin : Optional [ bool ] = None , room_join : Optional [ bool ] = None , room : str = '' , can_publish : bool = True , can_subscribe : bool = True , can_publish_data : bool = True , can_publish_sources : Optional [ List [ str ]] = None , can_update_own_metadata : Optional [ bool ] = None , ingress_admin : Optional [ bool ] = None , hidden : Optional [ bool ] = None , recorder : Optional [ bool ] = None , agent : Optional [ bool ] = None )
+
+
+
+
+
+
+
+
+
+
+ room_create : Optional[bool] =
+None
+
+
+
+
+
+
+
+
+
+
+ room_list : Optional[bool] =
+None
+
+
+
+
+
+
+
+
+
+
+ room_record : Optional[bool] =
+None
+
+
+
+
+
+
+
+
+
+
+ room_admin : Optional[bool] =
+None
+
+
+
+
+
+
+
+
+
+
+ room_join : Optional[bool] =
+None
+
+
+
+
+
+
+
+
+
+
+ room : str =
+''
+
+
+
+
+
+
+
+
+
+
+ can_publish : bool =
+True
+
+
+
+
+
+
+
+
+
+
+ can_subscribe : bool =
+True
+
+
+
+
+
+
+
+
+
+
+ can_publish_data : bool =
+True
+
+
+
+
+
+
+
+
+
+
+ can_publish_sources : Optional[List[str]] =
+None
+
+
+
+
+
+
+
+
+
+
+
+ ingress_admin : Optional[bool] =
+None
+
+
+
+
+
+
+
+
+
+
+ hidden : Optional[bool] =
+None
+
+
+
+
+
+
+
+
+
+
+ recorder : Optional[bool] =
+None
+
+
+
+
+
+
+
+
+
+
+ agent : Optional[bool] =
+None
+
+
+
+
+
+
+
+
+
+
+
+
+
@dataclasses.dataclass
+
+
class
+
SIPGrants :
+
+
View Source
+
+
+
+ 69 @dataclasses . dataclass
+70 class SIPGrants :
+71 # manage sip resources
+72 admin : bool = False
+73 # make outbound calls
+74 call : bool = False
+
+
+
+
+
+
+
+
+ SIPGrants (admin : bool = False , call : bool = False )
+
+
+
+
+
+
+
+
+
+
+ admin : bool =
+False
+
+
+
+
+
+
+
+
+
+
+ call : bool =
+False
+
+
+
+
+
+
+
+
+
+
+
+
+
+ class
+ AccessToken :
+
+ View Source
+
+
+
+ 105 class AccessToken :
+106 ParticipantKind = Literal [ "standard" , "egress" , "ingress" , "sip" , "agent" ]
+107
+108 def __init__ (
+109 self ,
+110 api_key : Optional [ str ] = None ,
+111 api_secret : Optional [ str ] = None ,
+112 ) -> None :
+113 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
+114 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
+115
+116 if not api_key or not api_secret :
+117 raise ValueError ( "api_key and api_secret must be set" )
+118
+119 self . api_key = api_key # iss
+120 self . api_secret = api_secret
+121 self . claims = Claims ()
+122
+123 # default jwt claims
+124 self . identity = "" # sub
+125 self . ttl = DEFAULT_TTL # exp
+126
+127 def with_ttl ( self , ttl : datetime . timedelta ) -> "AccessToken" :
+128 self . ttl = ttl
+129 return self
+130
+131 def with_grants ( self , grants : VideoGrants ) -> "AccessToken" :
+132 self . claims . video = grants
+133 return self
+134
+135 def with_sip_grants ( self , grants : SIPGrants ) -> "AccessToken" :
+136 self . claims . sip = grants
+137 return self
+138
+139 def with_identity ( self , identity : str ) -> "AccessToken" :
+140 self . identity = identity
+141 return self
+142
+143 def with_kind ( self , kind : ParticipantKind ) -> "AccessToken" :
+144 self . claims . kind = kind
+145 return self
+146
+147 def with_name ( self , name : str ) -> "AccessToken" :
+148 self . claims . name = name
+149 return self
+150
+151 def with_metadata ( self , metadata : str ) -> "AccessToken" :
+152 self . claims . metadata = metadata
+153 return self
+154
+155 def with_attributes ( self , attributes : dict [ str , str ]) -> "AccessToken" :
+156 self . claims . attributes = attributes
+157 return self
+158
+159 def with_sha256 ( self , sha256 : str ) -> "AccessToken" :
+160 self . claims . sha256 = sha256
+161 return self
+162
+163 def with_room_preset ( self , preset : str ) -> "AccessToken" :
+164 self . claims . room_preset = preset
+165 return self
+166
+167 def with_room_config ( self , config : RoomConfiguration ) -> "AccessToken" :
+168 self . claims . room_config = config
+169 return self
+170
+171 def to_jwt ( self ) -> str :
+172 video = self . claims . video
+173 if video and video . room_join and ( not self . identity or not video . room ):
+174 raise ValueError ( "identity and room must be set when joining a room" )
+175
+176 # we want to exclude None values from the token
+177 jwt_claims = self . claims . asdict ()
+178 jwt_claims . update (
+179 {
+180 "sub" : self . identity ,
+181 "iss" : self . api_key ,
+182 "nbf" : calendar . timegm (
+183 datetime . datetime . now ( datetime . timezone . utc ) . utctimetuple ()
+184 ),
+185 "exp" : calendar . timegm (
+186 (
+187 datetime . datetime . now ( datetime . timezone . utc ) + self . ttl
+188 ) . utctimetuple ()
+189 ),
+190 }
+191 )
+192 return jwt . encode ( jwt_claims , self . api_secret , algorithm = "HS256" )
+
+
+
+
+
+
+
+
+
+ AccessToken (api_key : Optional [ str ] = None , api_secret : Optional [ str ] = None )
+
+ View Source
+
+
+
+
108 def __init__ (
+109 self ,
+110 api_key : Optional [ str ] = None ,
+111 api_secret : Optional [ str ] = None ,
+112 ) -> None :
+113 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
+114 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
+115
+116 if not api_key or not api_secret :
+117 raise ValueError ( "api_key and api_secret must be set" )
+118
+119 self . api_key = api_key # iss
+120 self . api_secret = api_secret
+121 self . claims = Claims ()
+122
+123 # default jwt claims
+124 self . identity = "" # sub
+125 self . ttl = DEFAULT_TTL # exp
+
+
+
+
+
+
+
+
+ ParticipantKind =
+typing.Literal['standard', 'egress', 'ingress', 'sip', 'agent']
+
+
+
+
+
+
+
+
+
+
+ api_key
+
+
+
+
+
+
+
+
+
+
+ api_secret
+
+
+
+
+
+
+
+
+
+
+ claims
+
+
+
+
+
+
+
+
+
+
+ identity
+
+
+
+
+
+
+
+
+
+
+
+
+
+
def
+
with_ttl (self , ttl : datetime . timedelta ) -> AccessToken :
+
+
View Source
+
+
+
+
127 def with_ttl ( self , ttl : datetime . timedelta ) -> "AccessToken" :
+128 self . ttl = ttl
+129 return self
+
+
+
+
+
+
+
+
+
+
+
131 def with_grants ( self , grants : VideoGrants ) -> "AccessToken" :
+132 self . claims . video = grants
+133 return self
+
+
+
+
+
+
+
+
+
+
+
135 def with_sip_grants ( self , grants : SIPGrants ) -> "AccessToken" :
+136 self . claims . sip = grants
+137 return self
+
+
+
+
+
+
+
+
+
+
+
def
+
with_identity (self , identity : str ) -> AccessToken :
+
+
View Source
+
+
+
+
139 def with_identity ( self , identity : str ) -> "AccessToken" :
+140 self . identity = identity
+141 return self
+
+
+
+
+
+
+
+
+
+
+
def
+
with_kind ( self , kind : Literal [ 'standard' , 'egress' , 'ingress' , 'sip' , 'agent' ] ) -> AccessToken :
+
+
View Source
+
+
+
+
143 def with_kind ( self , kind : ParticipantKind ) -> "AccessToken" :
+144 self . claims . kind = kind
+145 return self
+
+
+
+
+
+
+
+
+
+
+
def
+
with_name (self , name : str ) -> AccessToken :
+
+
View Source
+
+
+
+
147 def with_name ( self , name : str ) -> "AccessToken" :
+148 self . claims . name = name
+149 return self
+
+
+
+
+
+
+
+
+
+
+
+
def
+
with_attributes (self , attributes : dict [ str , str ] ) -> AccessToken :
+
+
View Source
+
+
+
+
155 def with_attributes ( self , attributes : dict [ str , str ]) -> "AccessToken" :
+156 self . claims . attributes = attributes
+157 return self
+
+
+
+
+
+
+
+
+
+
+
def
+
with_sha256 (self , sha256 : str ) -> AccessToken :
+
+
View Source
+
+
+
+
159 def with_sha256 ( self , sha256 : str ) -> "AccessToken" :
+160 self . claims . sha256 = sha256
+161 return self
+
+
+
+
+
+
+
+
+
+
+
def
+
with_room_preset (self , preset : str ) -> AccessToken :
+
+
View Source
+
+
+
+
163 def with_room_preset ( self , preset : str ) -> "AccessToken" :
+164 self . claims . room_preset = preset
+165 return self
+
+
+
+
+
+
+
+
+
+
+
def
+
with_room_config ( self , config : room . RoomConfiguration ) -> AccessToken :
+
+
View Source
+
+
+
+
167 def with_room_config ( self , config : RoomConfiguration ) -> "AccessToken" :
+168 self . claims . room_config = config
+169 return self
+
+
+
+
+
+
+
+
+
+
+ def
+ to_jwt (self ) -> str :
+
+ View Source
+
+
+
+
171 def to_jwt ( self ) -> str :
+172 video = self . claims . video
+173 if video and video . room_join and ( not self . identity or not video . room ):
+174 raise ValueError ( "identity and room must be set when joining a room" )
+175
+176 # we want to exclude None values from the token
+177 jwt_claims = self . claims . asdict ()
+178 jwt_claims . update (
+179 {
+180 "sub" : self . identity ,
+181 "iss" : self . api_key ,
+182 "nbf" : calendar . timegm (
+183 datetime . datetime . now ( datetime . timezone . utc ) . utctimetuple ()
+184 ),
+185 "exp" : calendar . timegm (
+186 (
+187 datetime . datetime . now ( datetime . timezone . utc ) + self . ttl
+188 ) . utctimetuple ()
+189 ),
+190 }
+191 )
+192 return jwt . encode ( jwt_claims , self . api_secret , algorithm = "HS256" )
+
+
+
+
+
+
+
+
+
+
+
+ class
+ TokenVerifier :
+
+ View Source
+
+
+
+ 195 class TokenVerifier :
+196 def __init__ (
+197 self ,
+198 api_key : Optional [ str ] = None ,
+199 api_secret : Optional [ str ] = None ,
+200 * ,
+201 leeway : datetime . timedelta = DEFAULT_LEEWAY ,
+202 ) -> None :
+203 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
+204 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
+205
+206 if not api_key or not api_secret :
+207 raise ValueError ( "api_key and api_secret must be set" )
+208
+209 self . api_key = api_key
+210 self . api_secret = api_secret
+211 self . _leeway = leeway
+212
+213 def verify ( self , token : str ) -> Claims :
+214 claims = jwt . decode (
+215 token ,
+216 self . api_secret ,
+217 issuer = self . api_key ,
+218 algorithms = [ "HS256" ],
+219 leeway = self . _leeway . total_seconds (),
+220 )
+221
+222 video_dict = claims . get ( "video" , dict ())
+223 video_dict = { camel_to_snake ( k ): v for k , v in video_dict . items ()}
+224 video_dict = {
+225 k : v for k , v in video_dict . items () if k in VideoGrants . __dataclass_fields__
+226 }
+227 video = VideoGrants ( ** video_dict )
+228
+229 sip_dict = claims . get ( "sip" , dict ())
+230 sip_dict = { camel_to_snake ( k ): v for k , v in sip_dict . items ()}
+231 sip_dict = {
+232 k : v for k , v in sip_dict . items () if k in SIPGrants . __dataclass_fields__
+233 }
+234 sip = SIPGrants ( ** sip_dict )
+235
+236 grant_claims = Claims (
+237 identity = claims . get ( "sub" , "" ),
+238 name = claims . get ( "name" , "" ),
+239 video = video ,
+240 sip = sip ,
+241 attributes = claims . get ( "attributes" , {}),
+242 metadata = claims . get ( "metadata" , "" ),
+243 sha256 = claims . get ( "sha256" , "" ),
+244 )
+245
+246 if claims . get ( "roomPreset" ):
+247 grant_claims . room_preset = claims . get ( "roomPreset" )
+248 if claims . get ( "roomConfig" ):
+249 grant_claims . room_config = ParseDict (
+250 claims . get ( "roomConfig" ),
+251 RoomConfiguration (),
+252 ignore_unknown_fields = True ,
+253 )
+254
+255 return grant_claims
+
+
+
+
+
+
+
+
+
+ TokenVerifier ( api_key : Optional [ str ] = None , api_secret : Optional [ str ] = None , * , leeway : datetime . timedelta = datetime . timedelta ( seconds = 60 ) )
+
+ View Source
+
+
+
+
196 def __init__ (
+197 self ,
+198 api_key : Optional [ str ] = None ,
+199 api_secret : Optional [ str ] = None ,
+200 * ,
+201 leeway : datetime . timedelta = DEFAULT_LEEWAY ,
+202 ) -> None :
+203 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
+204 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
+205
+206 if not api_key or not api_secret :
+207 raise ValueError ( "api_key and api_secret must be set" )
+208
+209 self . api_key = api_key
+210 self . api_secret = api_secret
+211 self . _leeway = leeway
+
+
+
+
+
+
+
+
+ api_key
+
+
+
+
+
+
+
+
+
+
+ api_secret
+
+
+
+
+
+
+
+
+
+
+
+
+ def
+ verify (self , token : str ) -> livekit . api . access_token . Claims :
+
+ View Source
+
+
+
+
213 def verify ( self , token : str ) -> Claims :
+214 claims = jwt . decode (
+215 token ,
+216 self . api_secret ,
+217 issuer = self . api_key ,
+218 algorithms = [ "HS256" ],
+219 leeway = self . _leeway . total_seconds (),
+220 )
+221
+222 video_dict = claims . get ( "video" , dict ())
+223 video_dict = { camel_to_snake ( k ): v for k , v in video_dict . items ()}
+224 video_dict = {
+225 k : v for k , v in video_dict . items () if k in VideoGrants . __dataclass_fields__
+226 }
+227 video = VideoGrants ( ** video_dict )
+228
+229 sip_dict = claims . get ( "sip" , dict ())
+230 sip_dict = { camel_to_snake ( k ): v for k , v in sip_dict . items ()}
+231 sip_dict = {
+232 k : v for k , v in sip_dict . items () if k in SIPGrants . __dataclass_fields__
+233 }
+234 sip = SIPGrants ( ** sip_dict )
+235
+236 grant_claims = Claims (
+237 identity = claims . get ( "sub" , "" ),
+238 name = claims . get ( "name" , "" ),
+239 video = video ,
+240 sip = sip ,
+241 attributes = claims . get ( "attributes" , {}),
+242 metadata = claims . get ( "metadata" , "" ),
+243 sha256 = claims . get ( "sha256" , "" ),
+244 )
+245
+246 if claims . get ( "roomPreset" ):
+247 grant_claims . room_preset = claims . get ( "roomPreset" )
+248 if claims . get ( "roomConfig" ):
+249 grant_claims . room_config = ParseDict (
+250 claims . get ( "roomConfig" ),
+251 RoomConfiguration (),
+252 ignore_unknown_fields = True ,
+253 )
+254
+255 return grant_claims
+
+
+
+
+
+
+
+
+
+
+
+ class
+ WebhookReceiver :
+
+ View Source
+
+
+
+ 9 class WebhookReceiver :
+10 def __init__ ( self , token_verifier : TokenVerifier ):
+11 self . _verifier = token_verifier
+12
+13 def receive ( self , body : str , auth_token : str ) -> WebhookEvent :
+14 claims = self . _verifier . verify ( auth_token )
+15 if claims . sha256 is None :
+16 raise Exception ( "sha256 was not found in the token" )
+17
+18 body_hash = hashlib . sha256 ( body . encode ()) . digest ()
+19 claims_hash = base64 . b64decode ( claims . sha256 )
+20
+21 if body_hash != claims_hash :
+22 raise Exception ( "hash mismatch" )
+23
+24 return Parse ( body , WebhookEvent (), ignore_unknown_fields = True )
+
+
+
+
+
+
+
+
+
+
WebhookReceiver (token_verifier : TokenVerifier )
+
+
View Source
+
+
+
+
10 def __init__ ( self , token_verifier : TokenVerifier ):
+11 self . _verifier = token_verifier
+
+
+
+
+
+
+
+
+
+
+ def
+ receive (self , body : str , auth_token : str ) -> webhook . WebhookEvent :
+
+ View Source
+
+
+
+
13 def receive ( self , body : str , auth_token : str ) -> WebhookEvent :
+14 claims = self . _verifier . verify ( auth_token )
+15 if claims . sha256 is None :
+16 raise Exception ( "sha256 was not found in the token" )
+17
+18 body_hash = hashlib . sha256 ( body . encode ()) . digest ()
+19 claims_hash = base64 . b64decode ( claims . sha256 )
+20
+21 if body_hash != claims_hash :
+22 raise Exception ( "hash mismatch" )
+23
+24 return Parse ( body , WebhookEvent (), ignore_unknown_fields = True )
+
+
+
+
+
+
+
+
+
+
+
+ class
+ TwirpError (builtins.Exception ):
+
+ View Source
+
+
+
+ 25 class TwirpError ( Exception ):
+26 def __init__ ( self , code : str , msg : str ) -> None :
+27 self . _code = code
+28 self . _msg = msg
+29
+30 @property
+31 def code ( self ) -> str :
+32 return self . _code
+33
+34 @property
+35 def message ( self ) -> str :
+36 return self . _msg
+
+
+
+ Common base class for all non-exit exceptions.
+
+
+
+
+
+
+
+ TwirpError (code : str , msg : str )
+
+ View Source
+
+
+
+
26 def __init__ ( self , code : str , msg : str ) -> None :
+27 self . _code = code
+28 self . _msg = msg
+
+
+
+
+
+
+
+
+
+ code : str
+
+ View Source
+
+
+
+
30 @property
+31 def code ( self ) -> str :
+32 return self . _code
+
+
+
+
+
+
+
+
+
+ message : str
+
+ View Source
+
+
+
+
34 @property
+35 def message ( self ) -> str :
+36 return self . _msg
+
+
+
+
+
+
+
+
+
+
+
+ class
+ TwirpErrorCode :
+
+ View Source
+
+
+
+ 39 class TwirpErrorCode :
+40 CANCELED = "canceled"
+41 UNKNOWN = "unknown"
+42 INVALID_ARGUMENT = "invalid_argument"
+43 MALFORMED = "malformed"
+44 DEADLINE_EXCEEDED = "deadline_exceeded"
+45 NOT_FOUND = "not_found"
+46 BAD_ROUTE = "bad_route"
+47 ALREADY_EXISTS = "already_exists"
+48 PERMISSION_DENIED = "permission_denied"
+49 UNAUTHENTICATED = "unauthenticated"
+50 RESOURCE_EXHAUSTED = "resource_exhausted"
+51 FAILED_PRECONDITION = "failed_precondition"
+52 ABORTED = "aborted"
+53 OUT_OF_RANGE = "out_of_range"
+54 UNIMPLEMENTED = "unimplemented"
+55 INTERNAL = "internal"
+56 UNAVAILABLE = "unavailable"
+57 DATA_LOSS = "dataloss"
+
+
+
+
+
+
+
+ CANCELED =
+'canceled'
+
+
+
+
+
+
+
+
+
+
+ UNKNOWN =
+'unknown'
+
+
+
+
+
+
+
+
+
+
+ INVALID_ARGUMENT =
+'invalid_argument'
+
+
+
+
+
+
+
+
+
+
+
+ DEADLINE_EXCEEDED =
+'deadline_exceeded'
+
+
+
+
+
+
+
+
+
+
+ NOT_FOUND =
+'not_found'
+
+
+
+
+
+
+
+
+
+
+ BAD_ROUTE =
+'bad_route'
+
+
+
+
+
+
+
+
+
+
+ ALREADY_EXISTS =
+'already_exists'
+
+
+
+
+
+
+
+
+
+
+ PERMISSION_DENIED =
+'permission_denied'
+
+
+
+
+
+
+
+
+
+
+ UNAUTHENTICATED =
+'unauthenticated'
+
+
+
+
+
+
+
+
+
+
+ RESOURCE_EXHAUSTED =
+'resource_exhausted'
+
+
+
+
+
+
+
+
+
+
+ FAILED_PRECONDITION =
+'failed_precondition'
+
+
+
+
+
+
+
+
+
+
+ ABORTED =
+'aborted'
+
+
+
+
+
+
+
+
+
+
+ OUT_OF_RANGE =
+'out_of_range'
+
+
+
+
+
+
+
+
+
+
+ UNIMPLEMENTED =
+'unimplemented'
+
+
+
+
+
+
+
+
+
+
+ INTERNAL =
+'internal'
+
+
+
+
+
+
+
+
+
+
+ UNAVAILABLE =
+'unavailable'
+
+
+
+
+
+
+
+
+
+
+ DATA_LOSS =
+'dataloss'
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/livekit/api/_service.html b/docs/livekit/api/_service.html
new file mode 100644
index 00000000..2e377cfa
--- /dev/null
+++ b/docs/livekit/api/_service.html
@@ -0,0 +1,390 @@
+
+
+
+
+
+
+ livekit.api._service API documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+livekit.api ._service
+
+
+
+
+ View Source
+
+ 1 from __future__ import annotations
+ 2
+ 3 from typing import Dict
+ 4 import aiohttp
+ 5 from abc import ABC
+ 6 from .twirp_client import TwirpClient
+ 7 from .access_token import AccessToken , VideoGrants , SIPGrants
+ 8
+ 9 AUTHORIZATION = "authorization"
+10
+11
+12 class Service ( ABC ):
+13 def __init__ (
+14 self , session : aiohttp . ClientSession , host : str , api_key : str , api_secret : str
+15 ):
+16 self . _client = TwirpClient ( session , host , "livekit" )
+17 self . api_key = api_key
+18 self . api_secret = api_secret
+19
+20 def _auth_header (
+21 self , grants : VideoGrants | None , sip : SIPGrants | None = None
+22 ) -> Dict [ str , str ]:
+23 tok = AccessToken ( self . api_key , self . api_secret )
+24 if grants :
+25 tok . with_grants ( grants )
+26 if sip is not None :
+27 tok . with_sip_grants ( sip )
+28
+29 token = tok . to_jwt ()
+30
+31 headers = {}
+32 headers [ AUTHORIZATION ] = "Bearer {} " . format ( token )
+33 return headers
+
+
+
+
+
+
+ AUTHORIZATION =
+'authorization'
+
+
+
+
+
+
+
+
+
+
+
+
+ class
+ Service (abc.ABC ):
+
+ View Source
+
+
+
+ 13 class Service ( ABC ):
+14 def __init__ (
+15 self , session : aiohttp . ClientSession , host : str , api_key : str , api_secret : str
+16 ):
+17 self . _client = TwirpClient ( session , host , "livekit" )
+18 self . api_key = api_key
+19 self . api_secret = api_secret
+20
+21 def _auth_header (
+22 self , grants : VideoGrants | None , sip : SIPGrants | None = None
+23 ) -> Dict [ str , str ]:
+24 tok = AccessToken ( self . api_key , self . api_secret )
+25 if grants :
+26 tok . with_grants ( grants )
+27 if sip is not None :
+28 tok . with_sip_grants ( sip )
+29
+30 token = tok . to_jwt ()
+31
+32 headers = {}
+33 headers [ AUTHORIZATION ] = "Bearer {} " . format ( token )
+34 return headers
+
+
+
+ Helper class that provides a standard way to create an ABC using
+inheritance.
+
+
+
+
+
+
+
+ Service ( session : aiohttp . client . ClientSession , host : str , api_key : str , api_secret : str )
+
+ View Source
+
+
+
+
14 def __init__ (
+15 self , session : aiohttp . ClientSession , host : str , api_key : str , api_secret : str
+16 ):
+17 self . _client = TwirpClient ( session , host , "livekit" )
+18 self . api_key = api_key
+19 self . api_secret = api_secret
+
+
+
+
+
+
+
+
+ api_key
+
+
+
+
+
+
+
+
+
+
+ api_secret
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/livekit/api/access_token.html b/docs/livekit/api/access_token.html
new file mode 100644
index 00000000..fbb13d90
--- /dev/null
+++ b/docs/livekit/api/access_token.html
@@ -0,0 +1,1942 @@
+
+
+
+
+
+
+ livekit.api.access_token API documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+livekit.api .access_token
+
+
+
+
+ View Source
+
+ 1 # Copyright 2023 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.
+ 14
+ 15 import calendar
+ 16 import dataclasses
+ 17 import re
+ 18 import datetime
+ 19 import os
+ 20 import jwt
+ 21 from typing import Optional , List , Literal
+ 22 from google.protobuf.json_format import MessageToDict , ParseDict
+ 23
+ 24 from livekit.protocol.room import RoomConfiguration
+ 25
+ 26 DEFAULT_TTL = datetime . timedelta ( hours = 6 )
+ 27 DEFAULT_LEEWAY = datetime . timedelta ( minutes = 1 )
+ 28
+ 29
+ 30 @dataclasses . dataclass
+ 31 class VideoGrants :
+ 32 # actions on rooms
+ 33 room_create : Optional [ bool ] = None
+ 34 room_list : Optional [ bool ] = None
+ 35 room_record : Optional [ bool ] = None
+ 36
+ 37 # actions on a particular room
+ 38 room_admin : Optional [ bool ] = None
+ 39 room_join : Optional [ bool ] = None
+ 40 room : str = ""
+ 41
+ 42 # permissions within a room
+ 43 can_publish : bool = True
+ 44 can_subscribe : bool = True
+ 45 can_publish_data : bool = True
+ 46
+ 47 # TrackSource types that a participant may publish.
+ 48 # When set, it supersedes CanPublish. Only sources explicitly set here can be
+ 49 # published
+ 50 can_publish_sources : Optional [ List [ str ]] = None
+ 51
+ 52 # by default, a participant is not allowed to update its own metadata
+ 53 can_update_own_metadata : Optional [ bool ] = None
+ 54
+ 55 # actions on ingresses
+ 56 ingress_admin : Optional [ bool ] = None # applies to all ingress
+ 57
+ 58 # participant is not visible to other participants (useful when making bots)
+ 59 hidden : Optional [ bool ] = None
+ 60
+ 61 # [deprecated] indicates to the room that current participant is a recorder
+ 62 recorder : Optional [ bool ] = None
+ 63
+ 64 # indicates that the holder can register as an Agent framework worker
+ 65 agent : Optional [ bool ] = None
+ 66
+ 67
+ 68 @dataclasses . dataclass
+ 69 class SIPGrants :
+ 70 # manage sip resources
+ 71 admin : bool = False
+ 72 # make outbound calls
+ 73 call : bool = False
+ 74
+ 75
+ 76 @dataclasses . dataclass
+ 77 class Claims :
+ 78 identity : str = ""
+ 79 name : str = ""
+ 80 kind : str = ""
+ 81 metadata : str = ""
+ 82 video : Optional [ VideoGrants ] = None
+ 83 sip : Optional [ SIPGrants ] = None
+ 84 attributes : Optional [ dict [ str , str ]] = None
+ 85 sha256 : Optional [ str ] = None
+ 86 room_preset : Optional [ str ] = None
+ 87 room_config : Optional [ RoomConfiguration ] = None
+ 88
+ 89 def asdict ( self ) -> dict :
+ 90 # in order to produce minimal JWT size, exclude None or empty values
+ 91 claims = dataclasses . asdict (
+ 92 self ,
+ 93 dict_factory = lambda items : {
+ 94 snake_to_lower_camel ( k ): v
+ 95 for k , v in items
+ 96 if v is not None and v != ""
+ 97 },
+ 98 )
+ 99 if self . room_config :
+100 claims [ "roomConfig" ] = MessageToDict ( self . room_config )
+101 return claims
+102
+103
+104 class AccessToken :
+105 ParticipantKind = Literal [ "standard" , "egress" , "ingress" , "sip" , "agent" ]
+106
+107 def __init__ (
+108 self ,
+109 api_key : Optional [ str ] = None ,
+110 api_secret : Optional [ str ] = None ,
+111 ) -> None :
+112 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
+113 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
+114
+115 if not api_key or not api_secret :
+116 raise ValueError ( "api_key and api_secret must be set" )
+117
+118 self . api_key = api_key # iss
+119 self . api_secret = api_secret
+120 self . claims = Claims ()
+121
+122 # default jwt claims
+123 self . identity = "" # sub
+124 self . ttl = DEFAULT_TTL # exp
+125
+126 def with_ttl ( self , ttl : datetime . timedelta ) -> "AccessToken" :
+127 self . ttl = ttl
+128 return self
+129
+130 def with_grants ( self , grants : VideoGrants ) -> "AccessToken" :
+131 self . claims . video = grants
+132 return self
+133
+134 def with_sip_grants ( self , grants : SIPGrants ) -> "AccessToken" :
+135 self . claims . sip = grants
+136 return self
+137
+138 def with_identity ( self , identity : str ) -> "AccessToken" :
+139 self . identity = identity
+140 return self
+141
+142 def with_kind ( self , kind : ParticipantKind ) -> "AccessToken" :
+143 self . claims . kind = kind
+144 return self
+145
+146 def with_name ( self , name : str ) -> "AccessToken" :
+147 self . claims . name = name
+148 return self
+149
+150 def with_metadata ( self , metadata : str ) -> "AccessToken" :
+151 self . claims . metadata = metadata
+152 return self
+153
+154 def with_attributes ( self , attributes : dict [ str , str ]) -> "AccessToken" :
+155 self . claims . attributes = attributes
+156 return self
+157
+158 def with_sha256 ( self , sha256 : str ) -> "AccessToken" :
+159 self . claims . sha256 = sha256
+160 return self
+161
+162 def with_room_preset ( self , preset : str ) -> "AccessToken" :
+163 self . claims . room_preset = preset
+164 return self
+165
+166 def with_room_config ( self , config : RoomConfiguration ) -> "AccessToken" :
+167 self . claims . room_config = config
+168 return self
+169
+170 def to_jwt ( self ) -> str :
+171 video = self . claims . video
+172 if video and video . room_join and ( not self . identity or not video . room ):
+173 raise ValueError ( "identity and room must be set when joining a room" )
+174
+175 # we want to exclude None values from the token
+176 jwt_claims = self . claims . asdict ()
+177 jwt_claims . update (
+178 {
+179 "sub" : self . identity ,
+180 "iss" : self . api_key ,
+181 "nbf" : calendar . timegm (
+182 datetime . datetime . now ( datetime . timezone . utc ) . utctimetuple ()
+183 ),
+184 "exp" : calendar . timegm (
+185 (
+186 datetime . datetime . now ( datetime . timezone . utc ) + self . ttl
+187 ) . utctimetuple ()
+188 ),
+189 }
+190 )
+191 return jwt . encode ( jwt_claims , self . api_secret , algorithm = "HS256" )
+192
+193
+194 class TokenVerifier :
+195 def __init__ (
+196 self ,
+197 api_key : Optional [ str ] = None ,
+198 api_secret : Optional [ str ] = None ,
+199 * ,
+200 leeway : datetime . timedelta = DEFAULT_LEEWAY ,
+201 ) -> None :
+202 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
+203 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
+204
+205 if not api_key or not api_secret :
+206 raise ValueError ( "api_key and api_secret must be set" )
+207
+208 self . api_key = api_key
+209 self . api_secret = api_secret
+210 self . _leeway = leeway
+211
+212 def verify ( self , token : str ) -> Claims :
+213 claims = jwt . decode (
+214 token ,
+215 self . api_secret ,
+216 issuer = self . api_key ,
+217 algorithms = [ "HS256" ],
+218 leeway = self . _leeway . total_seconds (),
+219 )
+220
+221 video_dict = claims . get ( "video" , dict ())
+222 video_dict = { camel_to_snake ( k ): v for k , v in video_dict . items ()}
+223 video_dict = {
+224 k : v for k , v in video_dict . items () if k in VideoGrants . __dataclass_fields__
+225 }
+226 video = VideoGrants ( ** video_dict )
+227
+228 sip_dict = claims . get ( "sip" , dict ())
+229 sip_dict = { camel_to_snake ( k ): v for k , v in sip_dict . items ()}
+230 sip_dict = {
+231 k : v for k , v in sip_dict . items () if k in SIPGrants . __dataclass_fields__
+232 }
+233 sip = SIPGrants ( ** sip_dict )
+234
+235 grant_claims = Claims (
+236 identity = claims . get ( "sub" , "" ),
+237 name = claims . get ( "name" , "" ),
+238 video = video ,
+239 sip = sip ,
+240 attributes = claims . get ( "attributes" , {}),
+241 metadata = claims . get ( "metadata" , "" ),
+242 sha256 = claims . get ( "sha256" , "" ),
+243 )
+244
+245 if claims . get ( "roomPreset" ):
+246 grant_claims . room_preset = claims . get ( "roomPreset" )
+247 if claims . get ( "roomConfig" ):
+248 grant_claims . room_config = ParseDict (
+249 claims . get ( "roomConfig" ),
+250 RoomConfiguration (),
+251 ignore_unknown_fields = True ,
+252 )
+253
+254 return grant_claims
+255
+256
+257 def camel_to_snake ( t : str ):
+258 return re . sub ( r "(?<!^)(?=[A-Z])" , "_" , t ) . lower ()
+259
+260
+261 def snake_to_lower_camel ( t : str ):
+262 return "" . join (
+263 word . capitalize () if i else word for i , word in enumerate ( t . split ( "_" ))
+264 )
+
+
+
+
+
+
+ DEFAULT_TTL =
+datetime.timedelta(seconds=21600)
+
+
+
+
+
+
+
+
+
+
+ DEFAULT_LEEWAY =
+datetime.timedelta(seconds=60)
+
+
+
+
+
+
+
+
+
+
+
+
@dataclasses.dataclass
+
+
class
+
VideoGrants :
+
+
View Source
+
+
+
+ 31 @dataclasses . dataclass
+32 class VideoGrants :
+33 # actions on rooms
+34 room_create : Optional [ bool ] = None
+35 room_list : Optional [ bool ] = None
+36 room_record : Optional [ bool ] = None
+37
+38 # actions on a particular room
+39 room_admin : Optional [ bool ] = None
+40 room_join : Optional [ bool ] = None
+41 room : str = ""
+42
+43 # permissions within a room
+44 can_publish : bool = True
+45 can_subscribe : bool = True
+46 can_publish_data : bool = True
+47
+48 # TrackSource types that a participant may publish.
+49 # When set, it supersedes CanPublish. Only sources explicitly set here can be
+50 # published
+51 can_publish_sources : Optional [ List [ str ]] = None
+52
+53 # by default, a participant is not allowed to update its own metadata
+54 can_update_own_metadata : Optional [ bool ] = None
+55
+56 # actions on ingresses
+57 ingress_admin : Optional [ bool ] = None # applies to all ingress
+58
+59 # participant is not visible to other participants (useful when making bots)
+60 hidden : Optional [ bool ] = None
+61
+62 # [deprecated] indicates to the room that current participant is a recorder
+63 recorder : Optional [ bool ] = None
+64
+65 # indicates that the holder can register as an Agent framework worker
+66 agent : Optional [ bool ] = None
+
+
+
+
+
+
+
+
+ VideoGrants ( room_create : Optional [ bool ] = None , room_list : Optional [ bool ] = None , room_record : Optional [ bool ] = None , room_admin : Optional [ bool ] = None , room_join : Optional [ bool ] = None , room : str = '' , can_publish : bool = True , can_subscribe : bool = True , can_publish_data : bool = True , can_publish_sources : Optional [ List [ str ]] = None , can_update_own_metadata : Optional [ bool ] = None , ingress_admin : Optional [ bool ] = None , hidden : Optional [ bool ] = None , recorder : Optional [ bool ] = None , agent : Optional [ bool ] = None )
+
+
+
+
+
+
+
+
+
+
+ room_create : Optional[bool] =
+None
+
+
+
+
+
+
+
+
+
+
+ room_list : Optional[bool] =
+None
+
+
+
+
+
+
+
+
+
+
+ room_record : Optional[bool] =
+None
+
+
+
+
+
+
+
+
+
+
+ room_admin : Optional[bool] =
+None
+
+
+
+
+
+
+
+
+
+
+ room_join : Optional[bool] =
+None
+
+
+
+
+
+
+
+
+
+
+ room : str =
+''
+
+
+
+
+
+
+
+
+
+
+ can_publish : bool =
+True
+
+
+
+
+
+
+
+
+
+
+ can_subscribe : bool =
+True
+
+
+
+
+
+
+
+
+
+
+ can_publish_data : bool =
+True
+
+
+
+
+
+
+
+
+
+
+ can_publish_sources : Optional[List[str]] =
+None
+
+
+
+
+
+
+
+
+
+
+
+ ingress_admin : Optional[bool] =
+None
+
+
+
+
+
+
+
+
+
+
+ hidden : Optional[bool] =
+None
+
+
+
+
+
+
+
+
+
+
+ recorder : Optional[bool] =
+None
+
+
+
+
+
+
+
+
+
+
+ agent : Optional[bool] =
+None
+
+
+
+
+
+
+
+
+
+
+
+
+
@dataclasses.dataclass
+
+
class
+
SIPGrants :
+
+
View Source
+
+
+
+ 69 @dataclasses . dataclass
+70 class SIPGrants :
+71 # manage sip resources
+72 admin : bool = False
+73 # make outbound calls
+74 call : bool = False
+
+
+
+
+
+
+
+
+ SIPGrants (admin : bool = False , call : bool = False )
+
+
+
+
+
+
+
+
+
+
+ admin : bool =
+False
+
+
+
+
+
+
+
+
+
+
+ call : bool =
+False
+
+
+
+
+
+
+
+
+
+
+
+
+
@dataclasses.dataclass
+
+
class
+
Claims :
+
+
View Source
+
+
+
+ 77 @dataclasses . dataclass
+ 78 class Claims :
+ 79 identity : str = ""
+ 80 name : str = ""
+ 81 kind : str = ""
+ 82 metadata : str = ""
+ 83 video : Optional [ VideoGrants ] = None
+ 84 sip : Optional [ SIPGrants ] = None
+ 85 attributes : Optional [ dict [ str , str ]] = None
+ 86 sha256 : Optional [ str ] = None
+ 87 room_preset : Optional [ str ] = None
+ 88 room_config : Optional [ RoomConfiguration ] = None
+ 89
+ 90 def asdict ( self ) -> dict :
+ 91 # in order to produce minimal JWT size, exclude None or empty values
+ 92 claims = dataclasses . asdict (
+ 93 self ,
+ 94 dict_factory = lambda items : {
+ 95 snake_to_lower_camel ( k ): v
+ 96 for k , v in items
+ 97 if v is not None and v != ""
+ 98 },
+ 99 )
+100 if self . room_config :
+101 claims [ "roomConfig" ] = MessageToDict ( self . room_config )
+102 return claims
+
+
+
+
+
+
+
+
+
Claims ( identity : str = '' , name : str = '' , kind : str = '' , metadata : str = '' , video : Optional [ VideoGrants ] = None , sip : Optional [ SIPGrants ] = None , attributes : Optional [ dict [ str , str ]] = None , sha256 : Optional [ str ] = None , room_preset : Optional [ str ] = None , room_config : Optional [ room . RoomConfiguration ] = None )
+
+
+
+
+
+
+
+
+
+
+ identity : str =
+''
+
+
+
+
+
+
+
+
+
+
+ name : str =
+''
+
+
+
+
+
+
+
+
+
+
+ kind : str =
+''
+
+
+
+
+
+
+
+
+
+
+
+
+
+ attributes : Optional[dict[str, str]] =
+None
+
+
+
+
+
+
+
+
+
+
+ sha256 : Optional[str] =
+None
+
+
+
+
+
+
+
+
+
+
+ room_preset : Optional[str] =
+None
+
+
+
+
+
+
+
+
+
+
+ room_config : Optional[room.RoomConfiguration] =
+None
+
+
+
+
+
+
+
+
+
+
+
+
+ def
+ asdict (self ) -> dict :
+
+ View Source
+
+
+
+
90 def asdict ( self ) -> dict :
+ 91 # in order to produce minimal JWT size, exclude None or empty values
+ 92 claims = dataclasses . asdict (
+ 93 self ,
+ 94 dict_factory = lambda items : {
+ 95 snake_to_lower_camel ( k ): v
+ 96 for k , v in items
+ 97 if v is not None and v != ""
+ 98 },
+ 99 )
+100 if self . room_config :
+101 claims [ "roomConfig" ] = MessageToDict ( self . room_config )
+102 return claims
+
+
+
+
+
+
+
+
+
+
+
+ class
+ AccessToken :
+
+ View Source
+
+
+
+ 105 class AccessToken :
+106 ParticipantKind = Literal [ "standard" , "egress" , "ingress" , "sip" , "agent" ]
+107
+108 def __init__ (
+109 self ,
+110 api_key : Optional [ str ] = None ,
+111 api_secret : Optional [ str ] = None ,
+112 ) -> None :
+113 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
+114 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
+115
+116 if not api_key or not api_secret :
+117 raise ValueError ( "api_key and api_secret must be set" )
+118
+119 self . api_key = api_key # iss
+120 self . api_secret = api_secret
+121 self . claims = Claims ()
+122
+123 # default jwt claims
+124 self . identity = "" # sub
+125 self . ttl = DEFAULT_TTL # exp
+126
+127 def with_ttl ( self , ttl : datetime . timedelta ) -> "AccessToken" :
+128 self . ttl = ttl
+129 return self
+130
+131 def with_grants ( self , grants : VideoGrants ) -> "AccessToken" :
+132 self . claims . video = grants
+133 return self
+134
+135 def with_sip_grants ( self , grants : SIPGrants ) -> "AccessToken" :
+136 self . claims . sip = grants
+137 return self
+138
+139 def with_identity ( self , identity : str ) -> "AccessToken" :
+140 self . identity = identity
+141 return self
+142
+143 def with_kind ( self , kind : ParticipantKind ) -> "AccessToken" :
+144 self . claims . kind = kind
+145 return self
+146
+147 def with_name ( self , name : str ) -> "AccessToken" :
+148 self . claims . name = name
+149 return self
+150
+151 def with_metadata ( self , metadata : str ) -> "AccessToken" :
+152 self . claims . metadata = metadata
+153 return self
+154
+155 def with_attributes ( self , attributes : dict [ str , str ]) -> "AccessToken" :
+156 self . claims . attributes = attributes
+157 return self
+158
+159 def with_sha256 ( self , sha256 : str ) -> "AccessToken" :
+160 self . claims . sha256 = sha256
+161 return self
+162
+163 def with_room_preset ( self , preset : str ) -> "AccessToken" :
+164 self . claims . room_preset = preset
+165 return self
+166
+167 def with_room_config ( self , config : RoomConfiguration ) -> "AccessToken" :
+168 self . claims . room_config = config
+169 return self
+170
+171 def to_jwt ( self ) -> str :
+172 video = self . claims . video
+173 if video and video . room_join and ( not self . identity or not video . room ):
+174 raise ValueError ( "identity and room must be set when joining a room" )
+175
+176 # we want to exclude None values from the token
+177 jwt_claims = self . claims . asdict ()
+178 jwt_claims . update (
+179 {
+180 "sub" : self . identity ,
+181 "iss" : self . api_key ,
+182 "nbf" : calendar . timegm (
+183 datetime . datetime . now ( datetime . timezone . utc ) . utctimetuple ()
+184 ),
+185 "exp" : calendar . timegm (
+186 (
+187 datetime . datetime . now ( datetime . timezone . utc ) + self . ttl
+188 ) . utctimetuple ()
+189 ),
+190 }
+191 )
+192 return jwt . encode ( jwt_claims , self . api_secret , algorithm = "HS256" )
+
+
+
+
+
+
+
+
+
+ AccessToken (api_key : Optional [ str ] = None , api_secret : Optional [ str ] = None )
+
+ View Source
+
+
+
+
108 def __init__ (
+109 self ,
+110 api_key : Optional [ str ] = None ,
+111 api_secret : Optional [ str ] = None ,
+112 ) -> None :
+113 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
+114 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
+115
+116 if not api_key or not api_secret :
+117 raise ValueError ( "api_key and api_secret must be set" )
+118
+119 self . api_key = api_key # iss
+120 self . api_secret = api_secret
+121 self . claims = Claims ()
+122
+123 # default jwt claims
+124 self . identity = "" # sub
+125 self . ttl = DEFAULT_TTL # exp
+
+
+
+
+
+
+
+
+ ParticipantKind =
+typing.Literal['standard', 'egress', 'ingress', 'sip', 'agent']
+
+
+
+
+
+
+
+
+
+
+ api_key
+
+
+
+
+
+
+
+
+
+
+ api_secret
+
+
+
+
+
+
+
+
+
+
+ claims
+
+
+
+
+
+
+
+
+
+
+ identity
+
+
+
+
+
+
+
+
+
+
+
+
+
+
def
+
with_ttl (self , ttl : datetime . timedelta ) -> AccessToken :
+
+
View Source
+
+
+
+
127 def with_ttl ( self , ttl : datetime . timedelta ) -> "AccessToken" :
+128 self . ttl = ttl
+129 return self
+
+
+
+
+
+
+
+
+
+
+
131 def with_grants ( self , grants : VideoGrants ) -> "AccessToken" :
+132 self . claims . video = grants
+133 return self
+
+
+
+
+
+
+
+
+
+
+
135 def with_sip_grants ( self , grants : SIPGrants ) -> "AccessToken" :
+136 self . claims . sip = grants
+137 return self
+
+
+
+
+
+
+
+
+
+
+
def
+
with_identity (self , identity : str ) -> AccessToken :
+
+
View Source
+
+
+
+
139 def with_identity ( self , identity : str ) -> "AccessToken" :
+140 self . identity = identity
+141 return self
+
+
+
+
+
+
+
+
+
+
+
def
+
with_kind ( self , kind : Literal [ 'standard' , 'egress' , 'ingress' , 'sip' , 'agent' ] ) -> AccessToken :
+
+
View Source
+
+
+
+
143 def with_kind ( self , kind : ParticipantKind ) -> "AccessToken" :
+144 self . claims . kind = kind
+145 return self
+
+
+
+
+
+
+
+
+
+
+
def
+
with_name (self , name : str ) -> AccessToken :
+
+
View Source
+
+
+
+
147 def with_name ( self , name : str ) -> "AccessToken" :
+148 self . claims . name = name
+149 return self
+
+
+
+
+
+
+
+
+
+
+
+
def
+
with_attributes (self , attributes : dict [ str , str ] ) -> AccessToken :
+
+
View Source
+
+
+
+
155 def with_attributes ( self , attributes : dict [ str , str ]) -> "AccessToken" :
+156 self . claims . attributes = attributes
+157 return self
+
+
+
+
+
+
+
+
+
+
+
def
+
with_sha256 (self , sha256 : str ) -> AccessToken :
+
+
View Source
+
+
+
+
159 def with_sha256 ( self , sha256 : str ) -> "AccessToken" :
+160 self . claims . sha256 = sha256
+161 return self
+
+
+
+
+
+
+
+
+
+
+
def
+
with_room_preset (self , preset : str ) -> AccessToken :
+
+
View Source
+
+
+
+
163 def with_room_preset ( self , preset : str ) -> "AccessToken" :
+164 self . claims . room_preset = preset
+165 return self
+
+
+
+
+
+
+
+
+
+
+
def
+
with_room_config ( self , config : room . RoomConfiguration ) -> AccessToken :
+
+
View Source
+
+
+
+
167 def with_room_config ( self , config : RoomConfiguration ) -> "AccessToken" :
+168 self . claims . room_config = config
+169 return self
+
+
+
+
+
+
+
+
+
+
+ def
+ to_jwt (self ) -> str :
+
+ View Source
+
+
+
+
171 def to_jwt ( self ) -> str :
+172 video = self . claims . video
+173 if video and video . room_join and ( not self . identity or not video . room ):
+174 raise ValueError ( "identity and room must be set when joining a room" )
+175
+176 # we want to exclude None values from the token
+177 jwt_claims = self . claims . asdict ()
+178 jwt_claims . update (
+179 {
+180 "sub" : self . identity ,
+181 "iss" : self . api_key ,
+182 "nbf" : calendar . timegm (
+183 datetime . datetime . now ( datetime . timezone . utc ) . utctimetuple ()
+184 ),
+185 "exp" : calendar . timegm (
+186 (
+187 datetime . datetime . now ( datetime . timezone . utc ) + self . ttl
+188 ) . utctimetuple ()
+189 ),
+190 }
+191 )
+192 return jwt . encode ( jwt_claims , self . api_secret , algorithm = "HS256" )
+
+
+
+
+
+
+
+
+
+
+
+ class
+ TokenVerifier :
+
+ View Source
+
+
+
+ 195 class TokenVerifier :
+196 def __init__ (
+197 self ,
+198 api_key : Optional [ str ] = None ,
+199 api_secret : Optional [ str ] = None ,
+200 * ,
+201 leeway : datetime . timedelta = DEFAULT_LEEWAY ,
+202 ) -> None :
+203 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
+204 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
+205
+206 if not api_key or not api_secret :
+207 raise ValueError ( "api_key and api_secret must be set" )
+208
+209 self . api_key = api_key
+210 self . api_secret = api_secret
+211 self . _leeway = leeway
+212
+213 def verify ( self , token : str ) -> Claims :
+214 claims = jwt . decode (
+215 token ,
+216 self . api_secret ,
+217 issuer = self . api_key ,
+218 algorithms = [ "HS256" ],
+219 leeway = self . _leeway . total_seconds (),
+220 )
+221
+222 video_dict = claims . get ( "video" , dict ())
+223 video_dict = { camel_to_snake ( k ): v for k , v in video_dict . items ()}
+224 video_dict = {
+225 k : v for k , v in video_dict . items () if k in VideoGrants . __dataclass_fields__
+226 }
+227 video = VideoGrants ( ** video_dict )
+228
+229 sip_dict = claims . get ( "sip" , dict ())
+230 sip_dict = { camel_to_snake ( k ): v for k , v in sip_dict . items ()}
+231 sip_dict = {
+232 k : v for k , v in sip_dict . items () if k in SIPGrants . __dataclass_fields__
+233 }
+234 sip = SIPGrants ( ** sip_dict )
+235
+236 grant_claims = Claims (
+237 identity = claims . get ( "sub" , "" ),
+238 name = claims . get ( "name" , "" ),
+239 video = video ,
+240 sip = sip ,
+241 attributes = claims . get ( "attributes" , {}),
+242 metadata = claims . get ( "metadata" , "" ),
+243 sha256 = claims . get ( "sha256" , "" ),
+244 )
+245
+246 if claims . get ( "roomPreset" ):
+247 grant_claims . room_preset = claims . get ( "roomPreset" )
+248 if claims . get ( "roomConfig" ):
+249 grant_claims . room_config = ParseDict (
+250 claims . get ( "roomConfig" ),
+251 RoomConfiguration (),
+252 ignore_unknown_fields = True ,
+253 )
+254
+255 return grant_claims
+
+
+
+
+
+
+
+
+
+ TokenVerifier ( api_key : Optional [ str ] = None , api_secret : Optional [ str ] = None , * , leeway : datetime . timedelta = datetime . timedelta ( seconds = 60 ) )
+
+ View Source
+
+
+
+
196 def __init__ (
+197 self ,
+198 api_key : Optional [ str ] = None ,
+199 api_secret : Optional [ str ] = None ,
+200 * ,
+201 leeway : datetime . timedelta = DEFAULT_LEEWAY ,
+202 ) -> None :
+203 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
+204 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
+205
+206 if not api_key or not api_secret :
+207 raise ValueError ( "api_key and api_secret must be set" )
+208
+209 self . api_key = api_key
+210 self . api_secret = api_secret
+211 self . _leeway = leeway
+
+
+
+
+
+
+
+
+ api_key
+
+
+
+
+
+
+
+
+
+
+ api_secret
+
+
+
+
+
+
+
+
+
+
+
+
+
def
+
verify (self , token : str ) -> Claims :
+
+
View Source
+
+
+
+
213 def verify ( self , token : str ) -> Claims :
+214 claims = jwt . decode (
+215 token ,
+216 self . api_secret ,
+217 issuer = self . api_key ,
+218 algorithms = [ "HS256" ],
+219 leeway = self . _leeway . total_seconds (),
+220 )
+221
+222 video_dict = claims . get ( "video" , dict ())
+223 video_dict = { camel_to_snake ( k ): v for k , v in video_dict . items ()}
+224 video_dict = {
+225 k : v for k , v in video_dict . items () if k in VideoGrants . __dataclass_fields__
+226 }
+227 video = VideoGrants ( ** video_dict )
+228
+229 sip_dict = claims . get ( "sip" , dict ())
+230 sip_dict = { camel_to_snake ( k ): v for k , v in sip_dict . items ()}
+231 sip_dict = {
+232 k : v for k , v in sip_dict . items () if k in SIPGrants . __dataclass_fields__
+233 }
+234 sip = SIPGrants ( ** sip_dict )
+235
+236 grant_claims = Claims (
+237 identity = claims . get ( "sub" , "" ),
+238 name = claims . get ( "name" , "" ),
+239 video = video ,
+240 sip = sip ,
+241 attributes = claims . get ( "attributes" , {}),
+242 metadata = claims . get ( "metadata" , "" ),
+243 sha256 = claims . get ( "sha256" , "" ),
+244 )
+245
+246 if claims . get ( "roomPreset" ):
+247 grant_claims . room_preset = claims . get ( "roomPreset" )
+248 if claims . get ( "roomConfig" ):
+249 grant_claims . room_config = ParseDict (
+250 claims . get ( "roomConfig" ),
+251 RoomConfiguration (),
+252 ignore_unknown_fields = True ,
+253 )
+254
+255 return grant_claims
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/livekit/api/agent_dispatch_service.html b/docs/livekit/api/agent_dispatch_service.html
new file mode 100644
index 00000000..2590971f
--- /dev/null
+++ b/docs/livekit/api/agent_dispatch_service.html
@@ -0,0 +1,743 @@
+
+
+
+
+
+
+ livekit.api.agent_dispatch_service API documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+livekit.api .agent_dispatch_service
+
+
+
+
+ View Source
+
+ 1 import aiohttp
+ 2 from typing import Optional
+ 3 from livekit.protocol.agent_dispatch import CreateAgentDispatchRequest , AgentDispatch , DeleteAgentDispatchRequest , ListAgentDispatchRequest , ListAgentDispatchResponse
+ 4 from ._service import Service
+ 5 from .access_token import VideoGrants
+ 6
+ 7 SVC = "AgentDispatchService"
+ 8 """@private"""
+ 9
+ 10
+ 11 class AgentDispatchService ( Service ):
+ 12 """Manage agent dispatches. Service APIs require roomAdmin permissions.
+ 13
+ 14 Recommended way to use this service is via `livekit.api.LiveKitAPI`:
+ 15
+ 16 ```python
+ 17 from livekit import api
+ 18 lkapi = api.LiveKitAPI()
+ 19 agent_dispatch = lkapi.agent_dispatch
+ 20 ```
+ 21 """
+ 22
+ 23 def __init__ (
+ 24 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
+ 25 ):
+ 26 super () . __init__ ( session , url , api_key , api_secret )
+ 27
+ 28 async def create_dispatch (
+ 29 self , req : CreateAgentDispatchRequest
+ 30 ) -> AgentDispatch :
+ 31 """Create an explicit dispatch for an agent to join a room.
+ 32
+ 33 To use explicit dispatch, your agent must be registered with an `agentName`.
+ 34
+ 35 Args:
+ 36 req (CreateAgentDispatchRequest): Request containing dispatch creation parameters
+ 37
+ 38 Returns:
+ 39 AgentDispatch: The created agent dispatch object
+ 40 """
+ 41 return await self . _client . request (
+ 42 SVC ,
+ 43 "CreateDispatch" ,
+ 44 req ,
+ 45 self . _auth_header ( VideoGrants ( room_admin = True , room = req . room )),
+ 46 AgentDispatch ,
+ 47 )
+ 48
+ 49 async def delete_dispatch (
+ 50 self , dispatch_id : str , room_name : str
+ 51 ) -> AgentDispatch :
+ 52 """Delete an explicit dispatch for an agent in a room.
+ 53
+ 54 Args:
+ 55 dispatch_id (str): ID of the dispatch to delete
+ 56 room_name (str): Name of the room containing the dispatch
+ 57
+ 58 Returns:
+ 59 AgentDispatch: The deleted agent dispatch object
+ 60 """
+ 61 return await self . _client . request (
+ 62 SVC ,
+ 63 "DeleteDispatch" ,
+ 64 DeleteAgentDispatchRequest (
+ 65 dispatch_id = dispatch_id ,
+ 66 room = room_name ,
+ 67 ),
+ 68 self . _auth_header ( VideoGrants ( room_admin = True , room = room_name )),
+ 69 AgentDispatch ,
+ 70 )
+ 71
+ 72 async def list_dispatch (
+ 73 self , room_name : str
+ 74 ) -> list [ AgentDispatch ]:
+ 75 """List all agent dispatches in a room.
+ 76
+ 77 Args:
+ 78 room_name (str): Name of the room to list dispatches from
+ 79
+ 80 Returns:
+ 81 list[AgentDispatch]: List of agent dispatch objects in the room
+ 82 """
+ 83 res = await self . _client . request (
+ 84 SVC ,
+ 85 "ListDispatch" ,
+ 86 ListAgentDispatchRequest ( room = room_name ),
+ 87 self . _auth_header ( VideoGrants ( room_admin = True , room = room_name )),
+ 88 ListAgentDispatchResponse ,
+ 89 )
+ 90 return list ( res . agent_dispatches )
+ 91
+ 92 async def get_dispatch (
+ 93 self , dispatch_id : str , room_name : str
+ 94 ) -> Optional [ AgentDispatch ]:
+ 95 """Get an Agent dispatch by ID
+ 96
+ 97 Args:
+ 98 dispatch_id (str): ID of the dispatch to retrieve
+ 99 room_name (str): Name of the room containing the dispatch
+100
+101 Returns:
+102 Optional[AgentDispatch]: The requested agent dispatch object if found, None otherwise
+103 """
+104 res = await self . _client . request (
+105 SVC ,
+106 "ListDispatch" ,
+107 ListAgentDispatchRequest (
+108 dispatch_id = dispatch_id , room = room_name
+109 ),
+110 self . _auth_header ( VideoGrants ( room_admin = True , room = room_name )),
+111 ListAgentDispatchResponse ,
+112 )
+113 if len ( res . agent_dispatches ) > 0 :
+114 return res . agent_dispatches [ 0 ]
+115 return None
+
+
+
+
+
+
+
+
+ class
+ AgentDispatchService (livekit.api._service.Service ):
+
+ View Source
+
+
+
+ 12 class AgentDispatchService ( Service ):
+ 13 """Manage agent dispatches. Service APIs require roomAdmin permissions.
+ 14
+ 15 Recommended way to use this service is via `livekit.api.LiveKitAPI`:
+ 16
+ 17 ```python
+ 18 from livekit import api
+ 19 lkapi = api.LiveKitAPI()
+ 20 agent_dispatch = lkapi.agent_dispatch
+ 21 ```
+ 22 """
+ 23
+ 24 def __init__ (
+ 25 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
+ 26 ):
+ 27 super () . __init__ ( session , url , api_key , api_secret )
+ 28
+ 29 async def create_dispatch (
+ 30 self , req : CreateAgentDispatchRequest
+ 31 ) -> AgentDispatch :
+ 32 """Create an explicit dispatch for an agent to join a room.
+ 33
+ 34 To use explicit dispatch, your agent must be registered with an `agentName`.
+ 35
+ 36 Args:
+ 37 req (CreateAgentDispatchRequest): Request containing dispatch creation parameters
+ 38
+ 39 Returns:
+ 40 AgentDispatch: The created agent dispatch object
+ 41 """
+ 42 return await self . _client . request (
+ 43 SVC ,
+ 44 "CreateDispatch" ,
+ 45 req ,
+ 46 self . _auth_header ( VideoGrants ( room_admin = True , room = req . room )),
+ 47 AgentDispatch ,
+ 48 )
+ 49
+ 50 async def delete_dispatch (
+ 51 self , dispatch_id : str , room_name : str
+ 52 ) -> AgentDispatch :
+ 53 """Delete an explicit dispatch for an agent in a room.
+ 54
+ 55 Args:
+ 56 dispatch_id (str): ID of the dispatch to delete
+ 57 room_name (str): Name of the room containing the dispatch
+ 58
+ 59 Returns:
+ 60 AgentDispatch: The deleted agent dispatch object
+ 61 """
+ 62 return await self . _client . request (
+ 63 SVC ,
+ 64 "DeleteDispatch" ,
+ 65 DeleteAgentDispatchRequest (
+ 66 dispatch_id = dispatch_id ,
+ 67 room = room_name ,
+ 68 ),
+ 69 self . _auth_header ( VideoGrants ( room_admin = True , room = room_name )),
+ 70 AgentDispatch ,
+ 71 )
+ 72
+ 73 async def list_dispatch (
+ 74 self , room_name : str
+ 75 ) -> list [ AgentDispatch ]:
+ 76 """List all agent dispatches in a room.
+ 77
+ 78 Args:
+ 79 room_name (str): Name of the room to list dispatches from
+ 80
+ 81 Returns:
+ 82 list[AgentDispatch]: List of agent dispatch objects in the room
+ 83 """
+ 84 res = await self . _client . request (
+ 85 SVC ,
+ 86 "ListDispatch" ,
+ 87 ListAgentDispatchRequest ( room = room_name ),
+ 88 self . _auth_header ( VideoGrants ( room_admin = True , room = room_name )),
+ 89 ListAgentDispatchResponse ,
+ 90 )
+ 91 return list ( res . agent_dispatches )
+ 92
+ 93 async def get_dispatch (
+ 94 self , dispatch_id : str , room_name : str
+ 95 ) -> Optional [ AgentDispatch ]:
+ 96 """Get an Agent dispatch by ID
+ 97
+ 98 Args:
+ 99 dispatch_id (str): ID of the dispatch to retrieve
+100 room_name (str): Name of the room containing the dispatch
+101
+102 Returns:
+103 Optional[AgentDispatch]: The requested agent dispatch object if found, None otherwise
+104 """
+105 res = await self . _client . request (
+106 SVC ,
+107 "ListDispatch" ,
+108 ListAgentDispatchRequest (
+109 dispatch_id = dispatch_id , room = room_name
+110 ),
+111 self . _auth_header ( VideoGrants ( room_admin = True , room = room_name )),
+112 ListAgentDispatchResponse ,
+113 )
+114 if len ( res . agent_dispatches ) > 0 :
+115 return res . agent_dispatches [ 0 ]
+116 return None
+
+
+
+ Manage agent dispatches. Service APIs require roomAdmin permissions.
+
+
Recommended way to use this service is via livekit.api.LiveKitAPI :
+
+
+
from livekit import api
+lkapi = api . LiveKitAPI ()
+agent_dispatch = lkapi . agent_dispatch
+
+
+
+
+
+
+
+
+
+ AgentDispatchService ( session : aiohttp . client . ClientSession , url : str , api_key : str , api_secret : str )
+
+ View Source
+
+
+
+
24 def __init__ (
+25 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
+26 ):
+27 super () . __init__ ( session , url , api_key , api_secret )
+
+
+
+
+
+
+
+
+
+
+ async def
+ create_dispatch ( self , req : agent_dispatch . CreateAgentDispatchRequest ) -> agent_dispatch . AgentDispatch :
+
+ View Source
+
+
+
+
29 async def create_dispatch (
+30 self , req : CreateAgentDispatchRequest
+31 ) -> AgentDispatch :
+32 """Create an explicit dispatch for an agent to join a room.
+33
+34 To use explicit dispatch, your agent must be registered with an `agentName`.
+35
+36 Args:
+37 req (CreateAgentDispatchRequest): Request containing dispatch creation parameters
+38
+39 Returns:
+40 AgentDispatch: The created agent dispatch object
+41 """
+42 return await self . _client . request (
+43 SVC ,
+44 "CreateDispatch" ,
+45 req ,
+46 self . _auth_header ( VideoGrants ( room_admin = True , room = req . room )),
+47 AgentDispatch ,
+48 )
+
+
+
+
Create an explicit dispatch for an agent to join a room.
+
+
To use explicit dispatch, your agent must be registered with an agentName.
+
+
Arguments:
+
+
+req (CreateAgentDispatchRequest): Request containing dispatch creation parameters
+
+
+
Returns:
+
+
+ AgentDispatch: The created agent dispatch object
+
+
+
+
+
+
+
+
+
+ async def
+ delete_dispatch (self , dispatch_id : str , room_name : str ) -> agent_dispatch . AgentDispatch :
+
+ View Source
+
+
+
+
50 async def delete_dispatch (
+51 self , dispatch_id : str , room_name : str
+52 ) -> AgentDispatch :
+53 """Delete an explicit dispatch for an agent in a room.
+54
+55 Args:
+56 dispatch_id (str): ID of the dispatch to delete
+57 room_name (str): Name of the room containing the dispatch
+58
+59 Returns:
+60 AgentDispatch: The deleted agent dispatch object
+61 """
+62 return await self . _client . request (
+63 SVC ,
+64 "DeleteDispatch" ,
+65 DeleteAgentDispatchRequest (
+66 dispatch_id = dispatch_id ,
+67 room = room_name ,
+68 ),
+69 self . _auth_header ( VideoGrants ( room_admin = True , room = room_name )),
+70 AgentDispatch ,
+71 )
+
+
+
+
Delete an explicit dispatch for an agent in a room.
+
+
Arguments:
+
+
+dispatch_id (str): ID of the dispatch to delete
+room_name (str): Name of the room containing the dispatch
+
+
+
Returns:
+
+
+ AgentDispatch: The deleted agent dispatch object
+
+
+
+
+
+
+
+
+
+ async def
+ list_dispatch (self , room_name : str ) -> list [ agent_dispatch . AgentDispatch ] :
+
+ View Source
+
+
+
+
73 async def list_dispatch (
+74 self , room_name : str
+75 ) -> list [ AgentDispatch ]:
+76 """List all agent dispatches in a room.
+77
+78 Args:
+79 room_name (str): Name of the room to list dispatches from
+80
+81 Returns:
+82 list[AgentDispatch]: List of agent dispatch objects in the room
+83 """
+84 res = await self . _client . request (
+85 SVC ,
+86 "ListDispatch" ,
+87 ListAgentDispatchRequest ( room = room_name ),
+88 self . _auth_header ( VideoGrants ( room_admin = True , room = room_name )),
+89 ListAgentDispatchResponse ,
+90 )
+91 return list ( res . agent_dispatches )
+
+
+
+
List all agent dispatches in a room.
+
+
Arguments:
+
+
+room_name (str): Name of the room to list dispatches from
+
+
+
Returns:
+
+
+ list[AgentDispatch]: List of agent dispatch objects in the room
+
+
+
+
+
+
+
+
+
+ async def
+ get_dispatch ( self , dispatch_id : str , room_name : str ) -> Optional [ agent_dispatch . AgentDispatch ] :
+
+ View Source
+
+
+
+
93 async def get_dispatch (
+ 94 self , dispatch_id : str , room_name : str
+ 95 ) -> Optional [ AgentDispatch ]:
+ 96 """Get an Agent dispatch by ID
+ 97
+ 98 Args:
+ 99 dispatch_id (str): ID of the dispatch to retrieve
+100 room_name (str): Name of the room containing the dispatch
+101
+102 Returns:
+103 Optional[AgentDispatch]: The requested agent dispatch object if found, None otherwise
+104 """
+105 res = await self . _client . request (
+106 SVC ,
+107 "ListDispatch" ,
+108 ListAgentDispatchRequest (
+109 dispatch_id = dispatch_id , room = room_name
+110 ),
+111 self . _auth_header ( VideoGrants ( room_admin = True , room = room_name )),
+112 ListAgentDispatchResponse ,
+113 )
+114 if len ( res . agent_dispatches ) > 0 :
+115 return res . agent_dispatches [ 0 ]
+116 return None
+
+
+
+
Get an Agent dispatch by ID
+
+
Arguments:
+
+
+dispatch_id (str): ID of the dispatch to retrieve
+room_name (str): Name of the room containing the dispatch
+
+
+
Returns:
+
+
+ Optional[AgentDispatch]: The requested agent dispatch object if found, None otherwise
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/livekit/api/egress_service.html b/docs/livekit/api/egress_service.html
new file mode 100644
index 00000000..f215e47c
--- /dev/null
+++ b/docs/livekit/api/egress_service.html
@@ -0,0 +1,810 @@
+
+
+
+
+
+
+ livekit.api.egress_service API documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+livekit.api .egress_service
+
+
+
+
+ View Source
+
+ 1 import aiohttp
+ 2 from livekit.protocol.egress import RoomCompositeEgressRequest , WebEgressRequest , ParticipantEgressRequest , TrackCompositeEgressRequest , TrackEgressRequest , UpdateLayoutRequest , UpdateStreamRequest , ListEgressRequest , StopEgressRequest , EgressInfo , ListEgressResponse
+ 3 from ._service import Service
+ 4 from .access_token import VideoGrants
+ 5
+ 6 SVC = "Egress"
+ 7 """@private"""
+ 8
+ 9 class EgressService ( Service ):
+ 10 """Client for LiveKit Egress Service API
+ 11
+ 12 Recommended way to use this service is via `livekit.api.LiveKitAPI`:
+ 13
+ 14 ```python
+ 15 from livekit import api
+ 16 lkapi = api.LiveKitAPI()
+ 17 egress = lkapi.egress
+ 18 ```
+ 19
+ 20 Also see https://docs.livekit.io/home/egress/overview/
+ 21 """
+ 22 def __init__ (
+ 23 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
+ 24 ):
+ 25 super () . __init__ ( session , url , api_key , api_secret )
+ 26
+ 27 async def start_room_composite_egress (
+ 28 self , start : RoomCompositeEgressRequest
+ 29 ) -> EgressInfo :
+ 30 return await self . _client . request (
+ 31 SVC ,
+ 32 "StartRoomCompositeEgress" ,
+ 33 start ,
+ 34 self . _auth_header ( VideoGrants ( room_record = True )),
+ 35 EgressInfo ,
+ 36 )
+ 37
+ 38 async def start_web_egress (
+ 39 self , start : WebEgressRequest
+ 40 ) -> EgressInfo :
+ 41 return await self . _client . request (
+ 42 SVC ,
+ 43 "StartWebEgress" ,
+ 44 start ,
+ 45 self . _auth_header ( VideoGrants ( room_record = True )),
+ 46 EgressInfo ,
+ 47 )
+ 48
+ 49 async def start_participant_egress (
+ 50 self , start : ParticipantEgressRequest
+ 51 ) -> EgressInfo :
+ 52 return await self . _client . request (
+ 53 SVC ,
+ 54 "StartParticipantEgress" ,
+ 55 start ,
+ 56 self . _auth_header ( VideoGrants ( room_record = True )),
+ 57 EgressInfo ,
+ 58 )
+ 59
+ 60 async def start_track_composite_egress (
+ 61 self , start : TrackCompositeEgressRequest
+ 62 ) -> EgressInfo :
+ 63 return await self . _client . request (
+ 64 SVC ,
+ 65 "StartTrackCompositeEgress" ,
+ 66 start ,
+ 67 self . _auth_header ( VideoGrants ( room_record = True )),
+ 68 EgressInfo ,
+ 69 )
+ 70
+ 71 async def start_track_egress (
+ 72 self , start : TrackEgressRequest
+ 73 ) -> EgressInfo :
+ 74 return await self . _client . request (
+ 75 SVC ,
+ 76 "StartTrackEgress" ,
+ 77 start ,
+ 78 self . _auth_header ( VideoGrants ( room_record = True )),
+ 79 EgressInfo ,
+ 80 )
+ 81
+ 82 async def update_layout (
+ 83 self , update : UpdateLayoutRequest
+ 84 ) -> EgressInfo :
+ 85 return await self . _client . request (
+ 86 SVC ,
+ 87 "UpdateLayout" ,
+ 88 update ,
+ 89 self . _auth_header ( VideoGrants ( room_record = True )),
+ 90 EgressInfo ,
+ 91 )
+ 92
+ 93 async def update_stream (
+ 94 self , update : UpdateStreamRequest
+ 95 ) -> EgressInfo :
+ 96 return await self . _client . request (
+ 97 SVC ,
+ 98 "UpdateStream" ,
+ 99 update ,
+100 self . _auth_header ( VideoGrants ( room_record = True )),
+101 EgressInfo ,
+102 )
+103
+104 async def list_egress (
+105 self , list : ListEgressRequest
+106 ) -> ListEgressResponse :
+107 return await self . _client . request (
+108 SVC ,
+109 "ListEgress" ,
+110 list ,
+111 self . _auth_header ( VideoGrants ( room_record = True )),
+112 ListEgressResponse ,
+113 )
+114
+115 async def stop_egress (
+116 self , stop : StopEgressRequest
+117 ) -> EgressInfo :
+118 return await self . _client . request (
+119 SVC ,
+120 "StopEgress" ,
+121 stop ,
+122 self . _auth_header ( VideoGrants ( room_record = True )),
+123 EgressInfo ,
+124 )
+
+
+
+
+
+
+
+
+ class
+ EgressService (livekit.api._service.Service ):
+
+ View Source
+
+
+
+ 10 class EgressService ( Service ):
+ 11 """Client for LiveKit Egress Service API
+ 12
+ 13 Recommended way to use this service is via `livekit.api.LiveKitAPI`:
+ 14
+ 15 ```python
+ 16 from livekit import api
+ 17 lkapi = api.LiveKitAPI()
+ 18 egress = lkapi.egress
+ 19 ```
+ 20
+ 21 Also see https://docs.livekit.io/home/egress/overview/
+ 22 """
+ 23 def __init__ (
+ 24 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
+ 25 ):
+ 26 super () . __init__ ( session , url , api_key , api_secret )
+ 27
+ 28 async def start_room_composite_egress (
+ 29 self , start : RoomCompositeEgressRequest
+ 30 ) -> EgressInfo :
+ 31 return await self . _client . request (
+ 32 SVC ,
+ 33 "StartRoomCompositeEgress" ,
+ 34 start ,
+ 35 self . _auth_header ( VideoGrants ( room_record = True )),
+ 36 EgressInfo ,
+ 37 )
+ 38
+ 39 async def start_web_egress (
+ 40 self , start : WebEgressRequest
+ 41 ) -> EgressInfo :
+ 42 return await self . _client . request (
+ 43 SVC ,
+ 44 "StartWebEgress" ,
+ 45 start ,
+ 46 self . _auth_header ( VideoGrants ( room_record = True )),
+ 47 EgressInfo ,
+ 48 )
+ 49
+ 50 async def start_participant_egress (
+ 51 self , start : ParticipantEgressRequest
+ 52 ) -> EgressInfo :
+ 53 return await self . _client . request (
+ 54 SVC ,
+ 55 "StartParticipantEgress" ,
+ 56 start ,
+ 57 self . _auth_header ( VideoGrants ( room_record = True )),
+ 58 EgressInfo ,
+ 59 )
+ 60
+ 61 async def start_track_composite_egress (
+ 62 self , start : TrackCompositeEgressRequest
+ 63 ) -> EgressInfo :
+ 64 return await self . _client . request (
+ 65 SVC ,
+ 66 "StartTrackCompositeEgress" ,
+ 67 start ,
+ 68 self . _auth_header ( VideoGrants ( room_record = True )),
+ 69 EgressInfo ,
+ 70 )
+ 71
+ 72 async def start_track_egress (
+ 73 self , start : TrackEgressRequest
+ 74 ) -> EgressInfo :
+ 75 return await self . _client . request (
+ 76 SVC ,
+ 77 "StartTrackEgress" ,
+ 78 start ,
+ 79 self . _auth_header ( VideoGrants ( room_record = True )),
+ 80 EgressInfo ,
+ 81 )
+ 82
+ 83 async def update_layout (
+ 84 self , update : UpdateLayoutRequest
+ 85 ) -> EgressInfo :
+ 86 return await self . _client . request (
+ 87 SVC ,
+ 88 "UpdateLayout" ,
+ 89 update ,
+ 90 self . _auth_header ( VideoGrants ( room_record = True )),
+ 91 EgressInfo ,
+ 92 )
+ 93
+ 94 async def update_stream (
+ 95 self , update : UpdateStreamRequest
+ 96 ) -> EgressInfo :
+ 97 return await self . _client . request (
+ 98 SVC ,
+ 99 "UpdateStream" ,
+100 update ,
+101 self . _auth_header ( VideoGrants ( room_record = True )),
+102 EgressInfo ,
+103 )
+104
+105 async def list_egress (
+106 self , list : ListEgressRequest
+107 ) -> ListEgressResponse :
+108 return await self . _client . request (
+109 SVC ,
+110 "ListEgress" ,
+111 list ,
+112 self . _auth_header ( VideoGrants ( room_record = True )),
+113 ListEgressResponse ,
+114 )
+115
+116 async def stop_egress (
+117 self , stop : StopEgressRequest
+118 ) -> EgressInfo :
+119 return await self . _client . request (
+120 SVC ,
+121 "StopEgress" ,
+122 stop ,
+123 self . _auth_header ( VideoGrants ( room_record = True )),
+124 EgressInfo ,
+125 )
+
+
+
+
+
+
+
+
+
+
+ EgressService ( session : aiohttp . client . ClientSession , url : str , api_key : str , api_secret : str )
+
+ View Source
+
+
+
+
23 def __init__ (
+24 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
+25 ):
+26 super () . __init__ ( session , url , api_key , api_secret )
+
+
+
+
+
+
+
+
+
+
+ async def
+ start_room_composite_egress (self , start : egress . RoomCompositeEgressRequest ) -> egress . EgressInfo :
+
+ View Source
+
+
+
+
28 async def start_room_composite_egress (
+29 self , start : RoomCompositeEgressRequest
+30 ) -> EgressInfo :
+31 return await self . _client . request (
+32 SVC ,
+33 "StartRoomCompositeEgress" ,
+34 start ,
+35 self . _auth_header ( VideoGrants ( room_record = True )),
+36 EgressInfo ,
+37 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ start_web_egress (self , start : egress . WebEgressRequest ) -> egress . EgressInfo :
+
+ View Source
+
+
+
+
39 async def start_web_egress (
+40 self , start : WebEgressRequest
+41 ) -> EgressInfo :
+42 return await self . _client . request (
+43 SVC ,
+44 "StartWebEgress" ,
+45 start ,
+46 self . _auth_header ( VideoGrants ( room_record = True )),
+47 EgressInfo ,
+48 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ start_participant_egress (self , start : egress . ParticipantEgressRequest ) -> egress . EgressInfo :
+
+ View Source
+
+
+
+
50 async def start_participant_egress (
+51 self , start : ParticipantEgressRequest
+52 ) -> EgressInfo :
+53 return await self . _client . request (
+54 SVC ,
+55 "StartParticipantEgress" ,
+56 start ,
+57 self . _auth_header ( VideoGrants ( room_record = True )),
+58 EgressInfo ,
+59 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ start_track_composite_egress (self , start : egress . TrackCompositeEgressRequest ) -> egress . EgressInfo :
+
+ View Source
+
+
+
+
61 async def start_track_composite_egress (
+62 self , start : TrackCompositeEgressRequest
+63 ) -> EgressInfo :
+64 return await self . _client . request (
+65 SVC ,
+66 "StartTrackCompositeEgress" ,
+67 start ,
+68 self . _auth_header ( VideoGrants ( room_record = True )),
+69 EgressInfo ,
+70 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ start_track_egress (self , start : egress . TrackEgressRequest ) -> egress . EgressInfo :
+
+ View Source
+
+
+
+
72 async def start_track_egress (
+73 self , start : TrackEgressRequest
+74 ) -> EgressInfo :
+75 return await self . _client . request (
+76 SVC ,
+77 "StartTrackEgress" ,
+78 start ,
+79 self . _auth_header ( VideoGrants ( room_record = True )),
+80 EgressInfo ,
+81 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ update_layout (self , update : egress . UpdateLayoutRequest ) -> egress . EgressInfo :
+
+ View Source
+
+
+
+
83 async def update_layout (
+84 self , update : UpdateLayoutRequest
+85 ) -> EgressInfo :
+86 return await self . _client . request (
+87 SVC ,
+88 "UpdateLayout" ,
+89 update ,
+90 self . _auth_header ( VideoGrants ( room_record = True )),
+91 EgressInfo ,
+92 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ update_stream (self , update : egress . UpdateStreamRequest ) -> egress . EgressInfo :
+
+ View Source
+
+
+
+
94 async def update_stream (
+ 95 self , update : UpdateStreamRequest
+ 96 ) -> EgressInfo :
+ 97 return await self . _client . request (
+ 98 SVC ,
+ 99 "UpdateStream" ,
+100 update ,
+101 self . _auth_header ( VideoGrants ( room_record = True )),
+102 EgressInfo ,
+103 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ list_egress (self , list : egress . ListEgressRequest ) -> egress . ListEgressResponse :
+
+ View Source
+
+
+
+
105 async def list_egress (
+106 self , list : ListEgressRequest
+107 ) -> ListEgressResponse :
+108 return await self . _client . request (
+109 SVC ,
+110 "ListEgress" ,
+111 list ,
+112 self . _auth_header ( VideoGrants ( room_record = True )),
+113 ListEgressResponse ,
+114 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ stop_egress (self , stop : egress . StopEgressRequest ) -> egress . EgressInfo :
+
+ View Source
+
+
+
+
116 async def stop_egress (
+117 self , stop : StopEgressRequest
+118 ) -> EgressInfo :
+119 return await self . _client . request (
+120 SVC ,
+121 "StopEgress" ,
+122 stop ,
+123 self . _auth_header ( VideoGrants ( room_record = True )),
+124 EgressInfo ,
+125 )
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/livekit/api/ingress_service.html b/docs/livekit/api/ingress_service.html
new file mode 100644
index 00000000..e75cb433
--- /dev/null
+++ b/docs/livekit/api/ingress_service.html
@@ -0,0 +1,550 @@
+
+
+
+
+
+
+ livekit.api.ingress_service API documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+livekit.api .ingress_service
+
+
+
+
+ View Source
+
+ 1 import aiohttp
+ 2 from livekit.protocol.ingress import CreateIngressRequest , IngressInfo , UpdateIngressRequest , ListIngressRequest , DeleteIngressRequest , ListIngressResponse
+ 3 from ._service import Service
+ 4 from .access_token import VideoGrants
+ 5
+ 6 SVC = "Ingress"
+ 7 """@private"""
+ 8
+ 9 class IngressService ( Service ):
+10 """Client for LiveKit Ingress Service API
+11
+12 Recommended way to use this service is via `livekit.api.LiveKitAPI`:
+13
+14 ```python
+15 from livekit import api
+16 lkapi = api.LiveKitAPI()
+17 ingress = lkapi.ingress
+18 ```
+19
+20 Also see https://docs.livekit.io/home/ingress/overview/
+21 """
+22 def __init__ (
+23 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
+24 ):
+25 super () . __init__ ( session , url , api_key , api_secret )
+26
+27 async def create_ingress (
+28 self , create : CreateIngressRequest
+29 ) -> IngressInfo :
+30 return await self . _client . request (
+31 SVC ,
+32 "CreateIngress" ,
+33 create ,
+34 self . _auth_header ( VideoGrants ( ingress_admin = True )),
+35 IngressInfo ,
+36 )
+37
+38 async def update_ingress (
+39 self , update : UpdateIngressRequest
+40 ) -> IngressInfo :
+41 return await self . _client . request (
+42 SVC ,
+43 "UpdateIngress" ,
+44 update ,
+45 self . _auth_header ( VideoGrants ( ingress_admin = True )),
+46 IngressInfo ,
+47 )
+48
+49 async def list_ingress (
+50 self , list : ListIngressRequest
+51 ) -> ListIngressResponse :
+52 return await self . _client . request (
+53 SVC ,
+54 "ListIngress" ,
+55 list ,
+56 self . _auth_header ( VideoGrants ( ingress_admin = True )),
+57 ListIngressResponse ,
+58 )
+59
+60 async def delete_ingress (
+61 self , delete : DeleteIngressRequest
+62 ) -> IngressInfo :
+63 return await self . _client . request (
+64 SVC ,
+65 "DeleteIngress" ,
+66 delete ,
+67 self . _auth_header ( VideoGrants ( ingress_admin = True )),
+68 IngressInfo ,
+69 )
+
+
+
+
+
+
+
+
+ class
+ IngressService (livekit.api._service.Service ):
+
+ View Source
+
+
+
+ 10 class IngressService ( Service ):
+11 """Client for LiveKit Ingress Service API
+12
+13 Recommended way to use this service is via `livekit.api.LiveKitAPI`:
+14
+15 ```python
+16 from livekit import api
+17 lkapi = api.LiveKitAPI()
+18 ingress = lkapi.ingress
+19 ```
+20
+21 Also see https://docs.livekit.io/home/ingress/overview/
+22 """
+23 def __init__ (
+24 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
+25 ):
+26 super () . __init__ ( session , url , api_key , api_secret )
+27
+28 async def create_ingress (
+29 self , create : CreateIngressRequest
+30 ) -> IngressInfo :
+31 return await self . _client . request (
+32 SVC ,
+33 "CreateIngress" ,
+34 create ,
+35 self . _auth_header ( VideoGrants ( ingress_admin = True )),
+36 IngressInfo ,
+37 )
+38
+39 async def update_ingress (
+40 self , update : UpdateIngressRequest
+41 ) -> IngressInfo :
+42 return await self . _client . request (
+43 SVC ,
+44 "UpdateIngress" ,
+45 update ,
+46 self . _auth_header ( VideoGrants ( ingress_admin = True )),
+47 IngressInfo ,
+48 )
+49
+50 async def list_ingress (
+51 self , list : ListIngressRequest
+52 ) -> ListIngressResponse :
+53 return await self . _client . request (
+54 SVC ,
+55 "ListIngress" ,
+56 list ,
+57 self . _auth_header ( VideoGrants ( ingress_admin = True )),
+58 ListIngressResponse ,
+59 )
+60
+61 async def delete_ingress (
+62 self , delete : DeleteIngressRequest
+63 ) -> IngressInfo :
+64 return await self . _client . request (
+65 SVC ,
+66 "DeleteIngress" ,
+67 delete ,
+68 self . _auth_header ( VideoGrants ( ingress_admin = True )),
+69 IngressInfo ,
+70 )
+
+
+
+
+
+
+
+
+
+
+ IngressService ( session : aiohttp . client . ClientSession , url : str , api_key : str , api_secret : str )
+
+ View Source
+
+
+
+
23 def __init__ (
+24 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
+25 ):
+26 super () . __init__ ( session , url , api_key , api_secret )
+
+
+
+
+
+
+
+
+
+
+ async def
+ create_ingress (self , create : ingress . CreateIngressRequest ) -> ingress . IngressInfo :
+
+ View Source
+
+
+
+
28 async def create_ingress (
+29 self , create : CreateIngressRequest
+30 ) -> IngressInfo :
+31 return await self . _client . request (
+32 SVC ,
+33 "CreateIngress" ,
+34 create ,
+35 self . _auth_header ( VideoGrants ( ingress_admin = True )),
+36 IngressInfo ,
+37 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ update_ingress (self , update : ingress . UpdateIngressRequest ) -> ingress . IngressInfo :
+
+ View Source
+
+
+
+
39 async def update_ingress (
+40 self , update : UpdateIngressRequest
+41 ) -> IngressInfo :
+42 return await self . _client . request (
+43 SVC ,
+44 "UpdateIngress" ,
+45 update ,
+46 self . _auth_header ( VideoGrants ( ingress_admin = True )),
+47 IngressInfo ,
+48 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ list_ingress (self , list : ingress . ListIngressRequest ) -> ingress . ListIngressResponse :
+
+ View Source
+
+
+
+
50 async def list_ingress (
+51 self , list : ListIngressRequest
+52 ) -> ListIngressResponse :
+53 return await self . _client . request (
+54 SVC ,
+55 "ListIngress" ,
+56 list ,
+57 self . _auth_header ( VideoGrants ( ingress_admin = True )),
+58 ListIngressResponse ,
+59 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ delete_ingress (self , delete : ingress . DeleteIngressRequest ) -> ingress . IngressInfo :
+
+ View Source
+
+
+
+
61 async def delete_ingress (
+62 self , delete : DeleteIngressRequest
+63 ) -> IngressInfo :
+64 return await self . _client . request (
+65 SVC ,
+66 "DeleteIngress" ,
+67 delete ,
+68 self . _auth_header ( VideoGrants ( ingress_admin = True )),
+69 IngressInfo ,
+70 )
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/livekit/api/livekit_api.html b/docs/livekit/api/livekit_api.html
new file mode 100644
index 00000000..5046c192
--- /dev/null
+++ b/docs/livekit/api/livekit_api.html
@@ -0,0 +1,665 @@
+
+
+
+
+
+
+ livekit.api.livekit_api API documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+livekit.api .livekit_api
+
+
+
+
+ View Source
+
+ 1 import aiohttp
+ 2 import os
+ 3 from .room_service import RoomService
+ 4 from .egress_service import EgressService
+ 5 from .ingress_service import IngressService
+ 6 from .sip_service import SipService
+ 7 from .agent_dispatch_service import AgentDispatchService
+ 8 from typing import Optional
+ 9
+10
+11 class LiveKitAPI :
+12 """LiveKit Server API Client
+13
+14 This class is the main entrypoint, which exposes all services.
+15
+16 Usage:
+17
+18 ```python
+19 from livekit import api
+20 lkapi = api.LiveKitAPI()
+21 rooms = await lkapi.room.list_rooms(api.proto_room.ListRoomsRequest(names=['test-room']))
+22 ```
+23 """
+24
+25 def __init__ (
+26 self ,
+27 url : Optional [ str ] = None ,
+28 api_key : Optional [ str ] = None ,
+29 api_secret : Optional [ str ] = None ,
+30 * ,
+31 timeout : aiohttp . ClientTimeout = aiohttp . ClientTimeout ( total = 60 ), # 60 seconds
+32 ):
+33 """Create a new LiveKitAPI instance.
+34
+35 Args:
+36 url: LiveKit server URL (read from `LIVEKIT_URL` environment variable if not provided)
+37 api_key: API key (read from `LIVEKIT_API_KEY` environment variable if not provided)
+38 api_secret: API secret (read from `LIVEKIT_API_SECRET` environment variable if not provided)
+39 timeout: Request timeout (default: 60 seconds)
+40 """
+41 url = url or os . getenv ( "LIVEKIT_URL" )
+42 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
+43 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
+44
+45 if not url :
+46 raise ValueError ( "url must be set" )
+47
+48 if not api_key or not api_secret :
+49 raise ValueError ( "api_key and api_secret must be set" )
+50
+51 self . _session = aiohttp . ClientSession ( timeout = timeout )
+52 self . _room = RoomService ( self . _session , url , api_key , api_secret )
+53 self . _ingress = IngressService ( self . _session , url , api_key , api_secret )
+54 self . _egress = EgressService ( self . _session , url , api_key , api_secret )
+55 self . _sip = SipService ( self . _session , url , api_key , api_secret )
+56 self . _agent_dispatch = AgentDispatchService (
+57 self . _session , url , api_key , api_secret
+58 )
+59
+60 @property
+61 def agent_dispatch ( self ) -> AgentDispatchService :
+62 """Instance of the AgentDispatchService
+63
+64 See `livekit.api.agent_dispatch_service.AgentDispatchService`"""
+65 return self . _agent_dispatch
+66
+67 @property
+68 def room ( self ) -> RoomService :
+69 """Instance of the RoomService
+70
+71 See `livekit.api.room_service.RoomService`"""
+72 return self . _room
+73
+74 @property
+75 def ingress ( self ) -> IngressService :
+76 """Instance of the IngressService
+77
+78 See `livekit.api.ingress_service.IngressService`"""
+79 return self . _ingress
+80
+81 @property
+82 def egress ( self ) -> EgressService :
+83 """Instance of the EgressService
+84
+85 See `livekit.api.egress_service.EgressService`"""
+86 return self . _egress
+87
+88 @property
+89 def sip ( self ) -> SipService :
+90 """Instance of the SipService
+91
+92 See `livekit.api.sip_service.SipService`"""
+93 return self . _sip
+94
+95 async def aclose ( self ):
+96 """@private"""
+97 await self . _session . close ()
+
+
+
+
+
+
+
+
+ class
+ LiveKitAPI :
+
+ View Source
+
+
+
+ 12 class LiveKitAPI :
+13 """LiveKit Server API Client
+14
+15 This class is the main entrypoint, which exposes all services.
+16
+17 Usage:
+18
+19 ```python
+20 from livekit import api
+21 lkapi = api.LiveKitAPI()
+22 rooms = await lkapi.room.list_rooms(api.proto_room.ListRoomsRequest(names=['test-room']))
+23 ```
+24 """
+25
+26 def __init__ (
+27 self ,
+28 url : Optional [ str ] = None ,
+29 api_key : Optional [ str ] = None ,
+30 api_secret : Optional [ str ] = None ,
+31 * ,
+32 timeout : aiohttp . ClientTimeout = aiohttp . ClientTimeout ( total = 60 ), # 60 seconds
+33 ):
+34 """Create a new LiveKitAPI instance.
+35
+36 Args:
+37 url: LiveKit server URL (read from `LIVEKIT_URL` environment variable if not provided)
+38 api_key: API key (read from `LIVEKIT_API_KEY` environment variable if not provided)
+39 api_secret: API secret (read from `LIVEKIT_API_SECRET` environment variable if not provided)
+40 timeout: Request timeout (default: 60 seconds)
+41 """
+42 url = url or os . getenv ( "LIVEKIT_URL" )
+43 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
+44 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
+45
+46 if not url :
+47 raise ValueError ( "url must be set" )
+48
+49 if not api_key or not api_secret :
+50 raise ValueError ( "api_key and api_secret must be set" )
+51
+52 self . _session = aiohttp . ClientSession ( timeout = timeout )
+53 self . _room = RoomService ( self . _session , url , api_key , api_secret )
+54 self . _ingress = IngressService ( self . _session , url , api_key , api_secret )
+55 self . _egress = EgressService ( self . _session , url , api_key , api_secret )
+56 self . _sip = SipService ( self . _session , url , api_key , api_secret )
+57 self . _agent_dispatch = AgentDispatchService (
+58 self . _session , url , api_key , api_secret
+59 )
+60
+61 @property
+62 def agent_dispatch ( self ) -> AgentDispatchService :
+63 """Instance of the AgentDispatchService
+64
+65 See `livekit.api.agent_dispatch_service.AgentDispatchService`"""
+66 return self . _agent_dispatch
+67
+68 @property
+69 def room ( self ) -> RoomService :
+70 """Instance of the RoomService
+71
+72 See `livekit.api.room_service.RoomService`"""
+73 return self . _room
+74
+75 @property
+76 def ingress ( self ) -> IngressService :
+77 """Instance of the IngressService
+78
+79 See `livekit.api.ingress_service.IngressService`"""
+80 return self . _ingress
+81
+82 @property
+83 def egress ( self ) -> EgressService :
+84 """Instance of the EgressService
+85
+86 See `livekit.api.egress_service.EgressService`"""
+87 return self . _egress
+88
+89 @property
+90 def sip ( self ) -> SipService :
+91 """Instance of the SipService
+92
+93 See `livekit.api.sip_service.SipService`"""
+94 return self . _sip
+95
+96 async def aclose ( self ):
+97 """@private"""
+98 await self . _session . close ()
+
+
+
+ LiveKit Server API Client
+
+
This class is the main entrypoint, which exposes all services.
+
+
Usage:
+
+
+
from livekit import api
+lkapi = api . LiveKitAPI ()
+rooms = await lkapi . room . list_rooms ( api . proto_room . ListRoomsRequest ( names = [ 'test-room' ]))
+
+
+
+
+
+
+
+
+
+ LiveKitAPI ( url : Optional [ str ] = None , api_key : Optional [ str ] = None , api_secret : Optional [ str ] = None , * , timeout : aiohttp . client . ClientTimeout = ClientTimeout ( total = 60 , connect = None , sock_read = None , sock_connect = None , ceil_threshold = 5 ) )
+
+ View Source
+
+
+
+
26 def __init__ (
+27 self ,
+28 url : Optional [ str ] = None ,
+29 api_key : Optional [ str ] = None ,
+30 api_secret : Optional [ str ] = None ,
+31 * ,
+32 timeout : aiohttp . ClientTimeout = aiohttp . ClientTimeout ( total = 60 ), # 60 seconds
+33 ):
+34 """Create a new LiveKitAPI instance.
+35
+36 Args:
+37 url: LiveKit server URL (read from `LIVEKIT_URL` environment variable if not provided)
+38 api_key: API key (read from `LIVEKIT_API_KEY` environment variable if not provided)
+39 api_secret: API secret (read from `LIVEKIT_API_SECRET` environment variable if not provided)
+40 timeout: Request timeout (default: 60 seconds)
+41 """
+42 url = url or os . getenv ( "LIVEKIT_URL" )
+43 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
+44 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
+45
+46 if not url :
+47 raise ValueError ( "url must be set" )
+48
+49 if not api_key or not api_secret :
+50 raise ValueError ( "api_key and api_secret must be set" )
+51
+52 self . _session = aiohttp . ClientSession ( timeout = timeout )
+53 self . _room = RoomService ( self . _session , url , api_key , api_secret )
+54 self . _ingress = IngressService ( self . _session , url , api_key , api_secret )
+55 self . _egress = EgressService ( self . _session , url , api_key , api_secret )
+56 self . _sip = SipService ( self . _session , url , api_key , api_secret )
+57 self . _agent_dispatch = AgentDispatchService (
+58 self . _session , url , api_key , api_secret
+59 )
+
+
+
+
Create a new LiveKitAPI instance.
+
+
Arguments:
+
+
+url: LiveKit server URL (read from LIVEKIT_URL environment variable if not provided)
+api_key: API key (read from LIVEKIT_API_KEY environment variable if not provided)
+api_secret: API secret (read from LIVEKIT_API_SECRET environment variable if not provided)
+timeout: Request timeout (default: 60 seconds)
+
+
+
+
+
+
+
+
+
+
61 @property
+62 def agent_dispatch ( self ) -> AgentDispatchService :
+63 """Instance of the AgentDispatchService
+64
+65 See `livekit.api.agent_dispatch_service.AgentDispatchService`"""
+66 return self . _agent_dispatch
+
+
+
+
+
+
+
+
+
+
+
+
68 @property
+69 def room ( self ) -> RoomService :
+70 """Instance of the RoomService
+71
+72 See `livekit.api.room_service.RoomService`"""
+73 return self . _room
+
+
+
+
+
+
+
+
+
+
+
+
75 @property
+76 def ingress ( self ) -> IngressService :
+77 """Instance of the IngressService
+78
+79 See `livekit.api.ingress_service.IngressService`"""
+80 return self . _ingress
+
+
+
+
+
+
+
+
+
+
+
+
82 @property
+83 def egress ( self ) -> EgressService :
+84 """Instance of the EgressService
+85
+86 See `livekit.api.egress_service.EgressService`"""
+87 return self . _egress
+
+
+
+
+
+
+
+
+
+
+
+
89 @property
+90 def sip ( self ) -> SipService :
+91 """Instance of the SipService
+92
+93 See `livekit.api.sip_service.SipService`"""
+94 return self . _sip
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/livekit/api/room_service.html b/docs/livekit/api/room_service.html
new file mode 100644
index 00000000..3f96affc
--- /dev/null
+++ b/docs/livekit/api/room_service.html
@@ -0,0 +1,882 @@
+
+
+
+
+
+
+ livekit.api.room_service API documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+livekit.api .room_service
+
+
+
+
+ View Source
+
+ 1 import aiohttp
+ 2 from livekit.protocol.room import CreateRoomRequest , ListRoomsRequest , DeleteRoomRequest , ListRoomsResponse , DeleteRoomResponse , ListParticipantsRequest , ListParticipantsResponse , RoomParticipantIdentity , MuteRoomTrackRequest , MuteRoomTrackResponse , UpdateParticipantRequest , UpdateSubscriptionsRequest , SendDataRequest , SendDataResponse , UpdateRoomMetadataRequest , RemoveParticipantResponse , UpdateSubscriptionsResponse
+ 3 from livekit.protocol.models import Room , ParticipantInfo
+ 4 from ._service import Service
+ 5 from .access_token import VideoGrants
+ 6
+ 7 SVC = "RoomService"
+ 8 """@private"""
+ 9
+ 10 class RoomService ( Service ):
+ 11 """Client for LiveKit RoomService API
+ 12
+ 13 Recommended way to use this service is via `livekit.api.LiveKitAPI`:
+ 14
+ 15 ```python
+ 16 from livekit import api
+ 17 lkapi = api.LiveKitAPI()
+ 18 room_service = lkapi.room
+ 19 ```
+ 20
+ 21 Also see https://docs.livekit.io/home/server/managing-rooms/ and https://docs.livekit.io/home/server/managing-participants/
+ 22 """
+ 23 def __init__ (
+ 24 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
+ 25 ):
+ 26 super () . __init__ ( session , url , api_key , api_secret )
+ 27
+ 28 async def create_room ( self , create : CreateRoomRequest ) -> Room :
+ 29 return await self . _client . request (
+ 30 SVC ,
+ 31 "CreateRoom" ,
+ 32 create ,
+ 33 self . _auth_header ( VideoGrants ( room_create = True )),
+ 34 Room ,
+ 35 )
+ 36
+ 37 async def list_rooms ( self , list : ListRoomsRequest ) -> ListRoomsResponse :
+ 38 return await self . _client . request (
+ 39 SVC ,
+ 40 "ListRooms" ,
+ 41 list ,
+ 42 self . _auth_header ( VideoGrants ( room_list = True )),
+ 43 ListRoomsResponse ,
+ 44 )
+ 45
+ 46 async def delete_room ( self , delete : DeleteRoomRequest ) -> DeleteRoomResponse :
+ 47 return await self . _client . request (
+ 48 SVC ,
+ 49 "DeleteRoom" ,
+ 50 delete ,
+ 51 self . _auth_header ( VideoGrants ( room_create = True )),
+ 52 DeleteRoomResponse ,
+ 53 )
+ 54
+ 55 async def update_room_metadata ( self , update : UpdateRoomMetadataRequest ) -> Room :
+ 56 return await self . _client . request (
+ 57 SVC ,
+ 58 "UpdateRoomMetadata" ,
+ 59 update ,
+ 60 self . _auth_header ( VideoGrants ( room_admin = True , room = update . room )),
+ 61 Room ,
+ 62 )
+ 63
+ 64 async def list_participants (
+ 65 self , list : ListParticipantsRequest
+ 66 ) -> ListParticipantsResponse :
+ 67 return await self . _client . request (
+ 68 SVC ,
+ 69 "ListParticipants" ,
+ 70 list ,
+ 71 self . _auth_header ( VideoGrants ( room_admin = True , room = list . room )),
+ 72 ListParticipantsResponse ,
+ 73 )
+ 74
+ 75 async def get_participant ( self , get : RoomParticipantIdentity ) -> ParticipantInfo :
+ 76 return await self . _client . request (
+ 77 SVC ,
+ 78 "GetParticipant" ,
+ 79 get ,
+ 80 self . _auth_header ( VideoGrants ( room_admin = True , room = get . room )),
+ 81 ParticipantInfo ,
+ 82 )
+ 83
+ 84 async def remove_participant (
+ 85 self , remove : RoomParticipantIdentity
+ 86 ) -> RemoveParticipantResponse :
+ 87 return await self . _client . request (
+ 88 SVC ,
+ 89 "RemoveParticipant" ,
+ 90 remove ,
+ 91 self . _auth_header ( VideoGrants ( room_admin = True , room = remove . room )),
+ 92 RemoveParticipantResponse ,
+ 93 )
+ 94
+ 95 async def mute_published_track (
+ 96 self ,
+ 97 update : MuteRoomTrackRequest ,
+ 98 ) -> MuteRoomTrackResponse :
+ 99 return await self . _client . request (
+100 SVC ,
+101 "MutePublishedTrack" ,
+102 update ,
+103 self . _auth_header ( VideoGrants ( room_admin = True , room = update . room )),
+104 MuteRoomTrackResponse ,
+105 )
+106
+107 async def update_participant (
+108 self , update : UpdateParticipantRequest
+109 ) -> ParticipantInfo :
+110 return await self . _client . request (
+111 SVC ,
+112 "UpdateParticipant" ,
+113 update ,
+114 self . _auth_header ( VideoGrants ( room_admin = True , room = update . room )),
+115 ParticipantInfo ,
+116 )
+117
+118 async def update_subscriptions (
+119 self , update : UpdateSubscriptionsRequest
+120 ) -> UpdateSubscriptionsResponse :
+121 return await self . _client . request (
+122 SVC ,
+123 "UpdateSubscriptions" ,
+124 update ,
+125 self . _auth_header ( VideoGrants ( room_admin = True , room = update . room )),
+126 UpdateSubscriptionsResponse ,
+127 )
+128
+129 async def send_data ( self , send : SendDataRequest ) -> SendDataResponse :
+130 return await self . _client . request (
+131 SVC ,
+132 "SendData" ,
+133 send ,
+134 self . _auth_header ( VideoGrants ( room_admin = True , room = send . room )),
+135 SendDataResponse ,
+136 )
+
+
+
+
+
+
+
+
+ class
+ RoomService (livekit.api._service.Service ):
+
+ View Source
+
+
+
+ 11 class RoomService ( Service ):
+ 12 """Client for LiveKit RoomService API
+ 13
+ 14 Recommended way to use this service is via `livekit.api.LiveKitAPI`:
+ 15
+ 16 ```python
+ 17 from livekit import api
+ 18 lkapi = api.LiveKitAPI()
+ 19 room_service = lkapi.room
+ 20 ```
+ 21
+ 22 Also see https://docs.livekit.io/home/server/managing-rooms/ and https://docs.livekit.io/home/server/managing-participants/
+ 23 """
+ 24 def __init__ (
+ 25 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
+ 26 ):
+ 27 super () . __init__ ( session , url , api_key , api_secret )
+ 28
+ 29 async def create_room ( self , create : CreateRoomRequest ) -> Room :
+ 30 return await self . _client . request (
+ 31 SVC ,
+ 32 "CreateRoom" ,
+ 33 create ,
+ 34 self . _auth_header ( VideoGrants ( room_create = True )),
+ 35 Room ,
+ 36 )
+ 37
+ 38 async def list_rooms ( self , list : ListRoomsRequest ) -> ListRoomsResponse :
+ 39 return await self . _client . request (
+ 40 SVC ,
+ 41 "ListRooms" ,
+ 42 list ,
+ 43 self . _auth_header ( VideoGrants ( room_list = True )),
+ 44 ListRoomsResponse ,
+ 45 )
+ 46
+ 47 async def delete_room ( self , delete : DeleteRoomRequest ) -> DeleteRoomResponse :
+ 48 return await self . _client . request (
+ 49 SVC ,
+ 50 "DeleteRoom" ,
+ 51 delete ,
+ 52 self . _auth_header ( VideoGrants ( room_create = True )),
+ 53 DeleteRoomResponse ,
+ 54 )
+ 55
+ 56 async def update_room_metadata ( self , update : UpdateRoomMetadataRequest ) -> Room :
+ 57 return await self . _client . request (
+ 58 SVC ,
+ 59 "UpdateRoomMetadata" ,
+ 60 update ,
+ 61 self . _auth_header ( VideoGrants ( room_admin = True , room = update . room )),
+ 62 Room ,
+ 63 )
+ 64
+ 65 async def list_participants (
+ 66 self , list : ListParticipantsRequest
+ 67 ) -> ListParticipantsResponse :
+ 68 return await self . _client . request (
+ 69 SVC ,
+ 70 "ListParticipants" ,
+ 71 list ,
+ 72 self . _auth_header ( VideoGrants ( room_admin = True , room = list . room )),
+ 73 ListParticipantsResponse ,
+ 74 )
+ 75
+ 76 async def get_participant ( self , get : RoomParticipantIdentity ) -> ParticipantInfo :
+ 77 return await self . _client . request (
+ 78 SVC ,
+ 79 "GetParticipant" ,
+ 80 get ,
+ 81 self . _auth_header ( VideoGrants ( room_admin = True , room = get . room )),
+ 82 ParticipantInfo ,
+ 83 )
+ 84
+ 85 async def remove_participant (
+ 86 self , remove : RoomParticipantIdentity
+ 87 ) -> RemoveParticipantResponse :
+ 88 return await self . _client . request (
+ 89 SVC ,
+ 90 "RemoveParticipant" ,
+ 91 remove ,
+ 92 self . _auth_header ( VideoGrants ( room_admin = True , room = remove . room )),
+ 93 RemoveParticipantResponse ,
+ 94 )
+ 95
+ 96 async def mute_published_track (
+ 97 self ,
+ 98 update : MuteRoomTrackRequest ,
+ 99 ) -> MuteRoomTrackResponse :
+100 return await self . _client . request (
+101 SVC ,
+102 "MutePublishedTrack" ,
+103 update ,
+104 self . _auth_header ( VideoGrants ( room_admin = True , room = update . room )),
+105 MuteRoomTrackResponse ,
+106 )
+107
+108 async def update_participant (
+109 self , update : UpdateParticipantRequest
+110 ) -> ParticipantInfo :
+111 return await self . _client . request (
+112 SVC ,
+113 "UpdateParticipant" ,
+114 update ,
+115 self . _auth_header ( VideoGrants ( room_admin = True , room = update . room )),
+116 ParticipantInfo ,
+117 )
+118
+119 async def update_subscriptions (
+120 self , update : UpdateSubscriptionsRequest
+121 ) -> UpdateSubscriptionsResponse :
+122 return await self . _client . request (
+123 SVC ,
+124 "UpdateSubscriptions" ,
+125 update ,
+126 self . _auth_header ( VideoGrants ( room_admin = True , room = update . room )),
+127 UpdateSubscriptionsResponse ,
+128 )
+129
+130 async def send_data ( self , send : SendDataRequest ) -> SendDataResponse :
+131 return await self . _client . request (
+132 SVC ,
+133 "SendData" ,
+134 send ,
+135 self . _auth_header ( VideoGrants ( room_admin = True , room = send . room )),
+136 SendDataResponse ,
+137 )
+
+
+
+
+
+
+
+
+
+
+ RoomService ( session : aiohttp . client . ClientSession , url : str , api_key : str , api_secret : str )
+
+ View Source
+
+
+
+
24 def __init__ (
+25 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
+26 ):
+27 super () . __init__ ( session , url , api_key , api_secret )
+
+
+
+
+
+
+
+
+
+
+ async def
+ create_room (self , create : room . CreateRoomRequest ) -> models . Room :
+
+ View Source
+
+
+
+
29 async def create_room ( self , create : CreateRoomRequest ) -> Room :
+30 return await self . _client . request (
+31 SVC ,
+32 "CreateRoom" ,
+33 create ,
+34 self . _auth_header ( VideoGrants ( room_create = True )),
+35 Room ,
+36 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ list_rooms (self , list : room . ListRoomsRequest ) -> room . ListRoomsResponse :
+
+ View Source
+
+
+
+
38 async def list_rooms ( self , list : ListRoomsRequest ) -> ListRoomsResponse :
+39 return await self . _client . request (
+40 SVC ,
+41 "ListRooms" ,
+42 list ,
+43 self . _auth_header ( VideoGrants ( room_list = True )),
+44 ListRoomsResponse ,
+45 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ delete_room (self , delete : room . DeleteRoomRequest ) -> room . DeleteRoomResponse :
+
+ View Source
+
+
+
+
47 async def delete_room ( self , delete : DeleteRoomRequest ) -> DeleteRoomResponse :
+48 return await self . _client . request (
+49 SVC ,
+50 "DeleteRoom" ,
+51 delete ,
+52 self . _auth_header ( VideoGrants ( room_create = True )),
+53 DeleteRoomResponse ,
+54 )
+
+
+
+
+
+
+
+
+
+
+
+ async def
+ list_participants ( self , list : room . ListParticipantsRequest ) -> room . ListParticipantsResponse :
+
+ View Source
+
+
+
+
65 async def list_participants (
+66 self , list : ListParticipantsRequest
+67 ) -> ListParticipantsResponse :
+68 return await self . _client . request (
+69 SVC ,
+70 "ListParticipants" ,
+71 list ,
+72 self . _auth_header ( VideoGrants ( room_admin = True , room = list . room )),
+73 ListParticipantsResponse ,
+74 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ get_participant (self , get : room . RoomParticipantIdentity ) -> models . ParticipantInfo :
+
+ View Source
+
+
+
+
76 async def get_participant ( self , get : RoomParticipantIdentity ) -> ParticipantInfo :
+77 return await self . _client . request (
+78 SVC ,
+79 "GetParticipant" ,
+80 get ,
+81 self . _auth_header ( VideoGrants ( room_admin = True , room = get . room )),
+82 ParticipantInfo ,
+83 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ remove_participant ( self , remove : room . RoomParticipantIdentity ) -> room . RemoveParticipantResponse :
+
+ View Source
+
+
+
+
85 async def remove_participant (
+86 self , remove : RoomParticipantIdentity
+87 ) -> RemoveParticipantResponse :
+88 return await self . _client . request (
+89 SVC ,
+90 "RemoveParticipant" ,
+91 remove ,
+92 self . _auth_header ( VideoGrants ( room_admin = True , room = remove . room )),
+93 RemoveParticipantResponse ,
+94 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ mute_published_track (self , update : room . MuteRoomTrackRequest ) -> room . MuteRoomTrackResponse :
+
+ View Source
+
+
+
+
96 async def mute_published_track (
+ 97 self ,
+ 98 update : MuteRoomTrackRequest ,
+ 99 ) -> MuteRoomTrackResponse :
+100 return await self . _client . request (
+101 SVC ,
+102 "MutePublishedTrack" ,
+103 update ,
+104 self . _auth_header ( VideoGrants ( room_admin = True , room = update . room )),
+105 MuteRoomTrackResponse ,
+106 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ update_participant (self , update : room . UpdateParticipantRequest ) -> models . ParticipantInfo :
+
+ View Source
+
+
+
+
108 async def update_participant (
+109 self , update : UpdateParticipantRequest
+110 ) -> ParticipantInfo :
+111 return await self . _client . request (
+112 SVC ,
+113 "UpdateParticipant" ,
+114 update ,
+115 self . _auth_header ( VideoGrants ( room_admin = True , room = update . room )),
+116 ParticipantInfo ,
+117 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ update_subscriptions ( self , update : room . UpdateSubscriptionsRequest ) -> room . UpdateSubscriptionsResponse :
+
+ View Source
+
+
+
+
119 async def update_subscriptions (
+120 self , update : UpdateSubscriptionsRequest
+121 ) -> UpdateSubscriptionsResponse :
+122 return await self . _client . request (
+123 SVC ,
+124 "UpdateSubscriptions" ,
+125 update ,
+126 self . _auth_header ( VideoGrants ( room_admin = True , room = update . room )),
+127 UpdateSubscriptionsResponse ,
+128 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ send_data (self , send : room . SendDataRequest ) -> room . SendDataResponse :
+
+ View Source
+
+
+
+
130 async def send_data ( self , send : SendDataRequest ) -> SendDataResponse :
+131 return await self . _client . request (
+132 SVC ,
+133 "SendData" ,
+134 send ,
+135 self . _auth_header ( VideoGrants ( room_admin = True , room = send . room )),
+136 SendDataResponse ,
+137 )
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/livekit/api/sip_service.html b/docs/livekit/api/sip_service.html
new file mode 100644
index 00000000..3c27264e
--- /dev/null
+++ b/docs/livekit/api/sip_service.html
@@ -0,0 +1,978 @@
+
+
+
+
+
+
+ livekit.api.sip_service API documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+livekit.api .sip_service
+
+
+
+
+ View Source
+
+ 1 import aiohttp
+ 2 from livekit.protocol.sip import CreateSIPTrunkRequest , SIPTrunkInfo , CreateSIPInboundTrunkRequest , SIPInboundTrunkInfo , CreateSIPOutboundTrunkRequest , SIPOutboundTrunkInfo , ListSIPTrunkRequest , ListSIPTrunkResponse , ListSIPInboundTrunkRequest , ListSIPInboundTrunkResponse , ListSIPOutboundTrunkRequest , ListSIPOutboundTrunkResponse , DeleteSIPTrunkRequest , SIPDispatchRuleInfo , CreateSIPDispatchRuleRequest , ListSIPDispatchRuleRequest , ListSIPDispatchRuleResponse , DeleteSIPDispatchRuleRequest , CreateSIPParticipantRequest , TransferSIPParticipantRequest , SIPParticipantInfo
+ 3 from ._service import Service
+ 4 from .access_token import VideoGrants , SIPGrants
+ 5
+ 6 SVC = "SIP"
+ 7 """@private"""
+ 8
+ 9 class SipService ( Service ):
+ 10 """Client for LiveKit SIP Service API
+ 11
+ 12 Recommended way to use this service is via `livekit.api.LiveKitAPI`:
+ 13
+ 14 ```python
+ 15 from livekit import api
+ 16 lkapi = api.LiveKitAPI()
+ 17 sip_service = lkapi.sip
+ 18 ```
+ 19 """
+ 20 def __init__ (
+ 21 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
+ 22 ):
+ 23 super () . __init__ ( session , url , api_key , api_secret )
+ 24
+ 25 async def create_sip_trunk (
+ 26 self , create : CreateSIPTrunkRequest
+ 27 ) -> SIPTrunkInfo :
+ 28 return await self . _client . request (
+ 29 SVC ,
+ 30 "CreateSIPTrunk" ,
+ 31 create ,
+ 32 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+ 33 SIPTrunkInfo ,
+ 34 )
+ 35
+ 36 async def create_sip_inbound_trunk (
+ 37 self , create : CreateSIPInboundTrunkRequest
+ 38 ) -> SIPInboundTrunkInfo :
+ 39 return await self . _client . request (
+ 40 SVC ,
+ 41 "CreateSIPInboundTrunk" ,
+ 42 create ,
+ 43 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+ 44 SIPInboundTrunkInfo ,
+ 45 )
+ 46
+ 47 async def create_sip_outbound_trunk (
+ 48 self , create : CreateSIPOutboundTrunkRequest
+ 49 ) -> SIPOutboundTrunkInfo :
+ 50 return await self . _client . request (
+ 51 SVC ,
+ 52 "CreateSIPOutboundTrunk" ,
+ 53 create ,
+ 54 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+ 55 SIPOutboundTrunkInfo ,
+ 56 )
+ 57
+ 58 async def list_sip_trunk (
+ 59 self , list : ListSIPTrunkRequest
+ 60 ) -> ListSIPTrunkResponse :
+ 61 return await self . _client . request (
+ 62 SVC ,
+ 63 "ListSIPTrunk" ,
+ 64 list ,
+ 65 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+ 66 ListSIPTrunkResponse ,
+ 67 )
+ 68
+ 69 async def list_sip_inbound_trunk (
+ 70 self , list : ListSIPInboundTrunkRequest
+ 71 ) -> ListSIPInboundTrunkResponse :
+ 72 return await self . _client . request (
+ 73 SVC ,
+ 74 "ListSIPInboundTrunk" ,
+ 75 list ,
+ 76 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+ 77 ListSIPInboundTrunkResponse ,
+ 78 )
+ 79
+ 80 async def list_sip_outbound_trunk (
+ 81 self , list : ListSIPOutboundTrunkRequest
+ 82 ) -> ListSIPOutboundTrunkResponse :
+ 83 return await self . _client . request (
+ 84 SVC ,
+ 85 "ListSIPOutboundTrunk" ,
+ 86 list ,
+ 87 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+ 88 ListSIPOutboundTrunkResponse ,
+ 89 )
+ 90
+ 91 async def delete_sip_trunk (
+ 92 self , delete : DeleteSIPTrunkRequest
+ 93 ) -> SIPTrunkInfo :
+ 94 return await self . _client . request (
+ 95 SVC ,
+ 96 "DeleteSIPTrunk" ,
+ 97 delete ,
+ 98 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+ 99 SIPTrunkInfo ,
+100 )
+101
+102 async def create_sip_dispatch_rule (
+103 self , create : CreateSIPDispatchRuleRequest
+104 ) -> SIPDispatchRuleInfo :
+105 return await self . _client . request (
+106 SVC ,
+107 "CreateSIPDispatchRule" ,
+108 create ,
+109 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+110 SIPDispatchRuleInfo ,
+111 )
+112
+113 async def list_sip_dispatch_rule (
+114 self , list : ListSIPDispatchRuleRequest
+115 ) -> ListSIPDispatchRuleResponse :
+116 return await self . _client . request (
+117 SVC ,
+118 "ListSIPDispatchRule" ,
+119 list ,
+120 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+121 ListSIPDispatchRuleResponse ,
+122 )
+123
+124 async def delete_sip_dispatch_rule (
+125 self , delete : DeleteSIPDispatchRuleRequest
+126 ) -> SIPDispatchRuleInfo :
+127 return await self . _client . request (
+128 SVC ,
+129 "DeleteSIPDispatchRule" ,
+130 delete ,
+131 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+132 SIPDispatchRuleInfo ,
+133 )
+134
+135 async def create_sip_participant (
+136 self , create : CreateSIPParticipantRequest
+137 ) -> SIPParticipantInfo :
+138 return await self . _client . request (
+139 SVC ,
+140 "CreateSIPParticipant" ,
+141 create ,
+142 self . _auth_header ( VideoGrants (), sip = SIPGrants ( call = True )),
+143 SIPParticipantInfo ,
+144 )
+145
+146 async def transfer_sip_participant (
+147 self , transfer : TransferSIPParticipantRequest
+148 ) -> SIPParticipantInfo :
+149 return await self . _client . request (
+150 SVC ,
+151 "TransferSIPParticipant" ,
+152 transfer ,
+153 self . _auth_header (
+154 VideoGrants (
+155 room_admin = True ,
+156 room = transfer . room_name ,
+157 ),
+158 sip = SIPGrants ( call = True ),
+159 ),
+160 SIPParticipantInfo ,
+161 )
+
+
+
+
+
+
+
+
+ class
+ SipService (livekit.api._service.Service ):
+
+ View Source
+
+
+
+ 10 class SipService ( Service ):
+ 11 """Client for LiveKit SIP Service API
+ 12
+ 13 Recommended way to use this service is via `livekit.api.LiveKitAPI`:
+ 14
+ 15 ```python
+ 16 from livekit import api
+ 17 lkapi = api.LiveKitAPI()
+ 18 sip_service = lkapi.sip
+ 19 ```
+ 20 """
+ 21 def __init__ (
+ 22 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
+ 23 ):
+ 24 super () . __init__ ( session , url , api_key , api_secret )
+ 25
+ 26 async def create_sip_trunk (
+ 27 self , create : CreateSIPTrunkRequest
+ 28 ) -> SIPTrunkInfo :
+ 29 return await self . _client . request (
+ 30 SVC ,
+ 31 "CreateSIPTrunk" ,
+ 32 create ,
+ 33 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+ 34 SIPTrunkInfo ,
+ 35 )
+ 36
+ 37 async def create_sip_inbound_trunk (
+ 38 self , create : CreateSIPInboundTrunkRequest
+ 39 ) -> SIPInboundTrunkInfo :
+ 40 return await self . _client . request (
+ 41 SVC ,
+ 42 "CreateSIPInboundTrunk" ,
+ 43 create ,
+ 44 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+ 45 SIPInboundTrunkInfo ,
+ 46 )
+ 47
+ 48 async def create_sip_outbound_trunk (
+ 49 self , create : CreateSIPOutboundTrunkRequest
+ 50 ) -> SIPOutboundTrunkInfo :
+ 51 return await self . _client . request (
+ 52 SVC ,
+ 53 "CreateSIPOutboundTrunk" ,
+ 54 create ,
+ 55 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+ 56 SIPOutboundTrunkInfo ,
+ 57 )
+ 58
+ 59 async def list_sip_trunk (
+ 60 self , list : ListSIPTrunkRequest
+ 61 ) -> ListSIPTrunkResponse :
+ 62 return await self . _client . request (
+ 63 SVC ,
+ 64 "ListSIPTrunk" ,
+ 65 list ,
+ 66 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+ 67 ListSIPTrunkResponse ,
+ 68 )
+ 69
+ 70 async def list_sip_inbound_trunk (
+ 71 self , list : ListSIPInboundTrunkRequest
+ 72 ) -> ListSIPInboundTrunkResponse :
+ 73 return await self . _client . request (
+ 74 SVC ,
+ 75 "ListSIPInboundTrunk" ,
+ 76 list ,
+ 77 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+ 78 ListSIPInboundTrunkResponse ,
+ 79 )
+ 80
+ 81 async def list_sip_outbound_trunk (
+ 82 self , list : ListSIPOutboundTrunkRequest
+ 83 ) -> ListSIPOutboundTrunkResponse :
+ 84 return await self . _client . request (
+ 85 SVC ,
+ 86 "ListSIPOutboundTrunk" ,
+ 87 list ,
+ 88 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+ 89 ListSIPOutboundTrunkResponse ,
+ 90 )
+ 91
+ 92 async def delete_sip_trunk (
+ 93 self , delete : DeleteSIPTrunkRequest
+ 94 ) -> SIPTrunkInfo :
+ 95 return await self . _client . request (
+ 96 SVC ,
+ 97 "DeleteSIPTrunk" ,
+ 98 delete ,
+ 99 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+100 SIPTrunkInfo ,
+101 )
+102
+103 async def create_sip_dispatch_rule (
+104 self , create : CreateSIPDispatchRuleRequest
+105 ) -> SIPDispatchRuleInfo :
+106 return await self . _client . request (
+107 SVC ,
+108 "CreateSIPDispatchRule" ,
+109 create ,
+110 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+111 SIPDispatchRuleInfo ,
+112 )
+113
+114 async def list_sip_dispatch_rule (
+115 self , list : ListSIPDispatchRuleRequest
+116 ) -> ListSIPDispatchRuleResponse :
+117 return await self . _client . request (
+118 SVC ,
+119 "ListSIPDispatchRule" ,
+120 list ,
+121 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+122 ListSIPDispatchRuleResponse ,
+123 )
+124
+125 async def delete_sip_dispatch_rule (
+126 self , delete : DeleteSIPDispatchRuleRequest
+127 ) -> SIPDispatchRuleInfo :
+128 return await self . _client . request (
+129 SVC ,
+130 "DeleteSIPDispatchRule" ,
+131 delete ,
+132 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+133 SIPDispatchRuleInfo ,
+134 )
+135
+136 async def create_sip_participant (
+137 self , create : CreateSIPParticipantRequest
+138 ) -> SIPParticipantInfo :
+139 return await self . _client . request (
+140 SVC ,
+141 "CreateSIPParticipant" ,
+142 create ,
+143 self . _auth_header ( VideoGrants (), sip = SIPGrants ( call = True )),
+144 SIPParticipantInfo ,
+145 )
+146
+147 async def transfer_sip_participant (
+148 self , transfer : TransferSIPParticipantRequest
+149 ) -> SIPParticipantInfo :
+150 return await self . _client . request (
+151 SVC ,
+152 "TransferSIPParticipant" ,
+153 transfer ,
+154 self . _auth_header (
+155 VideoGrants (
+156 room_admin = True ,
+157 room = transfer . room_name ,
+158 ),
+159 sip = SIPGrants ( call = True ),
+160 ),
+161 SIPParticipantInfo ,
+162 )
+
+
+
+ Client for LiveKit SIP Service API
+
+
Recommended way to use this service is via livekit.api.LiveKitAPI :
+
+
+
from livekit import api
+lkapi = api . LiveKitAPI ()
+sip_service = lkapi . sip
+
+
+
+
+
+
+
+
+
+ SipService ( session : aiohttp . client . ClientSession , url : str , api_key : str , api_secret : str )
+
+ View Source
+
+
+
+
21 def __init__ (
+22 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
+23 ):
+24 super () . __init__ ( session , url , api_key , api_secret )
+
+
+
+
+
+
+
+
+
+
+ async def
+ create_sip_trunk (self , create : sip . CreateSIPTrunkRequest ) -> sip . SIPTrunkInfo :
+
+ View Source
+
+
+
+
26 async def create_sip_trunk (
+27 self , create : CreateSIPTrunkRequest
+28 ) -> SIPTrunkInfo :
+29 return await self . _client . request (
+30 SVC ,
+31 "CreateSIPTrunk" ,
+32 create ,
+33 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+34 SIPTrunkInfo ,
+35 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ create_sip_inbound_trunk ( self , create : sip . CreateSIPInboundTrunkRequest ) -> sip . SIPInboundTrunkInfo :
+
+ View Source
+
+
+
+
37 async def create_sip_inbound_trunk (
+38 self , create : CreateSIPInboundTrunkRequest
+39 ) -> SIPInboundTrunkInfo :
+40 return await self . _client . request (
+41 SVC ,
+42 "CreateSIPInboundTrunk" ,
+43 create ,
+44 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+45 SIPInboundTrunkInfo ,
+46 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ create_sip_outbound_trunk ( self , create : sip . CreateSIPOutboundTrunkRequest ) -> sip . SIPOutboundTrunkInfo :
+
+ View Source
+
+
+
+
48 async def create_sip_outbound_trunk (
+49 self , create : CreateSIPOutboundTrunkRequest
+50 ) -> SIPOutboundTrunkInfo :
+51 return await self . _client . request (
+52 SVC ,
+53 "CreateSIPOutboundTrunk" ,
+54 create ,
+55 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+56 SIPOutboundTrunkInfo ,
+57 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ list_sip_trunk (self , list : sip . ListSIPTrunkRequest ) -> sip . ListSIPTrunkResponse :
+
+ View Source
+
+
+
+
59 async def list_sip_trunk (
+60 self , list : ListSIPTrunkRequest
+61 ) -> ListSIPTrunkResponse :
+62 return await self . _client . request (
+63 SVC ,
+64 "ListSIPTrunk" ,
+65 list ,
+66 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+67 ListSIPTrunkResponse ,
+68 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ list_sip_inbound_trunk ( self , list : sip . ListSIPInboundTrunkRequest ) -> sip . ListSIPInboundTrunkResponse :
+
+ View Source
+
+
+
+
70 async def list_sip_inbound_trunk (
+71 self , list : ListSIPInboundTrunkRequest
+72 ) -> ListSIPInboundTrunkResponse :
+73 return await self . _client . request (
+74 SVC ,
+75 "ListSIPInboundTrunk" ,
+76 list ,
+77 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+78 ListSIPInboundTrunkResponse ,
+79 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ list_sip_outbound_trunk ( self , list : sip . ListSIPOutboundTrunkRequest ) -> sip . ListSIPOutboundTrunkResponse :
+
+ View Source
+
+
+
+
81 async def list_sip_outbound_trunk (
+82 self , list : ListSIPOutboundTrunkRequest
+83 ) -> ListSIPOutboundTrunkResponse :
+84 return await self . _client . request (
+85 SVC ,
+86 "ListSIPOutboundTrunk" ,
+87 list ,
+88 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+89 ListSIPOutboundTrunkResponse ,
+90 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ delete_sip_trunk (self , delete : sip . DeleteSIPTrunkRequest ) -> sip . SIPTrunkInfo :
+
+ View Source
+
+
+
+
92 async def delete_sip_trunk (
+ 93 self , delete : DeleteSIPTrunkRequest
+ 94 ) -> SIPTrunkInfo :
+ 95 return await self . _client . request (
+ 96 SVC ,
+ 97 "DeleteSIPTrunk" ,
+ 98 delete ,
+ 99 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+100 SIPTrunkInfo ,
+101 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ create_sip_dispatch_rule ( self , create : sip . CreateSIPDispatchRuleRequest ) -> sip . SIPDispatchRuleInfo :
+
+ View Source
+
+
+
+
103 async def create_sip_dispatch_rule (
+104 self , create : CreateSIPDispatchRuleRequest
+105 ) -> SIPDispatchRuleInfo :
+106 return await self . _client . request (
+107 SVC ,
+108 "CreateSIPDispatchRule" ,
+109 create ,
+110 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+111 SIPDispatchRuleInfo ,
+112 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ list_sip_dispatch_rule ( self , list : sip . ListSIPDispatchRuleRequest ) -> sip . ListSIPDispatchRuleResponse :
+
+ View Source
+
+
+
+
114 async def list_sip_dispatch_rule (
+115 self , list : ListSIPDispatchRuleRequest
+116 ) -> ListSIPDispatchRuleResponse :
+117 return await self . _client . request (
+118 SVC ,
+119 "ListSIPDispatchRule" ,
+120 list ,
+121 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+122 ListSIPDispatchRuleResponse ,
+123 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ delete_sip_dispatch_rule ( self , delete : sip . DeleteSIPDispatchRuleRequest ) -> sip . SIPDispatchRuleInfo :
+
+ View Source
+
+
+
+
125 async def delete_sip_dispatch_rule (
+126 self , delete : DeleteSIPDispatchRuleRequest
+127 ) -> SIPDispatchRuleInfo :
+128 return await self . _client . request (
+129 SVC ,
+130 "DeleteSIPDispatchRule" ,
+131 delete ,
+132 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
+133 SIPDispatchRuleInfo ,
+134 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ create_sip_participant (self , create : sip . CreateSIPParticipantRequest ) -> sip . SIPParticipantInfo :
+
+ View Source
+
+
+
+
136 async def create_sip_participant (
+137 self , create : CreateSIPParticipantRequest
+138 ) -> SIPParticipantInfo :
+139 return await self . _client . request (
+140 SVC ,
+141 "CreateSIPParticipant" ,
+142 create ,
+143 self . _auth_header ( VideoGrants (), sip = SIPGrants ( call = True )),
+144 SIPParticipantInfo ,
+145 )
+
+
+
+
+
+
+
+
+
+
+ async def
+ transfer_sip_participant ( self , transfer : sip . TransferSIPParticipantRequest ) -> sip . SIPParticipantInfo :
+
+ View Source
+
+
+
+
147 async def transfer_sip_participant (
+148 self , transfer : TransferSIPParticipantRequest
+149 ) -> SIPParticipantInfo :
+150 return await self . _client . request (
+151 SVC ,
+152 "TransferSIPParticipant" ,
+153 transfer ,
+154 self . _auth_header (
+155 VideoGrants (
+156 room_admin = True ,
+157 room = transfer . room_name ,
+158 ),
+159 sip = SIPGrants ( call = True ),
+160 ),
+161 SIPParticipantInfo ,
+162 )
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/livekit/api/twirp_client.html b/docs/livekit/api/twirp_client.html
new file mode 100644
index 00000000..2d2670aa
--- /dev/null
+++ b/docs/livekit/api/twirp_client.html
@@ -0,0 +1,952 @@
+
+
+
+
+
+
+ livekit.api.twirp_client API documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+livekit.api .twirp_client
+
+
+
+
+ View Source
+
+ 1 # Copyright 2023 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.
+ 14
+ 15 from typing import Dict , Type , TypeVar
+ 16
+ 17 import aiohttp
+ 18 from google.protobuf.message import Message
+ 19 from urllib.parse import urlparse
+ 20
+ 21 DEFAULT_PREFIX = "twirp"
+ 22
+ 23
+ 24 class TwirpError ( Exception ):
+ 25 def __init__ ( self , code : str , msg : str ) -> None :
+ 26 self . _code = code
+ 27 self . _msg = msg
+ 28
+ 29 @property
+ 30 def code ( self ) -> str :
+ 31 return self . _code
+ 32
+ 33 @property
+ 34 def message ( self ) -> str :
+ 35 return self . _msg
+ 36
+ 37
+ 38 class TwirpErrorCode :
+ 39 CANCELED = "canceled"
+ 40 UNKNOWN = "unknown"
+ 41 INVALID_ARGUMENT = "invalid_argument"
+ 42 MALFORMED = "malformed"
+ 43 DEADLINE_EXCEEDED = "deadline_exceeded"
+ 44 NOT_FOUND = "not_found"
+ 45 BAD_ROUTE = "bad_route"
+ 46 ALREADY_EXISTS = "already_exists"
+ 47 PERMISSION_DENIED = "permission_denied"
+ 48 UNAUTHENTICATED = "unauthenticated"
+ 49 RESOURCE_EXHAUSTED = "resource_exhausted"
+ 50 FAILED_PRECONDITION = "failed_precondition"
+ 51 ABORTED = "aborted"
+ 52 OUT_OF_RANGE = "out_of_range"
+ 53 UNIMPLEMENTED = "unimplemented"
+ 54 INTERNAL = "internal"
+ 55 UNAVAILABLE = "unavailable"
+ 56 DATA_LOSS = "dataloss"
+ 57
+ 58
+ 59 T = TypeVar ( "T" , bound = Message )
+ 60
+ 61
+ 62 class TwirpClient :
+ 63 def __init__ (
+ 64 self ,
+ 65 session : aiohttp . ClientSession ,
+ 66 host : str ,
+ 67 pkg : str ,
+ 68 prefix : str = DEFAULT_PREFIX ,
+ 69 ) -> None :
+ 70 parse_res = urlparse ( host )
+ 71 scheme = parse_res . scheme
+ 72 if scheme . startswith ( "ws" ):
+ 73 scheme = scheme . replace ( "ws" , "http" )
+ 74
+ 75 host = f " { scheme } :// { parse_res . netloc } / { parse_res . path } "
+ 76 self . host = host . rstrip ( "/" )
+ 77 self . pkg = pkg
+ 78 self . prefix = prefix
+ 79 self . _session = session
+ 80
+ 81 async def request (
+ 82 self ,
+ 83 service : str ,
+ 84 method : str ,
+ 85 data : Message ,
+ 86 headers : Dict [ str , str ],
+ 87 response_class : Type [ T ],
+ 88 ) -> T :
+ 89 url = f " { self . host } / { self . prefix } / { self . pkg } . { service } / { method } "
+ 90 headers [ "Content-Type" ] = "application/protobuf"
+ 91
+ 92 serialized_data = data . SerializeToString ()
+ 93 async with self . _session . post (
+ 94 url , headers = headers , data = serialized_data
+ 95 ) as resp :
+ 96 if resp . status == 200 :
+ 97 return response_class . FromString ( await resp . read ())
+ 98 else :
+ 99 # when we have an error, Twirp always encode it in json
+100 error_data = await resp . json ()
+101 raise TwirpError ( error_data [ "code" ], error_data [ "msg" ])
+
+
+
+
+
+
+ DEFAULT_PREFIX =
+'twirp'
+
+
+
+
+
+
+
+
+
+
+
+
+ class
+ TwirpError (builtins.Exception ):
+
+ View Source
+
+
+
+ 25 class TwirpError ( Exception ):
+26 def __init__ ( self , code : str , msg : str ) -> None :
+27 self . _code = code
+28 self . _msg = msg
+29
+30 @property
+31 def code ( self ) -> str :
+32 return self . _code
+33
+34 @property
+35 def message ( self ) -> str :
+36 return self . _msg
+
+
+
+ Common base class for all non-exit exceptions.
+
+
+
+
+
+
+
+ TwirpError (code : str , msg : str )
+
+ View Source
+
+
+
+
26 def __init__ ( self , code : str , msg : str ) -> None :
+27 self . _code = code
+28 self . _msg = msg
+
+
+
+
+
+
+
+
+
+ code : str
+
+ View Source
+
+
+
+
30 @property
+31 def code ( self ) -> str :
+32 return self . _code
+
+
+
+
+
+
+
+
+
+ message : str
+
+ View Source
+
+
+
+
34 @property
+35 def message ( self ) -> str :
+36 return self . _msg
+
+
+
+
+
+
+
+
+
+
+
+ class
+ TwirpErrorCode :
+
+ View Source
+
+
+
+ 39 class TwirpErrorCode :
+40 CANCELED = "canceled"
+41 UNKNOWN = "unknown"
+42 INVALID_ARGUMENT = "invalid_argument"
+43 MALFORMED = "malformed"
+44 DEADLINE_EXCEEDED = "deadline_exceeded"
+45 NOT_FOUND = "not_found"
+46 BAD_ROUTE = "bad_route"
+47 ALREADY_EXISTS = "already_exists"
+48 PERMISSION_DENIED = "permission_denied"
+49 UNAUTHENTICATED = "unauthenticated"
+50 RESOURCE_EXHAUSTED = "resource_exhausted"
+51 FAILED_PRECONDITION = "failed_precondition"
+52 ABORTED = "aborted"
+53 OUT_OF_RANGE = "out_of_range"
+54 UNIMPLEMENTED = "unimplemented"
+55 INTERNAL = "internal"
+56 UNAVAILABLE = "unavailable"
+57 DATA_LOSS = "dataloss"
+
+
+
+
+
+
+
+ CANCELED =
+'canceled'
+
+
+
+
+
+
+
+
+
+
+ UNKNOWN =
+'unknown'
+
+
+
+
+
+
+
+
+
+
+ INVALID_ARGUMENT =
+'invalid_argument'
+
+
+
+
+
+
+
+
+
+
+
+ DEADLINE_EXCEEDED =
+'deadline_exceeded'
+
+
+
+
+
+
+
+
+
+
+ NOT_FOUND =
+'not_found'
+
+
+
+
+
+
+
+
+
+
+ BAD_ROUTE =
+'bad_route'
+
+
+
+
+
+
+
+
+
+
+ ALREADY_EXISTS =
+'already_exists'
+
+
+
+
+
+
+
+
+
+
+ PERMISSION_DENIED =
+'permission_denied'
+
+
+
+
+
+
+
+
+
+
+ UNAUTHENTICATED =
+'unauthenticated'
+
+
+
+
+
+
+
+
+
+
+ RESOURCE_EXHAUSTED =
+'resource_exhausted'
+
+
+
+
+
+
+
+
+
+
+ FAILED_PRECONDITION =
+'failed_precondition'
+
+
+
+
+
+
+
+
+
+
+ ABORTED =
+'aborted'
+
+
+
+
+
+
+
+
+
+
+ OUT_OF_RANGE =
+'out_of_range'
+
+
+
+
+
+
+
+
+
+
+ UNIMPLEMENTED =
+'unimplemented'
+
+
+
+
+
+
+
+
+
+
+ INTERNAL =
+'internal'
+
+
+
+
+
+
+
+
+
+
+ UNAVAILABLE =
+'unavailable'
+
+
+
+
+
+
+
+
+
+
+ DATA_LOSS =
+'dataloss'
+
+
+
+
+
+
+
+
+
+
+
+
+
+ class
+ TwirpClient :
+
+ View Source
+
+
+
+ 63 class TwirpClient :
+ 64 def __init__ (
+ 65 self ,
+ 66 session : aiohttp . ClientSession ,
+ 67 host : str ,
+ 68 pkg : str ,
+ 69 prefix : str = DEFAULT_PREFIX ,
+ 70 ) -> None :
+ 71 parse_res = urlparse ( host )
+ 72 scheme = parse_res . scheme
+ 73 if scheme . startswith ( "ws" ):
+ 74 scheme = scheme . replace ( "ws" , "http" )
+ 75
+ 76 host = f " { scheme } :// { parse_res . netloc } / { parse_res . path } "
+ 77 self . host = host . rstrip ( "/" )
+ 78 self . pkg = pkg
+ 79 self . prefix = prefix
+ 80 self . _session = session
+ 81
+ 82 async def request (
+ 83 self ,
+ 84 service : str ,
+ 85 method : str ,
+ 86 data : Message ,
+ 87 headers : Dict [ str , str ],
+ 88 response_class : Type [ T ],
+ 89 ) -> T :
+ 90 url = f " { self . host } / { self . prefix } / { self . pkg } . { service } / { method } "
+ 91 headers [ "Content-Type" ] = "application/protobuf"
+ 92
+ 93 serialized_data = data . SerializeToString ()
+ 94 async with self . _session . post (
+ 95 url , headers = headers , data = serialized_data
+ 96 ) as resp :
+ 97 if resp . status == 200 :
+ 98 return response_class . FromString ( await resp . read ())
+ 99 else :
+100 # when we have an error, Twirp always encode it in json
+101 error_data = await resp . json ()
+102 raise TwirpError ( error_data [ "code" ], error_data [ "msg" ])
+
+
+
+
+
+
+
+
+
+ TwirpClient ( session : aiohttp . client . ClientSession , host : str , pkg : str , prefix : str = 'twirp' )
+
+ View Source
+
+
+
+
64 def __init__ (
+65 self ,
+66 session : aiohttp . ClientSession ,
+67 host : str ,
+68 pkg : str ,
+69 prefix : str = DEFAULT_PREFIX ,
+70 ) -> None :
+71 parse_res = urlparse ( host )
+72 scheme = parse_res . scheme
+73 if scheme . startswith ( "ws" ):
+74 scheme = scheme . replace ( "ws" , "http" )
+75
+76 host = f " { scheme } :// { parse_res . netloc } / { parse_res . path } "
+77 self . host = host . rstrip ( "/" )
+78 self . pkg = pkg
+79 self . prefix = prefix
+80 self . _session = session
+
+
+
+
+
+
+
+
+
+
+ prefix
+
+
+
+
+
+
+
+
+
+
+
+
+ async def
+ request ( self , service : str , method : str , data : google . protobuf . message . Message , headers : Dict [ str , str ] , response_class : Type [ ~ T ] ) -> ~ T :
+
+ View Source
+
+
+
+
82 async def request (
+ 83 self ,
+ 84 service : str ,
+ 85 method : str ,
+ 86 data : Message ,
+ 87 headers : Dict [ str , str ],
+ 88 response_class : Type [ T ],
+ 89 ) -> T :
+ 90 url = f " { self . host } / { self . prefix } / { self . pkg } . { service } / { method } "
+ 91 headers [ "Content-Type" ] = "application/protobuf"
+ 92
+ 93 serialized_data = data . SerializeToString ()
+ 94 async with self . _session . post (
+ 95 url , headers = headers , data = serialized_data
+ 96 ) as resp :
+ 97 if resp . status == 200 :
+ 98 return response_class . FromString ( await resp . read ())
+ 99 else :
+100 # when we have an error, Twirp always encode it in json
+101 error_data = await resp . json ()
+102 raise TwirpError ( error_data [ "code" ], error_data [ "msg" ])
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/livekit/api/version.html b/docs/livekit/api/version.html
new file mode 100644
index 00000000..6dc0e3ed
--- /dev/null
+++ b/docs/livekit/api/version.html
@@ -0,0 +1,242 @@
+
+
+
+
+
+
+ livekit.api.version API documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/livekit/api/webhook.html b/docs/livekit/api/webhook.html
new file mode 100644
index 00000000..77d57415
--- /dev/null
+++ b/docs/livekit/api/webhook.html
@@ -0,0 +1,393 @@
+
+
+
+
+
+
+ livekit.api.webhook API documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ class
+ WebhookReceiver :
+
+ View Source
+
+
+
+ 9 class WebhookReceiver :
+10 """Receive webhooks from LiveKit.
+11
+12 Recommended way to use this service is via `livekit.api.LiveKitAPI`:
+13
+14 ```python
+15 from livekit import api
+16 lkapi = api.LiveKitAPI()
+17 webhook = lkapi.webhook
+18 ```
+19
+20 Also see https://docs.livekit.io/home/server/webhooks/
+21 """
+22 def __init__ ( self , token_verifier : TokenVerifier ):
+23 self . _verifier = token_verifier
+24
+25 def receive ( self , body : str , auth_token : str ) -> WebhookEvent :
+26 claims = self . _verifier . verify ( auth_token )
+27 if claims . sha256 is None :
+28 raise Exception ( "sha256 was not found in the token" )
+29
+30 body_hash = hashlib . sha256 ( body . encode ()) . digest ()
+31 claims_hash = base64 . b64decode ( claims . sha256 )
+32
+33 if body_hash != claims_hash :
+34 raise Exception ( "hash mismatch" )
+35
+36 return Parse ( body , WebhookEvent (), ignore_unknown_fields = True )
+
+
+
+ Receive webhooks from LiveKit.
+
+
Recommended way to use this service is via livekit.api.LiveKitAPI:
+
+
+
from livekit import api
+lkapi = api . LiveKitAPI ()
+webhook = lkapi . webhook
+
+
+
+
Also see https://docs.livekit.io/home/server/webhooks/
+
+
+
+
+
+
+
+
22 def __init__ ( self , token_verifier : TokenVerifier ):
+23 self . _verifier = token_verifier
+
+
+
+
+
+
+
+
+
+
+ def
+ receive (self , body : str , auth_token : str ) -> webhook . WebhookEvent :
+
+ View Source
+
+
+
+
25 def receive ( self , body : str , auth_token : str ) -> WebhookEvent :
+26 claims = self . _verifier . verify ( auth_token )
+27 if claims . sha256 is None :
+28 raise Exception ( "sha256 was not found in the token" )
+29
+30 body_hash = hashlib . sha256 ( body . encode ()) . digest ()
+31 claims_hash = base64 . b64decode ( claims . sha256 )
+32
+33 if body_hash != claims_hash :
+34 raise Exception ( "hash mismatch" )
+35
+36 return Parse ( body , WebhookEvent (), ignore_unknown_fields = True )
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/search.js b/docs/search.js
new file mode 100644
index 00000000..0259cd0b
--- /dev/null
+++ b/docs/search.js
@@ -0,0 +1,46 @@
+window.pdocSearch = (function(){
+/** elasticlunr - http://weixsong.github.io * Copyright (C) 2017 Oliver Nightingale * Copyright (C) 2017 Wei Song * MIT Licensed */!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),t.utils.toString=function(e){return void 0===e||null===e?"":e.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var e=Array.prototype.slice.call(arguments),t=e.pop(),n=e;if("function"!=typeof t)throw new TypeError("last argument must be a function");n.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},t.EventEmitter.prototype.removeListener=function(e,t){if(this.hasHandler(e)){var n=this.events[e].indexOf(t);-1!==n&&(this.events[e].splice(n,1),0==this.events[e].length&&delete this.events[e])}},t.EventEmitter.prototype.emit=function(e){if(this.hasHandler(e)){var t=Array.prototype.slice.call(arguments,1);this.events[e].forEach(function(e){e.apply(void 0,t)},this)}},t.EventEmitter.prototype.hasHandler=function(e){return e in this.events},t.tokenizer=function(e){if(!arguments.length||null===e||void 0===e)return[];if(Array.isArray(e)){var n=e.filter(function(e){return null===e||void 0===e?!1:!0});n=n.map(function(e){return t.utils.toString(e).toLowerCase()});var i=[];return n.forEach(function(e){var n=e.split(t.tokenizer.seperator);i=i.concat(n)},this),i}return e.toString().trim().toLowerCase().split(t.tokenizer.seperator)},t.tokenizer.defaultSeperator=/[\s\-]+/,t.tokenizer.seperator=t.tokenizer.defaultSeperator,t.tokenizer.setSeperator=function(e){null!==e&&void 0!==e&&"object"==typeof e&&(t.tokenizer.seperator=e)},t.tokenizer.resetSeperator=function(){t.tokenizer.seperator=t.tokenizer.defaultSeperator},t.tokenizer.getSeperator=function(){return t.tokenizer.seperator},t.Pipeline=function(){this._queue=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in t.Pipeline.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[n]=e},t.Pipeline.getRegisteredFunction=function(e){return e in t.Pipeline.registeredFunctions!=!0?null:t.Pipeline.registeredFunctions[e]},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.getRegisteredFunction(e);if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i+1,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i,0,n)},t.Pipeline.prototype.remove=function(e){var t=this._queue.indexOf(e);-1!==t&&this._queue.splice(t,1)},t.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,i=this._queue.length,o=0;n>o;o++){for(var r=e[o],s=0;i>s&&(r=this._queue[s](r,o,e),void 0!==r&&null!==r);s++);void 0!==r&&null!==r&&t.push(r)}return t},t.Pipeline.prototype.reset=function(){this._queue=[]},t.Pipeline.prototype.get=function(){return this._queue},t.Pipeline.prototype.toJSON=function(){return this._queue.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.DocumentStore,this.index={},this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var e=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,e)},t.Index.prototype.off=function(e,t){return this.eventEmitter.removeListener(e,t)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;n._fields=e.fields,n._ref=e.ref,n.documentStore=t.DocumentStore.load(e.documentStore),n.pipeline=t.Pipeline.load(e.pipeline),n.index={};for(var i in e.index)n.index[i]=t.InvertedIndex.load(e.index[i]);return n},t.Index.prototype.addField=function(e){return this._fields.push(e),this.index[e]=new t.InvertedIndex,this},t.Index.prototype.setRef=function(e){return this._ref=e,this},t.Index.prototype.saveDocument=function(e){return this.documentStore=new t.DocumentStore(e),this},t.Index.prototype.addDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.addDoc(i,e),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));this.documentStore.addFieldLength(i,n,o.length);var r={};o.forEach(function(e){e in r?r[e]+=1:r[e]=1},this);for(var s in r){var u=r[s];u=Math.sqrt(u),this.index[n].addToken(s,{ref:i,tf:u})}},this),n&&this.eventEmitter.emit("add",e,this)}},t.Index.prototype.removeDocByRef=function(e){if(e&&this.documentStore.isDocStored()!==!1&&this.documentStore.hasDoc(e)){var t=this.documentStore.getDoc(e);this.removeDoc(t,!1)}},t.Index.prototype.removeDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.hasDoc(i)&&(this.documentStore.removeDoc(i),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));o.forEach(function(e){this.index[n].removeToken(e,i)},this)},this),n&&this.eventEmitter.emit("remove",e,this))}},t.Index.prototype.updateDoc=function(e,t){var t=void 0===t?!0:t;this.removeDocByRef(e[this._ref],!1),this.addDoc(e,!1),t&&this.eventEmitter.emit("update",e,this)},t.Index.prototype.idf=function(e,t){var n="@"+t+"/"+e;if(Object.prototype.hasOwnProperty.call(this._idfCache,n))return this._idfCache[n];var i=this.index[t].getDocFreq(e),o=1+Math.log(this.documentStore.length/(i+1));return this._idfCache[n]=o,o},t.Index.prototype.getFields=function(){return this._fields.slice()},t.Index.prototype.search=function(e,n){if(!e)return[];e="string"==typeof e?{any:e}:JSON.parse(JSON.stringify(e));var i=null;null!=n&&(i=JSON.stringify(n));for(var o=new t.Configuration(i,this.getFields()).get(),r={},s=Object.keys(e),u=0;u0&&t.push(e);for(var i in n)"docs"!==i&&"df"!==i&&this.expandToken(e+i,t,n[i]);return t},t.InvertedIndex.prototype.toJSON=function(){return{root:this.root}},t.Configuration=function(e,n){var e=e||"";if(void 0==n||null==n)throw new Error("fields should not be null");this.config={};var i;try{i=JSON.parse(e),this.buildUserConfig(i,n)}catch(o){t.utils.warn("user configuration parse failed, will use default configuration"),this.buildDefaultConfig(n)}},t.Configuration.prototype.buildDefaultConfig=function(e){this.reset(),e.forEach(function(e){this.config[e]={boost:1,bool:"OR",expand:!1}},this)},t.Configuration.prototype.buildUserConfig=function(e,n){var i="OR",o=!1;if(this.reset(),"bool"in e&&(i=e.bool||i),"expand"in e&&(o=e.expand||o),"fields"in e)for(var r in e.fields)if(n.indexOf(r)>-1){var s=e.fields[r],u=o;void 0!=s.expand&&(u=s.expand),this.config[r]={boost:s.boost||0===s.boost?s.boost:1,bool:s.bool||i,expand:u}}else t.utils.warn("field name in user configuration not found in index instance fields");else this.addAllFields2UserConfig(i,o,n)},t.Configuration.prototype.addAllFields2UserConfig=function(e,t,n){n.forEach(function(n){this.config[n]={boost:1,bool:e,expand:t}},this)},t.Configuration.prototype.get=function(){return this.config},t.Configuration.prototype.reset=function(){this.config={}},lunr.SortedSet=function(){this.length=0,this.elements=[]},lunr.SortedSet.load=function(e){var t=new this;return t.elements=e,t.length=e.length,t},lunr.SortedSet.prototype.add=function(){var e,t;for(e=0;e1;){if(r===e)return o;e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o]}return r===e?o:-1},lunr.SortedSet.prototype.locationFor=function(e){for(var t=0,n=this.elements.length,i=n-t,o=t+Math.floor(i/2),r=this.elements[o];i>1;)e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o];return r>e?o:e>r?o+1:void 0},lunr.SortedSet.prototype.intersect=function(e){for(var t=new lunr.SortedSet,n=0,i=0,o=this.length,r=e.length,s=this.elements,u=e.elements;;){if(n>o-1||i>r-1)break;s[n]!==u[i]?s[n]u[i]&&i++:(t.add(s[n]),n++,i++)}return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){var t,n,i;this.length>=e.length?(t=this,n=e):(t=e,n=this),i=t.clone();for(var o=0,r=n.toArray();oLiveKit Server APIs for Python
\n\nManage rooms, participants, egress, ingress, SIP, and Agent dispatch.
\n\nPrimary entry point is LiveKitAPI.
\n\nSee https://docs.livekit.io/reference/server/server-apis for more information.
\n"}, "livekit.api.LiveKitAPI": {"fullname": "livekit.api.LiveKitAPI", "modulename": "livekit.api", "qualname": "LiveKitAPI", "kind": "class", "doc": "LiveKit Server API Client
\n\nThis class is the main entrypoint, which exposes all services.
\n\nUsage:
\n\n\n
from livekit import api \nlkapi = api . LiveKitAPI () \nrooms = await lkapi . room . list_rooms ( api . proto_room . ListRoomsRequest ( names = [ 'test-room' ])) \n\n
\n"}, "livekit.api.LiveKitAPI.__init__": {"fullname": "livekit.api.LiveKitAPI.__init__", "modulename": "livekit.api", "qualname": "LiveKitAPI.__init__", "kind": "function", "doc": "Create a new LiveKitAPI instance.
\n\nArguments: \n\n\nurl: LiveKit server URL (read from LIVEKIT_URL environment variable if not provided) \napi_key: API key (read from LIVEKIT_API_KEY environment variable if not provided) \napi_secret: API secret (read from LIVEKIT_API_SECRET environment variable if not provided) \ntimeout: Request timeout (default: 60 seconds) \n \n", "signature": "(\turl : Optional [ str ] = None , \tapi_key : Optional [ str ] = None , \tapi_secret : Optional [ str ] = None , \t* , \ttimeout : aiohttp . client . ClientTimeout = ClientTimeout ( total = 60 , connect = None , sock_read = None , sock_connect = None , ceil_threshold = 5 ) ) "}, "livekit.api.LiveKitAPI.agent_dispatch": {"fullname": "livekit.api.LiveKitAPI.agent_dispatch", "modulename": "livekit.api", "qualname": "LiveKitAPI.agent_dispatch", "kind": "variable", "doc": "Instance of the AgentDispatchService
\n\nSee livekit.api.agent_dispatch_service.AgentDispatchService
\n", "annotation": ": livekit.api.agent_dispatch_service.AgentDispatchService"}, "livekit.api.LiveKitAPI.room": {"fullname": "livekit.api.LiveKitAPI.room", "modulename": "livekit.api", "qualname": "LiveKitAPI.room", "kind": "variable", "doc": "Instance of the RoomService
\n\nSee livekit.api.room_service.RoomService
\n", "annotation": ": livekit.api.room_service.RoomService"}, "livekit.api.LiveKitAPI.ingress": {"fullname": "livekit.api.LiveKitAPI.ingress", "modulename": "livekit.api", "qualname": "LiveKitAPI.ingress", "kind": "variable", "doc": "Instance of the IngressService
\n\nSee livekit.api.ingress_service.IngressService
\n", "annotation": ": livekit.api.ingress_service.IngressService"}, "livekit.api.LiveKitAPI.egress": {"fullname": "livekit.api.LiveKitAPI.egress", "modulename": "livekit.api", "qualname": "LiveKitAPI.egress", "kind": "variable", "doc": "Instance of the EgressService
\n\nSee livekit.api.egress_service.EgressService
\n", "annotation": ": livekit.api.egress_service.EgressService"}, "livekit.api.LiveKitAPI.sip": {"fullname": "livekit.api.LiveKitAPI.sip", "modulename": "livekit.api", "qualname": "LiveKitAPI.sip", "kind": "variable", "doc": "Instance of the SipService
\n\nSee livekit.api.sip_service.SipService
\n", "annotation": ": livekit.api.sip_service.SipService"}, "livekit.api.VideoGrants": {"fullname": "livekit.api.VideoGrants", "modulename": "livekit.api", "qualname": "VideoGrants", "kind": "class", "doc": "
\n"}, "livekit.api.VideoGrants.__init__": {"fullname": "livekit.api.VideoGrants.__init__", "modulename": "livekit.api", "qualname": "VideoGrants.__init__", "kind": "function", "doc": "
\n", "signature": "(\troom_create : Optional [ bool ] = None , \troom_list : Optional [ bool ] = None , \troom_record : Optional [ bool ] = None , \troom_admin : Optional [ bool ] = None , \troom_join : Optional [ bool ] = None , \troom : str = '' , \tcan_publish : bool = True , \tcan_subscribe : bool = True , \tcan_publish_data : bool = True , \tcan_publish_sources : Optional [ List [ str ]] = None , \tcan_update_own_metadata : Optional [ bool ] = None , \tingress_admin : Optional [ bool ] = None , \thidden : Optional [ bool ] = None , \trecorder : Optional [ bool ] = None , \tagent : Optional [ bool ] = None ) "}, "livekit.api.VideoGrants.room_create": {"fullname": "livekit.api.VideoGrants.room_create", "modulename": "livekit.api", "qualname": "VideoGrants.room_create", "kind": "variable", "doc": "
\n", "annotation": ": Optional[bool]", "default_value": "None"}, "livekit.api.VideoGrants.room_list": {"fullname": "livekit.api.VideoGrants.room_list", "modulename": "livekit.api", "qualname": "VideoGrants.room_list", "kind": "variable", "doc": "
\n", "annotation": ": Optional[bool]", "default_value": "None"}, "livekit.api.VideoGrants.room_record": {"fullname": "livekit.api.VideoGrants.room_record", "modulename": "livekit.api", "qualname": "VideoGrants.room_record", "kind": "variable", "doc": "
\n", "annotation": ": Optional[bool]", "default_value": "None"}, "livekit.api.VideoGrants.room_admin": {"fullname": "livekit.api.VideoGrants.room_admin", "modulename": "livekit.api", "qualname": "VideoGrants.room_admin", "kind": "variable", "doc": "
\n", "annotation": ": Optional[bool]", "default_value": "None"}, "livekit.api.VideoGrants.room_join": {"fullname": "livekit.api.VideoGrants.room_join", "modulename": "livekit.api", "qualname": "VideoGrants.room_join", "kind": "variable", "doc": "
\n", "annotation": ": Optional[bool]", "default_value": "None"}, "livekit.api.VideoGrants.room": {"fullname": "livekit.api.VideoGrants.room", "modulename": "livekit.api", "qualname": "VideoGrants.room", "kind": "variable", "doc": "
\n", "annotation": ": str", "default_value": "''"}, "livekit.api.VideoGrants.can_publish": {"fullname": "livekit.api.VideoGrants.can_publish", "modulename": "livekit.api", "qualname": "VideoGrants.can_publish", "kind": "variable", "doc": "
\n", "annotation": ": bool", "default_value": "True"}, "livekit.api.VideoGrants.can_subscribe": {"fullname": "livekit.api.VideoGrants.can_subscribe", "modulename": "livekit.api", "qualname": "VideoGrants.can_subscribe", "kind": "variable", "doc": "
\n", "annotation": ": bool", "default_value": "True"}, "livekit.api.VideoGrants.can_publish_data": {"fullname": "livekit.api.VideoGrants.can_publish_data", "modulename": "livekit.api", "qualname": "VideoGrants.can_publish_data", "kind": "variable", "doc": "
\n", "annotation": ": bool", "default_value": "True"}, "livekit.api.VideoGrants.can_publish_sources": {"fullname": "livekit.api.VideoGrants.can_publish_sources", "modulename": "livekit.api", "qualname": "VideoGrants.can_publish_sources", "kind": "variable", "doc": "
\n", "annotation": ": Optional[List[str]]", "default_value": "None"}, "livekit.api.VideoGrants.can_update_own_metadata": {"fullname": "livekit.api.VideoGrants.can_update_own_metadata", "modulename": "livekit.api", "qualname": "VideoGrants.can_update_own_metadata", "kind": "variable", "doc": "
\n", "annotation": ": Optional[bool]", "default_value": "None"}, "livekit.api.VideoGrants.ingress_admin": {"fullname": "livekit.api.VideoGrants.ingress_admin", "modulename": "livekit.api", "qualname": "VideoGrants.ingress_admin", "kind": "variable", "doc": "
\n", "annotation": ": Optional[bool]", "default_value": "None"}, "livekit.api.VideoGrants.hidden": {"fullname": "livekit.api.VideoGrants.hidden", "modulename": "livekit.api", "qualname": "VideoGrants.hidden", "kind": "variable", "doc": "
\n", "annotation": ": Optional[bool]", "default_value": "None"}, "livekit.api.VideoGrants.recorder": {"fullname": "livekit.api.VideoGrants.recorder", "modulename": "livekit.api", "qualname": "VideoGrants.recorder", "kind": "variable", "doc": "
\n", "annotation": ": Optional[bool]", "default_value": "None"}, "livekit.api.VideoGrants.agent": {"fullname": "livekit.api.VideoGrants.agent", "modulename": "livekit.api", "qualname": "VideoGrants.agent", "kind": "variable", "doc": "
\n", "annotation": ": Optional[bool]", "default_value": "None"}, "livekit.api.SIPGrants": {"fullname": "livekit.api.SIPGrants", "modulename": "livekit.api", "qualname": "SIPGrants", "kind": "class", "doc": "
\n"}, "livekit.api.SIPGrants.__init__": {"fullname": "livekit.api.SIPGrants.__init__", "modulename": "livekit.api", "qualname": "SIPGrants.__init__", "kind": "function", "doc": "
\n", "signature": "(admin : bool = False , call : bool = False ) "}, "livekit.api.SIPGrants.admin": {"fullname": "livekit.api.SIPGrants.admin", "modulename": "livekit.api", "qualname": "SIPGrants.admin", "kind": "variable", "doc": "
\n", "annotation": ": bool", "default_value": "False"}, "livekit.api.SIPGrants.call": {"fullname": "livekit.api.SIPGrants.call", "modulename": "livekit.api", "qualname": "SIPGrants.call", "kind": "variable", "doc": "
\n", "annotation": ": bool", "default_value": "False"}, "livekit.api.AccessToken": {"fullname": "livekit.api.AccessToken", "modulename": "livekit.api", "qualname": "AccessToken", "kind": "class", "doc": "
\n"}, "livekit.api.AccessToken.__init__": {"fullname": "livekit.api.AccessToken.__init__", "modulename": "livekit.api", "qualname": "AccessToken.__init__", "kind": "function", "doc": "
\n", "signature": "(api_key : Optional [ str ] = None , api_secret : Optional [ str ] = None ) "}, "livekit.api.AccessToken.ParticipantKind": {"fullname": "livekit.api.AccessToken.ParticipantKind", "modulename": "livekit.api", "qualname": "AccessToken.ParticipantKind", "kind": "variable", "doc": "
\n", "default_value": "typing.Literal['standard', 'egress', 'ingress', 'sip', 'agent']"}, "livekit.api.AccessToken.api_key": {"fullname": "livekit.api.AccessToken.api_key", "modulename": "livekit.api", "qualname": "AccessToken.api_key", "kind": "variable", "doc": "
\n"}, "livekit.api.AccessToken.api_secret": {"fullname": "livekit.api.AccessToken.api_secret", "modulename": "livekit.api", "qualname": "AccessToken.api_secret", "kind": "variable", "doc": "
\n"}, "livekit.api.AccessToken.claims": {"fullname": "livekit.api.AccessToken.claims", "modulename": "livekit.api", "qualname": "AccessToken.claims", "kind": "variable", "doc": "
\n"}, "livekit.api.AccessToken.identity": {"fullname": "livekit.api.AccessToken.identity", "modulename": "livekit.api", "qualname": "AccessToken.identity", "kind": "variable", "doc": "
\n"}, "livekit.api.AccessToken.ttl": {"fullname": "livekit.api.AccessToken.ttl", "modulename": "livekit.api", "qualname": "AccessToken.ttl", "kind": "variable", "doc": "
\n"}, "livekit.api.AccessToken.with_ttl": {"fullname": "livekit.api.AccessToken.with_ttl", "modulename": "livekit.api", "qualname": "AccessToken.with_ttl", "kind": "function", "doc": "
\n", "signature": "(self , ttl : datetime . timedelta ) -> livekit . api . access_token . AccessToken : ", "funcdef": "def"}, "livekit.api.AccessToken.with_grants": {"fullname": "livekit.api.AccessToken.with_grants", "modulename": "livekit.api", "qualname": "AccessToken.with_grants", "kind": "function", "doc": "
\n", "signature": "(\tself , \tgrants : livekit . api . access_token . VideoGrants ) -> livekit . api . access_token . AccessToken : ", "funcdef": "def"}, "livekit.api.AccessToken.with_sip_grants": {"fullname": "livekit.api.AccessToken.with_sip_grants", "modulename": "livekit.api", "qualname": "AccessToken.with_sip_grants", "kind": "function", "doc": "
\n", "signature": "(\tself , \tgrants : livekit . api . access_token . SIPGrants ) -> livekit . api . access_token . AccessToken : ", "funcdef": "def"}, "livekit.api.AccessToken.with_identity": {"fullname": "livekit.api.AccessToken.with_identity", "modulename": "livekit.api", "qualname": "AccessToken.with_identity", "kind": "function", "doc": "
\n", "signature": "(self , identity : str ) -> livekit . api . access_token . AccessToken : ", "funcdef": "def"}, "livekit.api.AccessToken.with_kind": {"fullname": "livekit.api.AccessToken.with_kind", "modulename": "livekit.api", "qualname": "AccessToken.with_kind", "kind": "function", "doc": "
\n", "signature": "(\tself , \tkind : Literal [ 'standard' , 'egress' , 'ingress' , 'sip' , 'agent' ] ) -> livekit . api . access_token . AccessToken : ", "funcdef": "def"}, "livekit.api.AccessToken.with_name": {"fullname": "livekit.api.AccessToken.with_name", "modulename": "livekit.api", "qualname": "AccessToken.with_name", "kind": "function", "doc": "
\n", "signature": "(self , name : str ) -> livekit . api . access_token . AccessToken : ", "funcdef": "def"}, "livekit.api.AccessToken.with_metadata": {"fullname": "livekit.api.AccessToken.with_metadata", "modulename": "livekit.api", "qualname": "AccessToken.with_metadata", "kind": "function", "doc": "
\n", "signature": "(self , metadata : str ) -> livekit . api . access_token . AccessToken : ", "funcdef": "def"}, "livekit.api.AccessToken.with_attributes": {"fullname": "livekit.api.AccessToken.with_attributes", "modulename": "livekit.api", "qualname": "AccessToken.with_attributes", "kind": "function", "doc": "
\n", "signature": "(self , attributes : dict [ str , str ] ) -> livekit . api . access_token . AccessToken : ", "funcdef": "def"}, "livekit.api.AccessToken.with_sha256": {"fullname": "livekit.api.AccessToken.with_sha256", "modulename": "livekit.api", "qualname": "AccessToken.with_sha256", "kind": "function", "doc": "
\n", "signature": "(self , sha256 : str ) -> livekit . api . access_token . AccessToken : ", "funcdef": "def"}, "livekit.api.AccessToken.with_room_preset": {"fullname": "livekit.api.AccessToken.with_room_preset", "modulename": "livekit.api", "qualname": "AccessToken.with_room_preset", "kind": "function", "doc": "
\n", "signature": "(self , preset : str ) -> livekit . api . access_token . AccessToken : ", "funcdef": "def"}, "livekit.api.AccessToken.with_room_config": {"fullname": "livekit.api.AccessToken.with_room_config", "modulename": "livekit.api", "qualname": "AccessToken.with_room_config", "kind": "function", "doc": "
\n", "signature": "(\tself , \tconfig : room . RoomConfiguration ) -> livekit . api . access_token . AccessToken : ", "funcdef": "def"}, "livekit.api.AccessToken.to_jwt": {"fullname": "livekit.api.AccessToken.to_jwt", "modulename": "livekit.api", "qualname": "AccessToken.to_jwt", "kind": "function", "doc": "
\n", "signature": "(self ) -> str : ", "funcdef": "def"}, "livekit.api.TokenVerifier": {"fullname": "livekit.api.TokenVerifier", "modulename": "livekit.api", "qualname": "TokenVerifier", "kind": "class", "doc": "
\n"}, "livekit.api.TokenVerifier.__init__": {"fullname": "livekit.api.TokenVerifier.__init__", "modulename": "livekit.api", "qualname": "TokenVerifier.__init__", "kind": "function", "doc": "
\n", "signature": "(\tapi_key : Optional [ str ] = None , \tapi_secret : Optional [ str ] = None , \t* , \tleeway : datetime . timedelta = datetime . timedelta ( seconds = 60 ) ) "}, "livekit.api.TokenVerifier.api_key": {"fullname": "livekit.api.TokenVerifier.api_key", "modulename": "livekit.api", "qualname": "TokenVerifier.api_key", "kind": "variable", "doc": "
\n"}, "livekit.api.TokenVerifier.api_secret": {"fullname": "livekit.api.TokenVerifier.api_secret", "modulename": "livekit.api", "qualname": "TokenVerifier.api_secret", "kind": "variable", "doc": "
\n"}, "livekit.api.TokenVerifier.verify": {"fullname": "livekit.api.TokenVerifier.verify", "modulename": "livekit.api", "qualname": "TokenVerifier.verify", "kind": "function", "doc": "
\n", "signature": "(self , token : str ) -> livekit . api . access_token . Claims : ", "funcdef": "def"}, "livekit.api.WebhookReceiver": {"fullname": "livekit.api.WebhookReceiver", "modulename": "livekit.api", "qualname": "WebhookReceiver", "kind": "class", "doc": "
\n"}, "livekit.api.WebhookReceiver.__init__": {"fullname": "livekit.api.WebhookReceiver.__init__", "modulename": "livekit.api", "qualname": "WebhookReceiver.__init__", "kind": "function", "doc": "
\n", "signature": "(token_verifier : livekit . api . access_token . TokenVerifier ) "}, "livekit.api.WebhookReceiver.receive": {"fullname": "livekit.api.WebhookReceiver.receive", "modulename": "livekit.api", "qualname": "WebhookReceiver.receive", "kind": "function", "doc": "
\n", "signature": "(self , body : str , auth_token : str ) -> webhook . WebhookEvent : ", "funcdef": "def"}, "livekit.api.TwirpError": {"fullname": "livekit.api.TwirpError", "modulename": "livekit.api", "qualname": "TwirpError", "kind": "class", "doc": "Common base class for all non-exit exceptions.
\n", "bases": "builtins.Exception"}, "livekit.api.TwirpError.__init__": {"fullname": "livekit.api.TwirpError.__init__", "modulename": "livekit.api", "qualname": "TwirpError.__init__", "kind": "function", "doc": "
\n", "signature": "(code : str , msg : str ) "}, "livekit.api.TwirpError.code": {"fullname": "livekit.api.TwirpError.code", "modulename": "livekit.api", "qualname": "TwirpError.code", "kind": "variable", "doc": "
\n", "annotation": ": str"}, "livekit.api.TwirpError.message": {"fullname": "livekit.api.TwirpError.message", "modulename": "livekit.api", "qualname": "TwirpError.message", "kind": "variable", "doc": "
\n", "annotation": ": str"}, "livekit.api.TwirpErrorCode": {"fullname": "livekit.api.TwirpErrorCode", "modulename": "livekit.api", "qualname": "TwirpErrorCode", "kind": "class", "doc": "
\n"}, "livekit.api.TwirpErrorCode.CANCELED": {"fullname": "livekit.api.TwirpErrorCode.CANCELED", "modulename": "livekit.api", "qualname": "TwirpErrorCode.CANCELED", "kind": "variable", "doc": "
\n", "default_value": "'canceled'"}, "livekit.api.TwirpErrorCode.UNKNOWN": {"fullname": "livekit.api.TwirpErrorCode.UNKNOWN", "modulename": "livekit.api", "qualname": "TwirpErrorCode.UNKNOWN", "kind": "variable", "doc": "
\n", "default_value": "'unknown'"}, "livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"fullname": "livekit.api.TwirpErrorCode.INVALID_ARGUMENT", "modulename": "livekit.api", "qualname": "TwirpErrorCode.INVALID_ARGUMENT", "kind": "variable", "doc": "
\n", "default_value": "'invalid_argument'"}, "livekit.api.TwirpErrorCode.MALFORMED": {"fullname": "livekit.api.TwirpErrorCode.MALFORMED", "modulename": "livekit.api", "qualname": "TwirpErrorCode.MALFORMED", "kind": "variable", "doc": "
\n", "default_value": "'malformed'"}, "livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"fullname": "livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED", "modulename": "livekit.api", "qualname": "TwirpErrorCode.DEADLINE_EXCEEDED", "kind": "variable", "doc": "
\n", "default_value": "'deadline_exceeded'"}, "livekit.api.TwirpErrorCode.NOT_FOUND": {"fullname": "livekit.api.TwirpErrorCode.NOT_FOUND", "modulename": "livekit.api", "qualname": "TwirpErrorCode.NOT_FOUND", "kind": "variable", "doc": "
\n", "default_value": "'not_found'"}, "livekit.api.TwirpErrorCode.BAD_ROUTE": {"fullname": "livekit.api.TwirpErrorCode.BAD_ROUTE", "modulename": "livekit.api", "qualname": "TwirpErrorCode.BAD_ROUTE", "kind": "variable", "doc": "
\n", "default_value": "'bad_route'"}, "livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"fullname": "livekit.api.TwirpErrorCode.ALREADY_EXISTS", "modulename": "livekit.api", "qualname": "TwirpErrorCode.ALREADY_EXISTS", "kind": "variable", "doc": "
\n", "default_value": "'already_exists'"}, "livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"fullname": "livekit.api.TwirpErrorCode.PERMISSION_DENIED", "modulename": "livekit.api", "qualname": "TwirpErrorCode.PERMISSION_DENIED", "kind": "variable", "doc": "
\n", "default_value": "'permission_denied'"}, "livekit.api.TwirpErrorCode.UNAUTHENTICATED": {"fullname": "livekit.api.TwirpErrorCode.UNAUTHENTICATED", "modulename": "livekit.api", "qualname": "TwirpErrorCode.UNAUTHENTICATED", "kind": "variable", "doc": "
\n", "default_value": "'unauthenticated'"}, "livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"fullname": "livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED", "modulename": "livekit.api", "qualname": "TwirpErrorCode.RESOURCE_EXHAUSTED", "kind": "variable", "doc": "
\n", "default_value": "'resource_exhausted'"}, "livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"fullname": "livekit.api.TwirpErrorCode.FAILED_PRECONDITION", "modulename": "livekit.api", "qualname": "TwirpErrorCode.FAILED_PRECONDITION", "kind": "variable", "doc": "
\n", "default_value": "'failed_precondition'"}, "livekit.api.TwirpErrorCode.ABORTED": {"fullname": "livekit.api.TwirpErrorCode.ABORTED", "modulename": "livekit.api", "qualname": "TwirpErrorCode.ABORTED", "kind": "variable", "doc": "
\n", "default_value": "'aborted'"}, "livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"fullname": "livekit.api.TwirpErrorCode.OUT_OF_RANGE", "modulename": "livekit.api", "qualname": "TwirpErrorCode.OUT_OF_RANGE", "kind": "variable", "doc": "
\n", "default_value": "'out_of_range'"}, "livekit.api.TwirpErrorCode.UNIMPLEMENTED": {"fullname": "livekit.api.TwirpErrorCode.UNIMPLEMENTED", "modulename": "livekit.api", "qualname": "TwirpErrorCode.UNIMPLEMENTED", "kind": "variable", "doc": "
\n", "default_value": "'unimplemented'"}, "livekit.api.TwirpErrorCode.INTERNAL": {"fullname": "livekit.api.TwirpErrorCode.INTERNAL", "modulename": "livekit.api", "qualname": "TwirpErrorCode.INTERNAL", "kind": "variable", "doc": "
\n", "default_value": "'internal'"}, "livekit.api.TwirpErrorCode.UNAVAILABLE": {"fullname": "livekit.api.TwirpErrorCode.UNAVAILABLE", "modulename": "livekit.api", "qualname": "TwirpErrorCode.UNAVAILABLE", "kind": "variable", "doc": "
\n", "default_value": "'unavailable'"}, "livekit.api.TwirpErrorCode.DATA_LOSS": {"fullname": "livekit.api.TwirpErrorCode.DATA_LOSS", "modulename": "livekit.api", "qualname": "TwirpErrorCode.DATA_LOSS", "kind": "variable", "doc": "
\n", "default_value": "'dataloss'"}, "livekit.api.agent_dispatch_service": {"fullname": "livekit.api.agent_dispatch_service", "modulename": "livekit.api.agent_dispatch_service", "kind": "module", "doc": "
\n"}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"fullname": "livekit.api.agent_dispatch_service.AgentDispatchService", "modulename": "livekit.api.agent_dispatch_service", "qualname": "AgentDispatchService", "kind": "class", "doc": "Manage agent dispatches. Service APIs require roomAdmin permissions.
\n\nRecommended way to use this service is via livekit.api.LiveKitAPI:
\n\n\n
from livekit import api \nlkapi = api . LiveKitAPI () \nagent_dispatch = lkapi . agent_dispatch \n\n
\n", "bases": "livekit.api._service.Service"}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"fullname": "livekit.api.agent_dispatch_service.AgentDispatchService.__init__", "modulename": "livekit.api.agent_dispatch_service", "qualname": "AgentDispatchService.__init__", "kind": "function", "doc": "
\n", "signature": "(\tsession : aiohttp . client . ClientSession , \turl : str , \tapi_key : str , \tapi_secret : str ) "}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"fullname": "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch", "modulename": "livekit.api.agent_dispatch_service", "qualname": "AgentDispatchService.create_dispatch", "kind": "function", "doc": "Create an explicit dispatch for an agent to join a room.
\n\nTo use explicit dispatch, your agent must be registered with an agentName.
\n\nArguments: \n\n\nreq (CreateAgentDispatchRequest): Request containing dispatch creation parameters \n \n\nReturns: \n\n\n AgentDispatch: The created agent dispatch object
\n \n", "signature": "(\tself , \treq : agent_dispatch . CreateAgentDispatchRequest ) -> agent_dispatch . AgentDispatch : ", "funcdef": "async def"}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"fullname": "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch", "modulename": "livekit.api.agent_dispatch_service", "qualname": "AgentDispatchService.delete_dispatch", "kind": "function", "doc": "Delete an explicit dispatch for an agent in a room.
\n\nArguments: \n\n\ndispatch_id (str): ID of the dispatch to delete \nroom_name (str): Name of the room containing the dispatch \n \n\nReturns: \n\n\n AgentDispatch: The deleted agent dispatch object
\n \n", "signature": "(self , dispatch_id : str , room_name : str ) -> agent_dispatch . AgentDispatch : ", "funcdef": "async def"}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"fullname": "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch", "modulename": "livekit.api.agent_dispatch_service", "qualname": "AgentDispatchService.list_dispatch", "kind": "function", "doc": "List all agent dispatches in a room.
\n\nArguments: \n\n\nroom_name (str): Name of the room to list dispatches from \n \n\nReturns: \n\n\n list[AgentDispatch]: List of agent dispatch objects in the room
\n \n", "signature": "(self , room_name : str ) -> list [ agent_dispatch . AgentDispatch ] : ", "funcdef": "async def"}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"fullname": "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch", "modulename": "livekit.api.agent_dispatch_service", "qualname": "AgentDispatchService.get_dispatch", "kind": "function", "doc": "Get an Agent dispatch by ID
\n\nArguments: \n\n\ndispatch_id (str): ID of the dispatch to retrieve \nroom_name (str): Name of the room containing the dispatch \n \n\nReturns: \n\n\n Optional[AgentDispatch]: The requested agent dispatch object if found, None otherwise
\n \n", "signature": "(\tself , \tdispatch_id : str , \troom_name : str ) -> Optional [ agent_dispatch . AgentDispatch ] : ", "funcdef": "async def"}, "livekit.api.egress_service": {"fullname": "livekit.api.egress_service", "modulename": "livekit.api.egress_service", "kind": "module", "doc": "
\n"}, "livekit.api.egress_service.EgressService": {"fullname": "livekit.api.egress_service.EgressService", "modulename": "livekit.api.egress_service", "qualname": "EgressService", "kind": "class", "doc": "Client for LiveKit Egress Service API
\n\nRecommended way to use this service is via livekit.api.LiveKitAPI:
\n\n\n
from livekit import api \nlkapi = api . LiveKitAPI () \negress = lkapi . egress \n\n
\n\nAlso see https://docs.livekit.io/home/egress/overview/
\n", "bases": "livekit.api._service.Service"}, "livekit.api.egress_service.EgressService.__init__": {"fullname": "livekit.api.egress_service.EgressService.__init__", "modulename": "livekit.api.egress_service", "qualname": "EgressService.__init__", "kind": "function", "doc": "
\n", "signature": "(\tsession : aiohttp . client . ClientSession , \turl : str , \tapi_key : str , \tapi_secret : str ) "}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"fullname": "livekit.api.egress_service.EgressService.start_room_composite_egress", "modulename": "livekit.api.egress_service", "qualname": "EgressService.start_room_composite_egress", "kind": "function", "doc": "
\n", "signature": "(self , start : egress . RoomCompositeEgressRequest ) -> egress . EgressInfo : ", "funcdef": "async def"}, "livekit.api.egress_service.EgressService.start_web_egress": {"fullname": "livekit.api.egress_service.EgressService.start_web_egress", "modulename": "livekit.api.egress_service", "qualname": "EgressService.start_web_egress", "kind": "function", "doc": "
\n", "signature": "(self , start : egress . WebEgressRequest ) -> egress . EgressInfo : ", "funcdef": "async def"}, "livekit.api.egress_service.EgressService.start_participant_egress": {"fullname": "livekit.api.egress_service.EgressService.start_participant_egress", "modulename": "livekit.api.egress_service", "qualname": "EgressService.start_participant_egress", "kind": "function", "doc": "
\n", "signature": "(self , start : egress . ParticipantEgressRequest ) -> egress . EgressInfo : ", "funcdef": "async def"}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"fullname": "livekit.api.egress_service.EgressService.start_track_composite_egress", "modulename": "livekit.api.egress_service", "qualname": "EgressService.start_track_composite_egress", "kind": "function", "doc": "
\n", "signature": "(self , start : egress . TrackCompositeEgressRequest ) -> egress . EgressInfo : ", "funcdef": "async def"}, "livekit.api.egress_service.EgressService.start_track_egress": {"fullname": "livekit.api.egress_service.EgressService.start_track_egress", "modulename": "livekit.api.egress_service", "qualname": "EgressService.start_track_egress", "kind": "function", "doc": "
\n", "signature": "(self , start : egress . TrackEgressRequest ) -> egress . EgressInfo : ", "funcdef": "async def"}, "livekit.api.egress_service.EgressService.update_layout": {"fullname": "livekit.api.egress_service.EgressService.update_layout", "modulename": "livekit.api.egress_service", "qualname": "EgressService.update_layout", "kind": "function", "doc": "
\n", "signature": "(self , update : egress . UpdateLayoutRequest ) -> egress . EgressInfo : ", "funcdef": "async def"}, "livekit.api.egress_service.EgressService.update_stream": {"fullname": "livekit.api.egress_service.EgressService.update_stream", "modulename": "livekit.api.egress_service", "qualname": "EgressService.update_stream", "kind": "function", "doc": "
\n", "signature": "(self , update : egress . UpdateStreamRequest ) -> egress . EgressInfo : ", "funcdef": "async def"}, "livekit.api.egress_service.EgressService.list_egress": {"fullname": "livekit.api.egress_service.EgressService.list_egress", "modulename": "livekit.api.egress_service", "qualname": "EgressService.list_egress", "kind": "function", "doc": "
\n", "signature": "(self , list : egress . ListEgressRequest ) -> egress . ListEgressResponse : ", "funcdef": "async def"}, "livekit.api.egress_service.EgressService.stop_egress": {"fullname": "livekit.api.egress_service.EgressService.stop_egress", "modulename": "livekit.api.egress_service", "qualname": "EgressService.stop_egress", "kind": "function", "doc": "
\n", "signature": "(self , stop : egress . StopEgressRequest ) -> egress . EgressInfo : ", "funcdef": "async def"}, "livekit.api.ingress_service": {"fullname": "livekit.api.ingress_service", "modulename": "livekit.api.ingress_service", "kind": "module", "doc": "
\n"}, "livekit.api.ingress_service.IngressService": {"fullname": "livekit.api.ingress_service.IngressService", "modulename": "livekit.api.ingress_service", "qualname": "IngressService", "kind": "class", "doc": "Client for LiveKit Ingress Service API
\n\nRecommended way to use this service is via livekit.api.LiveKitAPI:
\n\n\n
from livekit import api \nlkapi = api . LiveKitAPI () \ningress = lkapi . ingress \n\n
\n\nAlso see https://docs.livekit.io/home/ingress/overview/
\n", "bases": "livekit.api._service.Service"}, "livekit.api.ingress_service.IngressService.__init__": {"fullname": "livekit.api.ingress_service.IngressService.__init__", "modulename": "livekit.api.ingress_service", "qualname": "IngressService.__init__", "kind": "function", "doc": "
\n", "signature": "(\tsession : aiohttp . client . ClientSession , \turl : str , \tapi_key : str , \tapi_secret : str ) "}, "livekit.api.ingress_service.IngressService.create_ingress": {"fullname": "livekit.api.ingress_service.IngressService.create_ingress", "modulename": "livekit.api.ingress_service", "qualname": "IngressService.create_ingress", "kind": "function", "doc": "
\n", "signature": "(self , create : ingress . CreateIngressRequest ) -> ingress . IngressInfo : ", "funcdef": "async def"}, "livekit.api.ingress_service.IngressService.update_ingress": {"fullname": "livekit.api.ingress_service.IngressService.update_ingress", "modulename": "livekit.api.ingress_service", "qualname": "IngressService.update_ingress", "kind": "function", "doc": "
\n", "signature": "(self , update : ingress . UpdateIngressRequest ) -> ingress . IngressInfo : ", "funcdef": "async def"}, "livekit.api.ingress_service.IngressService.list_ingress": {"fullname": "livekit.api.ingress_service.IngressService.list_ingress", "modulename": "livekit.api.ingress_service", "qualname": "IngressService.list_ingress", "kind": "function", "doc": "
\n", "signature": "(self , list : ingress . ListIngressRequest ) -> ingress . ListIngressResponse : ", "funcdef": "async def"}, "livekit.api.ingress_service.IngressService.delete_ingress": {"fullname": "livekit.api.ingress_service.IngressService.delete_ingress", "modulename": "livekit.api.ingress_service", "qualname": "IngressService.delete_ingress", "kind": "function", "doc": "
\n", "signature": "(self , delete : ingress . DeleteIngressRequest ) -> ingress . IngressInfo : ", "funcdef": "async def"}, "livekit.api.room_service": {"fullname": "livekit.api.room_service", "modulename": "livekit.api.room_service", "kind": "module", "doc": "
\n"}, "livekit.api.room_service.RoomService": {"fullname": "livekit.api.room_service.RoomService", "modulename": "livekit.api.room_service", "qualname": "RoomService", "kind": "class", "doc": "Client for LiveKit RoomService API
\n\nRecommended way to use this service is via livekit.api.LiveKitAPI:
\n\n\n
from livekit import api \nlkapi = api . LiveKitAPI () \nroom_service = lkapi . room \n\n
\n\nAlso see https://docs.livekit.io/home/server/managing-rooms/ and https://docs.livekit.io/home/server/managing-participants/
\n", "bases": "livekit.api._service.Service"}, "livekit.api.room_service.RoomService.__init__": {"fullname": "livekit.api.room_service.RoomService.__init__", "modulename": "livekit.api.room_service", "qualname": "RoomService.__init__", "kind": "function", "doc": "
\n", "signature": "(\tsession : aiohttp . client . ClientSession , \turl : str , \tapi_key : str , \tapi_secret : str ) "}, "livekit.api.room_service.RoomService.create_room": {"fullname": "livekit.api.room_service.RoomService.create_room", "modulename": "livekit.api.room_service", "qualname": "RoomService.create_room", "kind": "function", "doc": "
\n", "signature": "(self , create : room . CreateRoomRequest ) -> models . Room : ", "funcdef": "async def"}, "livekit.api.room_service.RoomService.list_rooms": {"fullname": "livekit.api.room_service.RoomService.list_rooms", "modulename": "livekit.api.room_service", "qualname": "RoomService.list_rooms", "kind": "function", "doc": "
\n", "signature": "(self , list : room . ListRoomsRequest ) -> room . ListRoomsResponse : ", "funcdef": "async def"}, "livekit.api.room_service.RoomService.delete_room": {"fullname": "livekit.api.room_service.RoomService.delete_room", "modulename": "livekit.api.room_service", "qualname": "RoomService.delete_room", "kind": "function", "doc": "
\n", "signature": "(self , delete : room . DeleteRoomRequest ) -> room . DeleteRoomResponse : ", "funcdef": "async def"}, "livekit.api.room_service.RoomService.update_room_metadata": {"fullname": "livekit.api.room_service.RoomService.update_room_metadata", "modulename": "livekit.api.room_service", "qualname": "RoomService.update_room_metadata", "kind": "function", "doc": "
\n", "signature": "(self , update : room . UpdateRoomMetadataRequest ) -> models . Room : ", "funcdef": "async def"}, "livekit.api.room_service.RoomService.list_participants": {"fullname": "livekit.api.room_service.RoomService.list_participants", "modulename": "livekit.api.room_service", "qualname": "RoomService.list_participants", "kind": "function", "doc": "
\n", "signature": "(\tself , \tlist : room . ListParticipantsRequest ) -> room . ListParticipantsResponse : ", "funcdef": "async def"}, "livekit.api.room_service.RoomService.get_participant": {"fullname": "livekit.api.room_service.RoomService.get_participant", "modulename": "livekit.api.room_service", "qualname": "RoomService.get_participant", "kind": "function", "doc": "
\n", "signature": "(self , get : room . RoomParticipantIdentity ) -> models . ParticipantInfo : ", "funcdef": "async def"}, "livekit.api.room_service.RoomService.remove_participant": {"fullname": "livekit.api.room_service.RoomService.remove_participant", "modulename": "livekit.api.room_service", "qualname": "RoomService.remove_participant", "kind": "function", "doc": "
\n", "signature": "(\tself , \tremove : room . RoomParticipantIdentity ) -> room . RemoveParticipantResponse : ", "funcdef": "async def"}, "livekit.api.room_service.RoomService.mute_published_track": {"fullname": "livekit.api.room_service.RoomService.mute_published_track", "modulename": "livekit.api.room_service", "qualname": "RoomService.mute_published_track", "kind": "function", "doc": "
\n", "signature": "(self , update : room . MuteRoomTrackRequest ) -> room . MuteRoomTrackResponse : ", "funcdef": "async def"}, "livekit.api.room_service.RoomService.update_participant": {"fullname": "livekit.api.room_service.RoomService.update_participant", "modulename": "livekit.api.room_service", "qualname": "RoomService.update_participant", "kind": "function", "doc": "
\n", "signature": "(self , update : room . UpdateParticipantRequest ) -> models . ParticipantInfo : ", "funcdef": "async def"}, "livekit.api.room_service.RoomService.update_subscriptions": {"fullname": "livekit.api.room_service.RoomService.update_subscriptions", "modulename": "livekit.api.room_service", "qualname": "RoomService.update_subscriptions", "kind": "function", "doc": "
\n", "signature": "(\tself , \tupdate : room . UpdateSubscriptionsRequest ) -> room . UpdateSubscriptionsResponse : ", "funcdef": "async def"}, "livekit.api.room_service.RoomService.send_data": {"fullname": "livekit.api.room_service.RoomService.send_data", "modulename": "livekit.api.room_service", "qualname": "RoomService.send_data", "kind": "function", "doc": "
\n", "signature": "(self , send : room . SendDataRequest ) -> room . SendDataResponse : ", "funcdef": "async def"}, "livekit.api.sip_service": {"fullname": "livekit.api.sip_service", "modulename": "livekit.api.sip_service", "kind": "module", "doc": "
\n"}, "livekit.api.sip_service.SipService": {"fullname": "livekit.api.sip_service.SipService", "modulename": "livekit.api.sip_service", "qualname": "SipService", "kind": "class", "doc": "Client for LiveKit SIP Service API
\n\nRecommended way to use this service is via livekit.api.LiveKitAPI:
\n\n\n
from livekit import api \nlkapi = api . LiveKitAPI () \nsip_service = lkapi . sip \n\n
\n", "bases": "livekit.api._service.Service"}, "livekit.api.sip_service.SipService.__init__": {"fullname": "livekit.api.sip_service.SipService.__init__", "modulename": "livekit.api.sip_service", "qualname": "SipService.__init__", "kind": "function", "doc": "
\n", "signature": "(\tsession : aiohttp . client . ClientSession , \turl : str , \tapi_key : str , \tapi_secret : str ) "}, "livekit.api.sip_service.SipService.create_sip_trunk": {"fullname": "livekit.api.sip_service.SipService.create_sip_trunk", "modulename": "livekit.api.sip_service", "qualname": "SipService.create_sip_trunk", "kind": "function", "doc": "
\n", "signature": "(self , create : sip . CreateSIPTrunkRequest ) -> sip . SIPTrunkInfo : ", "funcdef": "async def"}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"fullname": "livekit.api.sip_service.SipService.create_sip_inbound_trunk", "modulename": "livekit.api.sip_service", "qualname": "SipService.create_sip_inbound_trunk", "kind": "function", "doc": "
\n", "signature": "(\tself , \tcreate : sip . CreateSIPInboundTrunkRequest ) -> sip . SIPInboundTrunkInfo : ", "funcdef": "async def"}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"fullname": "livekit.api.sip_service.SipService.create_sip_outbound_trunk", "modulename": "livekit.api.sip_service", "qualname": "SipService.create_sip_outbound_trunk", "kind": "function", "doc": "
\n", "signature": "(\tself , \tcreate : sip . CreateSIPOutboundTrunkRequest ) -> sip . SIPOutboundTrunkInfo : ", "funcdef": "async def"}, "livekit.api.sip_service.SipService.list_sip_trunk": {"fullname": "livekit.api.sip_service.SipService.list_sip_trunk", "modulename": "livekit.api.sip_service", "qualname": "SipService.list_sip_trunk", "kind": "function", "doc": "
\n", "signature": "(self , list : sip . ListSIPTrunkRequest ) -> sip . ListSIPTrunkResponse : ", "funcdef": "async def"}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"fullname": "livekit.api.sip_service.SipService.list_sip_inbound_trunk", "modulename": "livekit.api.sip_service", "qualname": "SipService.list_sip_inbound_trunk", "kind": "function", "doc": "
\n", "signature": "(\tself , \tlist : sip . ListSIPInboundTrunkRequest ) -> sip . ListSIPInboundTrunkResponse : ", "funcdef": "async def"}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"fullname": "livekit.api.sip_service.SipService.list_sip_outbound_trunk", "modulename": "livekit.api.sip_service", "qualname": "SipService.list_sip_outbound_trunk", "kind": "function", "doc": "
\n", "signature": "(\tself , \tlist : sip . ListSIPOutboundTrunkRequest ) -> sip . ListSIPOutboundTrunkResponse : ", "funcdef": "async def"}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"fullname": "livekit.api.sip_service.SipService.delete_sip_trunk", "modulename": "livekit.api.sip_service", "qualname": "SipService.delete_sip_trunk", "kind": "function", "doc": "
\n", "signature": "(self , delete : sip . DeleteSIPTrunkRequest ) -> sip . SIPTrunkInfo : ", "funcdef": "async def"}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"fullname": "livekit.api.sip_service.SipService.create_sip_dispatch_rule", "modulename": "livekit.api.sip_service", "qualname": "SipService.create_sip_dispatch_rule", "kind": "function", "doc": "
\n", "signature": "(\tself , \tcreate : sip . CreateSIPDispatchRuleRequest ) -> sip . SIPDispatchRuleInfo : ", "funcdef": "async def"}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"fullname": "livekit.api.sip_service.SipService.list_sip_dispatch_rule", "modulename": "livekit.api.sip_service", "qualname": "SipService.list_sip_dispatch_rule", "kind": "function", "doc": "
\n", "signature": "(\tself , \tlist : sip . ListSIPDispatchRuleRequest ) -> sip . ListSIPDispatchRuleResponse : ", "funcdef": "async def"}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"fullname": "livekit.api.sip_service.SipService.delete_sip_dispatch_rule", "modulename": "livekit.api.sip_service", "qualname": "SipService.delete_sip_dispatch_rule", "kind": "function", "doc": "
\n", "signature": "(\tself , \tdelete : sip . DeleteSIPDispatchRuleRequest ) -> sip . SIPDispatchRuleInfo : ", "funcdef": "async def"}, "livekit.api.sip_service.SipService.create_sip_participant": {"fullname": "livekit.api.sip_service.SipService.create_sip_participant", "modulename": "livekit.api.sip_service", "qualname": "SipService.create_sip_participant", "kind": "function", "doc": "
\n", "signature": "(self , create : sip . CreateSIPParticipantRequest ) -> sip . SIPParticipantInfo : ", "funcdef": "async def"}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"fullname": "livekit.api.sip_service.SipService.transfer_sip_participant", "modulename": "livekit.api.sip_service", "qualname": "SipService.transfer_sip_participant", "kind": "function", "doc": "
\n", "signature": "(\tself , \ttransfer : sip . TransferSIPParticipantRequest ) -> sip . SIPParticipantInfo : ", "funcdef": "async def"}}, "docInfo": {"livekit.api": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 42}, "livekit.api.LiveKitAPI": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 123}, "livekit.api.LiveKitAPI.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 172, "bases": 0, "doc": 88}, "livekit.api.LiveKitAPI.agent_dispatch": {"qualname": 3, "fullname": 5, "annotation": 7, "default_value": 0, "signature": 0, "bases": 0, "doc": 17}, "livekit.api.LiveKitAPI.room": {"qualname": 2, "fullname": 4, "annotation": 6, "default_value": 0, "signature": 0, "bases": 0, "doc": 16}, "livekit.api.LiveKitAPI.ingress": {"qualname": 2, "fullname": 4, "annotation": 6, "default_value": 0, "signature": 0, "bases": 0, "doc": 16}, "livekit.api.LiveKitAPI.egress": {"qualname": 2, "fullname": 4, "annotation": 6, "default_value": 0, "signature": 0, "bases": 0, "doc": 16}, "livekit.api.LiveKitAPI.sip": {"qualname": 2, "fullname": 4, "annotation": 6, "default_value": 0, "signature": 0, "bases": 0, "doc": 16}, "livekit.api.VideoGrants": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 362, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.room_create": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.room_list": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.room_record": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.room_admin": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.room_join": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.room": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 4, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.can_publish": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.can_subscribe": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.can_publish_data": {"qualname": 4, "fullname": 6, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.can_publish_sources": {"qualname": 4, "fullname": 6, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.can_update_own_metadata": {"qualname": 5, "fullname": 7, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.ingress_admin": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.hidden": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.recorder": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.agent": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.SIPGrants": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.SIPGrants.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 38, "bases": 0, "doc": 3}, "livekit.api.SIPGrants.admin": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.SIPGrants.call": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.AccessToken": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.AccessToken.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 52, "bases": 0, "doc": 3}, "livekit.api.AccessToken.ParticipantKind": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 18, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.AccessToken.api_key": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.AccessToken.api_secret": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.AccessToken.claims": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.AccessToken.identity": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.AccessToken.ttl": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.AccessToken.with_ttl": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 45, "bases": 0, "doc": 3}, "livekit.api.AccessToken.with_grants": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 58, "bases": 0, "doc": 3}, "livekit.api.AccessToken.with_sip_grants": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 58, "bases": 0, "doc": 3}, "livekit.api.AccessToken.with_identity": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "livekit.api.AccessToken.with_kind": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 92, "bases": 0, "doc": 3}, "livekit.api.AccessToken.with_name": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "livekit.api.AccessToken.with_metadata": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "livekit.api.AccessToken.with_attributes": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 52, "bases": 0, "doc": 3}, "livekit.api.AccessToken.with_sha256": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "livekit.api.AccessToken.with_room_preset": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "livekit.api.AccessToken.with_room_config": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 47, "bases": 0, "doc": 3}, "livekit.api.AccessToken.to_jwt": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 3}, "livekit.api.TokenVerifier": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TokenVerifier.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 101, "bases": 0, "doc": 3}, "livekit.api.TokenVerifier.api_key": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TokenVerifier.api_secret": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TokenVerifier.verify": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "livekit.api.WebhookReceiver": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.WebhookReceiver.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 3}, "livekit.api.WebhookReceiver.receive": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "livekit.api.TwirpError": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 11}, "livekit.api.TwirpError.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "livekit.api.TwirpError.code": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpError.message": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.CANCELED": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 5, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.UNKNOWN": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 5, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 6, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.MALFORMED": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 5, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 6, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.NOT_FOUND": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 6, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.BAD_ROUTE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 6, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 6, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 6, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.UNAUTHENTICATED": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 5, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 6, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 6, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.ABORTED": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 5, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 7, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.UNIMPLEMENTED": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 5, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.INTERNAL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 5, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.UNAVAILABLE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 5, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.DATA_LOSS": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 5, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.agent_dispatch_service": {"qualname": 0, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"qualname": 1, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 84}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 60, "bases": 0, "doc": 3}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 38, "bases": 0, "doc": 65}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 42, "bases": 0, "doc": 64}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 37, "bases": 0, "doc": 51}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 63}, "livekit.api.egress_service": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.egress_service.EgressService": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 88}, "livekit.api.egress_service.EgressService.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 60, "bases": 0, "doc": 3}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.egress_service.EgressService.start_web_egress": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.egress_service.EgressService.start_participant_egress": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.egress_service.EgressService.start_track_egress": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.egress_service.EgressService.update_layout": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.egress_service.EgressService.update_stream": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.egress_service.EgressService.list_egress": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.egress_service.EgressService.stop_egress": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.ingress_service": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.ingress_service.IngressService": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 88}, "livekit.api.ingress_service.IngressService.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 60, "bases": 0, "doc": 3}, "livekit.api.ingress_service.IngressService.create_ingress": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.ingress_service.IngressService.update_ingress": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.ingress_service.IngressService.list_ingress": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.ingress_service.IngressService.delete_ingress": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.room_service": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.room_service.RoomService": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 96}, "livekit.api.room_service.RoomService.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 60, "bases": 0, "doc": 3}, "livekit.api.room_service.RoomService.create_room": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.room_service.RoomService.list_rooms": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.room_service.RoomService.delete_room": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.room_service.RoomService.update_room_metadata": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.room_service.RoomService.list_participants": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "livekit.api.room_service.RoomService.get_participant": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.room_service.RoomService.remove_participant": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "livekit.api.room_service.RoomService.mute_published_track": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.room_service.RoomService.update_participant": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.room_service.RoomService.update_subscriptions": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "livekit.api.room_service.RoomService.send_data": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.sip_service": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 80}, "livekit.api.sip_service.SipService.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 60, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService.create_sip_trunk": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService.list_sip_trunk": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService.create_sip_participant": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}}, "length": 135, "save": true}, "index": {"qualname": {"root": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.SIPGrants.__init__": {"tf": 1}, "livekit.api.AccessToken.__init__": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1}, "livekit.api.WebhookReceiver.__init__": {"tf": 1}, "livekit.api.TwirpError.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}}, "df": 12, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}}, "df": 7}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.VideoGrants.room_list": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 1}, "livekit.api.room_service.RoomService.list_participants": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}}, "df": 10}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.TwirpErrorCode.DATA_LOSS": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.update_layout": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.SIPGrants.__init__": {"tf": 1}, "livekit.api.AccessToken.__init__": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1}, "livekit.api.WebhookReceiver.__init__": {"tf": 1}, "livekit.api.TwirpError.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}}, "df": 12}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.VideoGrants.ingress_admin": {"tf": 1}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1}}, "df": 6, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1}}, "df": 6}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.TwirpErrorCode.INTERNAL": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}}, "df": 2}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.AccessToken.identity": {"tf": 1}, "livekit.api.AccessToken.with_identity": {"tf": 1}}, "df": 2}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.VideoGrants.agent": {"tf": 1}}, "df": 2, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 6}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.room_admin": {"tf": 1}, "livekit.api.VideoGrants.ingress_admin": {"tf": 1}, "livekit.api.SIPGrants.admin": {"tf": 1}}, "df": 3}}}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.AccessToken": {"tf": 1}, "livekit.api.AccessToken.__init__": {"tf": 1}, "livekit.api.AccessToken.ParticipantKind": {"tf": 1}, "livekit.api.AccessToken.api_key": {"tf": 1}, "livekit.api.AccessToken.api_secret": {"tf": 1}, "livekit.api.AccessToken.claims": {"tf": 1}, "livekit.api.AccessToken.identity": {"tf": 1}, "livekit.api.AccessToken.ttl": {"tf": 1}, "livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.AccessToken.with_grants": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}, "livekit.api.AccessToken.to_jwt": {"tf": 1}}, "df": 20}}}}}}}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {"livekit.api.AccessToken.api_key": {"tf": 1}, "livekit.api.AccessToken.api_secret": {"tf": 1}, "livekit.api.TokenVerifier.api_key": {"tf": 1}, "livekit.api.TokenVerifier.api_secret": {"tf": 1}}, "df": 4}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.with_attributes": {"tf": 1}}, "df": 1}}}}}}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.ABORTED": {"tf": 1}}, "df": 1}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}}, "df": 8}}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"livekit.api.VideoGrants.can_publish_data": {"tf": 1}, "livekit.api.TwirpErrorCode.DATA_LOSS": {"tf": 1}, "livekit.api.room_service.RoomService.send_data": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}}, "df": 5}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.VideoGrants.room_create": {"tf": 1}, "livekit.api.VideoGrants.room_list": {"tf": 1}, "livekit.api.VideoGrants.room_record": {"tf": 1}, "livekit.api.VideoGrants.room_admin": {"tf": 1}, "livekit.api.VideoGrants.room_join": {"tf": 1}, "livekit.api.VideoGrants.room": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.room_service.RoomService.create_room": {"tf": 1}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}}, "df": 13, "s": {"docs": {"livekit.api.room_service.RoomService.list_rooms": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.create_room": {"tf": 1}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 1}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}, "livekit.api.room_service.RoomService.list_participants": {"tf": 1}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 1}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}, "livekit.api.room_service.RoomService.send_data": {"tf": 1}}, "df": 13}}}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.VideoGrants.room_record": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.VideoGrants.recorder": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.WebhookReceiver.receive": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService.remove_participant": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}}, "df": 3}}}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.stop_egress": {"tf": 1}}, "df": 8, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.stop_egress": {"tf": 1}}, "df": 11}}}}}}}}}}}}, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {"livekit.api.LiveKitAPI.sip": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 14, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.SIPGrants": {"tf": 1}, "livekit.api.SIPGrants.__init__": {"tf": 1}, "livekit.api.SIPGrants.admin": {"tf": 1}, "livekit.api.SIPGrants.call": {"tf": 1}}, "df": 4}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.sip_service.SipService": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 14}}}}}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.VideoGrants.can_subscribe": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.VideoGrants.can_publish_sources": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.AccessToken.api_secret": {"tf": 1}, "livekit.api.TokenVerifier.api_secret": {"tf": 1}}, "df": 2}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.room_service.RoomService.send_data": {"tf": 1}}, "df": 1}}}, "h": {"docs": {}, "df": 0, "a": {"2": {"5": {"6": {"docs": {"livekit.api.AccessToken.with_sha256": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}}, "df": 5}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"livekit.api.egress_service.EgressService.update_stream": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {"livekit.api.egress_service.EgressService.stop_egress": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.VideoGrants": {"tf": 1}, "livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.VideoGrants.room_create": {"tf": 1}, "livekit.api.VideoGrants.room_list": {"tf": 1}, "livekit.api.VideoGrants.room_record": {"tf": 1}, "livekit.api.VideoGrants.room_admin": {"tf": 1}, "livekit.api.VideoGrants.room_join": {"tf": 1}, "livekit.api.VideoGrants.room": {"tf": 1}, "livekit.api.VideoGrants.can_publish": {"tf": 1}, "livekit.api.VideoGrants.can_subscribe": {"tf": 1}, "livekit.api.VideoGrants.can_publish_data": {"tf": 1}, "livekit.api.VideoGrants.can_publish_sources": {"tf": 1}, "livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}, "livekit.api.VideoGrants.ingress_admin": {"tf": 1}, "livekit.api.VideoGrants.hidden": {"tf": 1}, "livekit.api.VideoGrants.recorder": {"tf": 1}, "livekit.api.VideoGrants.agent": {"tf": 1}}, "df": 17}}}}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.TokenVerifier.verify": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.VideoGrants.room_create": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.create_room": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}}, "df": 9}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.can_publish": {"tf": 1}, "livekit.api.VideoGrants.can_subscribe": {"tf": 1}, "livekit.api.VideoGrants.can_publish_data": {"tf": 1}, "livekit.api.VideoGrants.can_publish_sources": {"tf": 1}, "livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}}, "df": 5, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.CANCELED": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.SIPGrants.call": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.claims": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"livekit.api.AccessToken.with_room_config": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpError.code": {"tf": 1}}, "df": 1}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}}, "df": 2}}}}}}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.room_join": {"tf": 1}}, "df": 1}}}, "w": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.AccessToken.to_jwt": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.VideoGrants.can_publish": {"tf": 1}, "livekit.api.VideoGrants.can_publish_data": {"tf": 1}, "livekit.api.VideoGrants.can_publish_sources": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 6, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.AccessToken.ParticipantKind": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"livekit.api.room_service.RoomService.list_participants": {"tf": 1}}, "df": 1}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.AccessToken.with_room_preset": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1}}, "df": 1}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1}}, "df": 1}}}}}}}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}}, "df": 7}}}}}, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.TwirpErrorCode.UNKNOWN": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.UNAUTHENTICATED": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.UNAVAILABLE": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.UNIMPLEMENTED": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}}, "df": 1, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}}, "df": 2}}}}}}}, "f": {"docs": {"livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}}, "df": 1}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}}, "df": 3}}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpError.message": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.MALFORMED": {"tf": 1}}, "df": 1}}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.hidden": {"tf": 1}}, "df": 1}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.AccessToken.api_key": {"tf": 1}, "livekit.api.TokenVerifier.api_key": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.AccessToken.with_kind": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.AccessToken.ttl": {"tf": 1}, "livekit.api.AccessToken.with_ttl": {"tf": 1}}, "df": 2}}, "o": {"docs": {"livekit.api.AccessToken.to_jwt": {"tf": 1}}, "df": 1, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.TokenVerifier": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1}, "livekit.api.TokenVerifier.api_key": {"tf": 1}, "livekit.api.TokenVerifier.api_secret": {"tf": 1}, "livekit.api.TokenVerifier.verify": {"tf": 1}}, "df": 5}}}}}}}}}}}}, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.TwirpError": {"tf": 1}, "livekit.api.TwirpError.__init__": {"tf": 1}, "livekit.api.TwirpError.code": {"tf": 1}, "livekit.api.TwirpError.message": {"tf": 1}}, "df": 4, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode": {"tf": 1}, "livekit.api.TwirpErrorCode.CANCELED": {"tf": 1}, "livekit.api.TwirpErrorCode.UNKNOWN": {"tf": 1}, "livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1}, "livekit.api.TwirpErrorCode.MALFORMED": {"tf": 1}, "livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1}, "livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1}, "livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1}, "livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1}, "livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1}, "livekit.api.TwirpErrorCode.UNAUTHENTICATED": {"tf": 1}, "livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1}, "livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1}, "livekit.api.TwirpErrorCode.ABORTED": {"tf": 1}, "livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}, "livekit.api.TwirpErrorCode.UNIMPLEMENTED": {"tf": 1}, "livekit.api.TwirpErrorCode.INTERNAL": {"tf": 1}, "livekit.api.TwirpErrorCode.UNAVAILABLE": {"tf": 1}, "livekit.api.TwirpErrorCode.DATA_LOSS": {"tf": 1}}, "df": 19}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}}, "df": 3}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {"livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}}, "df": 7}}}}}, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.AccessToken.with_grants": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}}, "df": 11}}}, "e": {"docs": {}, "df": 0, "b": {"docs": {"livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}}, "df": 1, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.WebhookReceiver": {"tf": 1}, "livekit.api.WebhookReceiver.__init__": {"tf": 1}, "livekit.api.WebhookReceiver.receive": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.with_grants": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.AccessToken.with_name": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1}}, "df": 1}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1}}, "df": 1}}}}}, "fullname": {"root": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.SIPGrants.__init__": {"tf": 1}, "livekit.api.AccessToken.__init__": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1}, "livekit.api.WebhookReceiver.__init__": {"tf": 1}, "livekit.api.TwirpError.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}}, "df": 12, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}, "livekit.api.VideoGrants": {"tf": 1}, "livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.VideoGrants.room_create": {"tf": 1}, "livekit.api.VideoGrants.room_list": {"tf": 1}, "livekit.api.VideoGrants.room_record": {"tf": 1}, "livekit.api.VideoGrants.room_admin": {"tf": 1}, "livekit.api.VideoGrants.room_join": {"tf": 1}, "livekit.api.VideoGrants.room": {"tf": 1}, "livekit.api.VideoGrants.can_publish": {"tf": 1}, "livekit.api.VideoGrants.can_subscribe": {"tf": 1}, "livekit.api.VideoGrants.can_publish_data": {"tf": 1}, "livekit.api.VideoGrants.can_publish_sources": {"tf": 1}, "livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}, "livekit.api.VideoGrants.ingress_admin": {"tf": 1}, "livekit.api.VideoGrants.hidden": {"tf": 1}, "livekit.api.VideoGrants.recorder": {"tf": 1}, "livekit.api.VideoGrants.agent": {"tf": 1}, "livekit.api.SIPGrants": {"tf": 1}, "livekit.api.SIPGrants.__init__": {"tf": 1}, "livekit.api.SIPGrants.admin": {"tf": 1}, "livekit.api.SIPGrants.call": {"tf": 1}, "livekit.api.AccessToken": {"tf": 1}, "livekit.api.AccessToken.__init__": {"tf": 1}, "livekit.api.AccessToken.ParticipantKind": {"tf": 1}, "livekit.api.AccessToken.api_key": {"tf": 1}, "livekit.api.AccessToken.api_secret": {"tf": 1}, "livekit.api.AccessToken.claims": {"tf": 1}, "livekit.api.AccessToken.identity": {"tf": 1}, "livekit.api.AccessToken.ttl": {"tf": 1}, "livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.AccessToken.with_grants": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}, "livekit.api.AccessToken.to_jwt": {"tf": 1}, "livekit.api.TokenVerifier": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1}, "livekit.api.TokenVerifier.api_key": {"tf": 1}, "livekit.api.TokenVerifier.api_secret": {"tf": 1}, "livekit.api.TokenVerifier.verify": {"tf": 1}, "livekit.api.WebhookReceiver": {"tf": 1}, "livekit.api.WebhookReceiver.__init__": {"tf": 1}, "livekit.api.WebhookReceiver.receive": {"tf": 1}, "livekit.api.TwirpError": {"tf": 1}, "livekit.api.TwirpError.__init__": {"tf": 1}, "livekit.api.TwirpError.code": {"tf": 1}, "livekit.api.TwirpError.message": {"tf": 1}, "livekit.api.TwirpErrorCode": {"tf": 1}, "livekit.api.TwirpErrorCode.CANCELED": {"tf": 1}, "livekit.api.TwirpErrorCode.UNKNOWN": {"tf": 1}, "livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1}, "livekit.api.TwirpErrorCode.MALFORMED": {"tf": 1}, "livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1}, "livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1}, "livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1}, "livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1}, "livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1}, "livekit.api.TwirpErrorCode.UNAUTHENTICATED": {"tf": 1}, "livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1}, "livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1}, "livekit.api.TwirpErrorCode.ABORTED": {"tf": 1}, "livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}, "livekit.api.TwirpErrorCode.UNIMPLEMENTED": {"tf": 1}, "livekit.api.TwirpErrorCode.INTERNAL": {"tf": 1}, "livekit.api.TwirpErrorCode.UNAVAILABLE": {"tf": 1}, "livekit.api.TwirpErrorCode.DATA_LOSS": {"tf": 1}, "livekit.api.agent_dispatch_service": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}, "livekit.api.egress_service": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.stop_egress": {"tf": 1}, "livekit.api.ingress_service": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1}, "livekit.api.room_service": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.create_room": {"tf": 1}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 1}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}, "livekit.api.room_service.RoomService.list_participants": {"tf": 1}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 1}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}, "livekit.api.room_service.RoomService.send_data": {"tf": 1}, "livekit.api.sip_service": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 135, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}}, "df": 7}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.VideoGrants.room_list": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 1}, "livekit.api.room_service.RoomService.list_participants": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}}, "df": 10}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.TwirpErrorCode.DATA_LOSS": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.update_layout": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}, "livekit.api.VideoGrants": {"tf": 1}, "livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.VideoGrants.room_create": {"tf": 1}, "livekit.api.VideoGrants.room_list": {"tf": 1}, "livekit.api.VideoGrants.room_record": {"tf": 1}, "livekit.api.VideoGrants.room_admin": {"tf": 1}, "livekit.api.VideoGrants.room_join": {"tf": 1}, "livekit.api.VideoGrants.room": {"tf": 1}, "livekit.api.VideoGrants.can_publish": {"tf": 1}, "livekit.api.VideoGrants.can_subscribe": {"tf": 1}, "livekit.api.VideoGrants.can_publish_data": {"tf": 1}, "livekit.api.VideoGrants.can_publish_sources": {"tf": 1}, "livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}, "livekit.api.VideoGrants.ingress_admin": {"tf": 1}, "livekit.api.VideoGrants.hidden": {"tf": 1}, "livekit.api.VideoGrants.recorder": {"tf": 1}, "livekit.api.VideoGrants.agent": {"tf": 1}, "livekit.api.SIPGrants": {"tf": 1}, "livekit.api.SIPGrants.__init__": {"tf": 1}, "livekit.api.SIPGrants.admin": {"tf": 1}, "livekit.api.SIPGrants.call": {"tf": 1}, "livekit.api.AccessToken": {"tf": 1}, "livekit.api.AccessToken.__init__": {"tf": 1}, "livekit.api.AccessToken.ParticipantKind": {"tf": 1}, "livekit.api.AccessToken.api_key": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.api_secret": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.claims": {"tf": 1}, "livekit.api.AccessToken.identity": {"tf": 1}, "livekit.api.AccessToken.ttl": {"tf": 1}, "livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.AccessToken.with_grants": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}, "livekit.api.AccessToken.to_jwt": {"tf": 1}, "livekit.api.TokenVerifier": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1}, "livekit.api.TokenVerifier.api_key": {"tf": 1.4142135623730951}, "livekit.api.TokenVerifier.api_secret": {"tf": 1.4142135623730951}, "livekit.api.TokenVerifier.verify": {"tf": 1}, "livekit.api.WebhookReceiver": {"tf": 1}, "livekit.api.WebhookReceiver.__init__": {"tf": 1}, "livekit.api.WebhookReceiver.receive": {"tf": 1}, "livekit.api.TwirpError": {"tf": 1}, "livekit.api.TwirpError.__init__": {"tf": 1}, "livekit.api.TwirpError.code": {"tf": 1}, "livekit.api.TwirpError.message": {"tf": 1}, "livekit.api.TwirpErrorCode": {"tf": 1}, "livekit.api.TwirpErrorCode.CANCELED": {"tf": 1}, "livekit.api.TwirpErrorCode.UNKNOWN": {"tf": 1}, "livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1}, "livekit.api.TwirpErrorCode.MALFORMED": {"tf": 1}, "livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1}, "livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1}, "livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1}, "livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1}, "livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1}, "livekit.api.TwirpErrorCode.UNAUTHENTICATED": {"tf": 1}, "livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1}, "livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1}, "livekit.api.TwirpErrorCode.ABORTED": {"tf": 1}, "livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}, "livekit.api.TwirpErrorCode.UNIMPLEMENTED": {"tf": 1}, "livekit.api.TwirpErrorCode.INTERNAL": {"tf": 1}, "livekit.api.TwirpErrorCode.UNAVAILABLE": {"tf": 1}, "livekit.api.TwirpErrorCode.DATA_LOSS": {"tf": 1}, "livekit.api.agent_dispatch_service": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}, "livekit.api.egress_service": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.stop_egress": {"tf": 1}, "livekit.api.ingress_service": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1}, "livekit.api.room_service": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.create_room": {"tf": 1}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 1}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}, "livekit.api.room_service.RoomService.list_participants": {"tf": 1}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 1}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}, "livekit.api.room_service.RoomService.send_data": {"tf": 1}, "livekit.api.sip_service": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 135}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.VideoGrants.agent": {"tf": 1}, "livekit.api.agent_dispatch_service": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 9, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 6}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.room_admin": {"tf": 1}, "livekit.api.VideoGrants.ingress_admin": {"tf": 1}, "livekit.api.SIPGrants.admin": {"tf": 1}}, "df": 3}}}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.AccessToken": {"tf": 1}, "livekit.api.AccessToken.__init__": {"tf": 1}, "livekit.api.AccessToken.ParticipantKind": {"tf": 1}, "livekit.api.AccessToken.api_key": {"tf": 1}, "livekit.api.AccessToken.api_secret": {"tf": 1}, "livekit.api.AccessToken.claims": {"tf": 1}, "livekit.api.AccessToken.identity": {"tf": 1}, "livekit.api.AccessToken.ttl": {"tf": 1}, "livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.AccessToken.with_grants": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}, "livekit.api.AccessToken.to_jwt": {"tf": 1}}, "df": 20}}}}}}}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.with_attributes": {"tf": 1}}, "df": 1}}}}}}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.ABORTED": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.SIPGrants.__init__": {"tf": 1}, "livekit.api.AccessToken.__init__": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1}, "livekit.api.WebhookReceiver.__init__": {"tf": 1}, "livekit.api.TwirpError.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}}, "df": 12}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.VideoGrants.ingress_admin": {"tf": 1}, "livekit.api.ingress_service": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1.4142135623730951}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1.4142135623730951}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1.4142135623730951}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1.4142135623730951}}, "df": 9, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1}}, "df": 6}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.TwirpErrorCode.INTERNAL": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}}, "df": 2}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.AccessToken.identity": {"tf": 1}, "livekit.api.AccessToken.with_identity": {"tf": 1}}, "df": 2}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}}, "df": 11}}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"livekit.api.VideoGrants.can_publish_data": {"tf": 1}, "livekit.api.TwirpErrorCode.DATA_LOSS": {"tf": 1}, "livekit.api.room_service.RoomService.send_data": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}}, "df": 5}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.VideoGrants.room_create": {"tf": 1}, "livekit.api.VideoGrants.room_list": {"tf": 1}, "livekit.api.VideoGrants.room_record": {"tf": 1}, "livekit.api.VideoGrants.room_admin": {"tf": 1}, "livekit.api.VideoGrants.room_join": {"tf": 1}, "livekit.api.VideoGrants.room": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.room_service": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.create_room": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 1}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService.list_participants": {"tf": 1}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 1}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}, "livekit.api.room_service.RoomService.send_data": {"tf": 1}}, "df": 24, "s": {"docs": {"livekit.api.room_service.RoomService.list_rooms": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.create_room": {"tf": 1}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 1}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}, "livekit.api.room_service.RoomService.list_participants": {"tf": 1}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 1}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}, "livekit.api.room_service.RoomService.send_data": {"tf": 1}}, "df": 13}}}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.VideoGrants.room_record": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.VideoGrants.recorder": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.WebhookReceiver.receive": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService.remove_participant": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}}, "df": 3}}}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.egress_service": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.stop_egress": {"tf": 1.4142135623730951}}, "df": 13, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.stop_egress": {"tf": 1}}, "df": 11}}}}}}}}}}}}, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {"livekit.api.LiveKitAPI.sip": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}, "livekit.api.sip_service": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1.4142135623730951}}, "df": 17, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.SIPGrants": {"tf": 1}, "livekit.api.SIPGrants.__init__": {"tf": 1}, "livekit.api.SIPGrants.admin": {"tf": 1}, "livekit.api.SIPGrants.call": {"tf": 1}}, "df": 4}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.sip_service.SipService": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 14}}}}}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.VideoGrants.can_subscribe": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.VideoGrants.can_publish_sources": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.AccessToken.api_secret": {"tf": 1}, "livekit.api.TokenVerifier.api_secret": {"tf": 1}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.agent_dispatch_service": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}, "livekit.api.egress_service": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.stop_egress": {"tf": 1}, "livekit.api.ingress_service": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1}, "livekit.api.room_service": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.create_room": {"tf": 1}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 1}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}, "livekit.api.room_service.RoomService.list_participants": {"tf": 1}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 1}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}, "livekit.api.room_service.RoomService.send_data": {"tf": 1}, "livekit.api.sip_service": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 55}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.room_service.RoomService.send_data": {"tf": 1}}, "df": 1}}}, "h": {"docs": {}, "df": 0, "a": {"2": {"5": {"6": {"docs": {"livekit.api.AccessToken.with_sha256": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}}, "df": 5}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"livekit.api.egress_service.EgressService.update_stream": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {"livekit.api.egress_service.EgressService.stop_egress": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.VideoGrants": {"tf": 1}, "livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.VideoGrants.room_create": {"tf": 1}, "livekit.api.VideoGrants.room_list": {"tf": 1}, "livekit.api.VideoGrants.room_record": {"tf": 1}, "livekit.api.VideoGrants.room_admin": {"tf": 1}, "livekit.api.VideoGrants.room_join": {"tf": 1}, "livekit.api.VideoGrants.room": {"tf": 1}, "livekit.api.VideoGrants.can_publish": {"tf": 1}, "livekit.api.VideoGrants.can_subscribe": {"tf": 1}, "livekit.api.VideoGrants.can_publish_data": {"tf": 1}, "livekit.api.VideoGrants.can_publish_sources": {"tf": 1}, "livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}, "livekit.api.VideoGrants.ingress_admin": {"tf": 1}, "livekit.api.VideoGrants.hidden": {"tf": 1}, "livekit.api.VideoGrants.recorder": {"tf": 1}, "livekit.api.VideoGrants.agent": {"tf": 1}}, "df": 17}}}}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.TokenVerifier.verify": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.VideoGrants.room_create": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.create_room": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}}, "df": 9}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.can_publish": {"tf": 1}, "livekit.api.VideoGrants.can_subscribe": {"tf": 1}, "livekit.api.VideoGrants.can_publish_data": {"tf": 1}, "livekit.api.VideoGrants.can_publish_sources": {"tf": 1}, "livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}}, "df": 5, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.CANCELED": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.SIPGrants.call": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.claims": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"livekit.api.AccessToken.with_room_config": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpError.code": {"tf": 1}}, "df": 1}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}}, "df": 2}}}}}}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.room_join": {"tf": 1}}, "df": 1}}}, "w": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.AccessToken.to_jwt": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.VideoGrants.can_publish": {"tf": 1}, "livekit.api.VideoGrants.can_publish_data": {"tf": 1}, "livekit.api.VideoGrants.can_publish_sources": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 6, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.AccessToken.ParticipantKind": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"livekit.api.room_service.RoomService.list_participants": {"tf": 1}}, "df": 1}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.AccessToken.with_room_preset": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1}}, "df": 1}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1}}, "df": 1}}}}}}}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}}, "df": 7}}}}}, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.TwirpErrorCode.UNKNOWN": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.UNAUTHENTICATED": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.UNAVAILABLE": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.UNIMPLEMENTED": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}}, "df": 1, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}}, "df": 2}}}}}}}, "f": {"docs": {"livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}}, "df": 1}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}}, "df": 3}}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpError.message": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.MALFORMED": {"tf": 1}}, "df": 1}}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.hidden": {"tf": 1}}, "df": 1}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.AccessToken.api_key": {"tf": 1}, "livekit.api.TokenVerifier.api_key": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.AccessToken.with_kind": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.AccessToken.ttl": {"tf": 1}, "livekit.api.AccessToken.with_ttl": {"tf": 1}}, "df": 2}}, "o": {"docs": {"livekit.api.AccessToken.to_jwt": {"tf": 1}}, "df": 1, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.TokenVerifier": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1}, "livekit.api.TokenVerifier.api_key": {"tf": 1}, "livekit.api.TokenVerifier.api_secret": {"tf": 1}, "livekit.api.TokenVerifier.verify": {"tf": 1}}, "df": 5}}}}}}}}}}}}, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.TwirpError": {"tf": 1}, "livekit.api.TwirpError.__init__": {"tf": 1}, "livekit.api.TwirpError.code": {"tf": 1}, "livekit.api.TwirpError.message": {"tf": 1}}, "df": 4, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode": {"tf": 1}, "livekit.api.TwirpErrorCode.CANCELED": {"tf": 1}, "livekit.api.TwirpErrorCode.UNKNOWN": {"tf": 1}, "livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1}, "livekit.api.TwirpErrorCode.MALFORMED": {"tf": 1}, "livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1}, "livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1}, "livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1}, "livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1}, "livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1}, "livekit.api.TwirpErrorCode.UNAUTHENTICATED": {"tf": 1}, "livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1}, "livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1}, "livekit.api.TwirpErrorCode.ABORTED": {"tf": 1}, "livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}, "livekit.api.TwirpErrorCode.UNIMPLEMENTED": {"tf": 1}, "livekit.api.TwirpErrorCode.INTERNAL": {"tf": 1}, "livekit.api.TwirpErrorCode.UNAVAILABLE": {"tf": 1}, "livekit.api.TwirpErrorCode.DATA_LOSS": {"tf": 1}}, "df": 19}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}}, "df": 3}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {"livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}}, "df": 7}}}}}, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.AccessToken.with_grants": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}}, "df": 11}}}, "e": {"docs": {}, "df": 0, "b": {"docs": {"livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}}, "df": 1, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.WebhookReceiver": {"tf": 1}, "livekit.api.WebhookReceiver.__init__": {"tf": 1}, "livekit.api.WebhookReceiver.receive": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.with_grants": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.AccessToken.with_name": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1}}, "df": 1}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1}}, "df": 1}}}}}, "annotation": {"root": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}, "livekit.api.VideoGrants.room_create": {"tf": 1}, "livekit.api.VideoGrants.room_list": {"tf": 1}, "livekit.api.VideoGrants.room_record": {"tf": 1}, "livekit.api.VideoGrants.room_admin": {"tf": 1}, "livekit.api.VideoGrants.room_join": {"tf": 1}, "livekit.api.VideoGrants.room": {"tf": 1}, "livekit.api.VideoGrants.can_publish": {"tf": 1}, "livekit.api.VideoGrants.can_subscribe": {"tf": 1}, "livekit.api.VideoGrants.can_publish_data": {"tf": 1}, "livekit.api.VideoGrants.can_publish_sources": {"tf": 1}, "livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}, "livekit.api.VideoGrants.ingress_admin": {"tf": 1}, "livekit.api.VideoGrants.hidden": {"tf": 1}, "livekit.api.VideoGrants.recorder": {"tf": 1}, "livekit.api.VideoGrants.agent": {"tf": 1}, "livekit.api.SIPGrants.admin": {"tf": 1}, "livekit.api.SIPGrants.call": {"tf": 1}, "livekit.api.TwirpError.code": {"tf": 1}, "livekit.api.TwirpError.message": {"tf": 1}}, "df": 24, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}}, "df": 5}}}}}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}}, "df": 5}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}}, "df": 1, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}}, "df": 5}}}}}}, "i": {"docs": {}, "df": 0, "p": {"docs": {"livekit.api.LiveKitAPI.sip": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.sip": {"tf": 1}}, "df": 1}}}}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.VideoGrants.room": {"tf": 1}, "livekit.api.TwirpError.code": {"tf": 1}, "livekit.api.TwirpError.message": {"tf": 1}}, "df": 3}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"livekit.api.LiveKitAPI.room": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.room": {"tf": 1}}, "df": 1}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.LiveKitAPI.ingress": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.ingress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.LiveKitAPI.egress": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.egress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.VideoGrants.room_create": {"tf": 1}, "livekit.api.VideoGrants.room_list": {"tf": 1}, "livekit.api.VideoGrants.room_record": {"tf": 1}, "livekit.api.VideoGrants.room_admin": {"tf": 1}, "livekit.api.VideoGrants.room_join": {"tf": 1}, "livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}, "livekit.api.VideoGrants.ingress_admin": {"tf": 1}, "livekit.api.VideoGrants.hidden": {"tf": 1}, "livekit.api.VideoGrants.recorder": {"tf": 1}, "livekit.api.VideoGrants.agent": {"tf": 1}}, "df": 10}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.VideoGrants.can_publish_sources": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.VideoGrants.can_publish": {"tf": 1}, "livekit.api.VideoGrants.can_subscribe": {"tf": 1}, "livekit.api.VideoGrants.can_publish_data": {"tf": 1}, "livekit.api.SIPGrants.admin": {"tf": 1}, "livekit.api.SIPGrants.call": {"tf": 1}}, "df": 5}}}}}}, "default_value": {"root": {"docs": {"livekit.api.VideoGrants.room": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.ParticipantKind": {"tf": 1}, "livekit.api.TwirpErrorCode.CANCELED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.UNKNOWN": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.MALFORMED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.UNAUTHENTICATED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.ABORTED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.UNIMPLEMENTED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.INTERNAL": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.UNAVAILABLE": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.DATA_LOSS": {"tf": 1.4142135623730951}}, "df": 20, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.VideoGrants.room_create": {"tf": 1}, "livekit.api.VideoGrants.room_list": {"tf": 1}, "livekit.api.VideoGrants.room_record": {"tf": 1}, "livekit.api.VideoGrants.room_admin": {"tf": 1}, "livekit.api.VideoGrants.room_join": {"tf": 1}, "livekit.api.VideoGrants.can_publish_sources": {"tf": 1}, "livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}, "livekit.api.VideoGrants.ingress_admin": {"tf": 1}, "livekit.api.VideoGrants.hidden": {"tf": 1}, "livekit.api.VideoGrants.recorder": {"tf": 1}, "livekit.api.VideoGrants.agent": {"tf": 1}}, "df": 11}}, "t": {"docs": {"livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1}}, "df": 1}}}, "x": {"2": {"7": {"docs": {"livekit.api.VideoGrants.room": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.ParticipantKind": {"tf": 3.1622776601683795}, "livekit.api.TwirpErrorCode.CANCELED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.UNKNOWN": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.MALFORMED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.UNAUTHENTICATED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.ABORTED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.UNIMPLEMENTED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.INTERNAL": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.UNAVAILABLE": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.DATA_LOSS": {"tf": 1.4142135623730951}}, "df": 20}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.VideoGrants.can_publish": {"tf": 1}, "livekit.api.VideoGrants.can_subscribe": {"tf": 1}, "livekit.api.VideoGrants.can_publish_data": {"tf": 1}}, "df": 3}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"livekit.api.AccessToken.ParticipantKind": {"tf": 1}}, "df": 1}}}}}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.SIPGrants.admin": {"tf": 1}, "livekit.api.SIPGrants.call": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.AccessToken.ParticipantKind": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.AccessToken.ParticipantKind": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "p": {"docs": {"livekit.api.AccessToken.ParticipantKind": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.ParticipantKind": {"tf": 1}}, "df": 1}}}}}, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.ParticipantKind": {"tf": 1}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.TwirpErrorCode.INTERNAL": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.AccessToken.ParticipantKind": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.ABORTED": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.CANCELED": {"tf": 1}}, "df": 1}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.TwirpErrorCode.UNKNOWN": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.UNAUTHENTICATED": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.UNAVAILABLE": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.UNIMPLEMENTED": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.MALFORMED": {"tf": 1}}, "df": 1}}}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.TwirpErrorCode.DATA_LOSS": {"tf": 1}}, "df": 1}}}}}}}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1}}, "df": 1}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}}, "df": 1}}, "f": {"docs": {"livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}}, "df": 1}}}}, "signature": {"root": {"3": {"9": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.with_kind": {"tf": 3.1622776601683795}}, "df": 2}, "docs": {}, "df": 0}, "5": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}}, "df": 1}, "6": {"0": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 11.832159566199232}, "livekit.api.VideoGrants.__init__": {"tf": 17}, "livekit.api.SIPGrants.__init__": {"tf": 5.656854249492381}, "livekit.api.AccessToken.__init__": {"tf": 6.48074069840786}, "livekit.api.AccessToken.with_ttl": {"tf": 6}, "livekit.api.AccessToken.with_grants": {"tf": 6.782329983125268}, "livekit.api.AccessToken.with_sip_grants": {"tf": 6.782329983125268}, "livekit.api.AccessToken.with_identity": {"tf": 5.656854249492381}, "livekit.api.AccessToken.with_kind": {"tf": 8.306623862918075}, "livekit.api.AccessToken.with_name": {"tf": 5.656854249492381}, "livekit.api.AccessToken.with_metadata": {"tf": 5.656854249492381}, "livekit.api.AccessToken.with_attributes": {"tf": 6.48074069840786}, "livekit.api.AccessToken.with_sha256": {"tf": 5.656854249492381}, "livekit.api.AccessToken.with_room_preset": {"tf": 5.656854249492381}, "livekit.api.AccessToken.with_room_config": {"tf": 6.164414002968976}, "livekit.api.AccessToken.to_jwt": {"tf": 3.4641016151377544}, "livekit.api.TokenVerifier.__init__": {"tf": 9.16515138991168}, "livekit.api.TokenVerifier.verify": {"tf": 5.656854249492381}, "livekit.api.WebhookReceiver.__init__": {"tf": 4.898979485566356}, "livekit.api.WebhookReceiver.receive": {"tf": 5.656854249492381}, "livekit.api.TwirpError.__init__": {"tf": 4.47213595499958}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 6.928203230275509}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 5.477225575051661}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 5.656854249492381}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 5.385164807134504}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 6.324555320336759}, "livekit.api.egress_service.EgressService.__init__": {"tf": 6.928203230275509}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 5.291502622129181}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 5.291502622129181}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 5.291502622129181}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 5.291502622129181}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 5.291502622129181}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 5.291502622129181}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 5.291502622129181}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 5.291502622129181}, "livekit.api.egress_service.EgressService.stop_egress": {"tf": 5.291502622129181}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 6.928203230275509}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 5.291502622129181}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 5.291502622129181}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 5.291502622129181}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 5.291502622129181}, "livekit.api.room_service.RoomService.__init__": {"tf": 6.928203230275509}, "livekit.api.room_service.RoomService.create_room": {"tf": 5.291502622129181}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 5.291502622129181}, "livekit.api.room_service.RoomService.delete_room": {"tf": 5.291502622129181}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 5.291502622129181}, "livekit.api.room_service.RoomService.list_participants": {"tf": 5.477225575051661}, "livekit.api.room_service.RoomService.get_participant": {"tf": 5.291502622129181}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 5.477225575051661}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 5.291502622129181}, "livekit.api.room_service.RoomService.update_participant": {"tf": 5.291502622129181}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 5.477225575051661}, "livekit.api.room_service.RoomService.send_data": {"tf": 5.291502622129181}, "livekit.api.sip_service.SipService.__init__": {"tf": 6.928203230275509}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 5.291502622129181}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 5.477225575051661}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 5.477225575051661}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 5.291502622129181}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 5.477225575051661}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 5.477225575051661}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 5.291502622129181}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 5.477225575051661}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 5.477225575051661}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 5.477225575051661}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 5.291502622129181}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 5.477225575051661}}, "df": 66, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}}, "df": 6}}, "p": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}}, "df": 8, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.update_layout": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.update_stream": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.room_service.RoomService.update_participant": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.__init__": {"tf": 3.3166247903554}, "livekit.api.AccessToken.__init__": {"tf": 1.4142135623730951}, "livekit.api.TokenVerifier.__init__": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 5}}}}}}}, "w": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.__init__": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.__init__": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.to_jwt": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1.4142135623730951}, "livekit.api.TokenVerifier.verify": {"tf": 1}, "livekit.api.WebhookReceiver.receive": {"tf": 1.4142135623730951}, "livekit.api.TwirpError.__init__": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1.7320508075688772}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1.7320508075688772}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService.__init__": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.__init__": {"tf": 1.7320508075688772}}, "df": 22}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.AccessToken.with_kind": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}}, "df": 5}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {"livekit.api.egress_service.EgressService.stop_egress": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.stop_egress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.AccessToken.__init__": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}}, "df": 8}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.TokenVerifier.__init__": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "f": {"docs": {"livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.AccessToken.with_grants": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}, "livekit.api.AccessToken.to_jwt": {"tf": 1}, "livekit.api.TokenVerifier.verify": {"tf": 1}, "livekit.api.WebhookReceiver.receive": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.stop_egress": {"tf": 1}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.create_room": {"tf": 1}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 1}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}, "livekit.api.room_service.RoomService.list_participants": {"tf": 1}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 1}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}, "livekit.api.room_service.RoomService.send_data": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 54}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}}, "df": 5}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.room_service.RoomService.send_data": {"tf": 1}}, "df": 1, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.room_service.RoomService.send_data": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService.send_data": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.4142135623730951}}, "df": 1}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "p": {"docs": {"livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1.4142135623730951}}, "df": 13, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.with_sip_grants": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {"livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}}, "df": 2}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {"livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {"livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {"livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {"livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}, "h": {"docs": {}, "df": 0, "a": {"2": {"5": {"6": {"docs": {"livekit.api.AccessToken.with_sha256": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 2.449489742783178}, "livekit.api.VideoGrants.__init__": {"tf": 3.3166247903554}, "livekit.api.AccessToken.__init__": {"tf": 1.4142135623730951}, "livekit.api.TokenVerifier.__init__": {"tf": 1.4142135623730951}}, "df": 4}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 4}}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.__init__": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.AccessToken.with_grants": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1.4142135623730951}, "livekit.api.TokenVerifier.verify": {"tf": 1}, "livekit.api.WebhookReceiver.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1.4142135623730951}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService.__init__": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.__init__": {"tf": 1.4142135623730951}}, "df": 21}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}}, "df": 6}}}}}}, "d": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1.4142135623730951}, "livekit.api.SIPGrants.__init__": {"tf": 1}}, "df": 2}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 6, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 4}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.AccessToken.with_grants": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}, "livekit.api.TokenVerifier.verify": {"tf": 1}, "livekit.api.WebhookReceiver.__init__": {"tf": 1}}, "df": 13, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.AccessToken.with_grants": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}}, "df": 11}}}}}}}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.with_attributes": {"tf": 1}}, "df": 1}}}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.WebhookReceiver.receive": {"tf": 1}}, "df": 1}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.AccessToken.__init__": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}}, "df": 8}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.AccessToken.with_kind": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}}, "df": 1}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.AccessToken.with_grants": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}, "livekit.api.TokenVerifier.verify": {"tf": 1.4142135623730951}, "livekit.api.WebhookReceiver.__init__": {"tf": 1.4142135623730951}, "livekit.api.WebhookReceiver.receive": {"tf": 1}}, "df": 14, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.WebhookReceiver.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "h": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1.7320508075688772}}, "df": 1}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.AccessToken.with_ttl": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}}, "df": 6, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}}, "df": 5}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.TokenVerifier.verify": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"livekit.api.AccessToken.with_room_config": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpError.__init__": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.create_room": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}}, "df": 8, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.room_service.RoomService.create_room": {"tf": 1}}, "df": 1}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 2.23606797749979}}, "df": 1}, "l": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.SIPGrants.__init__": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}}, "df": 1}}}}}}, "q": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService.remove_participant": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService.remove_participant": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 2.449489742783178}, "livekit.api.AccessToken.with_room_config": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}, "livekit.api.room_service.RoomService.create_room": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService.list_participants": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService.send_data": {"tf": 1.4142135623730951}}, "df": 16, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.AccessToken.with_room_config": {"tf": 1}}, "df": 1}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 3.605551275463989}, "livekit.api.SIPGrants.__init__": {"tf": 1.4142135623730951}}, "df": 2}}, "d": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.WebhookReceiver.receive": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 1}, "livekit.api.room_service.RoomService.list_participants": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}}, "df": 10, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.list_egress": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.egress_service.EgressService.list_egress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.room_service.RoomService.list_rooms": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService.list_rooms": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.room_service.RoomService.list_participants": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService.list_participants": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.AccessToken.with_grants": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}, "livekit.api.TokenVerifier.verify": {"tf": 1}, "livekit.api.WebhookReceiver.__init__": {"tf": 1}}, "df": 13}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.AccessToken.with_kind": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.TokenVerifier.__init__": {"tf": 1}}, "df": 1}}}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1.7320508075688772}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.AccessToken.with_room_preset": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {"livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.AccessToken.with_attributes": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1.4142135623730951}}, "df": 4}}}}}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.room_service.RoomService.delete_room": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService.delete_room": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}}, "df": 2}}}}}}}, "s": {"docs": {}, "df": 0, "g": {"docs": {"livekit.api.TwirpError.__init__": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.room_service.RoomService.create_room": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}}, "df": 4}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1.4142135623730951}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1.4142135623730951}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1.4142135623730951}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1.4142135623730951}}, "df": 6, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {"livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1}}, "df": 3}}}}}}}}}}, "d": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.AccessToken.with_identity": {"tf": 1}}, "df": 1}}}}}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}}, "df": 1}}}}}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.SIPGrants.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.with_grants": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.room_service.RoomService.get_participant": {"tf": 1}}, "df": 1}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.with_grants": {"tf": 1}}, "df": 1}}}}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.WebhookReceiver.__init__": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.stop_egress": {"tf": 1.4142135623730951}}, "df": 10, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {"livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1}, "livekit.api.egress_service.EgressService.stop_egress": {"tf": 1}}, "df": 8}}}}}}}}}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {"livekit.api.WebhookReceiver.receive": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.WebhookReceiver.receive": {"tf": 1}}, "df": 1}}}}}}}}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}, "bases": {"root": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.TwirpError": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.TwirpError": {"tf": 1}}, "df": 1}}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 5}}}}}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 5}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService": {"tf": 1.4142135623730951}, "livekit.api.ingress_service.IngressService": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService": {"tf": 1.4142135623730951}}, "df": 5}}}}}}}}}, "doc": {"root": {"3": {"9": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "6": {"0": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"livekit.api": {"tf": 3.872983346207417}, "livekit.api.LiveKitAPI": {"tf": 9.273618495495704}, "livekit.api.LiveKitAPI.__init__": {"tf": 5.916079783099616}, "livekit.api.LiveKitAPI.agent_dispatch": {"tf": 2.449489742783178}, "livekit.api.LiveKitAPI.room": {"tf": 2.449489742783178}, "livekit.api.LiveKitAPI.ingress": {"tf": 2.449489742783178}, "livekit.api.LiveKitAPI.egress": {"tf": 2.449489742783178}, "livekit.api.LiveKitAPI.sip": {"tf": 2.449489742783178}, "livekit.api.VideoGrants": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.__init__": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.room_create": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.room_list": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.room_record": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.room_admin": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.room_join": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.room": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.can_publish": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.can_subscribe": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.can_publish_data": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.can_publish_sources": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.ingress_admin": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.hidden": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.recorder": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.agent": {"tf": 1.7320508075688772}, "livekit.api.SIPGrants": {"tf": 1.7320508075688772}, "livekit.api.SIPGrants.__init__": {"tf": 1.7320508075688772}, "livekit.api.SIPGrants.admin": {"tf": 1.7320508075688772}, "livekit.api.SIPGrants.call": {"tf": 1.7320508075688772}, "livekit.api.AccessToken": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.__init__": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.ParticipantKind": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.api_key": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.api_secret": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.claims": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.identity": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.ttl": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.with_ttl": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.with_grants": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.with_identity": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.with_kind": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.with_name": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.with_metadata": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.with_attributes": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.with_sha256": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.with_room_preset": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.with_room_config": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.to_jwt": {"tf": 1.7320508075688772}, "livekit.api.TokenVerifier": {"tf": 1.7320508075688772}, "livekit.api.TokenVerifier.__init__": {"tf": 1.7320508075688772}, "livekit.api.TokenVerifier.api_key": {"tf": 1.7320508075688772}, "livekit.api.TokenVerifier.api_secret": {"tf": 1.7320508075688772}, "livekit.api.TokenVerifier.verify": {"tf": 1.7320508075688772}, "livekit.api.WebhookReceiver": {"tf": 1.7320508075688772}, "livekit.api.WebhookReceiver.__init__": {"tf": 1.7320508075688772}, "livekit.api.WebhookReceiver.receive": {"tf": 1.7320508075688772}, "livekit.api.TwirpError": {"tf": 1.7320508075688772}, "livekit.api.TwirpError.__init__": {"tf": 1.7320508075688772}, "livekit.api.TwirpError.code": {"tf": 1.7320508075688772}, "livekit.api.TwirpError.message": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.CANCELED": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.UNKNOWN": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.MALFORMED": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.UNAUTHENTICATED": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.ABORTED": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.UNIMPLEMENTED": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.INTERNAL": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.UNAVAILABLE": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.DATA_LOSS": {"tf": 1.7320508075688772}, "livekit.api.agent_dispatch_service": {"tf": 1.7320508075688772}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 7.280109889280518}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1.7320508075688772}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 5.196152422706632}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 5.196152422706632}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 4.69041575982343}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 5.0990195135927845}, "livekit.api.egress_service": {"tf": 1.7320508075688772}, "livekit.api.egress_service.EgressService": {"tf": 7.483314773547883}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1.7320508075688772}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1.7320508075688772}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1.7320508075688772}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1.7320508075688772}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1.7320508075688772}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1.7320508075688772}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1.7320508075688772}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1.7320508075688772}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1.7320508075688772}, "livekit.api.egress_service.EgressService.stop_egress": {"tf": 1.7320508075688772}, "livekit.api.ingress_service": {"tf": 1.7320508075688772}, "livekit.api.ingress_service.IngressService": {"tf": 7.483314773547883}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1.7320508075688772}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1.7320508075688772}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1.7320508075688772}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1.7320508075688772}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1.7320508075688772}, "livekit.api.room_service": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService": {"tf": 7.615773105863909}, "livekit.api.room_service.RoomService.__init__": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService.create_room": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService.list_participants": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService.send_data": {"tf": 1.7320508075688772}, "livekit.api.sip_service": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService": {"tf": 7.211102550927978}, "livekit.api.sip_service.SipService.__init__": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1.7320508075688772}}, "df": 135, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api": {"tf": 1.4142135623730951}, "livekit.api.LiveKitAPI": {"tf": 1.4142135623730951}, "livekit.api.LiveKitAPI.__init__": {"tf": 2}, "livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService": {"tf": 2}, "livekit.api.ingress_service.IngressService": {"tf": 2}, "livekit.api.room_service.RoomService": {"tf": 2.23606797749979}, "livekit.api.sip_service.SipService": {"tf": 1.7320508075688772}}, "df": 13, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService": {"tf": 1.4142135623730951}, "livekit.api.ingress_service.IngressService": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService": {"tf": 1.4142135623730951}}, "df": 8}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1.7320508075688772}}, "df": 2, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "[": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "k": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService": {"tf": 1.4142135623730951}, "livekit.api.ingress_service.IngressService": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService": {"tf": 1.4142135623730951}}, "df": 6}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.LiveKitAPI.__init__": {"tf": 1}}, "df": 3}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService": {"tf": 1.4142135623730951}, "livekit.api.ingress_service.IngressService": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService": {"tf": 1.7320508075688772}}, "df": 10, "s": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}}, "df": 9}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.7320508075688772}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "p": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1.7320508075688772}}, "df": 3, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.sip": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1.4142135623730951}}, "df": 3}}}, "a": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}}, "df": 4, "p": {"docs": {}, "df": 0, "i": {"docs": {"livekit.api.LiveKitAPI": {"tf": 2}, "livekit.api.LiveKitAPI.__init__": {"tf": 2.449489742783178}, "livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1.7320508075688772}, "livekit.api.egress_service.EgressService": {"tf": 2}, "livekit.api.ingress_service.IngressService": {"tf": 2}, "livekit.api.room_service.RoomService": {"tf": 2}, "livekit.api.sip_service.SipService": {"tf": 2}}, "df": 12, "s": {"docs": {"livekit.api": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}}, "df": 2}}}, "n": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1.7320508075688772}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 3, "d": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}}, "df": 2}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1.7320508075688772}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1.7320508075688772}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1.4142135623730951}}, "df": 7, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.TwirpError": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}}, "df": 3}, "s": {"docs": {}, "df": 0, "o": {"docs": {"livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}}, "df": 3}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 5}}}}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api": {"tf": 1.4142135623730951}, "livekit.api.TwirpError": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 8}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.LiveKitAPI.__init__": {"tf": 1.7320508075688772}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 8}}}}, "p": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}}, "df": 2}}}}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}}}}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}}, "df": 1}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}}, "df": 1}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1.7320508075688772}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1.7320508075688772}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 2}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService": {"tf": 1.4142135623730951}}, "df": 7, "s": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.LiveKitAPI": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.room": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService": {"tf": 1}}, "df": 2}}}}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.7320508075688772}}, "df": 1}}, "q": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 5}}}}}}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 4}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1.7320508075688772}}, "df": 3, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.egress": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}}, "df": 1}}}}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}}}}, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}}, "df": 2}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.TwirpError": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.TwirpError": {"tf": 1}}, "df": 1}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1.4142135623730951}}, "df": 2, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1.7320508075688772}}, "df": 3, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.ingress": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}}, "df": 6}}}}}}}, "s": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 7}, "o": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"livekit.api.egress_service.EgressService": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"livekit.api.ingress_service.IngressService": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"livekit.api.room_service.RoomService": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 6}}}}}, "f": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.7320508075688772}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 2}, "d": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1.7320508075688772}}, "df": 2}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 2}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 2.23606797749979}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 2.23606797749979}}, "df": 7, "e": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}}, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1.4142135623730951}}, "df": 1, "d": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}}, "df": 1}}}}}}}, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, ":": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1.4142135623730951}}, "df": 4}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 5}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.TwirpError": {"tf": 1}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.TwirpError": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 3}}}}}}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 6}}, "e": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 2}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 2}}, "df": 10}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "o": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 9}}, "w": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 5}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 6}}, "r": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.7320508075688772}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1.4142135623730951}}, "df": 3, "s": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "w": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.7320508075688772}}, "df": 1}, "n": {"docs": {"livekit.api.TwirpError": {"tf": 1}}, "df": 1, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "a": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 5}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.7320508075688772}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "f": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1.4142135623730951}}, "df": 8}, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 3, "s": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 1}}}}}}}}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpError": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}, "y": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 1}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}}}}, "y": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 1}}}}}}, "pipeline": ["trimmer"], "_isPrebuiltIndex": true};
+
+ // mirrored in build-search-index.js (part 1)
+ // Also split on html tags. this is a cheap heuristic, but good enough.
+ elasticlunr.tokenizer.setSeperator(/[\s\-.;&_'"=,()]+|<[^>]*>/);
+
+ let searchIndex;
+ if (docs._isPrebuiltIndex) {
+ console.info("using precompiled search index");
+ searchIndex = elasticlunr.Index.load(docs);
+ } else {
+ console.time("building search index");
+ // mirrored in build-search-index.js (part 2)
+ searchIndex = elasticlunr(function () {
+ this.pipeline.remove(elasticlunr.stemmer);
+ this.pipeline.remove(elasticlunr.stopWordFilter);
+ this.addField("qualname");
+ this.addField("fullname");
+ this.addField("annotation");
+ this.addField("default_value");
+ this.addField("signature");
+ this.addField("bases");
+ this.addField("doc");
+ this.setRef("fullname");
+ });
+ for (let doc of docs) {
+ searchIndex.addDoc(doc);
+ }
+ console.timeEnd("building search index");
+ }
+
+ return (term) => searchIndex.search(term, {
+ fields: {
+ qualname: {boost: 4},
+ fullname: {boost: 2},
+ annotation: {boost: 2},
+ default_value: {boost: 2},
+ signature: {boost: 2},
+ bases: {boost: 2},
+ doc: {boost: 1},
+ },
+ expand: true
+ });
+})();
\ No newline at end of file
diff --git a/livekit-api/livekit/api/__init__.py b/livekit-api/livekit/api/__init__.py
index 4c965977..6922de3b 100644
--- a/livekit-api/livekit/api/__init__.py
+++ b/livekit-api/livekit/api/__init__.py
@@ -14,7 +14,11 @@
"""LiveKit Server APIs for Python
-See https://docs.livekit.io/home/server/ for docs and examples.
+Manage rooms, participants, egress, ingress, SIP, and Agent dispatch.
+
+Primary entry point is `LiveKitAPI`.
+
+See https://docs.livekit.io/reference/server/server-apis for more information.
"""
# flake8: noqa
@@ -33,3 +37,19 @@
from .access_token import VideoGrants, SIPGrants, AccessToken, TokenVerifier
from .webhook import WebhookReceiver
from .version import __version__
+
+__all__ = [
+ "LiveKitAPI",
+ "room_service",
+ "egress_service",
+ "ingress_service",
+ "sip_service",
+ "agent_dispatch_service",
+ "VideoGrants",
+ "SIPGrants",
+ "AccessToken",
+ "TokenVerifier",
+ "WebhookReceiver",
+ "TwirpError",
+ "TwirpErrorCode",
+]
diff --git a/livekit-api/livekit/api/agent_dispatch_service.py b/livekit-api/livekit/api/agent_dispatch_service.py
index 769bf200..a4f4da22 100644
--- a/livekit-api/livekit/api/agent_dispatch_service.py
+++ b/livekit-api/livekit/api/agent_dispatch_service.py
@@ -1,16 +1,23 @@
import aiohttp
from typing import Optional
-from livekit.protocol import agent_dispatch as proto_agent_dispatch
+from livekit.protocol.agent_dispatch import CreateAgentDispatchRequest, AgentDispatch, DeleteAgentDispatchRequest, ListAgentDispatchRequest, ListAgentDispatchResponse
from ._service import Service
from .access_token import VideoGrants
SVC = "AgentDispatchService"
+"""@private"""
class AgentDispatchService(Service):
"""Manage agent dispatches. Service APIs require roomAdmin permissions.
- An easier way to construct this service is via LiveKitAPI.agent_dispatch.
+ Recommended way to use this service is via `livekit.api.LiveKitAPI`:
+
+ ```python
+ from livekit import api
+ lkapi = api.LiveKitAPI()
+ agent_dispatch = lkapi.agent_dispatch
+ ```
"""
def __init__(
@@ -19,8 +26,8 @@ def __init__(
super().__init__(session, url, api_key, api_secret)
async def create_dispatch(
- self, req: proto_agent_dispatch.CreateAgentDispatchRequest
- ) -> proto_agent_dispatch.AgentDispatch:
+ self, req: CreateAgentDispatchRequest
+ ) -> AgentDispatch:
"""Create an explicit dispatch for an agent to join a room.
To use explicit dispatch, your agent must be registered with an `agentName`.
@@ -36,12 +43,12 @@ async def create_dispatch(
"CreateDispatch",
req,
self._auth_header(VideoGrants(room_admin=True, room=req.room)),
- proto_agent_dispatch.AgentDispatch,
+ AgentDispatch,
)
async def delete_dispatch(
self, dispatch_id: str, room_name: str
- ) -> proto_agent_dispatch.AgentDispatch:
+ ) -> AgentDispatch:
"""Delete an explicit dispatch for an agent in a room.
Args:
@@ -54,17 +61,17 @@ async def delete_dispatch(
return await self._client.request(
SVC,
"DeleteDispatch",
- proto_agent_dispatch.DeleteAgentDispatchRequest(
+ DeleteAgentDispatchRequest(
dispatch_id=dispatch_id,
room=room_name,
),
self._auth_header(VideoGrants(room_admin=True, room=room_name)),
- proto_agent_dispatch.AgentDispatch,
+ AgentDispatch,
)
async def list_dispatch(
self, room_name: str
- ) -> list[proto_agent_dispatch.AgentDispatch]:
+ ) -> list[AgentDispatch]:
"""List all agent dispatches in a room.
Args:
@@ -76,15 +83,15 @@ async def list_dispatch(
res = await self._client.request(
SVC,
"ListDispatch",
- proto_agent_dispatch.ListAgentDispatchRequest(room=room_name),
+ ListAgentDispatchRequest(room=room_name),
self._auth_header(VideoGrants(room_admin=True, room=room_name)),
- proto_agent_dispatch.ListAgentDispatchResponse,
+ ListAgentDispatchResponse,
)
return list(res.agent_dispatches)
async def get_dispatch(
self, dispatch_id: str, room_name: str
- ) -> Optional[proto_agent_dispatch.AgentDispatch]:
+ ) -> Optional[AgentDispatch]:
"""Get an Agent dispatch by ID
Args:
@@ -97,11 +104,11 @@ async def get_dispatch(
res = await self._client.request(
SVC,
"ListDispatch",
- proto_agent_dispatch.ListAgentDispatchRequest(
+ ListAgentDispatchRequest(
dispatch_id=dispatch_id, room=room_name
),
self._auth_header(VideoGrants(room_admin=True, room=room_name)),
- proto_agent_dispatch.ListAgentDispatchResponse,
+ ListAgentDispatchResponse,
)
if len(res.agent_dispatches) > 0:
return res.agent_dispatches[0]
diff --git a/livekit-api/livekit/api/egress_service.py b/livekit-api/livekit/api/egress_service.py
index a875459b..37efcbd0 100644
--- a/livekit-api/livekit/api/egress_service.py
+++ b/livekit-api/livekit/api/egress_service.py
@@ -1,112 +1,124 @@
import aiohttp
-from livekit.protocol import egress as proto_egress
+from livekit.protocol.egress import RoomCompositeEgressRequest, WebEgressRequest, ParticipantEgressRequest, TrackCompositeEgressRequest, TrackEgressRequest, UpdateLayoutRequest, UpdateStreamRequest, ListEgressRequest, StopEgressRequest, EgressInfo, ListEgressResponse
from ._service import Service
from .access_token import VideoGrants
SVC = "Egress"
-
+"""@private"""
class EgressService(Service):
+ """Client for LiveKit Egress Service API
+
+ Recommended way to use this service is via `livekit.api.LiveKitAPI`:
+
+ ```python
+ from livekit import api
+ lkapi = api.LiveKitAPI()
+ egress = lkapi.egress
+ ```
+
+ Also see https://docs.livekit.io/home/egress/overview/
+ """
def __init__(
self, session: aiohttp.ClientSession, url: str, api_key: str, api_secret: str
):
super().__init__(session, url, api_key, api_secret)
async def start_room_composite_egress(
- self, start: proto_egress.RoomCompositeEgressRequest
- ) -> proto_egress.EgressInfo:
+ self, start: RoomCompositeEgressRequest
+ ) -> EgressInfo:
return await self._client.request(
SVC,
"StartRoomCompositeEgress",
start,
self._auth_header(VideoGrants(room_record=True)),
- proto_egress.EgressInfo,
+ EgressInfo,
)
async def start_web_egress(
- self, start: proto_egress.WebEgressRequest
- ) -> proto_egress.EgressInfo:
+ self, start: WebEgressRequest
+ ) -> EgressInfo:
return await self._client.request(
SVC,
"StartWebEgress",
start,
self._auth_header(VideoGrants(room_record=True)),
- proto_egress.EgressInfo,
+ EgressInfo,
)
async def start_participant_egress(
- self, start: proto_egress.ParticipantEgressRequest
- ) -> proto_egress.EgressInfo:
+ self, start: ParticipantEgressRequest
+ ) -> EgressInfo:
return await self._client.request(
SVC,
"StartParticipantEgress",
start,
self._auth_header(VideoGrants(room_record=True)),
- proto_egress.EgressInfo,
+ EgressInfo,
)
async def start_track_composite_egress(
- self, start: proto_egress.TrackCompositeEgressRequest
- ) -> proto_egress.EgressInfo:
+ self, start: TrackCompositeEgressRequest
+ ) -> EgressInfo:
return await self._client.request(
SVC,
"StartTrackCompositeEgress",
start,
self._auth_header(VideoGrants(room_record=True)),
- proto_egress.EgressInfo,
+ EgressInfo,
)
async def start_track_egress(
- self, start: proto_egress.TrackEgressRequest
- ) -> proto_egress.EgressInfo:
+ self, start: TrackEgressRequest
+ ) -> EgressInfo:
return await self._client.request(
SVC,
"StartTrackEgress",
start,
self._auth_header(VideoGrants(room_record=True)),
- proto_egress.EgressInfo,
+ EgressInfo,
)
async def update_layout(
- self, update: proto_egress.UpdateLayoutRequest
- ) -> proto_egress.EgressInfo:
+ self, update: UpdateLayoutRequest
+ ) -> EgressInfo:
return await self._client.request(
SVC,
"UpdateLayout",
update,
self._auth_header(VideoGrants(room_record=True)),
- proto_egress.EgressInfo,
+ EgressInfo,
)
async def update_stream(
- self, update: proto_egress.UpdateStreamRequest
- ) -> proto_egress.EgressInfo:
+ self, update: UpdateStreamRequest
+ ) -> EgressInfo:
return await self._client.request(
SVC,
"UpdateStream",
update,
self._auth_header(VideoGrants(room_record=True)),
- proto_egress.EgressInfo,
+ EgressInfo,
)
async def list_egress(
- self, list: proto_egress.ListEgressRequest
- ) -> proto_egress.ListEgressResponse:
+ self, list: ListEgressRequest
+ ) -> ListEgressResponse:
return await self._client.request(
SVC,
"ListEgress",
list,
self._auth_header(VideoGrants(room_record=True)),
- proto_egress.ListEgressResponse,
+ ListEgressResponse,
)
async def stop_egress(
- self, stop: proto_egress.StopEgressRequest
- ) -> proto_egress.EgressInfo:
+ self, stop: StopEgressRequest
+ ) -> EgressInfo:
return await self._client.request(
SVC,
"StopEgress",
stop,
self._auth_header(VideoGrants(room_record=True)),
- proto_egress.EgressInfo,
+ EgressInfo,
)
diff --git a/livekit-api/livekit/api/ingress_service.py b/livekit-api/livekit/api/ingress_service.py
index abf691ef..45eab6af 100644
--- a/livekit-api/livekit/api/ingress_service.py
+++ b/livekit-api/livekit/api/ingress_service.py
@@ -1,57 +1,69 @@
import aiohttp
-from livekit.protocol import ingress as proto_ingress
+from livekit.protocol.ingress import CreateIngressRequest, IngressInfo, UpdateIngressRequest, ListIngressRequest, DeleteIngressRequest, ListIngressResponse
from ._service import Service
from .access_token import VideoGrants
SVC = "Ingress"
-
+"""@private"""
class IngressService(Service):
+ """Client for LiveKit Ingress Service API
+
+ Recommended way to use this service is via `livekit.api.LiveKitAPI`:
+
+ ```python
+ from livekit import api
+ lkapi = api.LiveKitAPI()
+ ingress = lkapi.ingress
+ ```
+
+ Also see https://docs.livekit.io/home/ingress/overview/
+ """
def __init__(
self, session: aiohttp.ClientSession, url: str, api_key: str, api_secret: str
):
super().__init__(session, url, api_key, api_secret)
async def create_ingress(
- self, create: proto_ingress.CreateIngressRequest
- ) -> proto_ingress.IngressInfo:
+ self, create: CreateIngressRequest
+ ) -> IngressInfo:
return await self._client.request(
SVC,
"CreateIngress",
create,
self._auth_header(VideoGrants(ingress_admin=True)),
- proto_ingress.IngressInfo,
+ IngressInfo,
)
async def update_ingress(
- self, update: proto_ingress.UpdateIngressRequest
- ) -> proto_ingress.IngressInfo:
+ self, update: UpdateIngressRequest
+ ) -> IngressInfo:
return await self._client.request(
SVC,
"UpdateIngress",
update,
self._auth_header(VideoGrants(ingress_admin=True)),
- proto_ingress.IngressInfo,
+ IngressInfo,
)
async def list_ingress(
- self, list: proto_ingress.ListIngressRequest
- ) -> proto_ingress.ListIngressResponse:
+ self, list: ListIngressRequest
+ ) -> ListIngressResponse:
return await self._client.request(
SVC,
"ListIngress",
list,
self._auth_header(VideoGrants(ingress_admin=True)),
- proto_ingress.ListIngressResponse,
+ ListIngressResponse,
)
async def delete_ingress(
- self, delete: proto_ingress.DeleteIngressRequest
- ) -> proto_ingress.IngressInfo:
+ self, delete: DeleteIngressRequest
+ ) -> IngressInfo:
return await self._client.request(
SVC,
"DeleteIngress",
delete,
self._auth_header(VideoGrants(ingress_admin=True)),
- proto_ingress.IngressInfo,
+ IngressInfo,
)
diff --git a/livekit-api/livekit/api/livekit_api.py b/livekit-api/livekit/api/livekit_api.py
index 276f7043..73e38993 100644
--- a/livekit-api/livekit/api/livekit_api.py
+++ b/livekit-api/livekit/api/livekit_api.py
@@ -10,6 +10,8 @@
class LiveKitAPI:
"""LiveKit Server API Client
+
+ This class is the main entrypoint, which exposes all services.
Usage:
@@ -28,6 +30,14 @@ def __init__(
*,
timeout: aiohttp.ClientTimeout = aiohttp.ClientTimeout(total=60), # 60 seconds
):
+ """Create a new LiveKitAPI instance.
+
+ Args:
+ url: LiveKit server URL (read from `LIVEKIT_URL` environment variable if not provided)
+ api_key: API key (read from `LIVEKIT_API_KEY` environment variable if not provided)
+ api_secret: API secret (read from `LIVEKIT_API_SECRET` environment variable if not provided)
+ timeout: Request timeout (default: 60 seconds)
+ """
url = url or os.getenv("LIVEKIT_URL")
api_key = api_key or os.getenv("LIVEKIT_API_KEY")
api_secret = api_secret or os.getenv("LIVEKIT_API_SECRET")
@@ -49,28 +59,39 @@ def __init__(
@property
def agent_dispatch(self) -> AgentDispatchService:
- """See :class:`AgentDispatchService`"""
+ """Instance of the AgentDispatchService
+
+ See `livekit.api.agent_dispatch_service.AgentDispatchService`"""
return self._agent_dispatch
@property
def room(self) -> RoomService:
- """See :class:`RoomService`"""
+ """Instance of the RoomService
+
+ See `livekit.api.room_service.RoomService`"""
return self._room
@property
def ingress(self) -> IngressService:
- """See :class:`IngressService`"""
+ """Instance of the IngressService
+
+ See `livekit.api.ingress_service.IngressService`"""
return self._ingress
@property
def egress(self) -> EgressService:
- """See :class:`EgressService`"""
+ """Instance of the EgressService
+
+ See `livekit.api.egress_service.EgressService`"""
return self._egress
@property
def sip(self) -> SipService:
- """See: :class:`SipService`"""
+ """Instance of the SipService
+
+ See `livekit.api.sip_service.SipService`"""
return self._sip
async def aclose(self):
+ """@private"""
await self._session.close()
diff --git a/livekit-api/livekit/api/room_service.py b/livekit-api/livekit/api/room_service.py
index 18cd9257..0ef4e110 100644
--- a/livekit-api/livekit/api/room_service.py
+++ b/livekit-api/livekit/api/room_service.py
@@ -1,31 +1,25 @@
import aiohttp
-from livekit.protocol.room import (
- CreateRoomRequest,
- ListRoomsRequest,
- DeleteRoomRequest,
- ListRoomsResponse,
- DeleteRoomResponse,
- ListParticipantsRequest,
- ListParticipantsResponse,
- RoomParticipantIdentity,
- MuteRoomTrackRequest,
- MuteRoomTrackResponse,
- UpdateParticipantRequest,
- UpdateSubscriptionsRequest,
- SendDataRequest,
- SendDataResponse,
- UpdateRoomMetadataRequest,
- RemoveParticipantResponse,
- UpdateSubscriptionsResponse,
-)
+from livekit.protocol.room import CreateRoomRequest, ListRoomsRequest, DeleteRoomRequest, ListRoomsResponse, DeleteRoomResponse, ListParticipantsRequest, ListParticipantsResponse, RoomParticipantIdentity, MuteRoomTrackRequest, MuteRoomTrackResponse, UpdateParticipantRequest, UpdateSubscriptionsRequest, SendDataRequest, SendDataResponse, UpdateRoomMetadataRequest, RemoveParticipantResponse, UpdateSubscriptionsResponse
from livekit.protocol.models import Room, ParticipantInfo
from ._service import Service
from .access_token import VideoGrants
SVC = "RoomService"
-
+"""@private"""
class RoomService(Service):
+ """Client for LiveKit RoomService API
+
+ Recommended way to use this service is via `livekit.api.LiveKitAPI`:
+
+ ```python
+ from livekit import api
+ lkapi = api.LiveKitAPI()
+ room_service = lkapi.room
+ ```
+
+ Also see https://docs.livekit.io/home/server/managing-rooms/ and https://docs.livekit.io/home/server/managing-participants/
+ """
def __init__(
self, session: aiohttp.ClientSession, url: str, api_key: str, api_secret: str
):
diff --git a/livekit-api/livekit/api/sip_service.py b/livekit-api/livekit/api/sip_service.py
index 6d3f122e..af8c1329 100644
--- a/livekit-api/livekit/api/sip_service.py
+++ b/livekit-api/livekit/api/sip_service.py
@@ -1,141 +1,151 @@
import aiohttp
-from livekit.protocol import sip as proto_sip
+from livekit.protocol.sip import CreateSIPTrunkRequest, SIPTrunkInfo, CreateSIPInboundTrunkRequest, SIPInboundTrunkInfo, CreateSIPOutboundTrunkRequest, SIPOutboundTrunkInfo, ListSIPTrunkRequest, ListSIPTrunkResponse, ListSIPInboundTrunkRequest, ListSIPInboundTrunkResponse, ListSIPOutboundTrunkRequest, ListSIPOutboundTrunkResponse, DeleteSIPTrunkRequest, SIPDispatchRuleInfo, CreateSIPDispatchRuleRequest, ListSIPDispatchRuleRequest, ListSIPDispatchRuleResponse, DeleteSIPDispatchRuleRequest, CreateSIPParticipantRequest, TransferSIPParticipantRequest, SIPParticipantInfo
from ._service import Service
from .access_token import VideoGrants, SIPGrants
SVC = "SIP"
-
+"""@private"""
class SipService(Service):
+ """Client for LiveKit SIP Service API
+
+ Recommended way to use this service is via `livekit.api.LiveKitAPI`:
+
+ ```python
+ from livekit import api
+ lkapi = api.LiveKitAPI()
+ sip_service = lkapi.sip
+ ```
+ """
def __init__(
self, session: aiohttp.ClientSession, url: str, api_key: str, api_secret: str
):
super().__init__(session, url, api_key, api_secret)
async def create_sip_trunk(
- self, create: proto_sip.CreateSIPTrunkRequest
- ) -> proto_sip.SIPTrunkInfo:
+ self, create: CreateSIPTrunkRequest
+ ) -> SIPTrunkInfo:
return await self._client.request(
SVC,
"CreateSIPTrunk",
create,
self._auth_header(VideoGrants(), sip=SIPGrants(admin=True)),
- proto_sip.SIPTrunkInfo,
+ SIPTrunkInfo,
)
async def create_sip_inbound_trunk(
- self, create: proto_sip.CreateSIPInboundTrunkRequest
- ) -> proto_sip.SIPInboundTrunkInfo:
+ self, create: CreateSIPInboundTrunkRequest
+ ) -> SIPInboundTrunkInfo:
return await self._client.request(
SVC,
"CreateSIPInboundTrunk",
create,
self._auth_header(VideoGrants(), sip=SIPGrants(admin=True)),
- proto_sip.SIPInboundTrunkInfo,
+ SIPInboundTrunkInfo,
)
async def create_sip_outbound_trunk(
- self, create: proto_sip.CreateSIPOutboundTrunkRequest
- ) -> proto_sip.SIPOutboundTrunkInfo:
+ self, create: CreateSIPOutboundTrunkRequest
+ ) -> SIPOutboundTrunkInfo:
return await self._client.request(
SVC,
"CreateSIPOutboundTrunk",
create,
self._auth_header(VideoGrants(), sip=SIPGrants(admin=True)),
- proto_sip.SIPOutboundTrunkInfo,
+ SIPOutboundTrunkInfo,
)
async def list_sip_trunk(
- self, list: proto_sip.ListSIPTrunkRequest
- ) -> proto_sip.ListSIPTrunkResponse:
+ self, list: ListSIPTrunkRequest
+ ) -> ListSIPTrunkResponse:
return await self._client.request(
SVC,
"ListSIPTrunk",
list,
self._auth_header(VideoGrants(), sip=SIPGrants(admin=True)),
- proto_sip.ListSIPTrunkResponse,
+ ListSIPTrunkResponse,
)
async def list_sip_inbound_trunk(
- self, list: proto_sip.ListSIPInboundTrunkRequest
- ) -> proto_sip.ListSIPInboundTrunkResponse:
+ self, list: ListSIPInboundTrunkRequest
+ ) -> ListSIPInboundTrunkResponse:
return await self._client.request(
SVC,
"ListSIPInboundTrunk",
list,
self._auth_header(VideoGrants(), sip=SIPGrants(admin=True)),
- proto_sip.ListSIPInboundTrunkResponse,
+ ListSIPInboundTrunkResponse,
)
async def list_sip_outbound_trunk(
- self, list: proto_sip.ListSIPOutboundTrunkRequest
- ) -> proto_sip.ListSIPOutboundTrunkResponse:
+ self, list: ListSIPOutboundTrunkRequest
+ ) -> ListSIPOutboundTrunkResponse:
return await self._client.request(
SVC,
"ListSIPOutboundTrunk",
list,
self._auth_header(VideoGrants(), sip=SIPGrants(admin=True)),
- proto_sip.ListSIPOutboundTrunkResponse,
+ ListSIPOutboundTrunkResponse,
)
async def delete_sip_trunk(
- self, delete: proto_sip.DeleteSIPTrunkRequest
- ) -> proto_sip.SIPTrunkInfo:
+ self, delete: DeleteSIPTrunkRequest
+ ) -> SIPTrunkInfo:
return await self._client.request(
SVC,
"DeleteSIPTrunk",
delete,
self._auth_header(VideoGrants(), sip=SIPGrants(admin=True)),
- proto_sip.SIPTrunkInfo,
+ SIPTrunkInfo,
)
async def create_sip_dispatch_rule(
- self, create: proto_sip.CreateSIPDispatchRuleRequest
- ) -> proto_sip.SIPDispatchRuleInfo:
+ self, create: CreateSIPDispatchRuleRequest
+ ) -> SIPDispatchRuleInfo:
return await self._client.request(
SVC,
"CreateSIPDispatchRule",
create,
self._auth_header(VideoGrants(), sip=SIPGrants(admin=True)),
- proto_sip.SIPDispatchRuleInfo,
+ SIPDispatchRuleInfo,
)
async def list_sip_dispatch_rule(
- self, list: proto_sip.ListSIPDispatchRuleRequest
- ) -> proto_sip.ListSIPDispatchRuleResponse:
+ self, list: ListSIPDispatchRuleRequest
+ ) -> ListSIPDispatchRuleResponse:
return await self._client.request(
SVC,
"ListSIPDispatchRule",
list,
self._auth_header(VideoGrants(), sip=SIPGrants(admin=True)),
- proto_sip.ListSIPDispatchRuleResponse,
+ ListSIPDispatchRuleResponse,
)
async def delete_sip_dispatch_rule(
- self, delete: proto_sip.DeleteSIPDispatchRuleRequest
- ) -> proto_sip.SIPDispatchRuleInfo:
+ self, delete: DeleteSIPDispatchRuleRequest
+ ) -> SIPDispatchRuleInfo:
return await self._client.request(
SVC,
"DeleteSIPDispatchRule",
delete,
self._auth_header(VideoGrants(), sip=SIPGrants(admin=True)),
- proto_sip.SIPDispatchRuleInfo,
+ SIPDispatchRuleInfo,
)
async def create_sip_participant(
- self, create: proto_sip.CreateSIPParticipantRequest
- ) -> proto_sip.SIPParticipantInfo:
+ self, create: CreateSIPParticipantRequest
+ ) -> SIPParticipantInfo:
return await self._client.request(
SVC,
"CreateSIPParticipant",
create,
self._auth_header(VideoGrants(), sip=SIPGrants(call=True)),
- proto_sip.SIPParticipantInfo,
+ SIPParticipantInfo,
)
async def transfer_sip_participant(
- self, transfer: proto_sip.TransferSIPParticipantRequest
- ) -> proto_sip.SIPParticipantInfo:
+ self, transfer: TransferSIPParticipantRequest
+ ) -> SIPParticipantInfo:
return await self._client.request(
SVC,
"TransferSIPParticipant",
@@ -147,5 +157,5 @@ async def transfer_sip_participant(
),
sip=SIPGrants(call=True),
),
- proto_sip.SIPParticipantInfo,
+ SIPParticipantInfo,
)
diff --git a/livekit-api/livekit/api/webhook.py b/livekit-api/livekit/api/webhook.py
index 5dedf048..9f500637 100644
--- a/livekit-api/livekit/api/webhook.py
+++ b/livekit-api/livekit/api/webhook.py
@@ -1,5 +1,5 @@
from .access_token import TokenVerifier
-from livekit.protocol import webhook as proto_webhook
+from livekit.protocol.webhook import WebhookEvent
from google.protobuf.json_format import Parse
import hashlib
import base64
@@ -9,7 +9,7 @@ class WebhookReceiver:
def __init__(self, token_verifier: TokenVerifier):
self._verifier = token_verifier
- def receive(self, body: str, auth_token: str) -> proto_webhook.WebhookEvent:
+ def receive(self, body: str, auth_token: str) -> WebhookEvent:
claims = self._verifier.verify(auth_token)
if claims.sha256 is None:
raise Exception("sha256 was not found in the token")
@@ -20,4 +20,4 @@ def receive(self, body: str, auth_token: str) -> proto_webhook.WebhookEvent:
if body_hash != claims_hash:
raise Exception("hash mismatch")
- return Parse(body, proto_webhook.WebhookEvent(), ignore_unknown_fields=True)
+ return Parse(body, WebhookEvent(), ignore_unknown_fields=True)
From ec3eab44878b25d316e33358f5e43bdfdc1b68b5 Mon Sep 17 00:00:00 2001
From: Ben Cherry
Date: Wed, 13 Nov 2024 11:10:42 -0800
Subject: [PATCH 03/11] gi
---
.gitignore | 4 +-
docs/index.html | 7 -
docs/livekit/api.html | 2252 ------------------
docs/livekit/api/_service.html | 390 ---
docs/livekit/api/access_token.html | 1942 ---------------
docs/livekit/api/agent_dispatch_service.html | 743 ------
docs/livekit/api/egress_service.html | 810 -------
docs/livekit/api/ingress_service.html | 550 -----
docs/livekit/api/livekit_api.html | 665 ------
docs/livekit/api/room_service.html | 882 -------
docs/livekit/api/sip_service.html | 978 --------
docs/livekit/api/twirp_client.html | 952 --------
docs/livekit/api/version.html | 242 --
docs/livekit/api/webhook.html | 393 ---
docs/search.js | 46 -
15 files changed, 3 insertions(+), 10853 deletions(-)
delete mode 100644 docs/index.html
delete mode 100644 docs/livekit/api.html
delete mode 100644 docs/livekit/api/_service.html
delete mode 100644 docs/livekit/api/access_token.html
delete mode 100644 docs/livekit/api/agent_dispatch_service.html
delete mode 100644 docs/livekit/api/egress_service.html
delete mode 100644 docs/livekit/api/ingress_service.html
delete mode 100644 docs/livekit/api/livekit_api.html
delete mode 100644 docs/livekit/api/room_service.html
delete mode 100644 docs/livekit/api/sip_service.html
delete mode 100644 docs/livekit/api/twirp_client.html
delete mode 100644 docs/livekit/api/version.html
delete mode 100644 docs/livekit/api/webhook.html
delete mode 100644 docs/search.js
diff --git a/.gitignore b/.gitignore
index 1756b987..ea0eda1f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -162,4 +162,6 @@ cython_debug/
# vscode project settings
.vscode
-.DS_Store
\ No newline at end of file
+.DS_Store
+
+docs
\ No newline at end of file
diff --git a/docs/index.html b/docs/index.html
deleted file mode 100644
index b3d77804..00000000
--- a/docs/index.html
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/docs/livekit/api.html b/docs/livekit/api.html
deleted file mode 100644
index aa95c10c..00000000
--- a/docs/livekit/api.html
+++ /dev/null
@@ -1,2252 +0,0 @@
-
-
-
-
-
-
- livekit.api API documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-livekit.api
-
-
-
-
-
- View Source
-
- 1 # Copyright 2023 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.
-14
-15 """LiveKit Server APIs for Python
-16
-17 Manage rooms, participants, egress, ingress, SIP, and Agent dispatch.
-18
-19 Primary entry point is `LiveKitAPI`.
-20
-21 See https://docs.livekit.io/reference/server/server-apis for more information.
-22 """
-23
-24 # flake8: noqa
-25 # re-export packages from protocol
-26 from livekit.protocol.agent_dispatch import *
-27 from livekit.protocol.agent import *
-28 from livekit.protocol.egress import *
-29 from livekit.protocol.ingress import *
-30 from livekit.protocol.models import *
-31 from livekit.protocol.room import *
-32 from livekit.protocol.webhook import *
-33 from livekit.protocol.sip import *
-34
-35 from .twirp_client import TwirpError , TwirpErrorCode
-36 from .livekit_api import LiveKitAPI
-37 from .access_token import VideoGrants , SIPGrants , AccessToken , TokenVerifier
-38 from .webhook import WebhookReceiver
-39 from .version import __version__
-40
-41 __all__ = [
-42 "LiveKitAPI" ,
-43 "room_service" ,
-44 "egress_service" ,
-45 "ingress_service" ,
-46 "sip_service" ,
-47 "agent_dispatch_service" ,
-48 "VideoGrants" ,
-49 "SIPGrants" ,
-50 "AccessToken" ,
-51 "TokenVerifier" ,
-52 "WebhookReceiver" ,
-53 "TwirpError" ,
-54 "TwirpErrorCode" ,
-55 ]
-
-
-
-
-
-
-
-
- class
- LiveKitAPI :
-
- View Source
-
-
-
- 12 class LiveKitAPI :
-13 """LiveKit Server API Client
-14
-15 This class is the main entrypoint, which exposes all services.
-16
-17 Usage:
-18
-19 ```python
-20 from livekit import api
-21 lkapi = api.LiveKitAPI()
-22 rooms = await lkapi.room.list_rooms(api.proto_room.ListRoomsRequest(names=['test-room']))
-23 ```
-24 """
-25
-26 def __init__ (
-27 self ,
-28 url : Optional [ str ] = None ,
-29 api_key : Optional [ str ] = None ,
-30 api_secret : Optional [ str ] = None ,
-31 * ,
-32 timeout : aiohttp . ClientTimeout = aiohttp . ClientTimeout ( total = 60 ), # 60 seconds
-33 ):
-34 """Create a new LiveKitAPI instance.
-35
-36 Args:
-37 url: LiveKit server URL (read from `LIVEKIT_URL` environment variable if not provided)
-38 api_key: API key (read from `LIVEKIT_API_KEY` environment variable if not provided)
-39 api_secret: API secret (read from `LIVEKIT_API_SECRET` environment variable if not provided)
-40 timeout: Request timeout (default: 60 seconds)
-41 """
-42 url = url or os . getenv ( "LIVEKIT_URL" )
-43 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
-44 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
-45
-46 if not url :
-47 raise ValueError ( "url must be set" )
-48
-49 if not api_key or not api_secret :
-50 raise ValueError ( "api_key and api_secret must be set" )
-51
-52 self . _session = aiohttp . ClientSession ( timeout = timeout )
-53 self . _room = RoomService ( self . _session , url , api_key , api_secret )
-54 self . _ingress = IngressService ( self . _session , url , api_key , api_secret )
-55 self . _egress = EgressService ( self . _session , url , api_key , api_secret )
-56 self . _sip = SipService ( self . _session , url , api_key , api_secret )
-57 self . _agent_dispatch = AgentDispatchService (
-58 self . _session , url , api_key , api_secret
-59 )
-60
-61 @property
-62 def agent_dispatch ( self ) -> AgentDispatchService :
-63 """Instance of the AgentDispatchService
-64
-65 See `livekit.api.agent_dispatch_service.AgentDispatchService`"""
-66 return self . _agent_dispatch
-67
-68 @property
-69 def room ( self ) -> RoomService :
-70 """Instance of the RoomService
-71
-72 See `livekit.api.room_service.RoomService`"""
-73 return self . _room
-74
-75 @property
-76 def ingress ( self ) -> IngressService :
-77 """Instance of the IngressService
-78
-79 See `livekit.api.ingress_service.IngressService`"""
-80 return self . _ingress
-81
-82 @property
-83 def egress ( self ) -> EgressService :
-84 """Instance of the EgressService
-85
-86 See `livekit.api.egress_service.EgressService`"""
-87 return self . _egress
-88
-89 @property
-90 def sip ( self ) -> SipService :
-91 """Instance of the SipService
-92
-93 See `livekit.api.sip_service.SipService`"""
-94 return self . _sip
-95
-96 async def aclose ( self ):
-97 """@private"""
-98 await self . _session . close ()
-
-
-
- LiveKit Server API Client
-
-
This class is the main entrypoint, which exposes all services.
-
-
Usage:
-
-
-
from livekit import api
-lkapi = api . LiveKitAPI ()
-rooms = await lkapi . room . list_rooms ( api . proto_room . ListRoomsRequest ( names = [ 'test-room' ]))
-
-
-
-
-
-
-
-
-
- LiveKitAPI ( url : Optional [ str ] = None , api_key : Optional [ str ] = None , api_secret : Optional [ str ] = None , * , timeout : aiohttp . client . ClientTimeout = ClientTimeout ( total = 60 , connect = None , sock_read = None , sock_connect = None , ceil_threshold = 5 ) )
-
- View Source
-
-
-
-
26 def __init__ (
-27 self ,
-28 url : Optional [ str ] = None ,
-29 api_key : Optional [ str ] = None ,
-30 api_secret : Optional [ str ] = None ,
-31 * ,
-32 timeout : aiohttp . ClientTimeout = aiohttp . ClientTimeout ( total = 60 ), # 60 seconds
-33 ):
-34 """Create a new LiveKitAPI instance.
-35
-36 Args:
-37 url: LiveKit server URL (read from `LIVEKIT_URL` environment variable if not provided)
-38 api_key: API key (read from `LIVEKIT_API_KEY` environment variable if not provided)
-39 api_secret: API secret (read from `LIVEKIT_API_SECRET` environment variable if not provided)
-40 timeout: Request timeout (default: 60 seconds)
-41 """
-42 url = url or os . getenv ( "LIVEKIT_URL" )
-43 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
-44 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
-45
-46 if not url :
-47 raise ValueError ( "url must be set" )
-48
-49 if not api_key or not api_secret :
-50 raise ValueError ( "api_key and api_secret must be set" )
-51
-52 self . _session = aiohttp . ClientSession ( timeout = timeout )
-53 self . _room = RoomService ( self . _session , url , api_key , api_secret )
-54 self . _ingress = IngressService ( self . _session , url , api_key , api_secret )
-55 self . _egress = EgressService ( self . _session , url , api_key , api_secret )
-56 self . _sip = SipService ( self . _session , url , api_key , api_secret )
-57 self . _agent_dispatch = AgentDispatchService (
-58 self . _session , url , api_key , api_secret
-59 )
-
-
-
-
Create a new LiveKitAPI instance.
-
-
Arguments:
-
-
-url: LiveKit server URL (read from LIVEKIT_URL environment variable if not provided)
-api_key: API key (read from LIVEKIT_API_KEY environment variable if not provided)
-api_secret: API secret (read from LIVEKIT_API_SECRET environment variable if not provided)
-timeout: Request timeout (default: 60 seconds)
-
-
-
-
-
-
-
-
-
-
61 @property
-62 def agent_dispatch ( self ) -> AgentDispatchService :
-63 """Instance of the AgentDispatchService
-64
-65 See `livekit.api.agent_dispatch_service.AgentDispatchService`"""
-66 return self . _agent_dispatch
-
-
-
-
-
-
-
-
-
-
-
-
68 @property
-69 def room ( self ) -> RoomService :
-70 """Instance of the RoomService
-71
-72 See `livekit.api.room_service.RoomService`"""
-73 return self . _room
-
-
-
-
-
-
-
-
-
-
-
-
75 @property
-76 def ingress ( self ) -> IngressService :
-77 """Instance of the IngressService
-78
-79 See `livekit.api.ingress_service.IngressService`"""
-80 return self . _ingress
-
-
-
-
-
-
-
-
-
-
-
-
82 @property
-83 def egress ( self ) -> EgressService :
-84 """Instance of the EgressService
-85
-86 See `livekit.api.egress_service.EgressService`"""
-87 return self . _egress
-
-
-
-
-
-
-
-
-
-
-
-
89 @property
-90 def sip ( self ) -> SipService :
-91 """Instance of the SipService
-92
-93 See `livekit.api.sip_service.SipService`"""
-94 return self . _sip
-
-
-
-
-
-
-
-
-
-
-
-
@dataclasses.dataclass
-
-
class
-
VideoGrants :
-
-
View Source
-
-
-
- 31 @dataclasses . dataclass
-32 class VideoGrants :
-33 # actions on rooms
-34 room_create : Optional [ bool ] = None
-35 room_list : Optional [ bool ] = None
-36 room_record : Optional [ bool ] = None
-37
-38 # actions on a particular room
-39 room_admin : Optional [ bool ] = None
-40 room_join : Optional [ bool ] = None
-41 room : str = ""
-42
-43 # permissions within a room
-44 can_publish : bool = True
-45 can_subscribe : bool = True
-46 can_publish_data : bool = True
-47
-48 # TrackSource types that a participant may publish.
-49 # When set, it supersedes CanPublish. Only sources explicitly set here can be
-50 # published
-51 can_publish_sources : Optional [ List [ str ]] = None
-52
-53 # by default, a participant is not allowed to update its own metadata
-54 can_update_own_metadata : Optional [ bool ] = None
-55
-56 # actions on ingresses
-57 ingress_admin : Optional [ bool ] = None # applies to all ingress
-58
-59 # participant is not visible to other participants (useful when making bots)
-60 hidden : Optional [ bool ] = None
-61
-62 # [deprecated] indicates to the room that current participant is a recorder
-63 recorder : Optional [ bool ] = None
-64
-65 # indicates that the holder can register as an Agent framework worker
-66 agent : Optional [ bool ] = None
-
-
-
-
-
-
-
-
- VideoGrants ( room_create : Optional [ bool ] = None , room_list : Optional [ bool ] = None , room_record : Optional [ bool ] = None , room_admin : Optional [ bool ] = None , room_join : Optional [ bool ] = None , room : str = '' , can_publish : bool = True , can_subscribe : bool = True , can_publish_data : bool = True , can_publish_sources : Optional [ List [ str ]] = None , can_update_own_metadata : Optional [ bool ] = None , ingress_admin : Optional [ bool ] = None , hidden : Optional [ bool ] = None , recorder : Optional [ bool ] = None , agent : Optional [ bool ] = None )
-
-
-
-
-
-
-
-
-
-
- room_create : Optional[bool] =
-None
-
-
-
-
-
-
-
-
-
-
- room_list : Optional[bool] =
-None
-
-
-
-
-
-
-
-
-
-
- room_record : Optional[bool] =
-None
-
-
-
-
-
-
-
-
-
-
- room_admin : Optional[bool] =
-None
-
-
-
-
-
-
-
-
-
-
- room_join : Optional[bool] =
-None
-
-
-
-
-
-
-
-
-
-
- room : str =
-''
-
-
-
-
-
-
-
-
-
-
- can_publish : bool =
-True
-
-
-
-
-
-
-
-
-
-
- can_subscribe : bool =
-True
-
-
-
-
-
-
-
-
-
-
- can_publish_data : bool =
-True
-
-
-
-
-
-
-
-
-
-
- can_publish_sources : Optional[List[str]] =
-None
-
-
-
-
-
-
-
-
-
-
-
- ingress_admin : Optional[bool] =
-None
-
-
-
-
-
-
-
-
-
-
- hidden : Optional[bool] =
-None
-
-
-
-
-
-
-
-
-
-
- recorder : Optional[bool] =
-None
-
-
-
-
-
-
-
-
-
-
- agent : Optional[bool] =
-None
-
-
-
-
-
-
-
-
-
-
-
-
-
@dataclasses.dataclass
-
-
class
-
SIPGrants :
-
-
View Source
-
-
-
- 69 @dataclasses . dataclass
-70 class SIPGrants :
-71 # manage sip resources
-72 admin : bool = False
-73 # make outbound calls
-74 call : bool = False
-
-
-
-
-
-
-
-
- SIPGrants (admin : bool = False , call : bool = False )
-
-
-
-
-
-
-
-
-
-
- admin : bool =
-False
-
-
-
-
-
-
-
-
-
-
- call : bool =
-False
-
-
-
-
-
-
-
-
-
-
-
-
-
- class
- AccessToken :
-
- View Source
-
-
-
- 105 class AccessToken :
-106 ParticipantKind = Literal [ "standard" , "egress" , "ingress" , "sip" , "agent" ]
-107
-108 def __init__ (
-109 self ,
-110 api_key : Optional [ str ] = None ,
-111 api_secret : Optional [ str ] = None ,
-112 ) -> None :
-113 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
-114 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
-115
-116 if not api_key or not api_secret :
-117 raise ValueError ( "api_key and api_secret must be set" )
-118
-119 self . api_key = api_key # iss
-120 self . api_secret = api_secret
-121 self . claims = Claims ()
-122
-123 # default jwt claims
-124 self . identity = "" # sub
-125 self . ttl = DEFAULT_TTL # exp
-126
-127 def with_ttl ( self , ttl : datetime . timedelta ) -> "AccessToken" :
-128 self . ttl = ttl
-129 return self
-130
-131 def with_grants ( self , grants : VideoGrants ) -> "AccessToken" :
-132 self . claims . video = grants
-133 return self
-134
-135 def with_sip_grants ( self , grants : SIPGrants ) -> "AccessToken" :
-136 self . claims . sip = grants
-137 return self
-138
-139 def with_identity ( self , identity : str ) -> "AccessToken" :
-140 self . identity = identity
-141 return self
-142
-143 def with_kind ( self , kind : ParticipantKind ) -> "AccessToken" :
-144 self . claims . kind = kind
-145 return self
-146
-147 def with_name ( self , name : str ) -> "AccessToken" :
-148 self . claims . name = name
-149 return self
-150
-151 def with_metadata ( self , metadata : str ) -> "AccessToken" :
-152 self . claims . metadata = metadata
-153 return self
-154
-155 def with_attributes ( self , attributes : dict [ str , str ]) -> "AccessToken" :
-156 self . claims . attributes = attributes
-157 return self
-158
-159 def with_sha256 ( self , sha256 : str ) -> "AccessToken" :
-160 self . claims . sha256 = sha256
-161 return self
-162
-163 def with_room_preset ( self , preset : str ) -> "AccessToken" :
-164 self . claims . room_preset = preset
-165 return self
-166
-167 def with_room_config ( self , config : RoomConfiguration ) -> "AccessToken" :
-168 self . claims . room_config = config
-169 return self
-170
-171 def to_jwt ( self ) -> str :
-172 video = self . claims . video
-173 if video and video . room_join and ( not self . identity or not video . room ):
-174 raise ValueError ( "identity and room must be set when joining a room" )
-175
-176 # we want to exclude None values from the token
-177 jwt_claims = self . claims . asdict ()
-178 jwt_claims . update (
-179 {
-180 "sub" : self . identity ,
-181 "iss" : self . api_key ,
-182 "nbf" : calendar . timegm (
-183 datetime . datetime . now ( datetime . timezone . utc ) . utctimetuple ()
-184 ),
-185 "exp" : calendar . timegm (
-186 (
-187 datetime . datetime . now ( datetime . timezone . utc ) + self . ttl
-188 ) . utctimetuple ()
-189 ),
-190 }
-191 )
-192 return jwt . encode ( jwt_claims , self . api_secret , algorithm = "HS256" )
-
-
-
-
-
-
-
-
-
- AccessToken (api_key : Optional [ str ] = None , api_secret : Optional [ str ] = None )
-
- View Source
-
-
-
-
108 def __init__ (
-109 self ,
-110 api_key : Optional [ str ] = None ,
-111 api_secret : Optional [ str ] = None ,
-112 ) -> None :
-113 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
-114 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
-115
-116 if not api_key or not api_secret :
-117 raise ValueError ( "api_key and api_secret must be set" )
-118
-119 self . api_key = api_key # iss
-120 self . api_secret = api_secret
-121 self . claims = Claims ()
-122
-123 # default jwt claims
-124 self . identity = "" # sub
-125 self . ttl = DEFAULT_TTL # exp
-
-
-
-
-
-
-
-
- ParticipantKind =
-typing.Literal['standard', 'egress', 'ingress', 'sip', 'agent']
-
-
-
-
-
-
-
-
-
-
- api_key
-
-
-
-
-
-
-
-
-
-
- api_secret
-
-
-
-
-
-
-
-
-
-
- claims
-
-
-
-
-
-
-
-
-
-
- identity
-
-
-
-
-
-
-
-
-
-
-
-
-
-
def
-
with_ttl (self , ttl : datetime . timedelta ) -> AccessToken :
-
-
View Source
-
-
-
-
127 def with_ttl ( self , ttl : datetime . timedelta ) -> "AccessToken" :
-128 self . ttl = ttl
-129 return self
-
-
-
-
-
-
-
-
-
-
-
131 def with_grants ( self , grants : VideoGrants ) -> "AccessToken" :
-132 self . claims . video = grants
-133 return self
-
-
-
-
-
-
-
-
-
-
-
135 def with_sip_grants ( self , grants : SIPGrants ) -> "AccessToken" :
-136 self . claims . sip = grants
-137 return self
-
-
-
-
-
-
-
-
-
-
-
def
-
with_identity (self , identity : str ) -> AccessToken :
-
-
View Source
-
-
-
-
139 def with_identity ( self , identity : str ) -> "AccessToken" :
-140 self . identity = identity
-141 return self
-
-
-
-
-
-
-
-
-
-
-
def
-
with_kind ( self , kind : Literal [ 'standard' , 'egress' , 'ingress' , 'sip' , 'agent' ] ) -> AccessToken :
-
-
View Source
-
-
-
-
143 def with_kind ( self , kind : ParticipantKind ) -> "AccessToken" :
-144 self . claims . kind = kind
-145 return self
-
-
-
-
-
-
-
-
-
-
-
def
-
with_name (self , name : str ) -> AccessToken :
-
-
View Source
-
-
-
-
147 def with_name ( self , name : str ) -> "AccessToken" :
-148 self . claims . name = name
-149 return self
-
-
-
-
-
-
-
-
-
-
-
-
def
-
with_attributes (self , attributes : dict [ str , str ] ) -> AccessToken :
-
-
View Source
-
-
-
-
155 def with_attributes ( self , attributes : dict [ str , str ]) -> "AccessToken" :
-156 self . claims . attributes = attributes
-157 return self
-
-
-
-
-
-
-
-
-
-
-
def
-
with_sha256 (self , sha256 : str ) -> AccessToken :
-
-
View Source
-
-
-
-
159 def with_sha256 ( self , sha256 : str ) -> "AccessToken" :
-160 self . claims . sha256 = sha256
-161 return self
-
-
-
-
-
-
-
-
-
-
-
def
-
with_room_preset (self , preset : str ) -> AccessToken :
-
-
View Source
-
-
-
-
163 def with_room_preset ( self , preset : str ) -> "AccessToken" :
-164 self . claims . room_preset = preset
-165 return self
-
-
-
-
-
-
-
-
-
-
-
def
-
with_room_config ( self , config : room . RoomConfiguration ) -> AccessToken :
-
-
View Source
-
-
-
-
167 def with_room_config ( self , config : RoomConfiguration ) -> "AccessToken" :
-168 self . claims . room_config = config
-169 return self
-
-
-
-
-
-
-
-
-
-
- def
- to_jwt (self ) -> str :
-
- View Source
-
-
-
-
171 def to_jwt ( self ) -> str :
-172 video = self . claims . video
-173 if video and video . room_join and ( not self . identity or not video . room ):
-174 raise ValueError ( "identity and room must be set when joining a room" )
-175
-176 # we want to exclude None values from the token
-177 jwt_claims = self . claims . asdict ()
-178 jwt_claims . update (
-179 {
-180 "sub" : self . identity ,
-181 "iss" : self . api_key ,
-182 "nbf" : calendar . timegm (
-183 datetime . datetime . now ( datetime . timezone . utc ) . utctimetuple ()
-184 ),
-185 "exp" : calendar . timegm (
-186 (
-187 datetime . datetime . now ( datetime . timezone . utc ) + self . ttl
-188 ) . utctimetuple ()
-189 ),
-190 }
-191 )
-192 return jwt . encode ( jwt_claims , self . api_secret , algorithm = "HS256" )
-
-
-
-
-
-
-
-
-
-
-
- class
- TokenVerifier :
-
- View Source
-
-
-
- 195 class TokenVerifier :
-196 def __init__ (
-197 self ,
-198 api_key : Optional [ str ] = None ,
-199 api_secret : Optional [ str ] = None ,
-200 * ,
-201 leeway : datetime . timedelta = DEFAULT_LEEWAY ,
-202 ) -> None :
-203 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
-204 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
-205
-206 if not api_key or not api_secret :
-207 raise ValueError ( "api_key and api_secret must be set" )
-208
-209 self . api_key = api_key
-210 self . api_secret = api_secret
-211 self . _leeway = leeway
-212
-213 def verify ( self , token : str ) -> Claims :
-214 claims = jwt . decode (
-215 token ,
-216 self . api_secret ,
-217 issuer = self . api_key ,
-218 algorithms = [ "HS256" ],
-219 leeway = self . _leeway . total_seconds (),
-220 )
-221
-222 video_dict = claims . get ( "video" , dict ())
-223 video_dict = { camel_to_snake ( k ): v for k , v in video_dict . items ()}
-224 video_dict = {
-225 k : v for k , v in video_dict . items () if k in VideoGrants . __dataclass_fields__
-226 }
-227 video = VideoGrants ( ** video_dict )
-228
-229 sip_dict = claims . get ( "sip" , dict ())
-230 sip_dict = { camel_to_snake ( k ): v for k , v in sip_dict . items ()}
-231 sip_dict = {
-232 k : v for k , v in sip_dict . items () if k in SIPGrants . __dataclass_fields__
-233 }
-234 sip = SIPGrants ( ** sip_dict )
-235
-236 grant_claims = Claims (
-237 identity = claims . get ( "sub" , "" ),
-238 name = claims . get ( "name" , "" ),
-239 video = video ,
-240 sip = sip ,
-241 attributes = claims . get ( "attributes" , {}),
-242 metadata = claims . get ( "metadata" , "" ),
-243 sha256 = claims . get ( "sha256" , "" ),
-244 )
-245
-246 if claims . get ( "roomPreset" ):
-247 grant_claims . room_preset = claims . get ( "roomPreset" )
-248 if claims . get ( "roomConfig" ):
-249 grant_claims . room_config = ParseDict (
-250 claims . get ( "roomConfig" ),
-251 RoomConfiguration (),
-252 ignore_unknown_fields = True ,
-253 )
-254
-255 return grant_claims
-
-
-
-
-
-
-
-
-
- TokenVerifier ( api_key : Optional [ str ] = None , api_secret : Optional [ str ] = None , * , leeway : datetime . timedelta = datetime . timedelta ( seconds = 60 ) )
-
- View Source
-
-
-
-
196 def __init__ (
-197 self ,
-198 api_key : Optional [ str ] = None ,
-199 api_secret : Optional [ str ] = None ,
-200 * ,
-201 leeway : datetime . timedelta = DEFAULT_LEEWAY ,
-202 ) -> None :
-203 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
-204 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
-205
-206 if not api_key or not api_secret :
-207 raise ValueError ( "api_key and api_secret must be set" )
-208
-209 self . api_key = api_key
-210 self . api_secret = api_secret
-211 self . _leeway = leeway
-
-
-
-
-
-
-
-
- api_key
-
-
-
-
-
-
-
-
-
-
- api_secret
-
-
-
-
-
-
-
-
-
-
-
-
- def
- verify (self , token : str ) -> livekit . api . access_token . Claims :
-
- View Source
-
-
-
-
213 def verify ( self , token : str ) -> Claims :
-214 claims = jwt . decode (
-215 token ,
-216 self . api_secret ,
-217 issuer = self . api_key ,
-218 algorithms = [ "HS256" ],
-219 leeway = self . _leeway . total_seconds (),
-220 )
-221
-222 video_dict = claims . get ( "video" , dict ())
-223 video_dict = { camel_to_snake ( k ): v for k , v in video_dict . items ()}
-224 video_dict = {
-225 k : v for k , v in video_dict . items () if k in VideoGrants . __dataclass_fields__
-226 }
-227 video = VideoGrants ( ** video_dict )
-228
-229 sip_dict = claims . get ( "sip" , dict ())
-230 sip_dict = { camel_to_snake ( k ): v for k , v in sip_dict . items ()}
-231 sip_dict = {
-232 k : v for k , v in sip_dict . items () if k in SIPGrants . __dataclass_fields__
-233 }
-234 sip = SIPGrants ( ** sip_dict )
-235
-236 grant_claims = Claims (
-237 identity = claims . get ( "sub" , "" ),
-238 name = claims . get ( "name" , "" ),
-239 video = video ,
-240 sip = sip ,
-241 attributes = claims . get ( "attributes" , {}),
-242 metadata = claims . get ( "metadata" , "" ),
-243 sha256 = claims . get ( "sha256" , "" ),
-244 )
-245
-246 if claims . get ( "roomPreset" ):
-247 grant_claims . room_preset = claims . get ( "roomPreset" )
-248 if claims . get ( "roomConfig" ):
-249 grant_claims . room_config = ParseDict (
-250 claims . get ( "roomConfig" ),
-251 RoomConfiguration (),
-252 ignore_unknown_fields = True ,
-253 )
-254
-255 return grant_claims
-
-
-
-
-
-
-
-
-
-
-
- class
- WebhookReceiver :
-
- View Source
-
-
-
- 9 class WebhookReceiver :
-10 def __init__ ( self , token_verifier : TokenVerifier ):
-11 self . _verifier = token_verifier
-12
-13 def receive ( self , body : str , auth_token : str ) -> WebhookEvent :
-14 claims = self . _verifier . verify ( auth_token )
-15 if claims . sha256 is None :
-16 raise Exception ( "sha256 was not found in the token" )
-17
-18 body_hash = hashlib . sha256 ( body . encode ()) . digest ()
-19 claims_hash = base64 . b64decode ( claims . sha256 )
-20
-21 if body_hash != claims_hash :
-22 raise Exception ( "hash mismatch" )
-23
-24 return Parse ( body , WebhookEvent (), ignore_unknown_fields = True )
-
-
-
-
-
-
-
-
-
-
WebhookReceiver (token_verifier : TokenVerifier )
-
-
View Source
-
-
-
-
10 def __init__ ( self , token_verifier : TokenVerifier ):
-11 self . _verifier = token_verifier
-
-
-
-
-
-
-
-
-
-
- def
- receive (self , body : str , auth_token : str ) -> webhook . WebhookEvent :
-
- View Source
-
-
-
-
13 def receive ( self , body : str , auth_token : str ) -> WebhookEvent :
-14 claims = self . _verifier . verify ( auth_token )
-15 if claims . sha256 is None :
-16 raise Exception ( "sha256 was not found in the token" )
-17
-18 body_hash = hashlib . sha256 ( body . encode ()) . digest ()
-19 claims_hash = base64 . b64decode ( claims . sha256 )
-20
-21 if body_hash != claims_hash :
-22 raise Exception ( "hash mismatch" )
-23
-24 return Parse ( body , WebhookEvent (), ignore_unknown_fields = True )
-
-
-
-
-
-
-
-
-
-
-
- class
- TwirpError (builtins.Exception ):
-
- View Source
-
-
-
- 25 class TwirpError ( Exception ):
-26 def __init__ ( self , code : str , msg : str ) -> None :
-27 self . _code = code
-28 self . _msg = msg
-29
-30 @property
-31 def code ( self ) -> str :
-32 return self . _code
-33
-34 @property
-35 def message ( self ) -> str :
-36 return self . _msg
-
-
-
- Common base class for all non-exit exceptions.
-
-
-
-
-
-
-
- TwirpError (code : str , msg : str )
-
- View Source
-
-
-
-
26 def __init__ ( self , code : str , msg : str ) -> None :
-27 self . _code = code
-28 self . _msg = msg
-
-
-
-
-
-
-
-
-
- code : str
-
- View Source
-
-
-
-
30 @property
-31 def code ( self ) -> str :
-32 return self . _code
-
-
-
-
-
-
-
-
-
- message : str
-
- View Source
-
-
-
-
34 @property
-35 def message ( self ) -> str :
-36 return self . _msg
-
-
-
-
-
-
-
-
-
-
-
- class
- TwirpErrorCode :
-
- View Source
-
-
-
- 39 class TwirpErrorCode :
-40 CANCELED = "canceled"
-41 UNKNOWN = "unknown"
-42 INVALID_ARGUMENT = "invalid_argument"
-43 MALFORMED = "malformed"
-44 DEADLINE_EXCEEDED = "deadline_exceeded"
-45 NOT_FOUND = "not_found"
-46 BAD_ROUTE = "bad_route"
-47 ALREADY_EXISTS = "already_exists"
-48 PERMISSION_DENIED = "permission_denied"
-49 UNAUTHENTICATED = "unauthenticated"
-50 RESOURCE_EXHAUSTED = "resource_exhausted"
-51 FAILED_PRECONDITION = "failed_precondition"
-52 ABORTED = "aborted"
-53 OUT_OF_RANGE = "out_of_range"
-54 UNIMPLEMENTED = "unimplemented"
-55 INTERNAL = "internal"
-56 UNAVAILABLE = "unavailable"
-57 DATA_LOSS = "dataloss"
-
-
-
-
-
-
-
- CANCELED =
-'canceled'
-
-
-
-
-
-
-
-
-
-
- UNKNOWN =
-'unknown'
-
-
-
-
-
-
-
-
-
-
- INVALID_ARGUMENT =
-'invalid_argument'
-
-
-
-
-
-
-
-
-
-
-
- DEADLINE_EXCEEDED =
-'deadline_exceeded'
-
-
-
-
-
-
-
-
-
-
- NOT_FOUND =
-'not_found'
-
-
-
-
-
-
-
-
-
-
- BAD_ROUTE =
-'bad_route'
-
-
-
-
-
-
-
-
-
-
- ALREADY_EXISTS =
-'already_exists'
-
-
-
-
-
-
-
-
-
-
- PERMISSION_DENIED =
-'permission_denied'
-
-
-
-
-
-
-
-
-
-
- UNAUTHENTICATED =
-'unauthenticated'
-
-
-
-
-
-
-
-
-
-
- RESOURCE_EXHAUSTED =
-'resource_exhausted'
-
-
-
-
-
-
-
-
-
-
- FAILED_PRECONDITION =
-'failed_precondition'
-
-
-
-
-
-
-
-
-
-
- ABORTED =
-'aborted'
-
-
-
-
-
-
-
-
-
-
- OUT_OF_RANGE =
-'out_of_range'
-
-
-
-
-
-
-
-
-
-
- UNIMPLEMENTED =
-'unimplemented'
-
-
-
-
-
-
-
-
-
-
- INTERNAL =
-'internal'
-
-
-
-
-
-
-
-
-
-
- UNAVAILABLE =
-'unavailable'
-
-
-
-
-
-
-
-
-
-
- DATA_LOSS =
-'dataloss'
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/livekit/api/_service.html b/docs/livekit/api/_service.html
deleted file mode 100644
index 2e377cfa..00000000
--- a/docs/livekit/api/_service.html
+++ /dev/null
@@ -1,390 +0,0 @@
-
-
-
-
-
-
- livekit.api._service API documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-livekit.api ._service
-
-
-
-
- View Source
-
- 1 from __future__ import annotations
- 2
- 3 from typing import Dict
- 4 import aiohttp
- 5 from abc import ABC
- 6 from .twirp_client import TwirpClient
- 7 from .access_token import AccessToken , VideoGrants , SIPGrants
- 8
- 9 AUTHORIZATION = "authorization"
-10
-11
-12 class Service ( ABC ):
-13 def __init__ (
-14 self , session : aiohttp . ClientSession , host : str , api_key : str , api_secret : str
-15 ):
-16 self . _client = TwirpClient ( session , host , "livekit" )
-17 self . api_key = api_key
-18 self . api_secret = api_secret
-19
-20 def _auth_header (
-21 self , grants : VideoGrants | None , sip : SIPGrants | None = None
-22 ) -> Dict [ str , str ]:
-23 tok = AccessToken ( self . api_key , self . api_secret )
-24 if grants :
-25 tok . with_grants ( grants )
-26 if sip is not None :
-27 tok . with_sip_grants ( sip )
-28
-29 token = tok . to_jwt ()
-30
-31 headers = {}
-32 headers [ AUTHORIZATION ] = "Bearer {} " . format ( token )
-33 return headers
-
-
-
-
-
-
- AUTHORIZATION =
-'authorization'
-
-
-
-
-
-
-
-
-
-
-
-
- class
- Service (abc.ABC ):
-
- View Source
-
-
-
- 13 class Service ( ABC ):
-14 def __init__ (
-15 self , session : aiohttp . ClientSession , host : str , api_key : str , api_secret : str
-16 ):
-17 self . _client = TwirpClient ( session , host , "livekit" )
-18 self . api_key = api_key
-19 self . api_secret = api_secret
-20
-21 def _auth_header (
-22 self , grants : VideoGrants | None , sip : SIPGrants | None = None
-23 ) -> Dict [ str , str ]:
-24 tok = AccessToken ( self . api_key , self . api_secret )
-25 if grants :
-26 tok . with_grants ( grants )
-27 if sip is not None :
-28 tok . with_sip_grants ( sip )
-29
-30 token = tok . to_jwt ()
-31
-32 headers = {}
-33 headers [ AUTHORIZATION ] = "Bearer {} " . format ( token )
-34 return headers
-
-
-
- Helper class that provides a standard way to create an ABC using
-inheritance.
-
-
-
-
-
-
-
- Service ( session : aiohttp . client . ClientSession , host : str , api_key : str , api_secret : str )
-
- View Source
-
-
-
-
14 def __init__ (
-15 self , session : aiohttp . ClientSession , host : str , api_key : str , api_secret : str
-16 ):
-17 self . _client = TwirpClient ( session , host , "livekit" )
-18 self . api_key = api_key
-19 self . api_secret = api_secret
-
-
-
-
-
-
-
-
- api_key
-
-
-
-
-
-
-
-
-
-
- api_secret
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/livekit/api/access_token.html b/docs/livekit/api/access_token.html
deleted file mode 100644
index fbb13d90..00000000
--- a/docs/livekit/api/access_token.html
+++ /dev/null
@@ -1,1942 +0,0 @@
-
-
-
-
-
-
- livekit.api.access_token API documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-livekit.api .access_token
-
-
-
-
- View Source
-
- 1 # Copyright 2023 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.
- 14
- 15 import calendar
- 16 import dataclasses
- 17 import re
- 18 import datetime
- 19 import os
- 20 import jwt
- 21 from typing import Optional , List , Literal
- 22 from google.protobuf.json_format import MessageToDict , ParseDict
- 23
- 24 from livekit.protocol.room import RoomConfiguration
- 25
- 26 DEFAULT_TTL = datetime . timedelta ( hours = 6 )
- 27 DEFAULT_LEEWAY = datetime . timedelta ( minutes = 1 )
- 28
- 29
- 30 @dataclasses . dataclass
- 31 class VideoGrants :
- 32 # actions on rooms
- 33 room_create : Optional [ bool ] = None
- 34 room_list : Optional [ bool ] = None
- 35 room_record : Optional [ bool ] = None
- 36
- 37 # actions on a particular room
- 38 room_admin : Optional [ bool ] = None
- 39 room_join : Optional [ bool ] = None
- 40 room : str = ""
- 41
- 42 # permissions within a room
- 43 can_publish : bool = True
- 44 can_subscribe : bool = True
- 45 can_publish_data : bool = True
- 46
- 47 # TrackSource types that a participant may publish.
- 48 # When set, it supersedes CanPublish. Only sources explicitly set here can be
- 49 # published
- 50 can_publish_sources : Optional [ List [ str ]] = None
- 51
- 52 # by default, a participant is not allowed to update its own metadata
- 53 can_update_own_metadata : Optional [ bool ] = None
- 54
- 55 # actions on ingresses
- 56 ingress_admin : Optional [ bool ] = None # applies to all ingress
- 57
- 58 # participant is not visible to other participants (useful when making bots)
- 59 hidden : Optional [ bool ] = None
- 60
- 61 # [deprecated] indicates to the room that current participant is a recorder
- 62 recorder : Optional [ bool ] = None
- 63
- 64 # indicates that the holder can register as an Agent framework worker
- 65 agent : Optional [ bool ] = None
- 66
- 67
- 68 @dataclasses . dataclass
- 69 class SIPGrants :
- 70 # manage sip resources
- 71 admin : bool = False
- 72 # make outbound calls
- 73 call : bool = False
- 74
- 75
- 76 @dataclasses . dataclass
- 77 class Claims :
- 78 identity : str = ""
- 79 name : str = ""
- 80 kind : str = ""
- 81 metadata : str = ""
- 82 video : Optional [ VideoGrants ] = None
- 83 sip : Optional [ SIPGrants ] = None
- 84 attributes : Optional [ dict [ str , str ]] = None
- 85 sha256 : Optional [ str ] = None
- 86 room_preset : Optional [ str ] = None
- 87 room_config : Optional [ RoomConfiguration ] = None
- 88
- 89 def asdict ( self ) -> dict :
- 90 # in order to produce minimal JWT size, exclude None or empty values
- 91 claims = dataclasses . asdict (
- 92 self ,
- 93 dict_factory = lambda items : {
- 94 snake_to_lower_camel ( k ): v
- 95 for k , v in items
- 96 if v is not None and v != ""
- 97 },
- 98 )
- 99 if self . room_config :
-100 claims [ "roomConfig" ] = MessageToDict ( self . room_config )
-101 return claims
-102
-103
-104 class AccessToken :
-105 ParticipantKind = Literal [ "standard" , "egress" , "ingress" , "sip" , "agent" ]
-106
-107 def __init__ (
-108 self ,
-109 api_key : Optional [ str ] = None ,
-110 api_secret : Optional [ str ] = None ,
-111 ) -> None :
-112 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
-113 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
-114
-115 if not api_key or not api_secret :
-116 raise ValueError ( "api_key and api_secret must be set" )
-117
-118 self . api_key = api_key # iss
-119 self . api_secret = api_secret
-120 self . claims = Claims ()
-121
-122 # default jwt claims
-123 self . identity = "" # sub
-124 self . ttl = DEFAULT_TTL # exp
-125
-126 def with_ttl ( self , ttl : datetime . timedelta ) -> "AccessToken" :
-127 self . ttl = ttl
-128 return self
-129
-130 def with_grants ( self , grants : VideoGrants ) -> "AccessToken" :
-131 self . claims . video = grants
-132 return self
-133
-134 def with_sip_grants ( self , grants : SIPGrants ) -> "AccessToken" :
-135 self . claims . sip = grants
-136 return self
-137
-138 def with_identity ( self , identity : str ) -> "AccessToken" :
-139 self . identity = identity
-140 return self
-141
-142 def with_kind ( self , kind : ParticipantKind ) -> "AccessToken" :
-143 self . claims . kind = kind
-144 return self
-145
-146 def with_name ( self , name : str ) -> "AccessToken" :
-147 self . claims . name = name
-148 return self
-149
-150 def with_metadata ( self , metadata : str ) -> "AccessToken" :
-151 self . claims . metadata = metadata
-152 return self
-153
-154 def with_attributes ( self , attributes : dict [ str , str ]) -> "AccessToken" :
-155 self . claims . attributes = attributes
-156 return self
-157
-158 def with_sha256 ( self , sha256 : str ) -> "AccessToken" :
-159 self . claims . sha256 = sha256
-160 return self
-161
-162 def with_room_preset ( self , preset : str ) -> "AccessToken" :
-163 self . claims . room_preset = preset
-164 return self
-165
-166 def with_room_config ( self , config : RoomConfiguration ) -> "AccessToken" :
-167 self . claims . room_config = config
-168 return self
-169
-170 def to_jwt ( self ) -> str :
-171 video = self . claims . video
-172 if video and video . room_join and ( not self . identity or not video . room ):
-173 raise ValueError ( "identity and room must be set when joining a room" )
-174
-175 # we want to exclude None values from the token
-176 jwt_claims = self . claims . asdict ()
-177 jwt_claims . update (
-178 {
-179 "sub" : self . identity ,
-180 "iss" : self . api_key ,
-181 "nbf" : calendar . timegm (
-182 datetime . datetime . now ( datetime . timezone . utc ) . utctimetuple ()
-183 ),
-184 "exp" : calendar . timegm (
-185 (
-186 datetime . datetime . now ( datetime . timezone . utc ) + self . ttl
-187 ) . utctimetuple ()
-188 ),
-189 }
-190 )
-191 return jwt . encode ( jwt_claims , self . api_secret , algorithm = "HS256" )
-192
-193
-194 class TokenVerifier :
-195 def __init__ (
-196 self ,
-197 api_key : Optional [ str ] = None ,
-198 api_secret : Optional [ str ] = None ,
-199 * ,
-200 leeway : datetime . timedelta = DEFAULT_LEEWAY ,
-201 ) -> None :
-202 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
-203 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
-204
-205 if not api_key or not api_secret :
-206 raise ValueError ( "api_key and api_secret must be set" )
-207
-208 self . api_key = api_key
-209 self . api_secret = api_secret
-210 self . _leeway = leeway
-211
-212 def verify ( self , token : str ) -> Claims :
-213 claims = jwt . decode (
-214 token ,
-215 self . api_secret ,
-216 issuer = self . api_key ,
-217 algorithms = [ "HS256" ],
-218 leeway = self . _leeway . total_seconds (),
-219 )
-220
-221 video_dict = claims . get ( "video" , dict ())
-222 video_dict = { camel_to_snake ( k ): v for k , v in video_dict . items ()}
-223 video_dict = {
-224 k : v for k , v in video_dict . items () if k in VideoGrants . __dataclass_fields__
-225 }
-226 video = VideoGrants ( ** video_dict )
-227
-228 sip_dict = claims . get ( "sip" , dict ())
-229 sip_dict = { camel_to_snake ( k ): v for k , v in sip_dict . items ()}
-230 sip_dict = {
-231 k : v for k , v in sip_dict . items () if k in SIPGrants . __dataclass_fields__
-232 }
-233 sip = SIPGrants ( ** sip_dict )
-234
-235 grant_claims = Claims (
-236 identity = claims . get ( "sub" , "" ),
-237 name = claims . get ( "name" , "" ),
-238 video = video ,
-239 sip = sip ,
-240 attributes = claims . get ( "attributes" , {}),
-241 metadata = claims . get ( "metadata" , "" ),
-242 sha256 = claims . get ( "sha256" , "" ),
-243 )
-244
-245 if claims . get ( "roomPreset" ):
-246 grant_claims . room_preset = claims . get ( "roomPreset" )
-247 if claims . get ( "roomConfig" ):
-248 grant_claims . room_config = ParseDict (
-249 claims . get ( "roomConfig" ),
-250 RoomConfiguration (),
-251 ignore_unknown_fields = True ,
-252 )
-253
-254 return grant_claims
-255
-256
-257 def camel_to_snake ( t : str ):
-258 return re . sub ( r "(?<!^)(?=[A-Z])" , "_" , t ) . lower ()
-259
-260
-261 def snake_to_lower_camel ( t : str ):
-262 return "" . join (
-263 word . capitalize () if i else word for i , word in enumerate ( t . split ( "_" ))
-264 )
-
-
-
-
-
-
- DEFAULT_TTL =
-datetime.timedelta(seconds=21600)
-
-
-
-
-
-
-
-
-
-
- DEFAULT_LEEWAY =
-datetime.timedelta(seconds=60)
-
-
-
-
-
-
-
-
-
-
-
-
@dataclasses.dataclass
-
-
class
-
VideoGrants :
-
-
View Source
-
-
-
- 31 @dataclasses . dataclass
-32 class VideoGrants :
-33 # actions on rooms
-34 room_create : Optional [ bool ] = None
-35 room_list : Optional [ bool ] = None
-36 room_record : Optional [ bool ] = None
-37
-38 # actions on a particular room
-39 room_admin : Optional [ bool ] = None
-40 room_join : Optional [ bool ] = None
-41 room : str = ""
-42
-43 # permissions within a room
-44 can_publish : bool = True
-45 can_subscribe : bool = True
-46 can_publish_data : bool = True
-47
-48 # TrackSource types that a participant may publish.
-49 # When set, it supersedes CanPublish. Only sources explicitly set here can be
-50 # published
-51 can_publish_sources : Optional [ List [ str ]] = None
-52
-53 # by default, a participant is not allowed to update its own metadata
-54 can_update_own_metadata : Optional [ bool ] = None
-55
-56 # actions on ingresses
-57 ingress_admin : Optional [ bool ] = None # applies to all ingress
-58
-59 # participant is not visible to other participants (useful when making bots)
-60 hidden : Optional [ bool ] = None
-61
-62 # [deprecated] indicates to the room that current participant is a recorder
-63 recorder : Optional [ bool ] = None
-64
-65 # indicates that the holder can register as an Agent framework worker
-66 agent : Optional [ bool ] = None
-
-
-
-
-
-
-
-
- VideoGrants ( room_create : Optional [ bool ] = None , room_list : Optional [ bool ] = None , room_record : Optional [ bool ] = None , room_admin : Optional [ bool ] = None , room_join : Optional [ bool ] = None , room : str = '' , can_publish : bool = True , can_subscribe : bool = True , can_publish_data : bool = True , can_publish_sources : Optional [ List [ str ]] = None , can_update_own_metadata : Optional [ bool ] = None , ingress_admin : Optional [ bool ] = None , hidden : Optional [ bool ] = None , recorder : Optional [ bool ] = None , agent : Optional [ bool ] = None )
-
-
-
-
-
-
-
-
-
-
- room_create : Optional[bool] =
-None
-
-
-
-
-
-
-
-
-
-
- room_list : Optional[bool] =
-None
-
-
-
-
-
-
-
-
-
-
- room_record : Optional[bool] =
-None
-
-
-
-
-
-
-
-
-
-
- room_admin : Optional[bool] =
-None
-
-
-
-
-
-
-
-
-
-
- room_join : Optional[bool] =
-None
-
-
-
-
-
-
-
-
-
-
- room : str =
-''
-
-
-
-
-
-
-
-
-
-
- can_publish : bool =
-True
-
-
-
-
-
-
-
-
-
-
- can_subscribe : bool =
-True
-
-
-
-
-
-
-
-
-
-
- can_publish_data : bool =
-True
-
-
-
-
-
-
-
-
-
-
- can_publish_sources : Optional[List[str]] =
-None
-
-
-
-
-
-
-
-
-
-
-
- ingress_admin : Optional[bool] =
-None
-
-
-
-
-
-
-
-
-
-
- hidden : Optional[bool] =
-None
-
-
-
-
-
-
-
-
-
-
- recorder : Optional[bool] =
-None
-
-
-
-
-
-
-
-
-
-
- agent : Optional[bool] =
-None
-
-
-
-
-
-
-
-
-
-
-
-
-
@dataclasses.dataclass
-
-
class
-
SIPGrants :
-
-
View Source
-
-
-
- 69 @dataclasses . dataclass
-70 class SIPGrants :
-71 # manage sip resources
-72 admin : bool = False
-73 # make outbound calls
-74 call : bool = False
-
-
-
-
-
-
-
-
- SIPGrants (admin : bool = False , call : bool = False )
-
-
-
-
-
-
-
-
-
-
- admin : bool =
-False
-
-
-
-
-
-
-
-
-
-
- call : bool =
-False
-
-
-
-
-
-
-
-
-
-
-
-
-
@dataclasses.dataclass
-
-
class
-
Claims :
-
-
View Source
-
-
-
- 77 @dataclasses . dataclass
- 78 class Claims :
- 79 identity : str = ""
- 80 name : str = ""
- 81 kind : str = ""
- 82 metadata : str = ""
- 83 video : Optional [ VideoGrants ] = None
- 84 sip : Optional [ SIPGrants ] = None
- 85 attributes : Optional [ dict [ str , str ]] = None
- 86 sha256 : Optional [ str ] = None
- 87 room_preset : Optional [ str ] = None
- 88 room_config : Optional [ RoomConfiguration ] = None
- 89
- 90 def asdict ( self ) -> dict :
- 91 # in order to produce minimal JWT size, exclude None or empty values
- 92 claims = dataclasses . asdict (
- 93 self ,
- 94 dict_factory = lambda items : {
- 95 snake_to_lower_camel ( k ): v
- 96 for k , v in items
- 97 if v is not None and v != ""
- 98 },
- 99 )
-100 if self . room_config :
-101 claims [ "roomConfig" ] = MessageToDict ( self . room_config )
-102 return claims
-
-
-
-
-
-
-
-
-
Claims ( identity : str = '' , name : str = '' , kind : str = '' , metadata : str = '' , video : Optional [ VideoGrants ] = None , sip : Optional [ SIPGrants ] = None , attributes : Optional [ dict [ str , str ]] = None , sha256 : Optional [ str ] = None , room_preset : Optional [ str ] = None , room_config : Optional [ room . RoomConfiguration ] = None )
-
-
-
-
-
-
-
-
-
-
- identity : str =
-''
-
-
-
-
-
-
-
-
-
-
- name : str =
-''
-
-
-
-
-
-
-
-
-
-
- kind : str =
-''
-
-
-
-
-
-
-
-
-
-
-
-
-
- attributes : Optional[dict[str, str]] =
-None
-
-
-
-
-
-
-
-
-
-
- sha256 : Optional[str] =
-None
-
-
-
-
-
-
-
-
-
-
- room_preset : Optional[str] =
-None
-
-
-
-
-
-
-
-
-
-
- room_config : Optional[room.RoomConfiguration] =
-None
-
-
-
-
-
-
-
-
-
-
-
-
- def
- asdict (self ) -> dict :
-
- View Source
-
-
-
-
90 def asdict ( self ) -> dict :
- 91 # in order to produce minimal JWT size, exclude None or empty values
- 92 claims = dataclasses . asdict (
- 93 self ,
- 94 dict_factory = lambda items : {
- 95 snake_to_lower_camel ( k ): v
- 96 for k , v in items
- 97 if v is not None and v != ""
- 98 },
- 99 )
-100 if self . room_config :
-101 claims [ "roomConfig" ] = MessageToDict ( self . room_config )
-102 return claims
-
-
-
-
-
-
-
-
-
-
-
- class
- AccessToken :
-
- View Source
-
-
-
- 105 class AccessToken :
-106 ParticipantKind = Literal [ "standard" , "egress" , "ingress" , "sip" , "agent" ]
-107
-108 def __init__ (
-109 self ,
-110 api_key : Optional [ str ] = None ,
-111 api_secret : Optional [ str ] = None ,
-112 ) -> None :
-113 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
-114 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
-115
-116 if not api_key or not api_secret :
-117 raise ValueError ( "api_key and api_secret must be set" )
-118
-119 self . api_key = api_key # iss
-120 self . api_secret = api_secret
-121 self . claims = Claims ()
-122
-123 # default jwt claims
-124 self . identity = "" # sub
-125 self . ttl = DEFAULT_TTL # exp
-126
-127 def with_ttl ( self , ttl : datetime . timedelta ) -> "AccessToken" :
-128 self . ttl = ttl
-129 return self
-130
-131 def with_grants ( self , grants : VideoGrants ) -> "AccessToken" :
-132 self . claims . video = grants
-133 return self
-134
-135 def with_sip_grants ( self , grants : SIPGrants ) -> "AccessToken" :
-136 self . claims . sip = grants
-137 return self
-138
-139 def with_identity ( self , identity : str ) -> "AccessToken" :
-140 self . identity = identity
-141 return self
-142
-143 def with_kind ( self , kind : ParticipantKind ) -> "AccessToken" :
-144 self . claims . kind = kind
-145 return self
-146
-147 def with_name ( self , name : str ) -> "AccessToken" :
-148 self . claims . name = name
-149 return self
-150
-151 def with_metadata ( self , metadata : str ) -> "AccessToken" :
-152 self . claims . metadata = metadata
-153 return self
-154
-155 def with_attributes ( self , attributes : dict [ str , str ]) -> "AccessToken" :
-156 self . claims . attributes = attributes
-157 return self
-158
-159 def with_sha256 ( self , sha256 : str ) -> "AccessToken" :
-160 self . claims . sha256 = sha256
-161 return self
-162
-163 def with_room_preset ( self , preset : str ) -> "AccessToken" :
-164 self . claims . room_preset = preset
-165 return self
-166
-167 def with_room_config ( self , config : RoomConfiguration ) -> "AccessToken" :
-168 self . claims . room_config = config
-169 return self
-170
-171 def to_jwt ( self ) -> str :
-172 video = self . claims . video
-173 if video and video . room_join and ( not self . identity or not video . room ):
-174 raise ValueError ( "identity and room must be set when joining a room" )
-175
-176 # we want to exclude None values from the token
-177 jwt_claims = self . claims . asdict ()
-178 jwt_claims . update (
-179 {
-180 "sub" : self . identity ,
-181 "iss" : self . api_key ,
-182 "nbf" : calendar . timegm (
-183 datetime . datetime . now ( datetime . timezone . utc ) . utctimetuple ()
-184 ),
-185 "exp" : calendar . timegm (
-186 (
-187 datetime . datetime . now ( datetime . timezone . utc ) + self . ttl
-188 ) . utctimetuple ()
-189 ),
-190 }
-191 )
-192 return jwt . encode ( jwt_claims , self . api_secret , algorithm = "HS256" )
-
-
-
-
-
-
-
-
-
- AccessToken (api_key : Optional [ str ] = None , api_secret : Optional [ str ] = None )
-
- View Source
-
-
-
-
108 def __init__ (
-109 self ,
-110 api_key : Optional [ str ] = None ,
-111 api_secret : Optional [ str ] = None ,
-112 ) -> None :
-113 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
-114 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
-115
-116 if not api_key or not api_secret :
-117 raise ValueError ( "api_key and api_secret must be set" )
-118
-119 self . api_key = api_key # iss
-120 self . api_secret = api_secret
-121 self . claims = Claims ()
-122
-123 # default jwt claims
-124 self . identity = "" # sub
-125 self . ttl = DEFAULT_TTL # exp
-
-
-
-
-
-
-
-
- ParticipantKind =
-typing.Literal['standard', 'egress', 'ingress', 'sip', 'agent']
-
-
-
-
-
-
-
-
-
-
- api_key
-
-
-
-
-
-
-
-
-
-
- api_secret
-
-
-
-
-
-
-
-
-
-
- claims
-
-
-
-
-
-
-
-
-
-
- identity
-
-
-
-
-
-
-
-
-
-
-
-
-
-
def
-
with_ttl (self , ttl : datetime . timedelta ) -> AccessToken :
-
-
View Source
-
-
-
-
127 def with_ttl ( self , ttl : datetime . timedelta ) -> "AccessToken" :
-128 self . ttl = ttl
-129 return self
-
-
-
-
-
-
-
-
-
-
-
131 def with_grants ( self , grants : VideoGrants ) -> "AccessToken" :
-132 self . claims . video = grants
-133 return self
-
-
-
-
-
-
-
-
-
-
-
135 def with_sip_grants ( self , grants : SIPGrants ) -> "AccessToken" :
-136 self . claims . sip = grants
-137 return self
-
-
-
-
-
-
-
-
-
-
-
def
-
with_identity (self , identity : str ) -> AccessToken :
-
-
View Source
-
-
-
-
139 def with_identity ( self , identity : str ) -> "AccessToken" :
-140 self . identity = identity
-141 return self
-
-
-
-
-
-
-
-
-
-
-
def
-
with_kind ( self , kind : Literal [ 'standard' , 'egress' , 'ingress' , 'sip' , 'agent' ] ) -> AccessToken :
-
-
View Source
-
-
-
-
143 def with_kind ( self , kind : ParticipantKind ) -> "AccessToken" :
-144 self . claims . kind = kind
-145 return self
-
-
-
-
-
-
-
-
-
-
-
def
-
with_name (self , name : str ) -> AccessToken :
-
-
View Source
-
-
-
-
147 def with_name ( self , name : str ) -> "AccessToken" :
-148 self . claims . name = name
-149 return self
-
-
-
-
-
-
-
-
-
-
-
-
def
-
with_attributes (self , attributes : dict [ str , str ] ) -> AccessToken :
-
-
View Source
-
-
-
-
155 def with_attributes ( self , attributes : dict [ str , str ]) -> "AccessToken" :
-156 self . claims . attributes = attributes
-157 return self
-
-
-
-
-
-
-
-
-
-
-
def
-
with_sha256 (self , sha256 : str ) -> AccessToken :
-
-
View Source
-
-
-
-
159 def with_sha256 ( self , sha256 : str ) -> "AccessToken" :
-160 self . claims . sha256 = sha256
-161 return self
-
-
-
-
-
-
-
-
-
-
-
def
-
with_room_preset (self , preset : str ) -> AccessToken :
-
-
View Source
-
-
-
-
163 def with_room_preset ( self , preset : str ) -> "AccessToken" :
-164 self . claims . room_preset = preset
-165 return self
-
-
-
-
-
-
-
-
-
-
-
def
-
with_room_config ( self , config : room . RoomConfiguration ) -> AccessToken :
-
-
View Source
-
-
-
-
167 def with_room_config ( self , config : RoomConfiguration ) -> "AccessToken" :
-168 self . claims . room_config = config
-169 return self
-
-
-
-
-
-
-
-
-
-
- def
- to_jwt (self ) -> str :
-
- View Source
-
-
-
-
171 def to_jwt ( self ) -> str :
-172 video = self . claims . video
-173 if video and video . room_join and ( not self . identity or not video . room ):
-174 raise ValueError ( "identity and room must be set when joining a room" )
-175
-176 # we want to exclude None values from the token
-177 jwt_claims = self . claims . asdict ()
-178 jwt_claims . update (
-179 {
-180 "sub" : self . identity ,
-181 "iss" : self . api_key ,
-182 "nbf" : calendar . timegm (
-183 datetime . datetime . now ( datetime . timezone . utc ) . utctimetuple ()
-184 ),
-185 "exp" : calendar . timegm (
-186 (
-187 datetime . datetime . now ( datetime . timezone . utc ) + self . ttl
-188 ) . utctimetuple ()
-189 ),
-190 }
-191 )
-192 return jwt . encode ( jwt_claims , self . api_secret , algorithm = "HS256" )
-
-
-
-
-
-
-
-
-
-
-
- class
- TokenVerifier :
-
- View Source
-
-
-
- 195 class TokenVerifier :
-196 def __init__ (
-197 self ,
-198 api_key : Optional [ str ] = None ,
-199 api_secret : Optional [ str ] = None ,
-200 * ,
-201 leeway : datetime . timedelta = DEFAULT_LEEWAY ,
-202 ) -> None :
-203 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
-204 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
-205
-206 if not api_key or not api_secret :
-207 raise ValueError ( "api_key and api_secret must be set" )
-208
-209 self . api_key = api_key
-210 self . api_secret = api_secret
-211 self . _leeway = leeway
-212
-213 def verify ( self , token : str ) -> Claims :
-214 claims = jwt . decode (
-215 token ,
-216 self . api_secret ,
-217 issuer = self . api_key ,
-218 algorithms = [ "HS256" ],
-219 leeway = self . _leeway . total_seconds (),
-220 )
-221
-222 video_dict = claims . get ( "video" , dict ())
-223 video_dict = { camel_to_snake ( k ): v for k , v in video_dict . items ()}
-224 video_dict = {
-225 k : v for k , v in video_dict . items () if k in VideoGrants . __dataclass_fields__
-226 }
-227 video = VideoGrants ( ** video_dict )
-228
-229 sip_dict = claims . get ( "sip" , dict ())
-230 sip_dict = { camel_to_snake ( k ): v for k , v in sip_dict . items ()}
-231 sip_dict = {
-232 k : v for k , v in sip_dict . items () if k in SIPGrants . __dataclass_fields__
-233 }
-234 sip = SIPGrants ( ** sip_dict )
-235
-236 grant_claims = Claims (
-237 identity = claims . get ( "sub" , "" ),
-238 name = claims . get ( "name" , "" ),
-239 video = video ,
-240 sip = sip ,
-241 attributes = claims . get ( "attributes" , {}),
-242 metadata = claims . get ( "metadata" , "" ),
-243 sha256 = claims . get ( "sha256" , "" ),
-244 )
-245
-246 if claims . get ( "roomPreset" ):
-247 grant_claims . room_preset = claims . get ( "roomPreset" )
-248 if claims . get ( "roomConfig" ):
-249 grant_claims . room_config = ParseDict (
-250 claims . get ( "roomConfig" ),
-251 RoomConfiguration (),
-252 ignore_unknown_fields = True ,
-253 )
-254
-255 return grant_claims
-
-
-
-
-
-
-
-
-
- TokenVerifier ( api_key : Optional [ str ] = None , api_secret : Optional [ str ] = None , * , leeway : datetime . timedelta = datetime . timedelta ( seconds = 60 ) )
-
- View Source
-
-
-
-
196 def __init__ (
-197 self ,
-198 api_key : Optional [ str ] = None ,
-199 api_secret : Optional [ str ] = None ,
-200 * ,
-201 leeway : datetime . timedelta = DEFAULT_LEEWAY ,
-202 ) -> None :
-203 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
-204 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
-205
-206 if not api_key or not api_secret :
-207 raise ValueError ( "api_key and api_secret must be set" )
-208
-209 self . api_key = api_key
-210 self . api_secret = api_secret
-211 self . _leeway = leeway
-
-
-
-
-
-
-
-
- api_key
-
-
-
-
-
-
-
-
-
-
- api_secret
-
-
-
-
-
-
-
-
-
-
-
-
-
def
-
verify (self , token : str ) -> Claims :
-
-
View Source
-
-
-
-
213 def verify ( self , token : str ) -> Claims :
-214 claims = jwt . decode (
-215 token ,
-216 self . api_secret ,
-217 issuer = self . api_key ,
-218 algorithms = [ "HS256" ],
-219 leeway = self . _leeway . total_seconds (),
-220 )
-221
-222 video_dict = claims . get ( "video" , dict ())
-223 video_dict = { camel_to_snake ( k ): v for k , v in video_dict . items ()}
-224 video_dict = {
-225 k : v for k , v in video_dict . items () if k in VideoGrants . __dataclass_fields__
-226 }
-227 video = VideoGrants ( ** video_dict )
-228
-229 sip_dict = claims . get ( "sip" , dict ())
-230 sip_dict = { camel_to_snake ( k ): v for k , v in sip_dict . items ()}
-231 sip_dict = {
-232 k : v for k , v in sip_dict . items () if k in SIPGrants . __dataclass_fields__
-233 }
-234 sip = SIPGrants ( ** sip_dict )
-235
-236 grant_claims = Claims (
-237 identity = claims . get ( "sub" , "" ),
-238 name = claims . get ( "name" , "" ),
-239 video = video ,
-240 sip = sip ,
-241 attributes = claims . get ( "attributes" , {}),
-242 metadata = claims . get ( "metadata" , "" ),
-243 sha256 = claims . get ( "sha256" , "" ),
-244 )
-245
-246 if claims . get ( "roomPreset" ):
-247 grant_claims . room_preset = claims . get ( "roomPreset" )
-248 if claims . get ( "roomConfig" ):
-249 grant_claims . room_config = ParseDict (
-250 claims . get ( "roomConfig" ),
-251 RoomConfiguration (),
-252 ignore_unknown_fields = True ,
-253 )
-254
-255 return grant_claims
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/livekit/api/agent_dispatch_service.html b/docs/livekit/api/agent_dispatch_service.html
deleted file mode 100644
index 2590971f..00000000
--- a/docs/livekit/api/agent_dispatch_service.html
+++ /dev/null
@@ -1,743 +0,0 @@
-
-
-
-
-
-
- livekit.api.agent_dispatch_service API documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-livekit.api .agent_dispatch_service
-
-
-
-
- View Source
-
- 1 import aiohttp
- 2 from typing import Optional
- 3 from livekit.protocol.agent_dispatch import CreateAgentDispatchRequest , AgentDispatch , DeleteAgentDispatchRequest , ListAgentDispatchRequest , ListAgentDispatchResponse
- 4 from ._service import Service
- 5 from .access_token import VideoGrants
- 6
- 7 SVC = "AgentDispatchService"
- 8 """@private"""
- 9
- 10
- 11 class AgentDispatchService ( Service ):
- 12 """Manage agent dispatches. Service APIs require roomAdmin permissions.
- 13
- 14 Recommended way to use this service is via `livekit.api.LiveKitAPI`:
- 15
- 16 ```python
- 17 from livekit import api
- 18 lkapi = api.LiveKitAPI()
- 19 agent_dispatch = lkapi.agent_dispatch
- 20 ```
- 21 """
- 22
- 23 def __init__ (
- 24 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
- 25 ):
- 26 super () . __init__ ( session , url , api_key , api_secret )
- 27
- 28 async def create_dispatch (
- 29 self , req : CreateAgentDispatchRequest
- 30 ) -> AgentDispatch :
- 31 """Create an explicit dispatch for an agent to join a room.
- 32
- 33 To use explicit dispatch, your agent must be registered with an `agentName`.
- 34
- 35 Args:
- 36 req (CreateAgentDispatchRequest): Request containing dispatch creation parameters
- 37
- 38 Returns:
- 39 AgentDispatch: The created agent dispatch object
- 40 """
- 41 return await self . _client . request (
- 42 SVC ,
- 43 "CreateDispatch" ,
- 44 req ,
- 45 self . _auth_header ( VideoGrants ( room_admin = True , room = req . room )),
- 46 AgentDispatch ,
- 47 )
- 48
- 49 async def delete_dispatch (
- 50 self , dispatch_id : str , room_name : str
- 51 ) -> AgentDispatch :
- 52 """Delete an explicit dispatch for an agent in a room.
- 53
- 54 Args:
- 55 dispatch_id (str): ID of the dispatch to delete
- 56 room_name (str): Name of the room containing the dispatch
- 57
- 58 Returns:
- 59 AgentDispatch: The deleted agent dispatch object
- 60 """
- 61 return await self . _client . request (
- 62 SVC ,
- 63 "DeleteDispatch" ,
- 64 DeleteAgentDispatchRequest (
- 65 dispatch_id = dispatch_id ,
- 66 room = room_name ,
- 67 ),
- 68 self . _auth_header ( VideoGrants ( room_admin = True , room = room_name )),
- 69 AgentDispatch ,
- 70 )
- 71
- 72 async def list_dispatch (
- 73 self , room_name : str
- 74 ) -> list [ AgentDispatch ]:
- 75 """List all agent dispatches in a room.
- 76
- 77 Args:
- 78 room_name (str): Name of the room to list dispatches from
- 79
- 80 Returns:
- 81 list[AgentDispatch]: List of agent dispatch objects in the room
- 82 """
- 83 res = await self . _client . request (
- 84 SVC ,
- 85 "ListDispatch" ,
- 86 ListAgentDispatchRequest ( room = room_name ),
- 87 self . _auth_header ( VideoGrants ( room_admin = True , room = room_name )),
- 88 ListAgentDispatchResponse ,
- 89 )
- 90 return list ( res . agent_dispatches )
- 91
- 92 async def get_dispatch (
- 93 self , dispatch_id : str , room_name : str
- 94 ) -> Optional [ AgentDispatch ]:
- 95 """Get an Agent dispatch by ID
- 96
- 97 Args:
- 98 dispatch_id (str): ID of the dispatch to retrieve
- 99 room_name (str): Name of the room containing the dispatch
-100
-101 Returns:
-102 Optional[AgentDispatch]: The requested agent dispatch object if found, None otherwise
-103 """
-104 res = await self . _client . request (
-105 SVC ,
-106 "ListDispatch" ,
-107 ListAgentDispatchRequest (
-108 dispatch_id = dispatch_id , room = room_name
-109 ),
-110 self . _auth_header ( VideoGrants ( room_admin = True , room = room_name )),
-111 ListAgentDispatchResponse ,
-112 )
-113 if len ( res . agent_dispatches ) > 0 :
-114 return res . agent_dispatches [ 0 ]
-115 return None
-
-
-
-
-
-
-
-
- class
- AgentDispatchService (livekit.api._service.Service ):
-
- View Source
-
-
-
- 12 class AgentDispatchService ( Service ):
- 13 """Manage agent dispatches. Service APIs require roomAdmin permissions.
- 14
- 15 Recommended way to use this service is via `livekit.api.LiveKitAPI`:
- 16
- 17 ```python
- 18 from livekit import api
- 19 lkapi = api.LiveKitAPI()
- 20 agent_dispatch = lkapi.agent_dispatch
- 21 ```
- 22 """
- 23
- 24 def __init__ (
- 25 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
- 26 ):
- 27 super () . __init__ ( session , url , api_key , api_secret )
- 28
- 29 async def create_dispatch (
- 30 self , req : CreateAgentDispatchRequest
- 31 ) -> AgentDispatch :
- 32 """Create an explicit dispatch for an agent to join a room.
- 33
- 34 To use explicit dispatch, your agent must be registered with an `agentName`.
- 35
- 36 Args:
- 37 req (CreateAgentDispatchRequest): Request containing dispatch creation parameters
- 38
- 39 Returns:
- 40 AgentDispatch: The created agent dispatch object
- 41 """
- 42 return await self . _client . request (
- 43 SVC ,
- 44 "CreateDispatch" ,
- 45 req ,
- 46 self . _auth_header ( VideoGrants ( room_admin = True , room = req . room )),
- 47 AgentDispatch ,
- 48 )
- 49
- 50 async def delete_dispatch (
- 51 self , dispatch_id : str , room_name : str
- 52 ) -> AgentDispatch :
- 53 """Delete an explicit dispatch for an agent in a room.
- 54
- 55 Args:
- 56 dispatch_id (str): ID of the dispatch to delete
- 57 room_name (str): Name of the room containing the dispatch
- 58
- 59 Returns:
- 60 AgentDispatch: The deleted agent dispatch object
- 61 """
- 62 return await self . _client . request (
- 63 SVC ,
- 64 "DeleteDispatch" ,
- 65 DeleteAgentDispatchRequest (
- 66 dispatch_id = dispatch_id ,
- 67 room = room_name ,
- 68 ),
- 69 self . _auth_header ( VideoGrants ( room_admin = True , room = room_name )),
- 70 AgentDispatch ,
- 71 )
- 72
- 73 async def list_dispatch (
- 74 self , room_name : str
- 75 ) -> list [ AgentDispatch ]:
- 76 """List all agent dispatches in a room.
- 77
- 78 Args:
- 79 room_name (str): Name of the room to list dispatches from
- 80
- 81 Returns:
- 82 list[AgentDispatch]: List of agent dispatch objects in the room
- 83 """
- 84 res = await self . _client . request (
- 85 SVC ,
- 86 "ListDispatch" ,
- 87 ListAgentDispatchRequest ( room = room_name ),
- 88 self . _auth_header ( VideoGrants ( room_admin = True , room = room_name )),
- 89 ListAgentDispatchResponse ,
- 90 )
- 91 return list ( res . agent_dispatches )
- 92
- 93 async def get_dispatch (
- 94 self , dispatch_id : str , room_name : str
- 95 ) -> Optional [ AgentDispatch ]:
- 96 """Get an Agent dispatch by ID
- 97
- 98 Args:
- 99 dispatch_id (str): ID of the dispatch to retrieve
-100 room_name (str): Name of the room containing the dispatch
-101
-102 Returns:
-103 Optional[AgentDispatch]: The requested agent dispatch object if found, None otherwise
-104 """
-105 res = await self . _client . request (
-106 SVC ,
-107 "ListDispatch" ,
-108 ListAgentDispatchRequest (
-109 dispatch_id = dispatch_id , room = room_name
-110 ),
-111 self . _auth_header ( VideoGrants ( room_admin = True , room = room_name )),
-112 ListAgentDispatchResponse ,
-113 )
-114 if len ( res . agent_dispatches ) > 0 :
-115 return res . agent_dispatches [ 0 ]
-116 return None
-
-
-
- Manage agent dispatches. Service APIs require roomAdmin permissions.
-
-
Recommended way to use this service is via livekit.api.LiveKitAPI :
-
-
-
from livekit import api
-lkapi = api . LiveKitAPI ()
-agent_dispatch = lkapi . agent_dispatch
-
-
-
-
-
-
-
-
-
- AgentDispatchService ( session : aiohttp . client . ClientSession , url : str , api_key : str , api_secret : str )
-
- View Source
-
-
-
-
24 def __init__ (
-25 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
-26 ):
-27 super () . __init__ ( session , url , api_key , api_secret )
-
-
-
-
-
-
-
-
-
-
- async def
- create_dispatch ( self , req : agent_dispatch . CreateAgentDispatchRequest ) -> agent_dispatch . AgentDispatch :
-
- View Source
-
-
-
-
29 async def create_dispatch (
-30 self , req : CreateAgentDispatchRequest
-31 ) -> AgentDispatch :
-32 """Create an explicit dispatch for an agent to join a room.
-33
-34 To use explicit dispatch, your agent must be registered with an `agentName`.
-35
-36 Args:
-37 req (CreateAgentDispatchRequest): Request containing dispatch creation parameters
-38
-39 Returns:
-40 AgentDispatch: The created agent dispatch object
-41 """
-42 return await self . _client . request (
-43 SVC ,
-44 "CreateDispatch" ,
-45 req ,
-46 self . _auth_header ( VideoGrants ( room_admin = True , room = req . room )),
-47 AgentDispatch ,
-48 )
-
-
-
-
Create an explicit dispatch for an agent to join a room.
-
-
To use explicit dispatch, your agent must be registered with an agentName.
-
-
Arguments:
-
-
-req (CreateAgentDispatchRequest): Request containing dispatch creation parameters
-
-
-
Returns:
-
-
- AgentDispatch: The created agent dispatch object
-
-
-
-
-
-
-
-
-
- async def
- delete_dispatch (self , dispatch_id : str , room_name : str ) -> agent_dispatch . AgentDispatch :
-
- View Source
-
-
-
-
50 async def delete_dispatch (
-51 self , dispatch_id : str , room_name : str
-52 ) -> AgentDispatch :
-53 """Delete an explicit dispatch for an agent in a room.
-54
-55 Args:
-56 dispatch_id (str): ID of the dispatch to delete
-57 room_name (str): Name of the room containing the dispatch
-58
-59 Returns:
-60 AgentDispatch: The deleted agent dispatch object
-61 """
-62 return await self . _client . request (
-63 SVC ,
-64 "DeleteDispatch" ,
-65 DeleteAgentDispatchRequest (
-66 dispatch_id = dispatch_id ,
-67 room = room_name ,
-68 ),
-69 self . _auth_header ( VideoGrants ( room_admin = True , room = room_name )),
-70 AgentDispatch ,
-71 )
-
-
-
-
Delete an explicit dispatch for an agent in a room.
-
-
Arguments:
-
-
-dispatch_id (str): ID of the dispatch to delete
-room_name (str): Name of the room containing the dispatch
-
-
-
Returns:
-
-
- AgentDispatch: The deleted agent dispatch object
-
-
-
-
-
-
-
-
-
- async def
- list_dispatch (self , room_name : str ) -> list [ agent_dispatch . AgentDispatch ] :
-
- View Source
-
-
-
-
73 async def list_dispatch (
-74 self , room_name : str
-75 ) -> list [ AgentDispatch ]:
-76 """List all agent dispatches in a room.
-77
-78 Args:
-79 room_name (str): Name of the room to list dispatches from
-80
-81 Returns:
-82 list[AgentDispatch]: List of agent dispatch objects in the room
-83 """
-84 res = await self . _client . request (
-85 SVC ,
-86 "ListDispatch" ,
-87 ListAgentDispatchRequest ( room = room_name ),
-88 self . _auth_header ( VideoGrants ( room_admin = True , room = room_name )),
-89 ListAgentDispatchResponse ,
-90 )
-91 return list ( res . agent_dispatches )
-
-
-
-
List all agent dispatches in a room.
-
-
Arguments:
-
-
-room_name (str): Name of the room to list dispatches from
-
-
-
Returns:
-
-
- list[AgentDispatch]: List of agent dispatch objects in the room
-
-
-
-
-
-
-
-
-
- async def
- get_dispatch ( self , dispatch_id : str , room_name : str ) -> Optional [ agent_dispatch . AgentDispatch ] :
-
- View Source
-
-
-
-
93 async def get_dispatch (
- 94 self , dispatch_id : str , room_name : str
- 95 ) -> Optional [ AgentDispatch ]:
- 96 """Get an Agent dispatch by ID
- 97
- 98 Args:
- 99 dispatch_id (str): ID of the dispatch to retrieve
-100 room_name (str): Name of the room containing the dispatch
-101
-102 Returns:
-103 Optional[AgentDispatch]: The requested agent dispatch object if found, None otherwise
-104 """
-105 res = await self . _client . request (
-106 SVC ,
-107 "ListDispatch" ,
-108 ListAgentDispatchRequest (
-109 dispatch_id = dispatch_id , room = room_name
-110 ),
-111 self . _auth_header ( VideoGrants ( room_admin = True , room = room_name )),
-112 ListAgentDispatchResponse ,
-113 )
-114 if len ( res . agent_dispatches ) > 0 :
-115 return res . agent_dispatches [ 0 ]
-116 return None
-
-
-
-
Get an Agent dispatch by ID
-
-
Arguments:
-
-
-dispatch_id (str): ID of the dispatch to retrieve
-room_name (str): Name of the room containing the dispatch
-
-
-
Returns:
-
-
- Optional[AgentDispatch]: The requested agent dispatch object if found, None otherwise
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/livekit/api/egress_service.html b/docs/livekit/api/egress_service.html
deleted file mode 100644
index f215e47c..00000000
--- a/docs/livekit/api/egress_service.html
+++ /dev/null
@@ -1,810 +0,0 @@
-
-
-
-
-
-
- livekit.api.egress_service API documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-livekit.api .egress_service
-
-
-
-
- View Source
-
- 1 import aiohttp
- 2 from livekit.protocol.egress import RoomCompositeEgressRequest , WebEgressRequest , ParticipantEgressRequest , TrackCompositeEgressRequest , TrackEgressRequest , UpdateLayoutRequest , UpdateStreamRequest , ListEgressRequest , StopEgressRequest , EgressInfo , ListEgressResponse
- 3 from ._service import Service
- 4 from .access_token import VideoGrants
- 5
- 6 SVC = "Egress"
- 7 """@private"""
- 8
- 9 class EgressService ( Service ):
- 10 """Client for LiveKit Egress Service API
- 11
- 12 Recommended way to use this service is via `livekit.api.LiveKitAPI`:
- 13
- 14 ```python
- 15 from livekit import api
- 16 lkapi = api.LiveKitAPI()
- 17 egress = lkapi.egress
- 18 ```
- 19
- 20 Also see https://docs.livekit.io/home/egress/overview/
- 21 """
- 22 def __init__ (
- 23 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
- 24 ):
- 25 super () . __init__ ( session , url , api_key , api_secret )
- 26
- 27 async def start_room_composite_egress (
- 28 self , start : RoomCompositeEgressRequest
- 29 ) -> EgressInfo :
- 30 return await self . _client . request (
- 31 SVC ,
- 32 "StartRoomCompositeEgress" ,
- 33 start ,
- 34 self . _auth_header ( VideoGrants ( room_record = True )),
- 35 EgressInfo ,
- 36 )
- 37
- 38 async def start_web_egress (
- 39 self , start : WebEgressRequest
- 40 ) -> EgressInfo :
- 41 return await self . _client . request (
- 42 SVC ,
- 43 "StartWebEgress" ,
- 44 start ,
- 45 self . _auth_header ( VideoGrants ( room_record = True )),
- 46 EgressInfo ,
- 47 )
- 48
- 49 async def start_participant_egress (
- 50 self , start : ParticipantEgressRequest
- 51 ) -> EgressInfo :
- 52 return await self . _client . request (
- 53 SVC ,
- 54 "StartParticipantEgress" ,
- 55 start ,
- 56 self . _auth_header ( VideoGrants ( room_record = True )),
- 57 EgressInfo ,
- 58 )
- 59
- 60 async def start_track_composite_egress (
- 61 self , start : TrackCompositeEgressRequest
- 62 ) -> EgressInfo :
- 63 return await self . _client . request (
- 64 SVC ,
- 65 "StartTrackCompositeEgress" ,
- 66 start ,
- 67 self . _auth_header ( VideoGrants ( room_record = True )),
- 68 EgressInfo ,
- 69 )
- 70
- 71 async def start_track_egress (
- 72 self , start : TrackEgressRequest
- 73 ) -> EgressInfo :
- 74 return await self . _client . request (
- 75 SVC ,
- 76 "StartTrackEgress" ,
- 77 start ,
- 78 self . _auth_header ( VideoGrants ( room_record = True )),
- 79 EgressInfo ,
- 80 )
- 81
- 82 async def update_layout (
- 83 self , update : UpdateLayoutRequest
- 84 ) -> EgressInfo :
- 85 return await self . _client . request (
- 86 SVC ,
- 87 "UpdateLayout" ,
- 88 update ,
- 89 self . _auth_header ( VideoGrants ( room_record = True )),
- 90 EgressInfo ,
- 91 )
- 92
- 93 async def update_stream (
- 94 self , update : UpdateStreamRequest
- 95 ) -> EgressInfo :
- 96 return await self . _client . request (
- 97 SVC ,
- 98 "UpdateStream" ,
- 99 update ,
-100 self . _auth_header ( VideoGrants ( room_record = True )),
-101 EgressInfo ,
-102 )
-103
-104 async def list_egress (
-105 self , list : ListEgressRequest
-106 ) -> ListEgressResponse :
-107 return await self . _client . request (
-108 SVC ,
-109 "ListEgress" ,
-110 list ,
-111 self . _auth_header ( VideoGrants ( room_record = True )),
-112 ListEgressResponse ,
-113 )
-114
-115 async def stop_egress (
-116 self , stop : StopEgressRequest
-117 ) -> EgressInfo :
-118 return await self . _client . request (
-119 SVC ,
-120 "StopEgress" ,
-121 stop ,
-122 self . _auth_header ( VideoGrants ( room_record = True )),
-123 EgressInfo ,
-124 )
-
-
-
-
-
-
-
-
- class
- EgressService (livekit.api._service.Service ):
-
- View Source
-
-
-
- 10 class EgressService ( Service ):
- 11 """Client for LiveKit Egress Service API
- 12
- 13 Recommended way to use this service is via `livekit.api.LiveKitAPI`:
- 14
- 15 ```python
- 16 from livekit import api
- 17 lkapi = api.LiveKitAPI()
- 18 egress = lkapi.egress
- 19 ```
- 20
- 21 Also see https://docs.livekit.io/home/egress/overview/
- 22 """
- 23 def __init__ (
- 24 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
- 25 ):
- 26 super () . __init__ ( session , url , api_key , api_secret )
- 27
- 28 async def start_room_composite_egress (
- 29 self , start : RoomCompositeEgressRequest
- 30 ) -> EgressInfo :
- 31 return await self . _client . request (
- 32 SVC ,
- 33 "StartRoomCompositeEgress" ,
- 34 start ,
- 35 self . _auth_header ( VideoGrants ( room_record = True )),
- 36 EgressInfo ,
- 37 )
- 38
- 39 async def start_web_egress (
- 40 self , start : WebEgressRequest
- 41 ) -> EgressInfo :
- 42 return await self . _client . request (
- 43 SVC ,
- 44 "StartWebEgress" ,
- 45 start ,
- 46 self . _auth_header ( VideoGrants ( room_record = True )),
- 47 EgressInfo ,
- 48 )
- 49
- 50 async def start_participant_egress (
- 51 self , start : ParticipantEgressRequest
- 52 ) -> EgressInfo :
- 53 return await self . _client . request (
- 54 SVC ,
- 55 "StartParticipantEgress" ,
- 56 start ,
- 57 self . _auth_header ( VideoGrants ( room_record = True )),
- 58 EgressInfo ,
- 59 )
- 60
- 61 async def start_track_composite_egress (
- 62 self , start : TrackCompositeEgressRequest
- 63 ) -> EgressInfo :
- 64 return await self . _client . request (
- 65 SVC ,
- 66 "StartTrackCompositeEgress" ,
- 67 start ,
- 68 self . _auth_header ( VideoGrants ( room_record = True )),
- 69 EgressInfo ,
- 70 )
- 71
- 72 async def start_track_egress (
- 73 self , start : TrackEgressRequest
- 74 ) -> EgressInfo :
- 75 return await self . _client . request (
- 76 SVC ,
- 77 "StartTrackEgress" ,
- 78 start ,
- 79 self . _auth_header ( VideoGrants ( room_record = True )),
- 80 EgressInfo ,
- 81 )
- 82
- 83 async def update_layout (
- 84 self , update : UpdateLayoutRequest
- 85 ) -> EgressInfo :
- 86 return await self . _client . request (
- 87 SVC ,
- 88 "UpdateLayout" ,
- 89 update ,
- 90 self . _auth_header ( VideoGrants ( room_record = True )),
- 91 EgressInfo ,
- 92 )
- 93
- 94 async def update_stream (
- 95 self , update : UpdateStreamRequest
- 96 ) -> EgressInfo :
- 97 return await self . _client . request (
- 98 SVC ,
- 99 "UpdateStream" ,
-100 update ,
-101 self . _auth_header ( VideoGrants ( room_record = True )),
-102 EgressInfo ,
-103 )
-104
-105 async def list_egress (
-106 self , list : ListEgressRequest
-107 ) -> ListEgressResponse :
-108 return await self . _client . request (
-109 SVC ,
-110 "ListEgress" ,
-111 list ,
-112 self . _auth_header ( VideoGrants ( room_record = True )),
-113 ListEgressResponse ,
-114 )
-115
-116 async def stop_egress (
-117 self , stop : StopEgressRequest
-118 ) -> EgressInfo :
-119 return await self . _client . request (
-120 SVC ,
-121 "StopEgress" ,
-122 stop ,
-123 self . _auth_header ( VideoGrants ( room_record = True )),
-124 EgressInfo ,
-125 )
-
-
-
-
-
-
-
-
-
-
- EgressService ( session : aiohttp . client . ClientSession , url : str , api_key : str , api_secret : str )
-
- View Source
-
-
-
-
23 def __init__ (
-24 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
-25 ):
-26 super () . __init__ ( session , url , api_key , api_secret )
-
-
-
-
-
-
-
-
-
-
- async def
- start_room_composite_egress (self , start : egress . RoomCompositeEgressRequest ) -> egress . EgressInfo :
-
- View Source
-
-
-
-
28 async def start_room_composite_egress (
-29 self , start : RoomCompositeEgressRequest
-30 ) -> EgressInfo :
-31 return await self . _client . request (
-32 SVC ,
-33 "StartRoomCompositeEgress" ,
-34 start ,
-35 self . _auth_header ( VideoGrants ( room_record = True )),
-36 EgressInfo ,
-37 )
-
-
-
-
-
-
-
-
-
-
- async def
- start_web_egress (self , start : egress . WebEgressRequest ) -> egress . EgressInfo :
-
- View Source
-
-
-
-
39 async def start_web_egress (
-40 self , start : WebEgressRequest
-41 ) -> EgressInfo :
-42 return await self . _client . request (
-43 SVC ,
-44 "StartWebEgress" ,
-45 start ,
-46 self . _auth_header ( VideoGrants ( room_record = True )),
-47 EgressInfo ,
-48 )
-
-
-
-
-
-
-
-
-
-
- async def
- start_participant_egress (self , start : egress . ParticipantEgressRequest ) -> egress . EgressInfo :
-
- View Source
-
-
-
-
50 async def start_participant_egress (
-51 self , start : ParticipantEgressRequest
-52 ) -> EgressInfo :
-53 return await self . _client . request (
-54 SVC ,
-55 "StartParticipantEgress" ,
-56 start ,
-57 self . _auth_header ( VideoGrants ( room_record = True )),
-58 EgressInfo ,
-59 )
-
-
-
-
-
-
-
-
-
-
- async def
- start_track_composite_egress (self , start : egress . TrackCompositeEgressRequest ) -> egress . EgressInfo :
-
- View Source
-
-
-
-
61 async def start_track_composite_egress (
-62 self , start : TrackCompositeEgressRequest
-63 ) -> EgressInfo :
-64 return await self . _client . request (
-65 SVC ,
-66 "StartTrackCompositeEgress" ,
-67 start ,
-68 self . _auth_header ( VideoGrants ( room_record = True )),
-69 EgressInfo ,
-70 )
-
-
-
-
-
-
-
-
-
-
- async def
- start_track_egress (self , start : egress . TrackEgressRequest ) -> egress . EgressInfo :
-
- View Source
-
-
-
-
72 async def start_track_egress (
-73 self , start : TrackEgressRequest
-74 ) -> EgressInfo :
-75 return await self . _client . request (
-76 SVC ,
-77 "StartTrackEgress" ,
-78 start ,
-79 self . _auth_header ( VideoGrants ( room_record = True )),
-80 EgressInfo ,
-81 )
-
-
-
-
-
-
-
-
-
-
- async def
- update_layout (self , update : egress . UpdateLayoutRequest ) -> egress . EgressInfo :
-
- View Source
-
-
-
-
83 async def update_layout (
-84 self , update : UpdateLayoutRequest
-85 ) -> EgressInfo :
-86 return await self . _client . request (
-87 SVC ,
-88 "UpdateLayout" ,
-89 update ,
-90 self . _auth_header ( VideoGrants ( room_record = True )),
-91 EgressInfo ,
-92 )
-
-
-
-
-
-
-
-
-
-
- async def
- update_stream (self , update : egress . UpdateStreamRequest ) -> egress . EgressInfo :
-
- View Source
-
-
-
-
94 async def update_stream (
- 95 self , update : UpdateStreamRequest
- 96 ) -> EgressInfo :
- 97 return await self . _client . request (
- 98 SVC ,
- 99 "UpdateStream" ,
-100 update ,
-101 self . _auth_header ( VideoGrants ( room_record = True )),
-102 EgressInfo ,
-103 )
-
-
-
-
-
-
-
-
-
-
- async def
- list_egress (self , list : egress . ListEgressRequest ) -> egress . ListEgressResponse :
-
- View Source
-
-
-
-
105 async def list_egress (
-106 self , list : ListEgressRequest
-107 ) -> ListEgressResponse :
-108 return await self . _client . request (
-109 SVC ,
-110 "ListEgress" ,
-111 list ,
-112 self . _auth_header ( VideoGrants ( room_record = True )),
-113 ListEgressResponse ,
-114 )
-
-
-
-
-
-
-
-
-
-
- async def
- stop_egress (self , stop : egress . StopEgressRequest ) -> egress . EgressInfo :
-
- View Source
-
-
-
-
116 async def stop_egress (
-117 self , stop : StopEgressRequest
-118 ) -> EgressInfo :
-119 return await self . _client . request (
-120 SVC ,
-121 "StopEgress" ,
-122 stop ,
-123 self . _auth_header ( VideoGrants ( room_record = True )),
-124 EgressInfo ,
-125 )
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/livekit/api/ingress_service.html b/docs/livekit/api/ingress_service.html
deleted file mode 100644
index e75cb433..00000000
--- a/docs/livekit/api/ingress_service.html
+++ /dev/null
@@ -1,550 +0,0 @@
-
-
-
-
-
-
- livekit.api.ingress_service API documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-livekit.api .ingress_service
-
-
-
-
- View Source
-
- 1 import aiohttp
- 2 from livekit.protocol.ingress import CreateIngressRequest , IngressInfo , UpdateIngressRequest , ListIngressRequest , DeleteIngressRequest , ListIngressResponse
- 3 from ._service import Service
- 4 from .access_token import VideoGrants
- 5
- 6 SVC = "Ingress"
- 7 """@private"""
- 8
- 9 class IngressService ( Service ):
-10 """Client for LiveKit Ingress Service API
-11
-12 Recommended way to use this service is via `livekit.api.LiveKitAPI`:
-13
-14 ```python
-15 from livekit import api
-16 lkapi = api.LiveKitAPI()
-17 ingress = lkapi.ingress
-18 ```
-19
-20 Also see https://docs.livekit.io/home/ingress/overview/
-21 """
-22 def __init__ (
-23 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
-24 ):
-25 super () . __init__ ( session , url , api_key , api_secret )
-26
-27 async def create_ingress (
-28 self , create : CreateIngressRequest
-29 ) -> IngressInfo :
-30 return await self . _client . request (
-31 SVC ,
-32 "CreateIngress" ,
-33 create ,
-34 self . _auth_header ( VideoGrants ( ingress_admin = True )),
-35 IngressInfo ,
-36 )
-37
-38 async def update_ingress (
-39 self , update : UpdateIngressRequest
-40 ) -> IngressInfo :
-41 return await self . _client . request (
-42 SVC ,
-43 "UpdateIngress" ,
-44 update ,
-45 self . _auth_header ( VideoGrants ( ingress_admin = True )),
-46 IngressInfo ,
-47 )
-48
-49 async def list_ingress (
-50 self , list : ListIngressRequest
-51 ) -> ListIngressResponse :
-52 return await self . _client . request (
-53 SVC ,
-54 "ListIngress" ,
-55 list ,
-56 self . _auth_header ( VideoGrants ( ingress_admin = True )),
-57 ListIngressResponse ,
-58 )
-59
-60 async def delete_ingress (
-61 self , delete : DeleteIngressRequest
-62 ) -> IngressInfo :
-63 return await self . _client . request (
-64 SVC ,
-65 "DeleteIngress" ,
-66 delete ,
-67 self . _auth_header ( VideoGrants ( ingress_admin = True )),
-68 IngressInfo ,
-69 )
-
-
-
-
-
-
-
-
- class
- IngressService (livekit.api._service.Service ):
-
- View Source
-
-
-
- 10 class IngressService ( Service ):
-11 """Client for LiveKit Ingress Service API
-12
-13 Recommended way to use this service is via `livekit.api.LiveKitAPI`:
-14
-15 ```python
-16 from livekit import api
-17 lkapi = api.LiveKitAPI()
-18 ingress = lkapi.ingress
-19 ```
-20
-21 Also see https://docs.livekit.io/home/ingress/overview/
-22 """
-23 def __init__ (
-24 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
-25 ):
-26 super () . __init__ ( session , url , api_key , api_secret )
-27
-28 async def create_ingress (
-29 self , create : CreateIngressRequest
-30 ) -> IngressInfo :
-31 return await self . _client . request (
-32 SVC ,
-33 "CreateIngress" ,
-34 create ,
-35 self . _auth_header ( VideoGrants ( ingress_admin = True )),
-36 IngressInfo ,
-37 )
-38
-39 async def update_ingress (
-40 self , update : UpdateIngressRequest
-41 ) -> IngressInfo :
-42 return await self . _client . request (
-43 SVC ,
-44 "UpdateIngress" ,
-45 update ,
-46 self . _auth_header ( VideoGrants ( ingress_admin = True )),
-47 IngressInfo ,
-48 )
-49
-50 async def list_ingress (
-51 self , list : ListIngressRequest
-52 ) -> ListIngressResponse :
-53 return await self . _client . request (
-54 SVC ,
-55 "ListIngress" ,
-56 list ,
-57 self . _auth_header ( VideoGrants ( ingress_admin = True )),
-58 ListIngressResponse ,
-59 )
-60
-61 async def delete_ingress (
-62 self , delete : DeleteIngressRequest
-63 ) -> IngressInfo :
-64 return await self . _client . request (
-65 SVC ,
-66 "DeleteIngress" ,
-67 delete ,
-68 self . _auth_header ( VideoGrants ( ingress_admin = True )),
-69 IngressInfo ,
-70 )
-
-
-
-
-
-
-
-
-
-
- IngressService ( session : aiohttp . client . ClientSession , url : str , api_key : str , api_secret : str )
-
- View Source
-
-
-
-
23 def __init__ (
-24 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
-25 ):
-26 super () . __init__ ( session , url , api_key , api_secret )
-
-
-
-
-
-
-
-
-
-
- async def
- create_ingress (self , create : ingress . CreateIngressRequest ) -> ingress . IngressInfo :
-
- View Source
-
-
-
-
28 async def create_ingress (
-29 self , create : CreateIngressRequest
-30 ) -> IngressInfo :
-31 return await self . _client . request (
-32 SVC ,
-33 "CreateIngress" ,
-34 create ,
-35 self . _auth_header ( VideoGrants ( ingress_admin = True )),
-36 IngressInfo ,
-37 )
-
-
-
-
-
-
-
-
-
-
- async def
- update_ingress (self , update : ingress . UpdateIngressRequest ) -> ingress . IngressInfo :
-
- View Source
-
-
-
-
39 async def update_ingress (
-40 self , update : UpdateIngressRequest
-41 ) -> IngressInfo :
-42 return await self . _client . request (
-43 SVC ,
-44 "UpdateIngress" ,
-45 update ,
-46 self . _auth_header ( VideoGrants ( ingress_admin = True )),
-47 IngressInfo ,
-48 )
-
-
-
-
-
-
-
-
-
-
- async def
- list_ingress (self , list : ingress . ListIngressRequest ) -> ingress . ListIngressResponse :
-
- View Source
-
-
-
-
50 async def list_ingress (
-51 self , list : ListIngressRequest
-52 ) -> ListIngressResponse :
-53 return await self . _client . request (
-54 SVC ,
-55 "ListIngress" ,
-56 list ,
-57 self . _auth_header ( VideoGrants ( ingress_admin = True )),
-58 ListIngressResponse ,
-59 )
-
-
-
-
-
-
-
-
-
-
- async def
- delete_ingress (self , delete : ingress . DeleteIngressRequest ) -> ingress . IngressInfo :
-
- View Source
-
-
-
-
61 async def delete_ingress (
-62 self , delete : DeleteIngressRequest
-63 ) -> IngressInfo :
-64 return await self . _client . request (
-65 SVC ,
-66 "DeleteIngress" ,
-67 delete ,
-68 self . _auth_header ( VideoGrants ( ingress_admin = True )),
-69 IngressInfo ,
-70 )
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/livekit/api/livekit_api.html b/docs/livekit/api/livekit_api.html
deleted file mode 100644
index 5046c192..00000000
--- a/docs/livekit/api/livekit_api.html
+++ /dev/null
@@ -1,665 +0,0 @@
-
-
-
-
-
-
- livekit.api.livekit_api API documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-livekit.api .livekit_api
-
-
-
-
- View Source
-
- 1 import aiohttp
- 2 import os
- 3 from .room_service import RoomService
- 4 from .egress_service import EgressService
- 5 from .ingress_service import IngressService
- 6 from .sip_service import SipService
- 7 from .agent_dispatch_service import AgentDispatchService
- 8 from typing import Optional
- 9
-10
-11 class LiveKitAPI :
-12 """LiveKit Server API Client
-13
-14 This class is the main entrypoint, which exposes all services.
-15
-16 Usage:
-17
-18 ```python
-19 from livekit import api
-20 lkapi = api.LiveKitAPI()
-21 rooms = await lkapi.room.list_rooms(api.proto_room.ListRoomsRequest(names=['test-room']))
-22 ```
-23 """
-24
-25 def __init__ (
-26 self ,
-27 url : Optional [ str ] = None ,
-28 api_key : Optional [ str ] = None ,
-29 api_secret : Optional [ str ] = None ,
-30 * ,
-31 timeout : aiohttp . ClientTimeout = aiohttp . ClientTimeout ( total = 60 ), # 60 seconds
-32 ):
-33 """Create a new LiveKitAPI instance.
-34
-35 Args:
-36 url: LiveKit server URL (read from `LIVEKIT_URL` environment variable if not provided)
-37 api_key: API key (read from `LIVEKIT_API_KEY` environment variable if not provided)
-38 api_secret: API secret (read from `LIVEKIT_API_SECRET` environment variable if not provided)
-39 timeout: Request timeout (default: 60 seconds)
-40 """
-41 url = url or os . getenv ( "LIVEKIT_URL" )
-42 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
-43 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
-44
-45 if not url :
-46 raise ValueError ( "url must be set" )
-47
-48 if not api_key or not api_secret :
-49 raise ValueError ( "api_key and api_secret must be set" )
-50
-51 self . _session = aiohttp . ClientSession ( timeout = timeout )
-52 self . _room = RoomService ( self . _session , url , api_key , api_secret )
-53 self . _ingress = IngressService ( self . _session , url , api_key , api_secret )
-54 self . _egress = EgressService ( self . _session , url , api_key , api_secret )
-55 self . _sip = SipService ( self . _session , url , api_key , api_secret )
-56 self . _agent_dispatch = AgentDispatchService (
-57 self . _session , url , api_key , api_secret
-58 )
-59
-60 @property
-61 def agent_dispatch ( self ) -> AgentDispatchService :
-62 """Instance of the AgentDispatchService
-63
-64 See `livekit.api.agent_dispatch_service.AgentDispatchService`"""
-65 return self . _agent_dispatch
-66
-67 @property
-68 def room ( self ) -> RoomService :
-69 """Instance of the RoomService
-70
-71 See `livekit.api.room_service.RoomService`"""
-72 return self . _room
-73
-74 @property
-75 def ingress ( self ) -> IngressService :
-76 """Instance of the IngressService
-77
-78 See `livekit.api.ingress_service.IngressService`"""
-79 return self . _ingress
-80
-81 @property
-82 def egress ( self ) -> EgressService :
-83 """Instance of the EgressService
-84
-85 See `livekit.api.egress_service.EgressService`"""
-86 return self . _egress
-87
-88 @property
-89 def sip ( self ) -> SipService :
-90 """Instance of the SipService
-91
-92 See `livekit.api.sip_service.SipService`"""
-93 return self . _sip
-94
-95 async def aclose ( self ):
-96 """@private"""
-97 await self . _session . close ()
-
-
-
-
-
-
-
-
- class
- LiveKitAPI :
-
- View Source
-
-
-
- 12 class LiveKitAPI :
-13 """LiveKit Server API Client
-14
-15 This class is the main entrypoint, which exposes all services.
-16
-17 Usage:
-18
-19 ```python
-20 from livekit import api
-21 lkapi = api.LiveKitAPI()
-22 rooms = await lkapi.room.list_rooms(api.proto_room.ListRoomsRequest(names=['test-room']))
-23 ```
-24 """
-25
-26 def __init__ (
-27 self ,
-28 url : Optional [ str ] = None ,
-29 api_key : Optional [ str ] = None ,
-30 api_secret : Optional [ str ] = None ,
-31 * ,
-32 timeout : aiohttp . ClientTimeout = aiohttp . ClientTimeout ( total = 60 ), # 60 seconds
-33 ):
-34 """Create a new LiveKitAPI instance.
-35
-36 Args:
-37 url: LiveKit server URL (read from `LIVEKIT_URL` environment variable if not provided)
-38 api_key: API key (read from `LIVEKIT_API_KEY` environment variable if not provided)
-39 api_secret: API secret (read from `LIVEKIT_API_SECRET` environment variable if not provided)
-40 timeout: Request timeout (default: 60 seconds)
-41 """
-42 url = url or os . getenv ( "LIVEKIT_URL" )
-43 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
-44 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
-45
-46 if not url :
-47 raise ValueError ( "url must be set" )
-48
-49 if not api_key or not api_secret :
-50 raise ValueError ( "api_key and api_secret must be set" )
-51
-52 self . _session = aiohttp . ClientSession ( timeout = timeout )
-53 self . _room = RoomService ( self . _session , url , api_key , api_secret )
-54 self . _ingress = IngressService ( self . _session , url , api_key , api_secret )
-55 self . _egress = EgressService ( self . _session , url , api_key , api_secret )
-56 self . _sip = SipService ( self . _session , url , api_key , api_secret )
-57 self . _agent_dispatch = AgentDispatchService (
-58 self . _session , url , api_key , api_secret
-59 )
-60
-61 @property
-62 def agent_dispatch ( self ) -> AgentDispatchService :
-63 """Instance of the AgentDispatchService
-64
-65 See `livekit.api.agent_dispatch_service.AgentDispatchService`"""
-66 return self . _agent_dispatch
-67
-68 @property
-69 def room ( self ) -> RoomService :
-70 """Instance of the RoomService
-71
-72 See `livekit.api.room_service.RoomService`"""
-73 return self . _room
-74
-75 @property
-76 def ingress ( self ) -> IngressService :
-77 """Instance of the IngressService
-78
-79 See `livekit.api.ingress_service.IngressService`"""
-80 return self . _ingress
-81
-82 @property
-83 def egress ( self ) -> EgressService :
-84 """Instance of the EgressService
-85
-86 See `livekit.api.egress_service.EgressService`"""
-87 return self . _egress
-88
-89 @property
-90 def sip ( self ) -> SipService :
-91 """Instance of the SipService
-92
-93 See `livekit.api.sip_service.SipService`"""
-94 return self . _sip
-95
-96 async def aclose ( self ):
-97 """@private"""
-98 await self . _session . close ()
-
-
-
- LiveKit Server API Client
-
-
This class is the main entrypoint, which exposes all services.
-
-
Usage:
-
-
-
from livekit import api
-lkapi = api . LiveKitAPI ()
-rooms = await lkapi . room . list_rooms ( api . proto_room . ListRoomsRequest ( names = [ 'test-room' ]))
-
-
-
-
-
-
-
-
-
- LiveKitAPI ( url : Optional [ str ] = None , api_key : Optional [ str ] = None , api_secret : Optional [ str ] = None , * , timeout : aiohttp . client . ClientTimeout = ClientTimeout ( total = 60 , connect = None , sock_read = None , sock_connect = None , ceil_threshold = 5 ) )
-
- View Source
-
-
-
-
26 def __init__ (
-27 self ,
-28 url : Optional [ str ] = None ,
-29 api_key : Optional [ str ] = None ,
-30 api_secret : Optional [ str ] = None ,
-31 * ,
-32 timeout : aiohttp . ClientTimeout = aiohttp . ClientTimeout ( total = 60 ), # 60 seconds
-33 ):
-34 """Create a new LiveKitAPI instance.
-35
-36 Args:
-37 url: LiveKit server URL (read from `LIVEKIT_URL` environment variable if not provided)
-38 api_key: API key (read from `LIVEKIT_API_KEY` environment variable if not provided)
-39 api_secret: API secret (read from `LIVEKIT_API_SECRET` environment variable if not provided)
-40 timeout: Request timeout (default: 60 seconds)
-41 """
-42 url = url or os . getenv ( "LIVEKIT_URL" )
-43 api_key = api_key or os . getenv ( "LIVEKIT_API_KEY" )
-44 api_secret = api_secret or os . getenv ( "LIVEKIT_API_SECRET" )
-45
-46 if not url :
-47 raise ValueError ( "url must be set" )
-48
-49 if not api_key or not api_secret :
-50 raise ValueError ( "api_key and api_secret must be set" )
-51
-52 self . _session = aiohttp . ClientSession ( timeout = timeout )
-53 self . _room = RoomService ( self . _session , url , api_key , api_secret )
-54 self . _ingress = IngressService ( self . _session , url , api_key , api_secret )
-55 self . _egress = EgressService ( self . _session , url , api_key , api_secret )
-56 self . _sip = SipService ( self . _session , url , api_key , api_secret )
-57 self . _agent_dispatch = AgentDispatchService (
-58 self . _session , url , api_key , api_secret
-59 )
-
-
-
-
Create a new LiveKitAPI instance.
-
-
Arguments:
-
-
-url: LiveKit server URL (read from LIVEKIT_URL environment variable if not provided)
-api_key: API key (read from LIVEKIT_API_KEY environment variable if not provided)
-api_secret: API secret (read from LIVEKIT_API_SECRET environment variable if not provided)
-timeout: Request timeout (default: 60 seconds)
-
-
-
-
-
-
-
-
-
-
61 @property
-62 def agent_dispatch ( self ) -> AgentDispatchService :
-63 """Instance of the AgentDispatchService
-64
-65 See `livekit.api.agent_dispatch_service.AgentDispatchService`"""
-66 return self . _agent_dispatch
-
-
-
-
-
-
-
-
-
-
-
-
68 @property
-69 def room ( self ) -> RoomService :
-70 """Instance of the RoomService
-71
-72 See `livekit.api.room_service.RoomService`"""
-73 return self . _room
-
-
-
-
-
-
-
-
-
-
-
-
75 @property
-76 def ingress ( self ) -> IngressService :
-77 """Instance of the IngressService
-78
-79 See `livekit.api.ingress_service.IngressService`"""
-80 return self . _ingress
-
-
-
-
-
-
-
-
-
-
-
-
82 @property
-83 def egress ( self ) -> EgressService :
-84 """Instance of the EgressService
-85
-86 See `livekit.api.egress_service.EgressService`"""
-87 return self . _egress
-
-
-
-
-
-
-
-
-
-
-
-
89 @property
-90 def sip ( self ) -> SipService :
-91 """Instance of the SipService
-92
-93 See `livekit.api.sip_service.SipService`"""
-94 return self . _sip
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/livekit/api/room_service.html b/docs/livekit/api/room_service.html
deleted file mode 100644
index 3f96affc..00000000
--- a/docs/livekit/api/room_service.html
+++ /dev/null
@@ -1,882 +0,0 @@
-
-
-
-
-
-
- livekit.api.room_service API documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-livekit.api .room_service
-
-
-
-
- View Source
-
- 1 import aiohttp
- 2 from livekit.protocol.room import CreateRoomRequest , ListRoomsRequest , DeleteRoomRequest , ListRoomsResponse , DeleteRoomResponse , ListParticipantsRequest , ListParticipantsResponse , RoomParticipantIdentity , MuteRoomTrackRequest , MuteRoomTrackResponse , UpdateParticipantRequest , UpdateSubscriptionsRequest , SendDataRequest , SendDataResponse , UpdateRoomMetadataRequest , RemoveParticipantResponse , UpdateSubscriptionsResponse
- 3 from livekit.protocol.models import Room , ParticipantInfo
- 4 from ._service import Service
- 5 from .access_token import VideoGrants
- 6
- 7 SVC = "RoomService"
- 8 """@private"""
- 9
- 10 class RoomService ( Service ):
- 11 """Client for LiveKit RoomService API
- 12
- 13 Recommended way to use this service is via `livekit.api.LiveKitAPI`:
- 14
- 15 ```python
- 16 from livekit import api
- 17 lkapi = api.LiveKitAPI()
- 18 room_service = lkapi.room
- 19 ```
- 20
- 21 Also see https://docs.livekit.io/home/server/managing-rooms/ and https://docs.livekit.io/home/server/managing-participants/
- 22 """
- 23 def __init__ (
- 24 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
- 25 ):
- 26 super () . __init__ ( session , url , api_key , api_secret )
- 27
- 28 async def create_room ( self , create : CreateRoomRequest ) -> Room :
- 29 return await self . _client . request (
- 30 SVC ,
- 31 "CreateRoom" ,
- 32 create ,
- 33 self . _auth_header ( VideoGrants ( room_create = True )),
- 34 Room ,
- 35 )
- 36
- 37 async def list_rooms ( self , list : ListRoomsRequest ) -> ListRoomsResponse :
- 38 return await self . _client . request (
- 39 SVC ,
- 40 "ListRooms" ,
- 41 list ,
- 42 self . _auth_header ( VideoGrants ( room_list = True )),
- 43 ListRoomsResponse ,
- 44 )
- 45
- 46 async def delete_room ( self , delete : DeleteRoomRequest ) -> DeleteRoomResponse :
- 47 return await self . _client . request (
- 48 SVC ,
- 49 "DeleteRoom" ,
- 50 delete ,
- 51 self . _auth_header ( VideoGrants ( room_create = True )),
- 52 DeleteRoomResponse ,
- 53 )
- 54
- 55 async def update_room_metadata ( self , update : UpdateRoomMetadataRequest ) -> Room :
- 56 return await self . _client . request (
- 57 SVC ,
- 58 "UpdateRoomMetadata" ,
- 59 update ,
- 60 self . _auth_header ( VideoGrants ( room_admin = True , room = update . room )),
- 61 Room ,
- 62 )
- 63
- 64 async def list_participants (
- 65 self , list : ListParticipantsRequest
- 66 ) -> ListParticipantsResponse :
- 67 return await self . _client . request (
- 68 SVC ,
- 69 "ListParticipants" ,
- 70 list ,
- 71 self . _auth_header ( VideoGrants ( room_admin = True , room = list . room )),
- 72 ListParticipantsResponse ,
- 73 )
- 74
- 75 async def get_participant ( self , get : RoomParticipantIdentity ) -> ParticipantInfo :
- 76 return await self . _client . request (
- 77 SVC ,
- 78 "GetParticipant" ,
- 79 get ,
- 80 self . _auth_header ( VideoGrants ( room_admin = True , room = get . room )),
- 81 ParticipantInfo ,
- 82 )
- 83
- 84 async def remove_participant (
- 85 self , remove : RoomParticipantIdentity
- 86 ) -> RemoveParticipantResponse :
- 87 return await self . _client . request (
- 88 SVC ,
- 89 "RemoveParticipant" ,
- 90 remove ,
- 91 self . _auth_header ( VideoGrants ( room_admin = True , room = remove . room )),
- 92 RemoveParticipantResponse ,
- 93 )
- 94
- 95 async def mute_published_track (
- 96 self ,
- 97 update : MuteRoomTrackRequest ,
- 98 ) -> MuteRoomTrackResponse :
- 99 return await self . _client . request (
-100 SVC ,
-101 "MutePublishedTrack" ,
-102 update ,
-103 self . _auth_header ( VideoGrants ( room_admin = True , room = update . room )),
-104 MuteRoomTrackResponse ,
-105 )
-106
-107 async def update_participant (
-108 self , update : UpdateParticipantRequest
-109 ) -> ParticipantInfo :
-110 return await self . _client . request (
-111 SVC ,
-112 "UpdateParticipant" ,
-113 update ,
-114 self . _auth_header ( VideoGrants ( room_admin = True , room = update . room )),
-115 ParticipantInfo ,
-116 )
-117
-118 async def update_subscriptions (
-119 self , update : UpdateSubscriptionsRequest
-120 ) -> UpdateSubscriptionsResponse :
-121 return await self . _client . request (
-122 SVC ,
-123 "UpdateSubscriptions" ,
-124 update ,
-125 self . _auth_header ( VideoGrants ( room_admin = True , room = update . room )),
-126 UpdateSubscriptionsResponse ,
-127 )
-128
-129 async def send_data ( self , send : SendDataRequest ) -> SendDataResponse :
-130 return await self . _client . request (
-131 SVC ,
-132 "SendData" ,
-133 send ,
-134 self . _auth_header ( VideoGrants ( room_admin = True , room = send . room )),
-135 SendDataResponse ,
-136 )
-
-
-
-
-
-
-
-
- class
- RoomService (livekit.api._service.Service ):
-
- View Source
-
-
-
- 11 class RoomService ( Service ):
- 12 """Client for LiveKit RoomService API
- 13
- 14 Recommended way to use this service is via `livekit.api.LiveKitAPI`:
- 15
- 16 ```python
- 17 from livekit import api
- 18 lkapi = api.LiveKitAPI()
- 19 room_service = lkapi.room
- 20 ```
- 21
- 22 Also see https://docs.livekit.io/home/server/managing-rooms/ and https://docs.livekit.io/home/server/managing-participants/
- 23 """
- 24 def __init__ (
- 25 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
- 26 ):
- 27 super () . __init__ ( session , url , api_key , api_secret )
- 28
- 29 async def create_room ( self , create : CreateRoomRequest ) -> Room :
- 30 return await self . _client . request (
- 31 SVC ,
- 32 "CreateRoom" ,
- 33 create ,
- 34 self . _auth_header ( VideoGrants ( room_create = True )),
- 35 Room ,
- 36 )
- 37
- 38 async def list_rooms ( self , list : ListRoomsRequest ) -> ListRoomsResponse :
- 39 return await self . _client . request (
- 40 SVC ,
- 41 "ListRooms" ,
- 42 list ,
- 43 self . _auth_header ( VideoGrants ( room_list = True )),
- 44 ListRoomsResponse ,
- 45 )
- 46
- 47 async def delete_room ( self , delete : DeleteRoomRequest ) -> DeleteRoomResponse :
- 48 return await self . _client . request (
- 49 SVC ,
- 50 "DeleteRoom" ,
- 51 delete ,
- 52 self . _auth_header ( VideoGrants ( room_create = True )),
- 53 DeleteRoomResponse ,
- 54 )
- 55
- 56 async def update_room_metadata ( self , update : UpdateRoomMetadataRequest ) -> Room :
- 57 return await self . _client . request (
- 58 SVC ,
- 59 "UpdateRoomMetadata" ,
- 60 update ,
- 61 self . _auth_header ( VideoGrants ( room_admin = True , room = update . room )),
- 62 Room ,
- 63 )
- 64
- 65 async def list_participants (
- 66 self , list : ListParticipantsRequest
- 67 ) -> ListParticipantsResponse :
- 68 return await self . _client . request (
- 69 SVC ,
- 70 "ListParticipants" ,
- 71 list ,
- 72 self . _auth_header ( VideoGrants ( room_admin = True , room = list . room )),
- 73 ListParticipantsResponse ,
- 74 )
- 75
- 76 async def get_participant ( self , get : RoomParticipantIdentity ) -> ParticipantInfo :
- 77 return await self . _client . request (
- 78 SVC ,
- 79 "GetParticipant" ,
- 80 get ,
- 81 self . _auth_header ( VideoGrants ( room_admin = True , room = get . room )),
- 82 ParticipantInfo ,
- 83 )
- 84
- 85 async def remove_participant (
- 86 self , remove : RoomParticipantIdentity
- 87 ) -> RemoveParticipantResponse :
- 88 return await self . _client . request (
- 89 SVC ,
- 90 "RemoveParticipant" ,
- 91 remove ,
- 92 self . _auth_header ( VideoGrants ( room_admin = True , room = remove . room )),
- 93 RemoveParticipantResponse ,
- 94 )
- 95
- 96 async def mute_published_track (
- 97 self ,
- 98 update : MuteRoomTrackRequest ,
- 99 ) -> MuteRoomTrackResponse :
-100 return await self . _client . request (
-101 SVC ,
-102 "MutePublishedTrack" ,
-103 update ,
-104 self . _auth_header ( VideoGrants ( room_admin = True , room = update . room )),
-105 MuteRoomTrackResponse ,
-106 )
-107
-108 async def update_participant (
-109 self , update : UpdateParticipantRequest
-110 ) -> ParticipantInfo :
-111 return await self . _client . request (
-112 SVC ,
-113 "UpdateParticipant" ,
-114 update ,
-115 self . _auth_header ( VideoGrants ( room_admin = True , room = update . room )),
-116 ParticipantInfo ,
-117 )
-118
-119 async def update_subscriptions (
-120 self , update : UpdateSubscriptionsRequest
-121 ) -> UpdateSubscriptionsResponse :
-122 return await self . _client . request (
-123 SVC ,
-124 "UpdateSubscriptions" ,
-125 update ,
-126 self . _auth_header ( VideoGrants ( room_admin = True , room = update . room )),
-127 UpdateSubscriptionsResponse ,
-128 )
-129
-130 async def send_data ( self , send : SendDataRequest ) -> SendDataResponse :
-131 return await self . _client . request (
-132 SVC ,
-133 "SendData" ,
-134 send ,
-135 self . _auth_header ( VideoGrants ( room_admin = True , room = send . room )),
-136 SendDataResponse ,
-137 )
-
-
-
-
-
-
-
-
-
-
- RoomService ( session : aiohttp . client . ClientSession , url : str , api_key : str , api_secret : str )
-
- View Source
-
-
-
-
24 def __init__ (
-25 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
-26 ):
-27 super () . __init__ ( session , url , api_key , api_secret )
-
-
-
-
-
-
-
-
-
-
- async def
- create_room (self , create : room . CreateRoomRequest ) -> models . Room :
-
- View Source
-
-
-
-
29 async def create_room ( self , create : CreateRoomRequest ) -> Room :
-30 return await self . _client . request (
-31 SVC ,
-32 "CreateRoom" ,
-33 create ,
-34 self . _auth_header ( VideoGrants ( room_create = True )),
-35 Room ,
-36 )
-
-
-
-
-
-
-
-
-
-
- async def
- list_rooms (self , list : room . ListRoomsRequest ) -> room . ListRoomsResponse :
-
- View Source
-
-
-
-
38 async def list_rooms ( self , list : ListRoomsRequest ) -> ListRoomsResponse :
-39 return await self . _client . request (
-40 SVC ,
-41 "ListRooms" ,
-42 list ,
-43 self . _auth_header ( VideoGrants ( room_list = True )),
-44 ListRoomsResponse ,
-45 )
-
-
-
-
-
-
-
-
-
-
- async def
- delete_room (self , delete : room . DeleteRoomRequest ) -> room . DeleteRoomResponse :
-
- View Source
-
-
-
-
47 async def delete_room ( self , delete : DeleteRoomRequest ) -> DeleteRoomResponse :
-48 return await self . _client . request (
-49 SVC ,
-50 "DeleteRoom" ,
-51 delete ,
-52 self . _auth_header ( VideoGrants ( room_create = True )),
-53 DeleteRoomResponse ,
-54 )
-
-
-
-
-
-
-
-
-
-
-
- async def
- list_participants ( self , list : room . ListParticipantsRequest ) -> room . ListParticipantsResponse :
-
- View Source
-
-
-
-
65 async def list_participants (
-66 self , list : ListParticipantsRequest
-67 ) -> ListParticipantsResponse :
-68 return await self . _client . request (
-69 SVC ,
-70 "ListParticipants" ,
-71 list ,
-72 self . _auth_header ( VideoGrants ( room_admin = True , room = list . room )),
-73 ListParticipantsResponse ,
-74 )
-
-
-
-
-
-
-
-
-
-
- async def
- get_participant (self , get : room . RoomParticipantIdentity ) -> models . ParticipantInfo :
-
- View Source
-
-
-
-
76 async def get_participant ( self , get : RoomParticipantIdentity ) -> ParticipantInfo :
-77 return await self . _client . request (
-78 SVC ,
-79 "GetParticipant" ,
-80 get ,
-81 self . _auth_header ( VideoGrants ( room_admin = True , room = get . room )),
-82 ParticipantInfo ,
-83 )
-
-
-
-
-
-
-
-
-
-
- async def
- remove_participant ( self , remove : room . RoomParticipantIdentity ) -> room . RemoveParticipantResponse :
-
- View Source
-
-
-
-
85 async def remove_participant (
-86 self , remove : RoomParticipantIdentity
-87 ) -> RemoveParticipantResponse :
-88 return await self . _client . request (
-89 SVC ,
-90 "RemoveParticipant" ,
-91 remove ,
-92 self . _auth_header ( VideoGrants ( room_admin = True , room = remove . room )),
-93 RemoveParticipantResponse ,
-94 )
-
-
-
-
-
-
-
-
-
-
- async def
- mute_published_track (self , update : room . MuteRoomTrackRequest ) -> room . MuteRoomTrackResponse :
-
- View Source
-
-
-
-
96 async def mute_published_track (
- 97 self ,
- 98 update : MuteRoomTrackRequest ,
- 99 ) -> MuteRoomTrackResponse :
-100 return await self . _client . request (
-101 SVC ,
-102 "MutePublishedTrack" ,
-103 update ,
-104 self . _auth_header ( VideoGrants ( room_admin = True , room = update . room )),
-105 MuteRoomTrackResponse ,
-106 )
-
-
-
-
-
-
-
-
-
-
- async def
- update_participant (self , update : room . UpdateParticipantRequest ) -> models . ParticipantInfo :
-
- View Source
-
-
-
-
108 async def update_participant (
-109 self , update : UpdateParticipantRequest
-110 ) -> ParticipantInfo :
-111 return await self . _client . request (
-112 SVC ,
-113 "UpdateParticipant" ,
-114 update ,
-115 self . _auth_header ( VideoGrants ( room_admin = True , room = update . room )),
-116 ParticipantInfo ,
-117 )
-
-
-
-
-
-
-
-
-
-
- async def
- update_subscriptions ( self , update : room . UpdateSubscriptionsRequest ) -> room . UpdateSubscriptionsResponse :
-
- View Source
-
-
-
-
119 async def update_subscriptions (
-120 self , update : UpdateSubscriptionsRequest
-121 ) -> UpdateSubscriptionsResponse :
-122 return await self . _client . request (
-123 SVC ,
-124 "UpdateSubscriptions" ,
-125 update ,
-126 self . _auth_header ( VideoGrants ( room_admin = True , room = update . room )),
-127 UpdateSubscriptionsResponse ,
-128 )
-
-
-
-
-
-
-
-
-
-
- async def
- send_data (self , send : room . SendDataRequest ) -> room . SendDataResponse :
-
- View Source
-
-
-
-
130 async def send_data ( self , send : SendDataRequest ) -> SendDataResponse :
-131 return await self . _client . request (
-132 SVC ,
-133 "SendData" ,
-134 send ,
-135 self . _auth_header ( VideoGrants ( room_admin = True , room = send . room )),
-136 SendDataResponse ,
-137 )
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/livekit/api/sip_service.html b/docs/livekit/api/sip_service.html
deleted file mode 100644
index 3c27264e..00000000
--- a/docs/livekit/api/sip_service.html
+++ /dev/null
@@ -1,978 +0,0 @@
-
-
-
-
-
-
- livekit.api.sip_service API documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-livekit.api .sip_service
-
-
-
-
- View Source
-
- 1 import aiohttp
- 2 from livekit.protocol.sip import CreateSIPTrunkRequest , SIPTrunkInfo , CreateSIPInboundTrunkRequest , SIPInboundTrunkInfo , CreateSIPOutboundTrunkRequest , SIPOutboundTrunkInfo , ListSIPTrunkRequest , ListSIPTrunkResponse , ListSIPInboundTrunkRequest , ListSIPInboundTrunkResponse , ListSIPOutboundTrunkRequest , ListSIPOutboundTrunkResponse , DeleteSIPTrunkRequest , SIPDispatchRuleInfo , CreateSIPDispatchRuleRequest , ListSIPDispatchRuleRequest , ListSIPDispatchRuleResponse , DeleteSIPDispatchRuleRequest , CreateSIPParticipantRequest , TransferSIPParticipantRequest , SIPParticipantInfo
- 3 from ._service import Service
- 4 from .access_token import VideoGrants , SIPGrants
- 5
- 6 SVC = "SIP"
- 7 """@private"""
- 8
- 9 class SipService ( Service ):
- 10 """Client for LiveKit SIP Service API
- 11
- 12 Recommended way to use this service is via `livekit.api.LiveKitAPI`:
- 13
- 14 ```python
- 15 from livekit import api
- 16 lkapi = api.LiveKitAPI()
- 17 sip_service = lkapi.sip
- 18 ```
- 19 """
- 20 def __init__ (
- 21 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
- 22 ):
- 23 super () . __init__ ( session , url , api_key , api_secret )
- 24
- 25 async def create_sip_trunk (
- 26 self , create : CreateSIPTrunkRequest
- 27 ) -> SIPTrunkInfo :
- 28 return await self . _client . request (
- 29 SVC ,
- 30 "CreateSIPTrunk" ,
- 31 create ,
- 32 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
- 33 SIPTrunkInfo ,
- 34 )
- 35
- 36 async def create_sip_inbound_trunk (
- 37 self , create : CreateSIPInboundTrunkRequest
- 38 ) -> SIPInboundTrunkInfo :
- 39 return await self . _client . request (
- 40 SVC ,
- 41 "CreateSIPInboundTrunk" ,
- 42 create ,
- 43 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
- 44 SIPInboundTrunkInfo ,
- 45 )
- 46
- 47 async def create_sip_outbound_trunk (
- 48 self , create : CreateSIPOutboundTrunkRequest
- 49 ) -> SIPOutboundTrunkInfo :
- 50 return await self . _client . request (
- 51 SVC ,
- 52 "CreateSIPOutboundTrunk" ,
- 53 create ,
- 54 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
- 55 SIPOutboundTrunkInfo ,
- 56 )
- 57
- 58 async def list_sip_trunk (
- 59 self , list : ListSIPTrunkRequest
- 60 ) -> ListSIPTrunkResponse :
- 61 return await self . _client . request (
- 62 SVC ,
- 63 "ListSIPTrunk" ,
- 64 list ,
- 65 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
- 66 ListSIPTrunkResponse ,
- 67 )
- 68
- 69 async def list_sip_inbound_trunk (
- 70 self , list : ListSIPInboundTrunkRequest
- 71 ) -> ListSIPInboundTrunkResponse :
- 72 return await self . _client . request (
- 73 SVC ,
- 74 "ListSIPInboundTrunk" ,
- 75 list ,
- 76 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
- 77 ListSIPInboundTrunkResponse ,
- 78 )
- 79
- 80 async def list_sip_outbound_trunk (
- 81 self , list : ListSIPOutboundTrunkRequest
- 82 ) -> ListSIPOutboundTrunkResponse :
- 83 return await self . _client . request (
- 84 SVC ,
- 85 "ListSIPOutboundTrunk" ,
- 86 list ,
- 87 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
- 88 ListSIPOutboundTrunkResponse ,
- 89 )
- 90
- 91 async def delete_sip_trunk (
- 92 self , delete : DeleteSIPTrunkRequest
- 93 ) -> SIPTrunkInfo :
- 94 return await self . _client . request (
- 95 SVC ,
- 96 "DeleteSIPTrunk" ,
- 97 delete ,
- 98 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
- 99 SIPTrunkInfo ,
-100 )
-101
-102 async def create_sip_dispatch_rule (
-103 self , create : CreateSIPDispatchRuleRequest
-104 ) -> SIPDispatchRuleInfo :
-105 return await self . _client . request (
-106 SVC ,
-107 "CreateSIPDispatchRule" ,
-108 create ,
-109 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
-110 SIPDispatchRuleInfo ,
-111 )
-112
-113 async def list_sip_dispatch_rule (
-114 self , list : ListSIPDispatchRuleRequest
-115 ) -> ListSIPDispatchRuleResponse :
-116 return await self . _client . request (
-117 SVC ,
-118 "ListSIPDispatchRule" ,
-119 list ,
-120 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
-121 ListSIPDispatchRuleResponse ,
-122 )
-123
-124 async def delete_sip_dispatch_rule (
-125 self , delete : DeleteSIPDispatchRuleRequest
-126 ) -> SIPDispatchRuleInfo :
-127 return await self . _client . request (
-128 SVC ,
-129 "DeleteSIPDispatchRule" ,
-130 delete ,
-131 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
-132 SIPDispatchRuleInfo ,
-133 )
-134
-135 async def create_sip_participant (
-136 self , create : CreateSIPParticipantRequest
-137 ) -> SIPParticipantInfo :
-138 return await self . _client . request (
-139 SVC ,
-140 "CreateSIPParticipant" ,
-141 create ,
-142 self . _auth_header ( VideoGrants (), sip = SIPGrants ( call = True )),
-143 SIPParticipantInfo ,
-144 )
-145
-146 async def transfer_sip_participant (
-147 self , transfer : TransferSIPParticipantRequest
-148 ) -> SIPParticipantInfo :
-149 return await self . _client . request (
-150 SVC ,
-151 "TransferSIPParticipant" ,
-152 transfer ,
-153 self . _auth_header (
-154 VideoGrants (
-155 room_admin = True ,
-156 room = transfer . room_name ,
-157 ),
-158 sip = SIPGrants ( call = True ),
-159 ),
-160 SIPParticipantInfo ,
-161 )
-
-
-
-
-
-
-
-
- class
- SipService (livekit.api._service.Service ):
-
- View Source
-
-
-
- 10 class SipService ( Service ):
- 11 """Client for LiveKit SIP Service API
- 12
- 13 Recommended way to use this service is via `livekit.api.LiveKitAPI`:
- 14
- 15 ```python
- 16 from livekit import api
- 17 lkapi = api.LiveKitAPI()
- 18 sip_service = lkapi.sip
- 19 ```
- 20 """
- 21 def __init__ (
- 22 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
- 23 ):
- 24 super () . __init__ ( session , url , api_key , api_secret )
- 25
- 26 async def create_sip_trunk (
- 27 self , create : CreateSIPTrunkRequest
- 28 ) -> SIPTrunkInfo :
- 29 return await self . _client . request (
- 30 SVC ,
- 31 "CreateSIPTrunk" ,
- 32 create ,
- 33 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
- 34 SIPTrunkInfo ,
- 35 )
- 36
- 37 async def create_sip_inbound_trunk (
- 38 self , create : CreateSIPInboundTrunkRequest
- 39 ) -> SIPInboundTrunkInfo :
- 40 return await self . _client . request (
- 41 SVC ,
- 42 "CreateSIPInboundTrunk" ,
- 43 create ,
- 44 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
- 45 SIPInboundTrunkInfo ,
- 46 )
- 47
- 48 async def create_sip_outbound_trunk (
- 49 self , create : CreateSIPOutboundTrunkRequest
- 50 ) -> SIPOutboundTrunkInfo :
- 51 return await self . _client . request (
- 52 SVC ,
- 53 "CreateSIPOutboundTrunk" ,
- 54 create ,
- 55 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
- 56 SIPOutboundTrunkInfo ,
- 57 )
- 58
- 59 async def list_sip_trunk (
- 60 self , list : ListSIPTrunkRequest
- 61 ) -> ListSIPTrunkResponse :
- 62 return await self . _client . request (
- 63 SVC ,
- 64 "ListSIPTrunk" ,
- 65 list ,
- 66 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
- 67 ListSIPTrunkResponse ,
- 68 )
- 69
- 70 async def list_sip_inbound_trunk (
- 71 self , list : ListSIPInboundTrunkRequest
- 72 ) -> ListSIPInboundTrunkResponse :
- 73 return await self . _client . request (
- 74 SVC ,
- 75 "ListSIPInboundTrunk" ,
- 76 list ,
- 77 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
- 78 ListSIPInboundTrunkResponse ,
- 79 )
- 80
- 81 async def list_sip_outbound_trunk (
- 82 self , list : ListSIPOutboundTrunkRequest
- 83 ) -> ListSIPOutboundTrunkResponse :
- 84 return await self . _client . request (
- 85 SVC ,
- 86 "ListSIPOutboundTrunk" ,
- 87 list ,
- 88 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
- 89 ListSIPOutboundTrunkResponse ,
- 90 )
- 91
- 92 async def delete_sip_trunk (
- 93 self , delete : DeleteSIPTrunkRequest
- 94 ) -> SIPTrunkInfo :
- 95 return await self . _client . request (
- 96 SVC ,
- 97 "DeleteSIPTrunk" ,
- 98 delete ,
- 99 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
-100 SIPTrunkInfo ,
-101 )
-102
-103 async def create_sip_dispatch_rule (
-104 self , create : CreateSIPDispatchRuleRequest
-105 ) -> SIPDispatchRuleInfo :
-106 return await self . _client . request (
-107 SVC ,
-108 "CreateSIPDispatchRule" ,
-109 create ,
-110 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
-111 SIPDispatchRuleInfo ,
-112 )
-113
-114 async def list_sip_dispatch_rule (
-115 self , list : ListSIPDispatchRuleRequest
-116 ) -> ListSIPDispatchRuleResponse :
-117 return await self . _client . request (
-118 SVC ,
-119 "ListSIPDispatchRule" ,
-120 list ,
-121 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
-122 ListSIPDispatchRuleResponse ,
-123 )
-124
-125 async def delete_sip_dispatch_rule (
-126 self , delete : DeleteSIPDispatchRuleRequest
-127 ) -> SIPDispatchRuleInfo :
-128 return await self . _client . request (
-129 SVC ,
-130 "DeleteSIPDispatchRule" ,
-131 delete ,
-132 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
-133 SIPDispatchRuleInfo ,
-134 )
-135
-136 async def create_sip_participant (
-137 self , create : CreateSIPParticipantRequest
-138 ) -> SIPParticipantInfo :
-139 return await self . _client . request (
-140 SVC ,
-141 "CreateSIPParticipant" ,
-142 create ,
-143 self . _auth_header ( VideoGrants (), sip = SIPGrants ( call = True )),
-144 SIPParticipantInfo ,
-145 )
-146
-147 async def transfer_sip_participant (
-148 self , transfer : TransferSIPParticipantRequest
-149 ) -> SIPParticipantInfo :
-150 return await self . _client . request (
-151 SVC ,
-152 "TransferSIPParticipant" ,
-153 transfer ,
-154 self . _auth_header (
-155 VideoGrants (
-156 room_admin = True ,
-157 room = transfer . room_name ,
-158 ),
-159 sip = SIPGrants ( call = True ),
-160 ),
-161 SIPParticipantInfo ,
-162 )
-
-
-
- Client for LiveKit SIP Service API
-
-
Recommended way to use this service is via livekit.api.LiveKitAPI :
-
-
-
from livekit import api
-lkapi = api . LiveKitAPI ()
-sip_service = lkapi . sip
-
-
-
-
-
-
-
-
-
- SipService ( session : aiohttp . client . ClientSession , url : str , api_key : str , api_secret : str )
-
- View Source
-
-
-
-
21 def __init__ (
-22 self , session : aiohttp . ClientSession , url : str , api_key : str , api_secret : str
-23 ):
-24 super () . __init__ ( session , url , api_key , api_secret )
-
-
-
-
-
-
-
-
-
-
- async def
- create_sip_trunk (self , create : sip . CreateSIPTrunkRequest ) -> sip . SIPTrunkInfo :
-
- View Source
-
-
-
-
26 async def create_sip_trunk (
-27 self , create : CreateSIPTrunkRequest
-28 ) -> SIPTrunkInfo :
-29 return await self . _client . request (
-30 SVC ,
-31 "CreateSIPTrunk" ,
-32 create ,
-33 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
-34 SIPTrunkInfo ,
-35 )
-
-
-
-
-
-
-
-
-
-
- async def
- create_sip_inbound_trunk ( self , create : sip . CreateSIPInboundTrunkRequest ) -> sip . SIPInboundTrunkInfo :
-
- View Source
-
-
-
-
37 async def create_sip_inbound_trunk (
-38 self , create : CreateSIPInboundTrunkRequest
-39 ) -> SIPInboundTrunkInfo :
-40 return await self . _client . request (
-41 SVC ,
-42 "CreateSIPInboundTrunk" ,
-43 create ,
-44 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
-45 SIPInboundTrunkInfo ,
-46 )
-
-
-
-
-
-
-
-
-
-
- async def
- create_sip_outbound_trunk ( self , create : sip . CreateSIPOutboundTrunkRequest ) -> sip . SIPOutboundTrunkInfo :
-
- View Source
-
-
-
-
48 async def create_sip_outbound_trunk (
-49 self , create : CreateSIPOutboundTrunkRequest
-50 ) -> SIPOutboundTrunkInfo :
-51 return await self . _client . request (
-52 SVC ,
-53 "CreateSIPOutboundTrunk" ,
-54 create ,
-55 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
-56 SIPOutboundTrunkInfo ,
-57 )
-
-
-
-
-
-
-
-
-
-
- async def
- list_sip_trunk (self , list : sip . ListSIPTrunkRequest ) -> sip . ListSIPTrunkResponse :
-
- View Source
-
-
-
-
59 async def list_sip_trunk (
-60 self , list : ListSIPTrunkRequest
-61 ) -> ListSIPTrunkResponse :
-62 return await self . _client . request (
-63 SVC ,
-64 "ListSIPTrunk" ,
-65 list ,
-66 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
-67 ListSIPTrunkResponse ,
-68 )
-
-
-
-
-
-
-
-
-
-
- async def
- list_sip_inbound_trunk ( self , list : sip . ListSIPInboundTrunkRequest ) -> sip . ListSIPInboundTrunkResponse :
-
- View Source
-
-
-
-
70 async def list_sip_inbound_trunk (
-71 self , list : ListSIPInboundTrunkRequest
-72 ) -> ListSIPInboundTrunkResponse :
-73 return await self . _client . request (
-74 SVC ,
-75 "ListSIPInboundTrunk" ,
-76 list ,
-77 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
-78 ListSIPInboundTrunkResponse ,
-79 )
-
-
-
-
-
-
-
-
-
-
- async def
- list_sip_outbound_trunk ( self , list : sip . ListSIPOutboundTrunkRequest ) -> sip . ListSIPOutboundTrunkResponse :
-
- View Source
-
-
-
-
81 async def list_sip_outbound_trunk (
-82 self , list : ListSIPOutboundTrunkRequest
-83 ) -> ListSIPOutboundTrunkResponse :
-84 return await self . _client . request (
-85 SVC ,
-86 "ListSIPOutboundTrunk" ,
-87 list ,
-88 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
-89 ListSIPOutboundTrunkResponse ,
-90 )
-
-
-
-
-
-
-
-
-
-
- async def
- delete_sip_trunk (self , delete : sip . DeleteSIPTrunkRequest ) -> sip . SIPTrunkInfo :
-
- View Source
-
-
-
-
92 async def delete_sip_trunk (
- 93 self , delete : DeleteSIPTrunkRequest
- 94 ) -> SIPTrunkInfo :
- 95 return await self . _client . request (
- 96 SVC ,
- 97 "DeleteSIPTrunk" ,
- 98 delete ,
- 99 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
-100 SIPTrunkInfo ,
-101 )
-
-
-
-
-
-
-
-
-
-
- async def
- create_sip_dispatch_rule ( self , create : sip . CreateSIPDispatchRuleRequest ) -> sip . SIPDispatchRuleInfo :
-
- View Source
-
-
-
-
103 async def create_sip_dispatch_rule (
-104 self , create : CreateSIPDispatchRuleRequest
-105 ) -> SIPDispatchRuleInfo :
-106 return await self . _client . request (
-107 SVC ,
-108 "CreateSIPDispatchRule" ,
-109 create ,
-110 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
-111 SIPDispatchRuleInfo ,
-112 )
-
-
-
-
-
-
-
-
-
-
- async def
- list_sip_dispatch_rule ( self , list : sip . ListSIPDispatchRuleRequest ) -> sip . ListSIPDispatchRuleResponse :
-
- View Source
-
-
-
-
114 async def list_sip_dispatch_rule (
-115 self , list : ListSIPDispatchRuleRequest
-116 ) -> ListSIPDispatchRuleResponse :
-117 return await self . _client . request (
-118 SVC ,
-119 "ListSIPDispatchRule" ,
-120 list ,
-121 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
-122 ListSIPDispatchRuleResponse ,
-123 )
-
-
-
-
-
-
-
-
-
-
- async def
- delete_sip_dispatch_rule ( self , delete : sip . DeleteSIPDispatchRuleRequest ) -> sip . SIPDispatchRuleInfo :
-
- View Source
-
-
-
-
125 async def delete_sip_dispatch_rule (
-126 self , delete : DeleteSIPDispatchRuleRequest
-127 ) -> SIPDispatchRuleInfo :
-128 return await self . _client . request (
-129 SVC ,
-130 "DeleteSIPDispatchRule" ,
-131 delete ,
-132 self . _auth_header ( VideoGrants (), sip = SIPGrants ( admin = True )),
-133 SIPDispatchRuleInfo ,
-134 )
-
-
-
-
-
-
-
-
-
-
- async def
- create_sip_participant (self , create : sip . CreateSIPParticipantRequest ) -> sip . SIPParticipantInfo :
-
- View Source
-
-
-
-
136 async def create_sip_participant (
-137 self , create : CreateSIPParticipantRequest
-138 ) -> SIPParticipantInfo :
-139 return await self . _client . request (
-140 SVC ,
-141 "CreateSIPParticipant" ,
-142 create ,
-143 self . _auth_header ( VideoGrants (), sip = SIPGrants ( call = True )),
-144 SIPParticipantInfo ,
-145 )
-
-
-
-
-
-
-
-
-
-
- async def
- transfer_sip_participant ( self , transfer : sip . TransferSIPParticipantRequest ) -> sip . SIPParticipantInfo :
-
- View Source
-
-
-
-
147 async def transfer_sip_participant (
-148 self , transfer : TransferSIPParticipantRequest
-149 ) -> SIPParticipantInfo :
-150 return await self . _client . request (
-151 SVC ,
-152 "TransferSIPParticipant" ,
-153 transfer ,
-154 self . _auth_header (
-155 VideoGrants (
-156 room_admin = True ,
-157 room = transfer . room_name ,
-158 ),
-159 sip = SIPGrants ( call = True ),
-160 ),
-161 SIPParticipantInfo ,
-162 )
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/livekit/api/twirp_client.html b/docs/livekit/api/twirp_client.html
deleted file mode 100644
index 2d2670aa..00000000
--- a/docs/livekit/api/twirp_client.html
+++ /dev/null
@@ -1,952 +0,0 @@
-
-
-
-
-
-
- livekit.api.twirp_client API documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-livekit.api .twirp_client
-
-
-
-
- View Source
-
- 1 # Copyright 2023 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.
- 14
- 15 from typing import Dict , Type , TypeVar
- 16
- 17 import aiohttp
- 18 from google.protobuf.message import Message
- 19 from urllib.parse import urlparse
- 20
- 21 DEFAULT_PREFIX = "twirp"
- 22
- 23
- 24 class TwirpError ( Exception ):
- 25 def __init__ ( self , code : str , msg : str ) -> None :
- 26 self . _code = code
- 27 self . _msg = msg
- 28
- 29 @property
- 30 def code ( self ) -> str :
- 31 return self . _code
- 32
- 33 @property
- 34 def message ( self ) -> str :
- 35 return self . _msg
- 36
- 37
- 38 class TwirpErrorCode :
- 39 CANCELED = "canceled"
- 40 UNKNOWN = "unknown"
- 41 INVALID_ARGUMENT = "invalid_argument"
- 42 MALFORMED = "malformed"
- 43 DEADLINE_EXCEEDED = "deadline_exceeded"
- 44 NOT_FOUND = "not_found"
- 45 BAD_ROUTE = "bad_route"
- 46 ALREADY_EXISTS = "already_exists"
- 47 PERMISSION_DENIED = "permission_denied"
- 48 UNAUTHENTICATED = "unauthenticated"
- 49 RESOURCE_EXHAUSTED = "resource_exhausted"
- 50 FAILED_PRECONDITION = "failed_precondition"
- 51 ABORTED = "aborted"
- 52 OUT_OF_RANGE = "out_of_range"
- 53 UNIMPLEMENTED = "unimplemented"
- 54 INTERNAL = "internal"
- 55 UNAVAILABLE = "unavailable"
- 56 DATA_LOSS = "dataloss"
- 57
- 58
- 59 T = TypeVar ( "T" , bound = Message )
- 60
- 61
- 62 class TwirpClient :
- 63 def __init__ (
- 64 self ,
- 65 session : aiohttp . ClientSession ,
- 66 host : str ,
- 67 pkg : str ,
- 68 prefix : str = DEFAULT_PREFIX ,
- 69 ) -> None :
- 70 parse_res = urlparse ( host )
- 71 scheme = parse_res . scheme
- 72 if scheme . startswith ( "ws" ):
- 73 scheme = scheme . replace ( "ws" , "http" )
- 74
- 75 host = f " { scheme } :// { parse_res . netloc } / { parse_res . path } "
- 76 self . host = host . rstrip ( "/" )
- 77 self . pkg = pkg
- 78 self . prefix = prefix
- 79 self . _session = session
- 80
- 81 async def request (
- 82 self ,
- 83 service : str ,
- 84 method : str ,
- 85 data : Message ,
- 86 headers : Dict [ str , str ],
- 87 response_class : Type [ T ],
- 88 ) -> T :
- 89 url = f " { self . host } / { self . prefix } / { self . pkg } . { service } / { method } "
- 90 headers [ "Content-Type" ] = "application/protobuf"
- 91
- 92 serialized_data = data . SerializeToString ()
- 93 async with self . _session . post (
- 94 url , headers = headers , data = serialized_data
- 95 ) as resp :
- 96 if resp . status == 200 :
- 97 return response_class . FromString ( await resp . read ())
- 98 else :
- 99 # when we have an error, Twirp always encode it in json
-100 error_data = await resp . json ()
-101 raise TwirpError ( error_data [ "code" ], error_data [ "msg" ])
-
-
-
-
-
-
- DEFAULT_PREFIX =
-'twirp'
-
-
-
-
-
-
-
-
-
-
-
-
- class
- TwirpError (builtins.Exception ):
-
- View Source
-
-
-
- 25 class TwirpError ( Exception ):
-26 def __init__ ( self , code : str , msg : str ) -> None :
-27 self . _code = code
-28 self . _msg = msg
-29
-30 @property
-31 def code ( self ) -> str :
-32 return self . _code
-33
-34 @property
-35 def message ( self ) -> str :
-36 return self . _msg
-
-
-
- Common base class for all non-exit exceptions.
-
-
-
-
-
-
-
- TwirpError (code : str , msg : str )
-
- View Source
-
-
-
-
26 def __init__ ( self , code : str , msg : str ) -> None :
-27 self . _code = code
-28 self . _msg = msg
-
-
-
-
-
-
-
-
-
- code : str
-
- View Source
-
-
-
-
30 @property
-31 def code ( self ) -> str :
-32 return self . _code
-
-
-
-
-
-
-
-
-
- message : str
-
- View Source
-
-
-
-
34 @property
-35 def message ( self ) -> str :
-36 return self . _msg
-
-
-
-
-
-
-
-
-
-
-
- class
- TwirpErrorCode :
-
- View Source
-
-
-
- 39 class TwirpErrorCode :
-40 CANCELED = "canceled"
-41 UNKNOWN = "unknown"
-42 INVALID_ARGUMENT = "invalid_argument"
-43 MALFORMED = "malformed"
-44 DEADLINE_EXCEEDED = "deadline_exceeded"
-45 NOT_FOUND = "not_found"
-46 BAD_ROUTE = "bad_route"
-47 ALREADY_EXISTS = "already_exists"
-48 PERMISSION_DENIED = "permission_denied"
-49 UNAUTHENTICATED = "unauthenticated"
-50 RESOURCE_EXHAUSTED = "resource_exhausted"
-51 FAILED_PRECONDITION = "failed_precondition"
-52 ABORTED = "aborted"
-53 OUT_OF_RANGE = "out_of_range"
-54 UNIMPLEMENTED = "unimplemented"
-55 INTERNAL = "internal"
-56 UNAVAILABLE = "unavailable"
-57 DATA_LOSS = "dataloss"
-
-
-
-
-
-
-
- CANCELED =
-'canceled'
-
-
-
-
-
-
-
-
-
-
- UNKNOWN =
-'unknown'
-
-
-
-
-
-
-
-
-
-
- INVALID_ARGUMENT =
-'invalid_argument'
-
-
-
-
-
-
-
-
-
-
-
- DEADLINE_EXCEEDED =
-'deadline_exceeded'
-
-
-
-
-
-
-
-
-
-
- NOT_FOUND =
-'not_found'
-
-
-
-
-
-
-
-
-
-
- BAD_ROUTE =
-'bad_route'
-
-
-
-
-
-
-
-
-
-
- ALREADY_EXISTS =
-'already_exists'
-
-
-
-
-
-
-
-
-
-
- PERMISSION_DENIED =
-'permission_denied'
-
-
-
-
-
-
-
-
-
-
- UNAUTHENTICATED =
-'unauthenticated'
-
-
-
-
-
-
-
-
-
-
- RESOURCE_EXHAUSTED =
-'resource_exhausted'
-
-
-
-
-
-
-
-
-
-
- FAILED_PRECONDITION =
-'failed_precondition'
-
-
-
-
-
-
-
-
-
-
- ABORTED =
-'aborted'
-
-
-
-
-
-
-
-
-
-
- OUT_OF_RANGE =
-'out_of_range'
-
-
-
-
-
-
-
-
-
-
- UNIMPLEMENTED =
-'unimplemented'
-
-
-
-
-
-
-
-
-
-
- INTERNAL =
-'internal'
-
-
-
-
-
-
-
-
-
-
- UNAVAILABLE =
-'unavailable'
-
-
-
-
-
-
-
-
-
-
- DATA_LOSS =
-'dataloss'
-
-
-
-
-
-
-
-
-
-
-
-
-
- class
- TwirpClient :
-
- View Source
-
-
-
- 63 class TwirpClient :
- 64 def __init__ (
- 65 self ,
- 66 session : aiohttp . ClientSession ,
- 67 host : str ,
- 68 pkg : str ,
- 69 prefix : str = DEFAULT_PREFIX ,
- 70 ) -> None :
- 71 parse_res = urlparse ( host )
- 72 scheme = parse_res . scheme
- 73 if scheme . startswith ( "ws" ):
- 74 scheme = scheme . replace ( "ws" , "http" )
- 75
- 76 host = f " { scheme } :// { parse_res . netloc } / { parse_res . path } "
- 77 self . host = host . rstrip ( "/" )
- 78 self . pkg = pkg
- 79 self . prefix = prefix
- 80 self . _session = session
- 81
- 82 async def request (
- 83 self ,
- 84 service : str ,
- 85 method : str ,
- 86 data : Message ,
- 87 headers : Dict [ str , str ],
- 88 response_class : Type [ T ],
- 89 ) -> T :
- 90 url = f " { self . host } / { self . prefix } / { self . pkg } . { service } / { method } "
- 91 headers [ "Content-Type" ] = "application/protobuf"
- 92
- 93 serialized_data = data . SerializeToString ()
- 94 async with self . _session . post (
- 95 url , headers = headers , data = serialized_data
- 96 ) as resp :
- 97 if resp . status == 200 :
- 98 return response_class . FromString ( await resp . read ())
- 99 else :
-100 # when we have an error, Twirp always encode it in json
-101 error_data = await resp . json ()
-102 raise TwirpError ( error_data [ "code" ], error_data [ "msg" ])
-
-
-
-
-
-
-
-
-
- TwirpClient ( session : aiohttp . client . ClientSession , host : str , pkg : str , prefix : str = 'twirp' )
-
- View Source
-
-
-
-
64 def __init__ (
-65 self ,
-66 session : aiohttp . ClientSession ,
-67 host : str ,
-68 pkg : str ,
-69 prefix : str = DEFAULT_PREFIX ,
-70 ) -> None :
-71 parse_res = urlparse ( host )
-72 scheme = parse_res . scheme
-73 if scheme . startswith ( "ws" ):
-74 scheme = scheme . replace ( "ws" , "http" )
-75
-76 host = f " { scheme } :// { parse_res . netloc } / { parse_res . path } "
-77 self . host = host . rstrip ( "/" )
-78 self . pkg = pkg
-79 self . prefix = prefix
-80 self . _session = session
-
-
-
-
-
-
-
-
-
-
- prefix
-
-
-
-
-
-
-
-
-
-
-
-
- async def
- request ( self , service : str , method : str , data : google . protobuf . message . Message , headers : Dict [ str , str ] , response_class : Type [ ~ T ] ) -> ~ T :
-
- View Source
-
-
-
-
82 async def request (
- 83 self ,
- 84 service : str ,
- 85 method : str ,
- 86 data : Message ,
- 87 headers : Dict [ str , str ],
- 88 response_class : Type [ T ],
- 89 ) -> T :
- 90 url = f " { self . host } / { self . prefix } / { self . pkg } . { service } / { method } "
- 91 headers [ "Content-Type" ] = "application/protobuf"
- 92
- 93 serialized_data = data . SerializeToString ()
- 94 async with self . _session . post (
- 95 url , headers = headers , data = serialized_data
- 96 ) as resp :
- 97 if resp . status == 200 :
- 98 return response_class . FromString ( await resp . read ())
- 99 else :
-100 # when we have an error, Twirp always encode it in json
-101 error_data = await resp . json ()
-102 raise TwirpError ( error_data [ "code" ], error_data [ "msg" ])
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/livekit/api/version.html b/docs/livekit/api/version.html
deleted file mode 100644
index 6dc0e3ed..00000000
--- a/docs/livekit/api/version.html
+++ /dev/null
@@ -1,242 +0,0 @@
-
-
-
-
-
-
- livekit.api.version API documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/livekit/api/webhook.html b/docs/livekit/api/webhook.html
deleted file mode 100644
index 77d57415..00000000
--- a/docs/livekit/api/webhook.html
+++ /dev/null
@@ -1,393 +0,0 @@
-
-
-
-
-
-
- livekit.api.webhook API documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- class
- WebhookReceiver :
-
- View Source
-
-
-
- 9 class WebhookReceiver :
-10 """Receive webhooks from LiveKit.
-11
-12 Recommended way to use this service is via `livekit.api.LiveKitAPI`:
-13
-14 ```python
-15 from livekit import api
-16 lkapi = api.LiveKitAPI()
-17 webhook = lkapi.webhook
-18 ```
-19
-20 Also see https://docs.livekit.io/home/server/webhooks/
-21 """
-22 def __init__ ( self , token_verifier : TokenVerifier ):
-23 self . _verifier = token_verifier
-24
-25 def receive ( self , body : str , auth_token : str ) -> WebhookEvent :
-26 claims = self . _verifier . verify ( auth_token )
-27 if claims . sha256 is None :
-28 raise Exception ( "sha256 was not found in the token" )
-29
-30 body_hash = hashlib . sha256 ( body . encode ()) . digest ()
-31 claims_hash = base64 . b64decode ( claims . sha256 )
-32
-33 if body_hash != claims_hash :
-34 raise Exception ( "hash mismatch" )
-35
-36 return Parse ( body , WebhookEvent (), ignore_unknown_fields = True )
-
-
-
- Receive webhooks from LiveKit.
-
-
Recommended way to use this service is via livekit.api.LiveKitAPI:
-
-
-
from livekit import api
-lkapi = api . LiveKitAPI ()
-webhook = lkapi . webhook
-
-
-
-
Also see https://docs.livekit.io/home/server/webhooks/
-
-
-
-
-
-
-
-
22 def __init__ ( self , token_verifier : TokenVerifier ):
-23 self . _verifier = token_verifier
-
-
-
-
-
-
-
-
-
-
- def
- receive (self , body : str , auth_token : str ) -> webhook . WebhookEvent :
-
- View Source
-
-
-
-
25 def receive ( self , body : str , auth_token : str ) -> WebhookEvent :
-26 claims = self . _verifier . verify ( auth_token )
-27 if claims . sha256 is None :
-28 raise Exception ( "sha256 was not found in the token" )
-29
-30 body_hash = hashlib . sha256 ( body . encode ()) . digest ()
-31 claims_hash = base64 . b64decode ( claims . sha256 )
-32
-33 if body_hash != claims_hash :
-34 raise Exception ( "hash mismatch" )
-35
-36 return Parse ( body , WebhookEvent (), ignore_unknown_fields = True )
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/search.js b/docs/search.js
deleted file mode 100644
index 0259cd0b..00000000
--- a/docs/search.js
+++ /dev/null
@@ -1,46 +0,0 @@
-window.pdocSearch = (function(){
-/** elasticlunr - http://weixsong.github.io * Copyright (C) 2017 Oliver Nightingale * Copyright (C) 2017 Wei Song * MIT Licensed */!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),t.utils.toString=function(e){return void 0===e||null===e?"":e.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var e=Array.prototype.slice.call(arguments),t=e.pop(),n=e;if("function"!=typeof t)throw new TypeError("last argument must be a function");n.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},t.EventEmitter.prototype.removeListener=function(e,t){if(this.hasHandler(e)){var n=this.events[e].indexOf(t);-1!==n&&(this.events[e].splice(n,1),0==this.events[e].length&&delete this.events[e])}},t.EventEmitter.prototype.emit=function(e){if(this.hasHandler(e)){var t=Array.prototype.slice.call(arguments,1);this.events[e].forEach(function(e){e.apply(void 0,t)},this)}},t.EventEmitter.prototype.hasHandler=function(e){return e in this.events},t.tokenizer=function(e){if(!arguments.length||null===e||void 0===e)return[];if(Array.isArray(e)){var n=e.filter(function(e){return null===e||void 0===e?!1:!0});n=n.map(function(e){return t.utils.toString(e).toLowerCase()});var i=[];return n.forEach(function(e){var n=e.split(t.tokenizer.seperator);i=i.concat(n)},this),i}return e.toString().trim().toLowerCase().split(t.tokenizer.seperator)},t.tokenizer.defaultSeperator=/[\s\-]+/,t.tokenizer.seperator=t.tokenizer.defaultSeperator,t.tokenizer.setSeperator=function(e){null!==e&&void 0!==e&&"object"==typeof e&&(t.tokenizer.seperator=e)},t.tokenizer.resetSeperator=function(){t.tokenizer.seperator=t.tokenizer.defaultSeperator},t.tokenizer.getSeperator=function(){return t.tokenizer.seperator},t.Pipeline=function(){this._queue=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in t.Pipeline.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[n]=e},t.Pipeline.getRegisteredFunction=function(e){return e in t.Pipeline.registeredFunctions!=!0?null:t.Pipeline.registeredFunctions[e]},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.getRegisteredFunction(e);if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i+1,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i,0,n)},t.Pipeline.prototype.remove=function(e){var t=this._queue.indexOf(e);-1!==t&&this._queue.splice(t,1)},t.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,i=this._queue.length,o=0;n>o;o++){for(var r=e[o],s=0;i>s&&(r=this._queue[s](r,o,e),void 0!==r&&null!==r);s++);void 0!==r&&null!==r&&t.push(r)}return t},t.Pipeline.prototype.reset=function(){this._queue=[]},t.Pipeline.prototype.get=function(){return this._queue},t.Pipeline.prototype.toJSON=function(){return this._queue.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.DocumentStore,this.index={},this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var e=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,e)},t.Index.prototype.off=function(e,t){return this.eventEmitter.removeListener(e,t)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;n._fields=e.fields,n._ref=e.ref,n.documentStore=t.DocumentStore.load(e.documentStore),n.pipeline=t.Pipeline.load(e.pipeline),n.index={};for(var i in e.index)n.index[i]=t.InvertedIndex.load(e.index[i]);return n},t.Index.prototype.addField=function(e){return this._fields.push(e),this.index[e]=new t.InvertedIndex,this},t.Index.prototype.setRef=function(e){return this._ref=e,this},t.Index.prototype.saveDocument=function(e){return this.documentStore=new t.DocumentStore(e),this},t.Index.prototype.addDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.addDoc(i,e),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));this.documentStore.addFieldLength(i,n,o.length);var r={};o.forEach(function(e){e in r?r[e]+=1:r[e]=1},this);for(var s in r){var u=r[s];u=Math.sqrt(u),this.index[n].addToken(s,{ref:i,tf:u})}},this),n&&this.eventEmitter.emit("add",e,this)}},t.Index.prototype.removeDocByRef=function(e){if(e&&this.documentStore.isDocStored()!==!1&&this.documentStore.hasDoc(e)){var t=this.documentStore.getDoc(e);this.removeDoc(t,!1)}},t.Index.prototype.removeDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.hasDoc(i)&&(this.documentStore.removeDoc(i),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));o.forEach(function(e){this.index[n].removeToken(e,i)},this)},this),n&&this.eventEmitter.emit("remove",e,this))}},t.Index.prototype.updateDoc=function(e,t){var t=void 0===t?!0:t;this.removeDocByRef(e[this._ref],!1),this.addDoc(e,!1),t&&this.eventEmitter.emit("update",e,this)},t.Index.prototype.idf=function(e,t){var n="@"+t+"/"+e;if(Object.prototype.hasOwnProperty.call(this._idfCache,n))return this._idfCache[n];var i=this.index[t].getDocFreq(e),o=1+Math.log(this.documentStore.length/(i+1));return this._idfCache[n]=o,o},t.Index.prototype.getFields=function(){return this._fields.slice()},t.Index.prototype.search=function(e,n){if(!e)return[];e="string"==typeof e?{any:e}:JSON.parse(JSON.stringify(e));var i=null;null!=n&&(i=JSON.stringify(n));for(var o=new t.Configuration(i,this.getFields()).get(),r={},s=Object.keys(e),u=0;u0&&t.push(e);for(var i in n)"docs"!==i&&"df"!==i&&this.expandToken(e+i,t,n[i]);return t},t.InvertedIndex.prototype.toJSON=function(){return{root:this.root}},t.Configuration=function(e,n){var e=e||"";if(void 0==n||null==n)throw new Error("fields should not be null");this.config={};var i;try{i=JSON.parse(e),this.buildUserConfig(i,n)}catch(o){t.utils.warn("user configuration parse failed, will use default configuration"),this.buildDefaultConfig(n)}},t.Configuration.prototype.buildDefaultConfig=function(e){this.reset(),e.forEach(function(e){this.config[e]={boost:1,bool:"OR",expand:!1}},this)},t.Configuration.prototype.buildUserConfig=function(e,n){var i="OR",o=!1;if(this.reset(),"bool"in e&&(i=e.bool||i),"expand"in e&&(o=e.expand||o),"fields"in e)for(var r in e.fields)if(n.indexOf(r)>-1){var s=e.fields[r],u=o;void 0!=s.expand&&(u=s.expand),this.config[r]={boost:s.boost||0===s.boost?s.boost:1,bool:s.bool||i,expand:u}}else t.utils.warn("field name in user configuration not found in index instance fields");else this.addAllFields2UserConfig(i,o,n)},t.Configuration.prototype.addAllFields2UserConfig=function(e,t,n){n.forEach(function(n){this.config[n]={boost:1,bool:e,expand:t}},this)},t.Configuration.prototype.get=function(){return this.config},t.Configuration.prototype.reset=function(){this.config={}},lunr.SortedSet=function(){this.length=0,this.elements=[]},lunr.SortedSet.load=function(e){var t=new this;return t.elements=e,t.length=e.length,t},lunr.SortedSet.prototype.add=function(){var e,t;for(e=0;e1;){if(r===e)return o;e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o]}return r===e?o:-1},lunr.SortedSet.prototype.locationFor=function(e){for(var t=0,n=this.elements.length,i=n-t,o=t+Math.floor(i/2),r=this.elements[o];i>1;)e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o];return r>e?o:e>r?o+1:void 0},lunr.SortedSet.prototype.intersect=function(e){for(var t=new lunr.SortedSet,n=0,i=0,o=this.length,r=e.length,s=this.elements,u=e.elements;;){if(n>o-1||i>r-1)break;s[n]!==u[i]?s[n]u[i]&&i++:(t.add(s[n]),n++,i++)}return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){var t,n,i;this.length>=e.length?(t=this,n=e):(t=e,n=this),i=t.clone();for(var o=0,r=n.toArray();oLiveKit Server APIs for Python\n\nManage rooms, participants, egress, ingress, SIP, and Agent dispatch.
\n\nPrimary entry point is LiveKitAPI.
\n\nSee https://docs.livekit.io/reference/server/server-apis for more information.
\n"}, "livekit.api.LiveKitAPI": {"fullname": "livekit.api.LiveKitAPI", "modulename": "livekit.api", "qualname": "LiveKitAPI", "kind": "class", "doc": "LiveKit Server API Client
\n\nThis class is the main entrypoint, which exposes all services.
\n\nUsage:
\n\n\n
from livekit import api \nlkapi = api . LiveKitAPI () \nrooms = await lkapi . room . list_rooms ( api . proto_room . ListRoomsRequest ( names = [ 'test-room' ])) \n\n
\n"}, "livekit.api.LiveKitAPI.__init__": {"fullname": "livekit.api.LiveKitAPI.__init__", "modulename": "livekit.api", "qualname": "LiveKitAPI.__init__", "kind": "function", "doc": "Create a new LiveKitAPI instance.
\n\nArguments: \n\n\nurl: LiveKit server URL (read from LIVEKIT_URL environment variable if not provided) \napi_key: API key (read from LIVEKIT_API_KEY environment variable if not provided) \napi_secret: API secret (read from LIVEKIT_API_SECRET environment variable if not provided) \ntimeout: Request timeout (default: 60 seconds) \n \n", "signature": "(\turl : Optional [ str ] = None , \tapi_key : Optional [ str ] = None , \tapi_secret : Optional [ str ] = None , \t* , \ttimeout : aiohttp . client . ClientTimeout = ClientTimeout ( total = 60 , connect = None , sock_read = None , sock_connect = None , ceil_threshold = 5 ) ) "}, "livekit.api.LiveKitAPI.agent_dispatch": {"fullname": "livekit.api.LiveKitAPI.agent_dispatch", "modulename": "livekit.api", "qualname": "LiveKitAPI.agent_dispatch", "kind": "variable", "doc": "Instance of the AgentDispatchService
\n\nSee livekit.api.agent_dispatch_service.AgentDispatchService
\n", "annotation": ": livekit.api.agent_dispatch_service.AgentDispatchService"}, "livekit.api.LiveKitAPI.room": {"fullname": "livekit.api.LiveKitAPI.room", "modulename": "livekit.api", "qualname": "LiveKitAPI.room", "kind": "variable", "doc": "Instance of the RoomService
\n\nSee livekit.api.room_service.RoomService
\n", "annotation": ": livekit.api.room_service.RoomService"}, "livekit.api.LiveKitAPI.ingress": {"fullname": "livekit.api.LiveKitAPI.ingress", "modulename": "livekit.api", "qualname": "LiveKitAPI.ingress", "kind": "variable", "doc": "Instance of the IngressService
\n\nSee livekit.api.ingress_service.IngressService
\n", "annotation": ": livekit.api.ingress_service.IngressService"}, "livekit.api.LiveKitAPI.egress": {"fullname": "livekit.api.LiveKitAPI.egress", "modulename": "livekit.api", "qualname": "LiveKitAPI.egress", "kind": "variable", "doc": "Instance of the EgressService
\n\nSee livekit.api.egress_service.EgressService
\n", "annotation": ": livekit.api.egress_service.EgressService"}, "livekit.api.LiveKitAPI.sip": {"fullname": "livekit.api.LiveKitAPI.sip", "modulename": "livekit.api", "qualname": "LiveKitAPI.sip", "kind": "variable", "doc": "Instance of the SipService
\n\nSee livekit.api.sip_service.SipService
\n", "annotation": ": livekit.api.sip_service.SipService"}, "livekit.api.VideoGrants": {"fullname": "livekit.api.VideoGrants", "modulename": "livekit.api", "qualname": "VideoGrants", "kind": "class", "doc": "
\n"}, "livekit.api.VideoGrants.__init__": {"fullname": "livekit.api.VideoGrants.__init__", "modulename": "livekit.api", "qualname": "VideoGrants.__init__", "kind": "function", "doc": "
\n", "signature": "(\troom_create : Optional [ bool ] = None , \troom_list : Optional [ bool ] = None , \troom_record : Optional [ bool ] = None , \troom_admin : Optional [ bool ] = None , \troom_join : Optional [ bool ] = None , \troom : str = '' , \tcan_publish : bool = True , \tcan_subscribe : bool = True , \tcan_publish_data : bool = True , \tcan_publish_sources : Optional [ List [ str ]] = None , \tcan_update_own_metadata : Optional [ bool ] = None , \tingress_admin : Optional [ bool ] = None , \thidden : Optional [ bool ] = None , \trecorder : Optional [ bool ] = None , \tagent : Optional [ bool ] = None ) "}, "livekit.api.VideoGrants.room_create": {"fullname": "livekit.api.VideoGrants.room_create", "modulename": "livekit.api", "qualname": "VideoGrants.room_create", "kind": "variable", "doc": "
\n", "annotation": ": Optional[bool]", "default_value": "None"}, "livekit.api.VideoGrants.room_list": {"fullname": "livekit.api.VideoGrants.room_list", "modulename": "livekit.api", "qualname": "VideoGrants.room_list", "kind": "variable", "doc": "
\n", "annotation": ": Optional[bool]", "default_value": "None"}, "livekit.api.VideoGrants.room_record": {"fullname": "livekit.api.VideoGrants.room_record", "modulename": "livekit.api", "qualname": "VideoGrants.room_record", "kind": "variable", "doc": "
\n", "annotation": ": Optional[bool]", "default_value": "None"}, "livekit.api.VideoGrants.room_admin": {"fullname": "livekit.api.VideoGrants.room_admin", "modulename": "livekit.api", "qualname": "VideoGrants.room_admin", "kind": "variable", "doc": "
\n", "annotation": ": Optional[bool]", "default_value": "None"}, "livekit.api.VideoGrants.room_join": {"fullname": "livekit.api.VideoGrants.room_join", "modulename": "livekit.api", "qualname": "VideoGrants.room_join", "kind": "variable", "doc": "
\n", "annotation": ": Optional[bool]", "default_value": "None"}, "livekit.api.VideoGrants.room": {"fullname": "livekit.api.VideoGrants.room", "modulename": "livekit.api", "qualname": "VideoGrants.room", "kind": "variable", "doc": "
\n", "annotation": ": str", "default_value": "''"}, "livekit.api.VideoGrants.can_publish": {"fullname": "livekit.api.VideoGrants.can_publish", "modulename": "livekit.api", "qualname": "VideoGrants.can_publish", "kind": "variable", "doc": "
\n", "annotation": ": bool", "default_value": "True"}, "livekit.api.VideoGrants.can_subscribe": {"fullname": "livekit.api.VideoGrants.can_subscribe", "modulename": "livekit.api", "qualname": "VideoGrants.can_subscribe", "kind": "variable", "doc": "
\n", "annotation": ": bool", "default_value": "True"}, "livekit.api.VideoGrants.can_publish_data": {"fullname": "livekit.api.VideoGrants.can_publish_data", "modulename": "livekit.api", "qualname": "VideoGrants.can_publish_data", "kind": "variable", "doc": "
\n", "annotation": ": bool", "default_value": "True"}, "livekit.api.VideoGrants.can_publish_sources": {"fullname": "livekit.api.VideoGrants.can_publish_sources", "modulename": "livekit.api", "qualname": "VideoGrants.can_publish_sources", "kind": "variable", "doc": "
\n", "annotation": ": Optional[List[str]]", "default_value": "None"}, "livekit.api.VideoGrants.can_update_own_metadata": {"fullname": "livekit.api.VideoGrants.can_update_own_metadata", "modulename": "livekit.api", "qualname": "VideoGrants.can_update_own_metadata", "kind": "variable", "doc": "
\n", "annotation": ": Optional[bool]", "default_value": "None"}, "livekit.api.VideoGrants.ingress_admin": {"fullname": "livekit.api.VideoGrants.ingress_admin", "modulename": "livekit.api", "qualname": "VideoGrants.ingress_admin", "kind": "variable", "doc": "
\n", "annotation": ": Optional[bool]", "default_value": "None"}, "livekit.api.VideoGrants.hidden": {"fullname": "livekit.api.VideoGrants.hidden", "modulename": "livekit.api", "qualname": "VideoGrants.hidden", "kind": "variable", "doc": "
\n", "annotation": ": Optional[bool]", "default_value": "None"}, "livekit.api.VideoGrants.recorder": {"fullname": "livekit.api.VideoGrants.recorder", "modulename": "livekit.api", "qualname": "VideoGrants.recorder", "kind": "variable", "doc": "
\n", "annotation": ": Optional[bool]", "default_value": "None"}, "livekit.api.VideoGrants.agent": {"fullname": "livekit.api.VideoGrants.agent", "modulename": "livekit.api", "qualname": "VideoGrants.agent", "kind": "variable", "doc": "
\n", "annotation": ": Optional[bool]", "default_value": "None"}, "livekit.api.SIPGrants": {"fullname": "livekit.api.SIPGrants", "modulename": "livekit.api", "qualname": "SIPGrants", "kind": "class", "doc": "
\n"}, "livekit.api.SIPGrants.__init__": {"fullname": "livekit.api.SIPGrants.__init__", "modulename": "livekit.api", "qualname": "SIPGrants.__init__", "kind": "function", "doc": "
\n", "signature": "(admin : bool = False , call : bool = False ) "}, "livekit.api.SIPGrants.admin": {"fullname": "livekit.api.SIPGrants.admin", "modulename": "livekit.api", "qualname": "SIPGrants.admin", "kind": "variable", "doc": "
\n", "annotation": ": bool", "default_value": "False"}, "livekit.api.SIPGrants.call": {"fullname": "livekit.api.SIPGrants.call", "modulename": "livekit.api", "qualname": "SIPGrants.call", "kind": "variable", "doc": "
\n", "annotation": ": bool", "default_value": "False"}, "livekit.api.AccessToken": {"fullname": "livekit.api.AccessToken", "modulename": "livekit.api", "qualname": "AccessToken", "kind": "class", "doc": "
\n"}, "livekit.api.AccessToken.__init__": {"fullname": "livekit.api.AccessToken.__init__", "modulename": "livekit.api", "qualname": "AccessToken.__init__", "kind": "function", "doc": "
\n", "signature": "(api_key : Optional [ str ] = None , api_secret : Optional [ str ] = None ) "}, "livekit.api.AccessToken.ParticipantKind": {"fullname": "livekit.api.AccessToken.ParticipantKind", "modulename": "livekit.api", "qualname": "AccessToken.ParticipantKind", "kind": "variable", "doc": "
\n", "default_value": "typing.Literal['standard', 'egress', 'ingress', 'sip', 'agent']"}, "livekit.api.AccessToken.api_key": {"fullname": "livekit.api.AccessToken.api_key", "modulename": "livekit.api", "qualname": "AccessToken.api_key", "kind": "variable", "doc": "
\n"}, "livekit.api.AccessToken.api_secret": {"fullname": "livekit.api.AccessToken.api_secret", "modulename": "livekit.api", "qualname": "AccessToken.api_secret", "kind": "variable", "doc": "
\n"}, "livekit.api.AccessToken.claims": {"fullname": "livekit.api.AccessToken.claims", "modulename": "livekit.api", "qualname": "AccessToken.claims", "kind": "variable", "doc": "
\n"}, "livekit.api.AccessToken.identity": {"fullname": "livekit.api.AccessToken.identity", "modulename": "livekit.api", "qualname": "AccessToken.identity", "kind": "variable", "doc": "
\n"}, "livekit.api.AccessToken.ttl": {"fullname": "livekit.api.AccessToken.ttl", "modulename": "livekit.api", "qualname": "AccessToken.ttl", "kind": "variable", "doc": "
\n"}, "livekit.api.AccessToken.with_ttl": {"fullname": "livekit.api.AccessToken.with_ttl", "modulename": "livekit.api", "qualname": "AccessToken.with_ttl", "kind": "function", "doc": "
\n", "signature": "(self , ttl : datetime . timedelta ) -> livekit . api . access_token . AccessToken : ", "funcdef": "def"}, "livekit.api.AccessToken.with_grants": {"fullname": "livekit.api.AccessToken.with_grants", "modulename": "livekit.api", "qualname": "AccessToken.with_grants", "kind": "function", "doc": "
\n", "signature": "(\tself , \tgrants : livekit . api . access_token . VideoGrants ) -> livekit . api . access_token . AccessToken : ", "funcdef": "def"}, "livekit.api.AccessToken.with_sip_grants": {"fullname": "livekit.api.AccessToken.with_sip_grants", "modulename": "livekit.api", "qualname": "AccessToken.with_sip_grants", "kind": "function", "doc": "
\n", "signature": "(\tself , \tgrants : livekit . api . access_token . SIPGrants ) -> livekit . api . access_token . AccessToken : ", "funcdef": "def"}, "livekit.api.AccessToken.with_identity": {"fullname": "livekit.api.AccessToken.with_identity", "modulename": "livekit.api", "qualname": "AccessToken.with_identity", "kind": "function", "doc": "
\n", "signature": "(self , identity : str ) -> livekit . api . access_token . AccessToken : ", "funcdef": "def"}, "livekit.api.AccessToken.with_kind": {"fullname": "livekit.api.AccessToken.with_kind", "modulename": "livekit.api", "qualname": "AccessToken.with_kind", "kind": "function", "doc": "
\n", "signature": "(\tself , \tkind : Literal [ 'standard' , 'egress' , 'ingress' , 'sip' , 'agent' ] ) -> livekit . api . access_token . AccessToken : ", "funcdef": "def"}, "livekit.api.AccessToken.with_name": {"fullname": "livekit.api.AccessToken.with_name", "modulename": "livekit.api", "qualname": "AccessToken.with_name", "kind": "function", "doc": "
\n", "signature": "(self , name : str ) -> livekit . api . access_token . AccessToken : ", "funcdef": "def"}, "livekit.api.AccessToken.with_metadata": {"fullname": "livekit.api.AccessToken.with_metadata", "modulename": "livekit.api", "qualname": "AccessToken.with_metadata", "kind": "function", "doc": "
\n", "signature": "(self , metadata : str ) -> livekit . api . access_token . AccessToken : ", "funcdef": "def"}, "livekit.api.AccessToken.with_attributes": {"fullname": "livekit.api.AccessToken.with_attributes", "modulename": "livekit.api", "qualname": "AccessToken.with_attributes", "kind": "function", "doc": "
\n", "signature": "(self , attributes : dict [ str , str ] ) -> livekit . api . access_token . AccessToken : ", "funcdef": "def"}, "livekit.api.AccessToken.with_sha256": {"fullname": "livekit.api.AccessToken.with_sha256", "modulename": "livekit.api", "qualname": "AccessToken.with_sha256", "kind": "function", "doc": "
\n", "signature": "(self , sha256 : str ) -> livekit . api . access_token . AccessToken : ", "funcdef": "def"}, "livekit.api.AccessToken.with_room_preset": {"fullname": "livekit.api.AccessToken.with_room_preset", "modulename": "livekit.api", "qualname": "AccessToken.with_room_preset", "kind": "function", "doc": "
\n", "signature": "(self , preset : str ) -> livekit . api . access_token . AccessToken : ", "funcdef": "def"}, "livekit.api.AccessToken.with_room_config": {"fullname": "livekit.api.AccessToken.with_room_config", "modulename": "livekit.api", "qualname": "AccessToken.with_room_config", "kind": "function", "doc": "
\n", "signature": "(\tself , \tconfig : room . RoomConfiguration ) -> livekit . api . access_token . AccessToken : ", "funcdef": "def"}, "livekit.api.AccessToken.to_jwt": {"fullname": "livekit.api.AccessToken.to_jwt", "modulename": "livekit.api", "qualname": "AccessToken.to_jwt", "kind": "function", "doc": "
\n", "signature": "(self ) -> str : ", "funcdef": "def"}, "livekit.api.TokenVerifier": {"fullname": "livekit.api.TokenVerifier", "modulename": "livekit.api", "qualname": "TokenVerifier", "kind": "class", "doc": "
\n"}, "livekit.api.TokenVerifier.__init__": {"fullname": "livekit.api.TokenVerifier.__init__", "modulename": "livekit.api", "qualname": "TokenVerifier.__init__", "kind": "function", "doc": "
\n", "signature": "(\tapi_key : Optional [ str ] = None , \tapi_secret : Optional [ str ] = None , \t* , \tleeway : datetime . timedelta = datetime . timedelta ( seconds = 60 ) ) "}, "livekit.api.TokenVerifier.api_key": {"fullname": "livekit.api.TokenVerifier.api_key", "modulename": "livekit.api", "qualname": "TokenVerifier.api_key", "kind": "variable", "doc": "
\n"}, "livekit.api.TokenVerifier.api_secret": {"fullname": "livekit.api.TokenVerifier.api_secret", "modulename": "livekit.api", "qualname": "TokenVerifier.api_secret", "kind": "variable", "doc": "
\n"}, "livekit.api.TokenVerifier.verify": {"fullname": "livekit.api.TokenVerifier.verify", "modulename": "livekit.api", "qualname": "TokenVerifier.verify", "kind": "function", "doc": "
\n", "signature": "(self , token : str ) -> livekit . api . access_token . Claims : ", "funcdef": "def"}, "livekit.api.WebhookReceiver": {"fullname": "livekit.api.WebhookReceiver", "modulename": "livekit.api", "qualname": "WebhookReceiver", "kind": "class", "doc": "
\n"}, "livekit.api.WebhookReceiver.__init__": {"fullname": "livekit.api.WebhookReceiver.__init__", "modulename": "livekit.api", "qualname": "WebhookReceiver.__init__", "kind": "function", "doc": "
\n", "signature": "(token_verifier : livekit . api . access_token . TokenVerifier ) "}, "livekit.api.WebhookReceiver.receive": {"fullname": "livekit.api.WebhookReceiver.receive", "modulename": "livekit.api", "qualname": "WebhookReceiver.receive", "kind": "function", "doc": "
\n", "signature": "(self , body : str , auth_token : str ) -> webhook . WebhookEvent : ", "funcdef": "def"}, "livekit.api.TwirpError": {"fullname": "livekit.api.TwirpError", "modulename": "livekit.api", "qualname": "TwirpError", "kind": "class", "doc": "Common base class for all non-exit exceptions.
\n", "bases": "builtins.Exception"}, "livekit.api.TwirpError.__init__": {"fullname": "livekit.api.TwirpError.__init__", "modulename": "livekit.api", "qualname": "TwirpError.__init__", "kind": "function", "doc": "
\n", "signature": "(code : str , msg : str ) "}, "livekit.api.TwirpError.code": {"fullname": "livekit.api.TwirpError.code", "modulename": "livekit.api", "qualname": "TwirpError.code", "kind": "variable", "doc": "
\n", "annotation": ": str"}, "livekit.api.TwirpError.message": {"fullname": "livekit.api.TwirpError.message", "modulename": "livekit.api", "qualname": "TwirpError.message", "kind": "variable", "doc": "
\n", "annotation": ": str"}, "livekit.api.TwirpErrorCode": {"fullname": "livekit.api.TwirpErrorCode", "modulename": "livekit.api", "qualname": "TwirpErrorCode", "kind": "class", "doc": "
\n"}, "livekit.api.TwirpErrorCode.CANCELED": {"fullname": "livekit.api.TwirpErrorCode.CANCELED", "modulename": "livekit.api", "qualname": "TwirpErrorCode.CANCELED", "kind": "variable", "doc": "
\n", "default_value": "'canceled'"}, "livekit.api.TwirpErrorCode.UNKNOWN": {"fullname": "livekit.api.TwirpErrorCode.UNKNOWN", "modulename": "livekit.api", "qualname": "TwirpErrorCode.UNKNOWN", "kind": "variable", "doc": "
\n", "default_value": "'unknown'"}, "livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"fullname": "livekit.api.TwirpErrorCode.INVALID_ARGUMENT", "modulename": "livekit.api", "qualname": "TwirpErrorCode.INVALID_ARGUMENT", "kind": "variable", "doc": "
\n", "default_value": "'invalid_argument'"}, "livekit.api.TwirpErrorCode.MALFORMED": {"fullname": "livekit.api.TwirpErrorCode.MALFORMED", "modulename": "livekit.api", "qualname": "TwirpErrorCode.MALFORMED", "kind": "variable", "doc": "
\n", "default_value": "'malformed'"}, "livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"fullname": "livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED", "modulename": "livekit.api", "qualname": "TwirpErrorCode.DEADLINE_EXCEEDED", "kind": "variable", "doc": "
\n", "default_value": "'deadline_exceeded'"}, "livekit.api.TwirpErrorCode.NOT_FOUND": {"fullname": "livekit.api.TwirpErrorCode.NOT_FOUND", "modulename": "livekit.api", "qualname": "TwirpErrorCode.NOT_FOUND", "kind": "variable", "doc": "
\n", "default_value": "'not_found'"}, "livekit.api.TwirpErrorCode.BAD_ROUTE": {"fullname": "livekit.api.TwirpErrorCode.BAD_ROUTE", "modulename": "livekit.api", "qualname": "TwirpErrorCode.BAD_ROUTE", "kind": "variable", "doc": "
\n", "default_value": "'bad_route'"}, "livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"fullname": "livekit.api.TwirpErrorCode.ALREADY_EXISTS", "modulename": "livekit.api", "qualname": "TwirpErrorCode.ALREADY_EXISTS", "kind": "variable", "doc": "
\n", "default_value": "'already_exists'"}, "livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"fullname": "livekit.api.TwirpErrorCode.PERMISSION_DENIED", "modulename": "livekit.api", "qualname": "TwirpErrorCode.PERMISSION_DENIED", "kind": "variable", "doc": "
\n", "default_value": "'permission_denied'"}, "livekit.api.TwirpErrorCode.UNAUTHENTICATED": {"fullname": "livekit.api.TwirpErrorCode.UNAUTHENTICATED", "modulename": "livekit.api", "qualname": "TwirpErrorCode.UNAUTHENTICATED", "kind": "variable", "doc": "
\n", "default_value": "'unauthenticated'"}, "livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"fullname": "livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED", "modulename": "livekit.api", "qualname": "TwirpErrorCode.RESOURCE_EXHAUSTED", "kind": "variable", "doc": "
\n", "default_value": "'resource_exhausted'"}, "livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"fullname": "livekit.api.TwirpErrorCode.FAILED_PRECONDITION", "modulename": "livekit.api", "qualname": "TwirpErrorCode.FAILED_PRECONDITION", "kind": "variable", "doc": "
\n", "default_value": "'failed_precondition'"}, "livekit.api.TwirpErrorCode.ABORTED": {"fullname": "livekit.api.TwirpErrorCode.ABORTED", "modulename": "livekit.api", "qualname": "TwirpErrorCode.ABORTED", "kind": "variable", "doc": "
\n", "default_value": "'aborted'"}, "livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"fullname": "livekit.api.TwirpErrorCode.OUT_OF_RANGE", "modulename": "livekit.api", "qualname": "TwirpErrorCode.OUT_OF_RANGE", "kind": "variable", "doc": "
\n", "default_value": "'out_of_range'"}, "livekit.api.TwirpErrorCode.UNIMPLEMENTED": {"fullname": "livekit.api.TwirpErrorCode.UNIMPLEMENTED", "modulename": "livekit.api", "qualname": "TwirpErrorCode.UNIMPLEMENTED", "kind": "variable", "doc": "
\n", "default_value": "'unimplemented'"}, "livekit.api.TwirpErrorCode.INTERNAL": {"fullname": "livekit.api.TwirpErrorCode.INTERNAL", "modulename": "livekit.api", "qualname": "TwirpErrorCode.INTERNAL", "kind": "variable", "doc": "
\n", "default_value": "'internal'"}, "livekit.api.TwirpErrorCode.UNAVAILABLE": {"fullname": "livekit.api.TwirpErrorCode.UNAVAILABLE", "modulename": "livekit.api", "qualname": "TwirpErrorCode.UNAVAILABLE", "kind": "variable", "doc": "
\n", "default_value": "'unavailable'"}, "livekit.api.TwirpErrorCode.DATA_LOSS": {"fullname": "livekit.api.TwirpErrorCode.DATA_LOSS", "modulename": "livekit.api", "qualname": "TwirpErrorCode.DATA_LOSS", "kind": "variable", "doc": "
\n", "default_value": "'dataloss'"}, "livekit.api.agent_dispatch_service": {"fullname": "livekit.api.agent_dispatch_service", "modulename": "livekit.api.agent_dispatch_service", "kind": "module", "doc": "
\n"}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"fullname": "livekit.api.agent_dispatch_service.AgentDispatchService", "modulename": "livekit.api.agent_dispatch_service", "qualname": "AgentDispatchService", "kind": "class", "doc": "Manage agent dispatches. Service APIs require roomAdmin permissions.
\n\nRecommended way to use this service is via livekit.api.LiveKitAPI:
\n\n\n
from livekit import api \nlkapi = api . LiveKitAPI () \nagent_dispatch = lkapi . agent_dispatch \n\n
\n", "bases": "livekit.api._service.Service"}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"fullname": "livekit.api.agent_dispatch_service.AgentDispatchService.__init__", "modulename": "livekit.api.agent_dispatch_service", "qualname": "AgentDispatchService.__init__", "kind": "function", "doc": "
\n", "signature": "(\tsession : aiohttp . client . ClientSession , \turl : str , \tapi_key : str , \tapi_secret : str ) "}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"fullname": "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch", "modulename": "livekit.api.agent_dispatch_service", "qualname": "AgentDispatchService.create_dispatch", "kind": "function", "doc": "Create an explicit dispatch for an agent to join a room.
\n\nTo use explicit dispatch, your agent must be registered with an agentName.
\n\nArguments: \n\n\nreq (CreateAgentDispatchRequest): Request containing dispatch creation parameters \n \n\nReturns: \n\n\n AgentDispatch: The created agent dispatch object
\n \n", "signature": "(\tself , \treq : agent_dispatch . CreateAgentDispatchRequest ) -> agent_dispatch . AgentDispatch : ", "funcdef": "async def"}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"fullname": "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch", "modulename": "livekit.api.agent_dispatch_service", "qualname": "AgentDispatchService.delete_dispatch", "kind": "function", "doc": "Delete an explicit dispatch for an agent in a room.
\n\nArguments: \n\n\ndispatch_id (str): ID of the dispatch to delete \nroom_name (str): Name of the room containing the dispatch \n \n\nReturns: \n\n\n AgentDispatch: The deleted agent dispatch object
\n \n", "signature": "(self , dispatch_id : str , room_name : str ) -> agent_dispatch . AgentDispatch : ", "funcdef": "async def"}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"fullname": "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch", "modulename": "livekit.api.agent_dispatch_service", "qualname": "AgentDispatchService.list_dispatch", "kind": "function", "doc": "List all agent dispatches in a room.
\n\nArguments: \n\n\nroom_name (str): Name of the room to list dispatches from \n \n\nReturns: \n\n\n list[AgentDispatch]: List of agent dispatch objects in the room
\n \n", "signature": "(self , room_name : str ) -> list [ agent_dispatch . AgentDispatch ] : ", "funcdef": "async def"}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"fullname": "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch", "modulename": "livekit.api.agent_dispatch_service", "qualname": "AgentDispatchService.get_dispatch", "kind": "function", "doc": "Get an Agent dispatch by ID
\n\nArguments: \n\n\ndispatch_id (str): ID of the dispatch to retrieve \nroom_name (str): Name of the room containing the dispatch \n \n\nReturns: \n\n\n Optional[AgentDispatch]: The requested agent dispatch object if found, None otherwise
\n \n", "signature": "(\tself , \tdispatch_id : str , \troom_name : str ) -> Optional [ agent_dispatch . AgentDispatch ] : ", "funcdef": "async def"}, "livekit.api.egress_service": {"fullname": "livekit.api.egress_service", "modulename": "livekit.api.egress_service", "kind": "module", "doc": "
\n"}, "livekit.api.egress_service.EgressService": {"fullname": "livekit.api.egress_service.EgressService", "modulename": "livekit.api.egress_service", "qualname": "EgressService", "kind": "class", "doc": "Client for LiveKit Egress Service API
\n\nRecommended way to use this service is via livekit.api.LiveKitAPI:
\n\n\n
from livekit import api \nlkapi = api . LiveKitAPI () \negress = lkapi . egress \n\n
\n\nAlso see https://docs.livekit.io/home/egress/overview/
\n", "bases": "livekit.api._service.Service"}, "livekit.api.egress_service.EgressService.__init__": {"fullname": "livekit.api.egress_service.EgressService.__init__", "modulename": "livekit.api.egress_service", "qualname": "EgressService.__init__", "kind": "function", "doc": "
\n", "signature": "(\tsession : aiohttp . client . ClientSession , \turl : str , \tapi_key : str , \tapi_secret : str ) "}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"fullname": "livekit.api.egress_service.EgressService.start_room_composite_egress", "modulename": "livekit.api.egress_service", "qualname": "EgressService.start_room_composite_egress", "kind": "function", "doc": "
\n", "signature": "(self , start : egress . RoomCompositeEgressRequest ) -> egress . EgressInfo : ", "funcdef": "async def"}, "livekit.api.egress_service.EgressService.start_web_egress": {"fullname": "livekit.api.egress_service.EgressService.start_web_egress", "modulename": "livekit.api.egress_service", "qualname": "EgressService.start_web_egress", "kind": "function", "doc": "
\n", "signature": "(self , start : egress . WebEgressRequest ) -> egress . EgressInfo : ", "funcdef": "async def"}, "livekit.api.egress_service.EgressService.start_participant_egress": {"fullname": "livekit.api.egress_service.EgressService.start_participant_egress", "modulename": "livekit.api.egress_service", "qualname": "EgressService.start_participant_egress", "kind": "function", "doc": "
\n", "signature": "(self , start : egress . ParticipantEgressRequest ) -> egress . EgressInfo : ", "funcdef": "async def"}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"fullname": "livekit.api.egress_service.EgressService.start_track_composite_egress", "modulename": "livekit.api.egress_service", "qualname": "EgressService.start_track_composite_egress", "kind": "function", "doc": "
\n", "signature": "(self , start : egress . TrackCompositeEgressRequest ) -> egress . EgressInfo : ", "funcdef": "async def"}, "livekit.api.egress_service.EgressService.start_track_egress": {"fullname": "livekit.api.egress_service.EgressService.start_track_egress", "modulename": "livekit.api.egress_service", "qualname": "EgressService.start_track_egress", "kind": "function", "doc": "
\n", "signature": "(self , start : egress . TrackEgressRequest ) -> egress . EgressInfo : ", "funcdef": "async def"}, "livekit.api.egress_service.EgressService.update_layout": {"fullname": "livekit.api.egress_service.EgressService.update_layout", "modulename": "livekit.api.egress_service", "qualname": "EgressService.update_layout", "kind": "function", "doc": "
\n", "signature": "(self , update : egress . UpdateLayoutRequest ) -> egress . EgressInfo : ", "funcdef": "async def"}, "livekit.api.egress_service.EgressService.update_stream": {"fullname": "livekit.api.egress_service.EgressService.update_stream", "modulename": "livekit.api.egress_service", "qualname": "EgressService.update_stream", "kind": "function", "doc": "
\n", "signature": "(self , update : egress . UpdateStreamRequest ) -> egress . EgressInfo : ", "funcdef": "async def"}, "livekit.api.egress_service.EgressService.list_egress": {"fullname": "livekit.api.egress_service.EgressService.list_egress", "modulename": "livekit.api.egress_service", "qualname": "EgressService.list_egress", "kind": "function", "doc": "
\n", "signature": "(self , list : egress . ListEgressRequest ) -> egress . ListEgressResponse : ", "funcdef": "async def"}, "livekit.api.egress_service.EgressService.stop_egress": {"fullname": "livekit.api.egress_service.EgressService.stop_egress", "modulename": "livekit.api.egress_service", "qualname": "EgressService.stop_egress", "kind": "function", "doc": "
\n", "signature": "(self , stop : egress . StopEgressRequest ) -> egress . EgressInfo : ", "funcdef": "async def"}, "livekit.api.ingress_service": {"fullname": "livekit.api.ingress_service", "modulename": "livekit.api.ingress_service", "kind": "module", "doc": "
\n"}, "livekit.api.ingress_service.IngressService": {"fullname": "livekit.api.ingress_service.IngressService", "modulename": "livekit.api.ingress_service", "qualname": "IngressService", "kind": "class", "doc": "Client for LiveKit Ingress Service API
\n\nRecommended way to use this service is via livekit.api.LiveKitAPI:
\n\n\n
from livekit import api \nlkapi = api . LiveKitAPI () \ningress = lkapi . ingress \n\n
\n\nAlso see https://docs.livekit.io/home/ingress/overview/
\n", "bases": "livekit.api._service.Service"}, "livekit.api.ingress_service.IngressService.__init__": {"fullname": "livekit.api.ingress_service.IngressService.__init__", "modulename": "livekit.api.ingress_service", "qualname": "IngressService.__init__", "kind": "function", "doc": "
\n", "signature": "(\tsession : aiohttp . client . ClientSession , \turl : str , \tapi_key : str , \tapi_secret : str ) "}, "livekit.api.ingress_service.IngressService.create_ingress": {"fullname": "livekit.api.ingress_service.IngressService.create_ingress", "modulename": "livekit.api.ingress_service", "qualname": "IngressService.create_ingress", "kind": "function", "doc": "
\n", "signature": "(self , create : ingress . CreateIngressRequest ) -> ingress . IngressInfo : ", "funcdef": "async def"}, "livekit.api.ingress_service.IngressService.update_ingress": {"fullname": "livekit.api.ingress_service.IngressService.update_ingress", "modulename": "livekit.api.ingress_service", "qualname": "IngressService.update_ingress", "kind": "function", "doc": "
\n", "signature": "(self , update : ingress . UpdateIngressRequest ) -> ingress . IngressInfo : ", "funcdef": "async def"}, "livekit.api.ingress_service.IngressService.list_ingress": {"fullname": "livekit.api.ingress_service.IngressService.list_ingress", "modulename": "livekit.api.ingress_service", "qualname": "IngressService.list_ingress", "kind": "function", "doc": "
\n", "signature": "(self , list : ingress . ListIngressRequest ) -> ingress . ListIngressResponse : ", "funcdef": "async def"}, "livekit.api.ingress_service.IngressService.delete_ingress": {"fullname": "livekit.api.ingress_service.IngressService.delete_ingress", "modulename": "livekit.api.ingress_service", "qualname": "IngressService.delete_ingress", "kind": "function", "doc": "
\n", "signature": "(self , delete : ingress . DeleteIngressRequest ) -> ingress . IngressInfo : ", "funcdef": "async def"}, "livekit.api.room_service": {"fullname": "livekit.api.room_service", "modulename": "livekit.api.room_service", "kind": "module", "doc": "
\n"}, "livekit.api.room_service.RoomService": {"fullname": "livekit.api.room_service.RoomService", "modulename": "livekit.api.room_service", "qualname": "RoomService", "kind": "class", "doc": "Client for LiveKit RoomService API
\n\nRecommended way to use this service is via livekit.api.LiveKitAPI:
\n\n\n
from livekit import api \nlkapi = api . LiveKitAPI () \nroom_service = lkapi . room \n\n
\n\nAlso see https://docs.livekit.io/home/server/managing-rooms/ and https://docs.livekit.io/home/server/managing-participants/
\n", "bases": "livekit.api._service.Service"}, "livekit.api.room_service.RoomService.__init__": {"fullname": "livekit.api.room_service.RoomService.__init__", "modulename": "livekit.api.room_service", "qualname": "RoomService.__init__", "kind": "function", "doc": "
\n", "signature": "(\tsession : aiohttp . client . ClientSession , \turl : str , \tapi_key : str , \tapi_secret : str ) "}, "livekit.api.room_service.RoomService.create_room": {"fullname": "livekit.api.room_service.RoomService.create_room", "modulename": "livekit.api.room_service", "qualname": "RoomService.create_room", "kind": "function", "doc": "
\n", "signature": "(self , create : room . CreateRoomRequest ) -> models . Room : ", "funcdef": "async def"}, "livekit.api.room_service.RoomService.list_rooms": {"fullname": "livekit.api.room_service.RoomService.list_rooms", "modulename": "livekit.api.room_service", "qualname": "RoomService.list_rooms", "kind": "function", "doc": "
\n", "signature": "(self , list : room . ListRoomsRequest ) -> room . ListRoomsResponse : ", "funcdef": "async def"}, "livekit.api.room_service.RoomService.delete_room": {"fullname": "livekit.api.room_service.RoomService.delete_room", "modulename": "livekit.api.room_service", "qualname": "RoomService.delete_room", "kind": "function", "doc": "
\n", "signature": "(self , delete : room . DeleteRoomRequest ) -> room . DeleteRoomResponse : ", "funcdef": "async def"}, "livekit.api.room_service.RoomService.update_room_metadata": {"fullname": "livekit.api.room_service.RoomService.update_room_metadata", "modulename": "livekit.api.room_service", "qualname": "RoomService.update_room_metadata", "kind": "function", "doc": "
\n", "signature": "(self , update : room . UpdateRoomMetadataRequest ) -> models . Room : ", "funcdef": "async def"}, "livekit.api.room_service.RoomService.list_participants": {"fullname": "livekit.api.room_service.RoomService.list_participants", "modulename": "livekit.api.room_service", "qualname": "RoomService.list_participants", "kind": "function", "doc": "
\n", "signature": "(\tself , \tlist : room . ListParticipantsRequest ) -> room . ListParticipantsResponse : ", "funcdef": "async def"}, "livekit.api.room_service.RoomService.get_participant": {"fullname": "livekit.api.room_service.RoomService.get_participant", "modulename": "livekit.api.room_service", "qualname": "RoomService.get_participant", "kind": "function", "doc": "
\n", "signature": "(self , get : room . RoomParticipantIdentity ) -> models . ParticipantInfo : ", "funcdef": "async def"}, "livekit.api.room_service.RoomService.remove_participant": {"fullname": "livekit.api.room_service.RoomService.remove_participant", "modulename": "livekit.api.room_service", "qualname": "RoomService.remove_participant", "kind": "function", "doc": "
\n", "signature": "(\tself , \tremove : room . RoomParticipantIdentity ) -> room . RemoveParticipantResponse : ", "funcdef": "async def"}, "livekit.api.room_service.RoomService.mute_published_track": {"fullname": "livekit.api.room_service.RoomService.mute_published_track", "modulename": "livekit.api.room_service", "qualname": "RoomService.mute_published_track", "kind": "function", "doc": "
\n", "signature": "(self , update : room . MuteRoomTrackRequest ) -> room . MuteRoomTrackResponse : ", "funcdef": "async def"}, "livekit.api.room_service.RoomService.update_participant": {"fullname": "livekit.api.room_service.RoomService.update_participant", "modulename": "livekit.api.room_service", "qualname": "RoomService.update_participant", "kind": "function", "doc": "
\n", "signature": "(self , update : room . UpdateParticipantRequest ) -> models . ParticipantInfo : ", "funcdef": "async def"}, "livekit.api.room_service.RoomService.update_subscriptions": {"fullname": "livekit.api.room_service.RoomService.update_subscriptions", "modulename": "livekit.api.room_service", "qualname": "RoomService.update_subscriptions", "kind": "function", "doc": "
\n", "signature": "(\tself , \tupdate : room . UpdateSubscriptionsRequest ) -> room . UpdateSubscriptionsResponse : ", "funcdef": "async def"}, "livekit.api.room_service.RoomService.send_data": {"fullname": "livekit.api.room_service.RoomService.send_data", "modulename": "livekit.api.room_service", "qualname": "RoomService.send_data", "kind": "function", "doc": "
\n", "signature": "(self , send : room . SendDataRequest ) -> room . SendDataResponse : ", "funcdef": "async def"}, "livekit.api.sip_service": {"fullname": "livekit.api.sip_service", "modulename": "livekit.api.sip_service", "kind": "module", "doc": "
\n"}, "livekit.api.sip_service.SipService": {"fullname": "livekit.api.sip_service.SipService", "modulename": "livekit.api.sip_service", "qualname": "SipService", "kind": "class", "doc": "Client for LiveKit SIP Service API
\n\nRecommended way to use this service is via livekit.api.LiveKitAPI:
\n\n\n
from livekit import api \nlkapi = api . LiveKitAPI () \nsip_service = lkapi . sip \n\n
\n", "bases": "livekit.api._service.Service"}, "livekit.api.sip_service.SipService.__init__": {"fullname": "livekit.api.sip_service.SipService.__init__", "modulename": "livekit.api.sip_service", "qualname": "SipService.__init__", "kind": "function", "doc": "
\n", "signature": "(\tsession : aiohttp . client . ClientSession , \turl : str , \tapi_key : str , \tapi_secret : str ) "}, "livekit.api.sip_service.SipService.create_sip_trunk": {"fullname": "livekit.api.sip_service.SipService.create_sip_trunk", "modulename": "livekit.api.sip_service", "qualname": "SipService.create_sip_trunk", "kind": "function", "doc": "
\n", "signature": "(self , create : sip . CreateSIPTrunkRequest ) -> sip . SIPTrunkInfo : ", "funcdef": "async def"}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"fullname": "livekit.api.sip_service.SipService.create_sip_inbound_trunk", "modulename": "livekit.api.sip_service", "qualname": "SipService.create_sip_inbound_trunk", "kind": "function", "doc": "
\n", "signature": "(\tself , \tcreate : sip . CreateSIPInboundTrunkRequest ) -> sip . SIPInboundTrunkInfo : ", "funcdef": "async def"}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"fullname": "livekit.api.sip_service.SipService.create_sip_outbound_trunk", "modulename": "livekit.api.sip_service", "qualname": "SipService.create_sip_outbound_trunk", "kind": "function", "doc": "
\n", "signature": "(\tself , \tcreate : sip . CreateSIPOutboundTrunkRequest ) -> sip . SIPOutboundTrunkInfo : ", "funcdef": "async def"}, "livekit.api.sip_service.SipService.list_sip_trunk": {"fullname": "livekit.api.sip_service.SipService.list_sip_trunk", "modulename": "livekit.api.sip_service", "qualname": "SipService.list_sip_trunk", "kind": "function", "doc": "
\n", "signature": "(self , list : sip . ListSIPTrunkRequest ) -> sip . ListSIPTrunkResponse : ", "funcdef": "async def"}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"fullname": "livekit.api.sip_service.SipService.list_sip_inbound_trunk", "modulename": "livekit.api.sip_service", "qualname": "SipService.list_sip_inbound_trunk", "kind": "function", "doc": "
\n", "signature": "(\tself , \tlist : sip . ListSIPInboundTrunkRequest ) -> sip . ListSIPInboundTrunkResponse : ", "funcdef": "async def"}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"fullname": "livekit.api.sip_service.SipService.list_sip_outbound_trunk", "modulename": "livekit.api.sip_service", "qualname": "SipService.list_sip_outbound_trunk", "kind": "function", "doc": "
\n", "signature": "(\tself , \tlist : sip . ListSIPOutboundTrunkRequest ) -> sip . ListSIPOutboundTrunkResponse : ", "funcdef": "async def"}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"fullname": "livekit.api.sip_service.SipService.delete_sip_trunk", "modulename": "livekit.api.sip_service", "qualname": "SipService.delete_sip_trunk", "kind": "function", "doc": "
\n", "signature": "(self , delete : sip . DeleteSIPTrunkRequest ) -> sip . SIPTrunkInfo : ", "funcdef": "async def"}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"fullname": "livekit.api.sip_service.SipService.create_sip_dispatch_rule", "modulename": "livekit.api.sip_service", "qualname": "SipService.create_sip_dispatch_rule", "kind": "function", "doc": "
\n", "signature": "(\tself , \tcreate : sip . CreateSIPDispatchRuleRequest ) -> sip . SIPDispatchRuleInfo : ", "funcdef": "async def"}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"fullname": "livekit.api.sip_service.SipService.list_sip_dispatch_rule", "modulename": "livekit.api.sip_service", "qualname": "SipService.list_sip_dispatch_rule", "kind": "function", "doc": "
\n", "signature": "(\tself , \tlist : sip . ListSIPDispatchRuleRequest ) -> sip . ListSIPDispatchRuleResponse : ", "funcdef": "async def"}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"fullname": "livekit.api.sip_service.SipService.delete_sip_dispatch_rule", "modulename": "livekit.api.sip_service", "qualname": "SipService.delete_sip_dispatch_rule", "kind": "function", "doc": "
\n", "signature": "(\tself , \tdelete : sip . DeleteSIPDispatchRuleRequest ) -> sip . SIPDispatchRuleInfo : ", "funcdef": "async def"}, "livekit.api.sip_service.SipService.create_sip_participant": {"fullname": "livekit.api.sip_service.SipService.create_sip_participant", "modulename": "livekit.api.sip_service", "qualname": "SipService.create_sip_participant", "kind": "function", "doc": "
\n", "signature": "(self , create : sip . CreateSIPParticipantRequest ) -> sip . SIPParticipantInfo : ", "funcdef": "async def"}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"fullname": "livekit.api.sip_service.SipService.transfer_sip_participant", "modulename": "livekit.api.sip_service", "qualname": "SipService.transfer_sip_participant", "kind": "function", "doc": "
\n", "signature": "(\tself , \ttransfer : sip . TransferSIPParticipantRequest ) -> sip . SIPParticipantInfo : ", "funcdef": "async def"}}, "docInfo": {"livekit.api": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 42}, "livekit.api.LiveKitAPI": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 123}, "livekit.api.LiveKitAPI.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 172, "bases": 0, "doc": 88}, "livekit.api.LiveKitAPI.agent_dispatch": {"qualname": 3, "fullname": 5, "annotation": 7, "default_value": 0, "signature": 0, "bases": 0, "doc": 17}, "livekit.api.LiveKitAPI.room": {"qualname": 2, "fullname": 4, "annotation": 6, "default_value": 0, "signature": 0, "bases": 0, "doc": 16}, "livekit.api.LiveKitAPI.ingress": {"qualname": 2, "fullname": 4, "annotation": 6, "default_value": 0, "signature": 0, "bases": 0, "doc": 16}, "livekit.api.LiveKitAPI.egress": {"qualname": 2, "fullname": 4, "annotation": 6, "default_value": 0, "signature": 0, "bases": 0, "doc": 16}, "livekit.api.LiveKitAPI.sip": {"qualname": 2, "fullname": 4, "annotation": 6, "default_value": 0, "signature": 0, "bases": 0, "doc": 16}, "livekit.api.VideoGrants": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 362, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.room_create": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.room_list": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.room_record": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.room_admin": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.room_join": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.room": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 4, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.can_publish": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.can_subscribe": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.can_publish_data": {"qualname": 4, "fullname": 6, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.can_publish_sources": {"qualname": 4, "fullname": 6, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.can_update_own_metadata": {"qualname": 5, "fullname": 7, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.ingress_admin": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.hidden": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.recorder": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.VideoGrants.agent": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.SIPGrants": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.SIPGrants.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 38, "bases": 0, "doc": 3}, "livekit.api.SIPGrants.admin": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.SIPGrants.call": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 1, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.AccessToken": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.AccessToken.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 52, "bases": 0, "doc": 3}, "livekit.api.AccessToken.ParticipantKind": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 18, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.AccessToken.api_key": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.AccessToken.api_secret": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.AccessToken.claims": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.AccessToken.identity": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.AccessToken.ttl": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.AccessToken.with_ttl": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 45, "bases": 0, "doc": 3}, "livekit.api.AccessToken.with_grants": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 58, "bases": 0, "doc": 3}, "livekit.api.AccessToken.with_sip_grants": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 58, "bases": 0, "doc": 3}, "livekit.api.AccessToken.with_identity": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "livekit.api.AccessToken.with_kind": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 92, "bases": 0, "doc": 3}, "livekit.api.AccessToken.with_name": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "livekit.api.AccessToken.with_metadata": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "livekit.api.AccessToken.with_attributes": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 52, "bases": 0, "doc": 3}, "livekit.api.AccessToken.with_sha256": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "livekit.api.AccessToken.with_room_preset": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "livekit.api.AccessToken.with_room_config": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 47, "bases": 0, "doc": 3}, "livekit.api.AccessToken.to_jwt": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 3}, "livekit.api.TokenVerifier": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TokenVerifier.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 101, "bases": 0, "doc": 3}, "livekit.api.TokenVerifier.api_key": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TokenVerifier.api_secret": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TokenVerifier.verify": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "livekit.api.WebhookReceiver": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.WebhookReceiver.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 3}, "livekit.api.WebhookReceiver.receive": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "livekit.api.TwirpError": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 11}, "livekit.api.TwirpError.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "livekit.api.TwirpError.code": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpError.message": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.CANCELED": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 5, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.UNKNOWN": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 5, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 6, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.MALFORMED": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 5, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 6, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.NOT_FOUND": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 6, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.BAD_ROUTE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 6, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 6, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 6, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.UNAUTHENTICATED": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 5, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 6, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 6, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.ABORTED": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 5, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 7, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.UNIMPLEMENTED": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 5, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.INTERNAL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 5, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.UNAVAILABLE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 5, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.TwirpErrorCode.DATA_LOSS": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 5, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.agent_dispatch_service": {"qualname": 0, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"qualname": 1, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 84}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 60, "bases": 0, "doc": 3}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 38, "bases": 0, "doc": 65}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 42, "bases": 0, "doc": 64}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 37, "bases": 0, "doc": 51}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 63}, "livekit.api.egress_service": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.egress_service.EgressService": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 88}, "livekit.api.egress_service.EgressService.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 60, "bases": 0, "doc": 3}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.egress_service.EgressService.start_web_egress": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.egress_service.EgressService.start_participant_egress": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.egress_service.EgressService.start_track_egress": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.egress_service.EgressService.update_layout": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.egress_service.EgressService.update_stream": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.egress_service.EgressService.list_egress": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.egress_service.EgressService.stop_egress": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.ingress_service": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.ingress_service.IngressService": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 88}, "livekit.api.ingress_service.IngressService.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 60, "bases": 0, "doc": 3}, "livekit.api.ingress_service.IngressService.create_ingress": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.ingress_service.IngressService.update_ingress": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.ingress_service.IngressService.list_ingress": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.ingress_service.IngressService.delete_ingress": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.room_service": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.room_service.RoomService": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 96}, "livekit.api.room_service.RoomService.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 60, "bases": 0, "doc": 3}, "livekit.api.room_service.RoomService.create_room": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.room_service.RoomService.list_rooms": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.room_service.RoomService.delete_room": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.room_service.RoomService.update_room_metadata": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.room_service.RoomService.list_participants": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "livekit.api.room_service.RoomService.get_participant": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.room_service.RoomService.remove_participant": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "livekit.api.room_service.RoomService.mute_published_track": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.room_service.RoomService.update_participant": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.room_service.RoomService.update_subscriptions": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "livekit.api.room_service.RoomService.send_data": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.sip_service": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 80}, "livekit.api.sip_service.SipService.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 60, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService.create_sip_trunk": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService.list_sip_trunk": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService.create_sip_participant": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}}, "length": 135, "save": true}, "index": {"qualname": {"root": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.SIPGrants.__init__": {"tf": 1}, "livekit.api.AccessToken.__init__": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1}, "livekit.api.WebhookReceiver.__init__": {"tf": 1}, "livekit.api.TwirpError.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}}, "df": 12, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}}, "df": 7}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.VideoGrants.room_list": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 1}, "livekit.api.room_service.RoomService.list_participants": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}}, "df": 10}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.TwirpErrorCode.DATA_LOSS": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.update_layout": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.SIPGrants.__init__": {"tf": 1}, "livekit.api.AccessToken.__init__": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1}, "livekit.api.WebhookReceiver.__init__": {"tf": 1}, "livekit.api.TwirpError.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}}, "df": 12}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.VideoGrants.ingress_admin": {"tf": 1}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1}}, "df": 6, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1}}, "df": 6}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.TwirpErrorCode.INTERNAL": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}}, "df": 2}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.AccessToken.identity": {"tf": 1}, "livekit.api.AccessToken.with_identity": {"tf": 1}}, "df": 2}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.VideoGrants.agent": {"tf": 1}}, "df": 2, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 6}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.room_admin": {"tf": 1}, "livekit.api.VideoGrants.ingress_admin": {"tf": 1}, "livekit.api.SIPGrants.admin": {"tf": 1}}, "df": 3}}}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.AccessToken": {"tf": 1}, "livekit.api.AccessToken.__init__": {"tf": 1}, "livekit.api.AccessToken.ParticipantKind": {"tf": 1}, "livekit.api.AccessToken.api_key": {"tf": 1}, "livekit.api.AccessToken.api_secret": {"tf": 1}, "livekit.api.AccessToken.claims": {"tf": 1}, "livekit.api.AccessToken.identity": {"tf": 1}, "livekit.api.AccessToken.ttl": {"tf": 1}, "livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.AccessToken.with_grants": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}, "livekit.api.AccessToken.to_jwt": {"tf": 1}}, "df": 20}}}}}}}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {"livekit.api.AccessToken.api_key": {"tf": 1}, "livekit.api.AccessToken.api_secret": {"tf": 1}, "livekit.api.TokenVerifier.api_key": {"tf": 1}, "livekit.api.TokenVerifier.api_secret": {"tf": 1}}, "df": 4}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.with_attributes": {"tf": 1}}, "df": 1}}}}}}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.ABORTED": {"tf": 1}}, "df": 1}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}}, "df": 8}}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"livekit.api.VideoGrants.can_publish_data": {"tf": 1}, "livekit.api.TwirpErrorCode.DATA_LOSS": {"tf": 1}, "livekit.api.room_service.RoomService.send_data": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}}, "df": 5}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.VideoGrants.room_create": {"tf": 1}, "livekit.api.VideoGrants.room_list": {"tf": 1}, "livekit.api.VideoGrants.room_record": {"tf": 1}, "livekit.api.VideoGrants.room_admin": {"tf": 1}, "livekit.api.VideoGrants.room_join": {"tf": 1}, "livekit.api.VideoGrants.room": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.room_service.RoomService.create_room": {"tf": 1}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}}, "df": 13, "s": {"docs": {"livekit.api.room_service.RoomService.list_rooms": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.create_room": {"tf": 1}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 1}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}, "livekit.api.room_service.RoomService.list_participants": {"tf": 1}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 1}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}, "livekit.api.room_service.RoomService.send_data": {"tf": 1}}, "df": 13}}}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.VideoGrants.room_record": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.VideoGrants.recorder": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.WebhookReceiver.receive": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService.remove_participant": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}}, "df": 3}}}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.stop_egress": {"tf": 1}}, "df": 8, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.stop_egress": {"tf": 1}}, "df": 11}}}}}}}}}}}}, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {"livekit.api.LiveKitAPI.sip": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 14, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.SIPGrants": {"tf": 1}, "livekit.api.SIPGrants.__init__": {"tf": 1}, "livekit.api.SIPGrants.admin": {"tf": 1}, "livekit.api.SIPGrants.call": {"tf": 1}}, "df": 4}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.sip_service.SipService": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 14}}}}}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.VideoGrants.can_subscribe": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.VideoGrants.can_publish_sources": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.AccessToken.api_secret": {"tf": 1}, "livekit.api.TokenVerifier.api_secret": {"tf": 1}}, "df": 2}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.room_service.RoomService.send_data": {"tf": 1}}, "df": 1}}}, "h": {"docs": {}, "df": 0, "a": {"2": {"5": {"6": {"docs": {"livekit.api.AccessToken.with_sha256": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}}, "df": 5}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"livekit.api.egress_service.EgressService.update_stream": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {"livekit.api.egress_service.EgressService.stop_egress": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.VideoGrants": {"tf": 1}, "livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.VideoGrants.room_create": {"tf": 1}, "livekit.api.VideoGrants.room_list": {"tf": 1}, "livekit.api.VideoGrants.room_record": {"tf": 1}, "livekit.api.VideoGrants.room_admin": {"tf": 1}, "livekit.api.VideoGrants.room_join": {"tf": 1}, "livekit.api.VideoGrants.room": {"tf": 1}, "livekit.api.VideoGrants.can_publish": {"tf": 1}, "livekit.api.VideoGrants.can_subscribe": {"tf": 1}, "livekit.api.VideoGrants.can_publish_data": {"tf": 1}, "livekit.api.VideoGrants.can_publish_sources": {"tf": 1}, "livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}, "livekit.api.VideoGrants.ingress_admin": {"tf": 1}, "livekit.api.VideoGrants.hidden": {"tf": 1}, "livekit.api.VideoGrants.recorder": {"tf": 1}, "livekit.api.VideoGrants.agent": {"tf": 1}}, "df": 17}}}}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.TokenVerifier.verify": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.VideoGrants.room_create": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.create_room": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}}, "df": 9}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.can_publish": {"tf": 1}, "livekit.api.VideoGrants.can_subscribe": {"tf": 1}, "livekit.api.VideoGrants.can_publish_data": {"tf": 1}, "livekit.api.VideoGrants.can_publish_sources": {"tf": 1}, "livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}}, "df": 5, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.CANCELED": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.SIPGrants.call": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.claims": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"livekit.api.AccessToken.with_room_config": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpError.code": {"tf": 1}}, "df": 1}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}}, "df": 2}}}}}}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.room_join": {"tf": 1}}, "df": 1}}}, "w": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.AccessToken.to_jwt": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.VideoGrants.can_publish": {"tf": 1}, "livekit.api.VideoGrants.can_publish_data": {"tf": 1}, "livekit.api.VideoGrants.can_publish_sources": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 6, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.AccessToken.ParticipantKind": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"livekit.api.room_service.RoomService.list_participants": {"tf": 1}}, "df": 1}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.AccessToken.with_room_preset": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1}}, "df": 1}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1}}, "df": 1}}}}}}}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}}, "df": 7}}}}}, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.TwirpErrorCode.UNKNOWN": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.UNAUTHENTICATED": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.UNAVAILABLE": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.UNIMPLEMENTED": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}}, "df": 1, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}}, "df": 2}}}}}}}, "f": {"docs": {"livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}}, "df": 1}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}}, "df": 3}}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpError.message": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.MALFORMED": {"tf": 1}}, "df": 1}}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.hidden": {"tf": 1}}, "df": 1}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.AccessToken.api_key": {"tf": 1}, "livekit.api.TokenVerifier.api_key": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.AccessToken.with_kind": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.AccessToken.ttl": {"tf": 1}, "livekit.api.AccessToken.with_ttl": {"tf": 1}}, "df": 2}}, "o": {"docs": {"livekit.api.AccessToken.to_jwt": {"tf": 1}}, "df": 1, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.TokenVerifier": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1}, "livekit.api.TokenVerifier.api_key": {"tf": 1}, "livekit.api.TokenVerifier.api_secret": {"tf": 1}, "livekit.api.TokenVerifier.verify": {"tf": 1}}, "df": 5}}}}}}}}}}}}, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.TwirpError": {"tf": 1}, "livekit.api.TwirpError.__init__": {"tf": 1}, "livekit.api.TwirpError.code": {"tf": 1}, "livekit.api.TwirpError.message": {"tf": 1}}, "df": 4, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode": {"tf": 1}, "livekit.api.TwirpErrorCode.CANCELED": {"tf": 1}, "livekit.api.TwirpErrorCode.UNKNOWN": {"tf": 1}, "livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1}, "livekit.api.TwirpErrorCode.MALFORMED": {"tf": 1}, "livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1}, "livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1}, "livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1}, "livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1}, "livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1}, "livekit.api.TwirpErrorCode.UNAUTHENTICATED": {"tf": 1}, "livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1}, "livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1}, "livekit.api.TwirpErrorCode.ABORTED": {"tf": 1}, "livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}, "livekit.api.TwirpErrorCode.UNIMPLEMENTED": {"tf": 1}, "livekit.api.TwirpErrorCode.INTERNAL": {"tf": 1}, "livekit.api.TwirpErrorCode.UNAVAILABLE": {"tf": 1}, "livekit.api.TwirpErrorCode.DATA_LOSS": {"tf": 1}}, "df": 19}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}}, "df": 3}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {"livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}}, "df": 7}}}}}, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.AccessToken.with_grants": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}}, "df": 11}}}, "e": {"docs": {}, "df": 0, "b": {"docs": {"livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}}, "df": 1, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.WebhookReceiver": {"tf": 1}, "livekit.api.WebhookReceiver.__init__": {"tf": 1}, "livekit.api.WebhookReceiver.receive": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.with_grants": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.AccessToken.with_name": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1}}, "df": 1}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1}}, "df": 1}}}}}, "fullname": {"root": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.SIPGrants.__init__": {"tf": 1}, "livekit.api.AccessToken.__init__": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1}, "livekit.api.WebhookReceiver.__init__": {"tf": 1}, "livekit.api.TwirpError.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}}, "df": 12, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}, "livekit.api.VideoGrants": {"tf": 1}, "livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.VideoGrants.room_create": {"tf": 1}, "livekit.api.VideoGrants.room_list": {"tf": 1}, "livekit.api.VideoGrants.room_record": {"tf": 1}, "livekit.api.VideoGrants.room_admin": {"tf": 1}, "livekit.api.VideoGrants.room_join": {"tf": 1}, "livekit.api.VideoGrants.room": {"tf": 1}, "livekit.api.VideoGrants.can_publish": {"tf": 1}, "livekit.api.VideoGrants.can_subscribe": {"tf": 1}, "livekit.api.VideoGrants.can_publish_data": {"tf": 1}, "livekit.api.VideoGrants.can_publish_sources": {"tf": 1}, "livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}, "livekit.api.VideoGrants.ingress_admin": {"tf": 1}, "livekit.api.VideoGrants.hidden": {"tf": 1}, "livekit.api.VideoGrants.recorder": {"tf": 1}, "livekit.api.VideoGrants.agent": {"tf": 1}, "livekit.api.SIPGrants": {"tf": 1}, "livekit.api.SIPGrants.__init__": {"tf": 1}, "livekit.api.SIPGrants.admin": {"tf": 1}, "livekit.api.SIPGrants.call": {"tf": 1}, "livekit.api.AccessToken": {"tf": 1}, "livekit.api.AccessToken.__init__": {"tf": 1}, "livekit.api.AccessToken.ParticipantKind": {"tf": 1}, "livekit.api.AccessToken.api_key": {"tf": 1}, "livekit.api.AccessToken.api_secret": {"tf": 1}, "livekit.api.AccessToken.claims": {"tf": 1}, "livekit.api.AccessToken.identity": {"tf": 1}, "livekit.api.AccessToken.ttl": {"tf": 1}, "livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.AccessToken.with_grants": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}, "livekit.api.AccessToken.to_jwt": {"tf": 1}, "livekit.api.TokenVerifier": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1}, "livekit.api.TokenVerifier.api_key": {"tf": 1}, "livekit.api.TokenVerifier.api_secret": {"tf": 1}, "livekit.api.TokenVerifier.verify": {"tf": 1}, "livekit.api.WebhookReceiver": {"tf": 1}, "livekit.api.WebhookReceiver.__init__": {"tf": 1}, "livekit.api.WebhookReceiver.receive": {"tf": 1}, "livekit.api.TwirpError": {"tf": 1}, "livekit.api.TwirpError.__init__": {"tf": 1}, "livekit.api.TwirpError.code": {"tf": 1}, "livekit.api.TwirpError.message": {"tf": 1}, "livekit.api.TwirpErrorCode": {"tf": 1}, "livekit.api.TwirpErrorCode.CANCELED": {"tf": 1}, "livekit.api.TwirpErrorCode.UNKNOWN": {"tf": 1}, "livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1}, "livekit.api.TwirpErrorCode.MALFORMED": {"tf": 1}, "livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1}, "livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1}, "livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1}, "livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1}, "livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1}, "livekit.api.TwirpErrorCode.UNAUTHENTICATED": {"tf": 1}, "livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1}, "livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1}, "livekit.api.TwirpErrorCode.ABORTED": {"tf": 1}, "livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}, "livekit.api.TwirpErrorCode.UNIMPLEMENTED": {"tf": 1}, "livekit.api.TwirpErrorCode.INTERNAL": {"tf": 1}, "livekit.api.TwirpErrorCode.UNAVAILABLE": {"tf": 1}, "livekit.api.TwirpErrorCode.DATA_LOSS": {"tf": 1}, "livekit.api.agent_dispatch_service": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}, "livekit.api.egress_service": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.stop_egress": {"tf": 1}, "livekit.api.ingress_service": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1}, "livekit.api.room_service": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.create_room": {"tf": 1}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 1}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}, "livekit.api.room_service.RoomService.list_participants": {"tf": 1}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 1}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}, "livekit.api.room_service.RoomService.send_data": {"tf": 1}, "livekit.api.sip_service": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 135, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}}, "df": 7}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.VideoGrants.room_list": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 1}, "livekit.api.room_service.RoomService.list_participants": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}}, "df": 10}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.TwirpErrorCode.DATA_LOSS": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.update_layout": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}, "livekit.api.VideoGrants": {"tf": 1}, "livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.VideoGrants.room_create": {"tf": 1}, "livekit.api.VideoGrants.room_list": {"tf": 1}, "livekit.api.VideoGrants.room_record": {"tf": 1}, "livekit.api.VideoGrants.room_admin": {"tf": 1}, "livekit.api.VideoGrants.room_join": {"tf": 1}, "livekit.api.VideoGrants.room": {"tf": 1}, "livekit.api.VideoGrants.can_publish": {"tf": 1}, "livekit.api.VideoGrants.can_subscribe": {"tf": 1}, "livekit.api.VideoGrants.can_publish_data": {"tf": 1}, "livekit.api.VideoGrants.can_publish_sources": {"tf": 1}, "livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}, "livekit.api.VideoGrants.ingress_admin": {"tf": 1}, "livekit.api.VideoGrants.hidden": {"tf": 1}, "livekit.api.VideoGrants.recorder": {"tf": 1}, "livekit.api.VideoGrants.agent": {"tf": 1}, "livekit.api.SIPGrants": {"tf": 1}, "livekit.api.SIPGrants.__init__": {"tf": 1}, "livekit.api.SIPGrants.admin": {"tf": 1}, "livekit.api.SIPGrants.call": {"tf": 1}, "livekit.api.AccessToken": {"tf": 1}, "livekit.api.AccessToken.__init__": {"tf": 1}, "livekit.api.AccessToken.ParticipantKind": {"tf": 1}, "livekit.api.AccessToken.api_key": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.api_secret": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.claims": {"tf": 1}, "livekit.api.AccessToken.identity": {"tf": 1}, "livekit.api.AccessToken.ttl": {"tf": 1}, "livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.AccessToken.with_grants": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}, "livekit.api.AccessToken.to_jwt": {"tf": 1}, "livekit.api.TokenVerifier": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1}, "livekit.api.TokenVerifier.api_key": {"tf": 1.4142135623730951}, "livekit.api.TokenVerifier.api_secret": {"tf": 1.4142135623730951}, "livekit.api.TokenVerifier.verify": {"tf": 1}, "livekit.api.WebhookReceiver": {"tf": 1}, "livekit.api.WebhookReceiver.__init__": {"tf": 1}, "livekit.api.WebhookReceiver.receive": {"tf": 1}, "livekit.api.TwirpError": {"tf": 1}, "livekit.api.TwirpError.__init__": {"tf": 1}, "livekit.api.TwirpError.code": {"tf": 1}, "livekit.api.TwirpError.message": {"tf": 1}, "livekit.api.TwirpErrorCode": {"tf": 1}, "livekit.api.TwirpErrorCode.CANCELED": {"tf": 1}, "livekit.api.TwirpErrorCode.UNKNOWN": {"tf": 1}, "livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1}, "livekit.api.TwirpErrorCode.MALFORMED": {"tf": 1}, "livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1}, "livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1}, "livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1}, "livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1}, "livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1}, "livekit.api.TwirpErrorCode.UNAUTHENTICATED": {"tf": 1}, "livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1}, "livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1}, "livekit.api.TwirpErrorCode.ABORTED": {"tf": 1}, "livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}, "livekit.api.TwirpErrorCode.UNIMPLEMENTED": {"tf": 1}, "livekit.api.TwirpErrorCode.INTERNAL": {"tf": 1}, "livekit.api.TwirpErrorCode.UNAVAILABLE": {"tf": 1}, "livekit.api.TwirpErrorCode.DATA_LOSS": {"tf": 1}, "livekit.api.agent_dispatch_service": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}, "livekit.api.egress_service": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.stop_egress": {"tf": 1}, "livekit.api.ingress_service": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1}, "livekit.api.room_service": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.create_room": {"tf": 1}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 1}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}, "livekit.api.room_service.RoomService.list_participants": {"tf": 1}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 1}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}, "livekit.api.room_service.RoomService.send_data": {"tf": 1}, "livekit.api.sip_service": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 135}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.VideoGrants.agent": {"tf": 1}, "livekit.api.agent_dispatch_service": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 9, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 6}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.room_admin": {"tf": 1}, "livekit.api.VideoGrants.ingress_admin": {"tf": 1}, "livekit.api.SIPGrants.admin": {"tf": 1}}, "df": 3}}}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.AccessToken": {"tf": 1}, "livekit.api.AccessToken.__init__": {"tf": 1}, "livekit.api.AccessToken.ParticipantKind": {"tf": 1}, "livekit.api.AccessToken.api_key": {"tf": 1}, "livekit.api.AccessToken.api_secret": {"tf": 1}, "livekit.api.AccessToken.claims": {"tf": 1}, "livekit.api.AccessToken.identity": {"tf": 1}, "livekit.api.AccessToken.ttl": {"tf": 1}, "livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.AccessToken.with_grants": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}, "livekit.api.AccessToken.to_jwt": {"tf": 1}}, "df": 20}}}}}}}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.with_attributes": {"tf": 1}}, "df": 1}}}}}}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.ABORTED": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.SIPGrants.__init__": {"tf": 1}, "livekit.api.AccessToken.__init__": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1}, "livekit.api.WebhookReceiver.__init__": {"tf": 1}, "livekit.api.TwirpError.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}}, "df": 12}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.VideoGrants.ingress_admin": {"tf": 1}, "livekit.api.ingress_service": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1.4142135623730951}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1.4142135623730951}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1.4142135623730951}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1.4142135623730951}}, "df": 9, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1}}, "df": 6}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.TwirpErrorCode.INTERNAL": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}}, "df": 2}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.AccessToken.identity": {"tf": 1}, "livekit.api.AccessToken.with_identity": {"tf": 1}}, "df": 2}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}}, "df": 11}}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"livekit.api.VideoGrants.can_publish_data": {"tf": 1}, "livekit.api.TwirpErrorCode.DATA_LOSS": {"tf": 1}, "livekit.api.room_service.RoomService.send_data": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}}, "df": 5}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.VideoGrants.room_create": {"tf": 1}, "livekit.api.VideoGrants.room_list": {"tf": 1}, "livekit.api.VideoGrants.room_record": {"tf": 1}, "livekit.api.VideoGrants.room_admin": {"tf": 1}, "livekit.api.VideoGrants.room_join": {"tf": 1}, "livekit.api.VideoGrants.room": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.room_service": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.create_room": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 1}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService.list_participants": {"tf": 1}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 1}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}, "livekit.api.room_service.RoomService.send_data": {"tf": 1}}, "df": 24, "s": {"docs": {"livekit.api.room_service.RoomService.list_rooms": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.create_room": {"tf": 1}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 1}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}, "livekit.api.room_service.RoomService.list_participants": {"tf": 1}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 1}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}, "livekit.api.room_service.RoomService.send_data": {"tf": 1}}, "df": 13}}}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.VideoGrants.room_record": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.VideoGrants.recorder": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.WebhookReceiver.receive": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService.remove_participant": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}}, "df": 3}}}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.egress_service": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.stop_egress": {"tf": 1.4142135623730951}}, "df": 13, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.stop_egress": {"tf": 1}}, "df": 11}}}}}}}}}}}}, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {"livekit.api.LiveKitAPI.sip": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}, "livekit.api.sip_service": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1.4142135623730951}}, "df": 17, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.SIPGrants": {"tf": 1}, "livekit.api.SIPGrants.__init__": {"tf": 1}, "livekit.api.SIPGrants.admin": {"tf": 1}, "livekit.api.SIPGrants.call": {"tf": 1}}, "df": 4}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.sip_service.SipService": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 14}}}}}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.VideoGrants.can_subscribe": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.VideoGrants.can_publish_sources": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.AccessToken.api_secret": {"tf": 1}, "livekit.api.TokenVerifier.api_secret": {"tf": 1}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.agent_dispatch_service": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}, "livekit.api.egress_service": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.stop_egress": {"tf": 1}, "livekit.api.ingress_service": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1}, "livekit.api.room_service": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.create_room": {"tf": 1}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 1}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}, "livekit.api.room_service.RoomService.list_participants": {"tf": 1}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 1}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}, "livekit.api.room_service.RoomService.send_data": {"tf": 1}, "livekit.api.sip_service": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 55}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.room_service.RoomService.send_data": {"tf": 1}}, "df": 1}}}, "h": {"docs": {}, "df": 0, "a": {"2": {"5": {"6": {"docs": {"livekit.api.AccessToken.with_sha256": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}}, "df": 5}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"livekit.api.egress_service.EgressService.update_stream": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {"livekit.api.egress_service.EgressService.stop_egress": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.VideoGrants": {"tf": 1}, "livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.VideoGrants.room_create": {"tf": 1}, "livekit.api.VideoGrants.room_list": {"tf": 1}, "livekit.api.VideoGrants.room_record": {"tf": 1}, "livekit.api.VideoGrants.room_admin": {"tf": 1}, "livekit.api.VideoGrants.room_join": {"tf": 1}, "livekit.api.VideoGrants.room": {"tf": 1}, "livekit.api.VideoGrants.can_publish": {"tf": 1}, "livekit.api.VideoGrants.can_subscribe": {"tf": 1}, "livekit.api.VideoGrants.can_publish_data": {"tf": 1}, "livekit.api.VideoGrants.can_publish_sources": {"tf": 1}, "livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}, "livekit.api.VideoGrants.ingress_admin": {"tf": 1}, "livekit.api.VideoGrants.hidden": {"tf": 1}, "livekit.api.VideoGrants.recorder": {"tf": 1}, "livekit.api.VideoGrants.agent": {"tf": 1}}, "df": 17}}}}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.TokenVerifier.verify": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.VideoGrants.room_create": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.create_room": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}}, "df": 9}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.can_publish": {"tf": 1}, "livekit.api.VideoGrants.can_subscribe": {"tf": 1}, "livekit.api.VideoGrants.can_publish_data": {"tf": 1}, "livekit.api.VideoGrants.can_publish_sources": {"tf": 1}, "livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}}, "df": 5, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.CANCELED": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.SIPGrants.call": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.claims": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"livekit.api.AccessToken.with_room_config": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpError.code": {"tf": 1}}, "df": 1}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}}, "df": 2}}}}}}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.room_join": {"tf": 1}}, "df": 1}}}, "w": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.AccessToken.to_jwt": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.VideoGrants.can_publish": {"tf": 1}, "livekit.api.VideoGrants.can_publish_data": {"tf": 1}, "livekit.api.VideoGrants.can_publish_sources": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 6, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.AccessToken.ParticipantKind": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"livekit.api.room_service.RoomService.list_participants": {"tf": 1}}, "df": 1}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.AccessToken.with_room_preset": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1}}, "df": 1}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1}}, "df": 1}}}}}}}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}}, "df": 7}}}}}, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.TwirpErrorCode.UNKNOWN": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.UNAUTHENTICATED": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.UNAVAILABLE": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.UNIMPLEMENTED": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}}, "df": 1, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}}, "df": 2}}}}}}}, "f": {"docs": {"livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}}, "df": 1}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}}, "df": 3}}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpError.message": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.MALFORMED": {"tf": 1}}, "df": 1}}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.hidden": {"tf": 1}}, "df": 1}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.AccessToken.api_key": {"tf": 1}, "livekit.api.TokenVerifier.api_key": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.AccessToken.with_kind": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.AccessToken.ttl": {"tf": 1}, "livekit.api.AccessToken.with_ttl": {"tf": 1}}, "df": 2}}, "o": {"docs": {"livekit.api.AccessToken.to_jwt": {"tf": 1}}, "df": 1, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.TokenVerifier": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1}, "livekit.api.TokenVerifier.api_key": {"tf": 1}, "livekit.api.TokenVerifier.api_secret": {"tf": 1}, "livekit.api.TokenVerifier.verify": {"tf": 1}}, "df": 5}}}}}}}}}}}}, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.TwirpError": {"tf": 1}, "livekit.api.TwirpError.__init__": {"tf": 1}, "livekit.api.TwirpError.code": {"tf": 1}, "livekit.api.TwirpError.message": {"tf": 1}}, "df": 4, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode": {"tf": 1}, "livekit.api.TwirpErrorCode.CANCELED": {"tf": 1}, "livekit.api.TwirpErrorCode.UNKNOWN": {"tf": 1}, "livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1}, "livekit.api.TwirpErrorCode.MALFORMED": {"tf": 1}, "livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1}, "livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1}, "livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1}, "livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1}, "livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1}, "livekit.api.TwirpErrorCode.UNAUTHENTICATED": {"tf": 1}, "livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1}, "livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1}, "livekit.api.TwirpErrorCode.ABORTED": {"tf": 1}, "livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}, "livekit.api.TwirpErrorCode.UNIMPLEMENTED": {"tf": 1}, "livekit.api.TwirpErrorCode.INTERNAL": {"tf": 1}, "livekit.api.TwirpErrorCode.UNAVAILABLE": {"tf": 1}, "livekit.api.TwirpErrorCode.DATA_LOSS": {"tf": 1}}, "df": 19}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}}, "df": 3}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {"livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}}, "df": 7}}}}}, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.AccessToken.with_grants": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}}, "df": 11}}}, "e": {"docs": {}, "df": 0, "b": {"docs": {"livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}}, "df": 1, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.WebhookReceiver": {"tf": 1}, "livekit.api.WebhookReceiver.__init__": {"tf": 1}, "livekit.api.WebhookReceiver.receive": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.with_grants": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.AccessToken.with_name": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1}}, "df": 1}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1}}, "df": 1}}}}}, "annotation": {"root": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}, "livekit.api.VideoGrants.room_create": {"tf": 1}, "livekit.api.VideoGrants.room_list": {"tf": 1}, "livekit.api.VideoGrants.room_record": {"tf": 1}, "livekit.api.VideoGrants.room_admin": {"tf": 1}, "livekit.api.VideoGrants.room_join": {"tf": 1}, "livekit.api.VideoGrants.room": {"tf": 1}, "livekit.api.VideoGrants.can_publish": {"tf": 1}, "livekit.api.VideoGrants.can_subscribe": {"tf": 1}, "livekit.api.VideoGrants.can_publish_data": {"tf": 1}, "livekit.api.VideoGrants.can_publish_sources": {"tf": 1}, "livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}, "livekit.api.VideoGrants.ingress_admin": {"tf": 1}, "livekit.api.VideoGrants.hidden": {"tf": 1}, "livekit.api.VideoGrants.recorder": {"tf": 1}, "livekit.api.VideoGrants.agent": {"tf": 1}, "livekit.api.SIPGrants.admin": {"tf": 1}, "livekit.api.SIPGrants.call": {"tf": 1}, "livekit.api.TwirpError.code": {"tf": 1}, "livekit.api.TwirpError.message": {"tf": 1}}, "df": 24, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}}, "df": 5}}}}}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}}, "df": 5}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}}, "df": 1, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}}, "df": 5}}}}}}, "i": {"docs": {}, "df": 0, "p": {"docs": {"livekit.api.LiveKitAPI.sip": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.sip": {"tf": 1}}, "df": 1}}}}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.VideoGrants.room": {"tf": 1}, "livekit.api.TwirpError.code": {"tf": 1}, "livekit.api.TwirpError.message": {"tf": 1}}, "df": 3}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"livekit.api.LiveKitAPI.room": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.room": {"tf": 1}}, "df": 1}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.LiveKitAPI.ingress": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.ingress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.LiveKitAPI.egress": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.egress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.VideoGrants.room_create": {"tf": 1}, "livekit.api.VideoGrants.room_list": {"tf": 1}, "livekit.api.VideoGrants.room_record": {"tf": 1}, "livekit.api.VideoGrants.room_admin": {"tf": 1}, "livekit.api.VideoGrants.room_join": {"tf": 1}, "livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}, "livekit.api.VideoGrants.ingress_admin": {"tf": 1}, "livekit.api.VideoGrants.hidden": {"tf": 1}, "livekit.api.VideoGrants.recorder": {"tf": 1}, "livekit.api.VideoGrants.agent": {"tf": 1}}, "df": 10}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.VideoGrants.can_publish_sources": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.VideoGrants.can_publish": {"tf": 1}, "livekit.api.VideoGrants.can_subscribe": {"tf": 1}, "livekit.api.VideoGrants.can_publish_data": {"tf": 1}, "livekit.api.SIPGrants.admin": {"tf": 1}, "livekit.api.SIPGrants.call": {"tf": 1}}, "df": 5}}}}}}, "default_value": {"root": {"docs": {"livekit.api.VideoGrants.room": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.ParticipantKind": {"tf": 1}, "livekit.api.TwirpErrorCode.CANCELED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.UNKNOWN": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.MALFORMED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.UNAUTHENTICATED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.ABORTED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.UNIMPLEMENTED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.INTERNAL": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.UNAVAILABLE": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.DATA_LOSS": {"tf": 1.4142135623730951}}, "df": 20, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.VideoGrants.room_create": {"tf": 1}, "livekit.api.VideoGrants.room_list": {"tf": 1}, "livekit.api.VideoGrants.room_record": {"tf": 1}, "livekit.api.VideoGrants.room_admin": {"tf": 1}, "livekit.api.VideoGrants.room_join": {"tf": 1}, "livekit.api.VideoGrants.can_publish_sources": {"tf": 1}, "livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1}, "livekit.api.VideoGrants.ingress_admin": {"tf": 1}, "livekit.api.VideoGrants.hidden": {"tf": 1}, "livekit.api.VideoGrants.recorder": {"tf": 1}, "livekit.api.VideoGrants.agent": {"tf": 1}}, "df": 11}}, "t": {"docs": {"livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1}}, "df": 1}}}, "x": {"2": {"7": {"docs": {"livekit.api.VideoGrants.room": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.ParticipantKind": {"tf": 3.1622776601683795}, "livekit.api.TwirpErrorCode.CANCELED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.UNKNOWN": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.MALFORMED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.UNAUTHENTICATED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.ABORTED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.UNIMPLEMENTED": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.INTERNAL": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.UNAVAILABLE": {"tf": 1.4142135623730951}, "livekit.api.TwirpErrorCode.DATA_LOSS": {"tf": 1.4142135623730951}}, "df": 20}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.VideoGrants.can_publish": {"tf": 1}, "livekit.api.VideoGrants.can_subscribe": {"tf": 1}, "livekit.api.VideoGrants.can_publish_data": {"tf": 1}}, "df": 3}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"livekit.api.AccessToken.ParticipantKind": {"tf": 1}}, "df": 1}}}}}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.SIPGrants.admin": {"tf": 1}, "livekit.api.SIPGrants.call": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.AccessToken.ParticipantKind": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.AccessToken.ParticipantKind": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "p": {"docs": {"livekit.api.AccessToken.ParticipantKind": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.ParticipantKind": {"tf": 1}}, "df": 1}}}}}, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.ParticipantKind": {"tf": 1}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.TwirpErrorCode.INTERNAL": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.AccessToken.ParticipantKind": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.ABORTED": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.CANCELED": {"tf": 1}}, "df": 1}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.TwirpErrorCode.UNKNOWN": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.UNAUTHENTICATED": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.UNAVAILABLE": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.UNIMPLEMENTED": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.MALFORMED": {"tf": 1}}, "df": 1}}}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.TwirpErrorCode.DATA_LOSS": {"tf": 1}}, "df": 1}}}}}}}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1}}, "df": 1}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}}, "df": 1}}, "f": {"docs": {"livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1}}, "df": 1}}}}, "signature": {"root": {"3": {"9": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.with_kind": {"tf": 3.1622776601683795}}, "df": 2}, "docs": {}, "df": 0}, "5": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}}, "df": 1}, "6": {"0": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 11.832159566199232}, "livekit.api.VideoGrants.__init__": {"tf": 17}, "livekit.api.SIPGrants.__init__": {"tf": 5.656854249492381}, "livekit.api.AccessToken.__init__": {"tf": 6.48074069840786}, "livekit.api.AccessToken.with_ttl": {"tf": 6}, "livekit.api.AccessToken.with_grants": {"tf": 6.782329983125268}, "livekit.api.AccessToken.with_sip_grants": {"tf": 6.782329983125268}, "livekit.api.AccessToken.with_identity": {"tf": 5.656854249492381}, "livekit.api.AccessToken.with_kind": {"tf": 8.306623862918075}, "livekit.api.AccessToken.with_name": {"tf": 5.656854249492381}, "livekit.api.AccessToken.with_metadata": {"tf": 5.656854249492381}, "livekit.api.AccessToken.with_attributes": {"tf": 6.48074069840786}, "livekit.api.AccessToken.with_sha256": {"tf": 5.656854249492381}, "livekit.api.AccessToken.with_room_preset": {"tf": 5.656854249492381}, "livekit.api.AccessToken.with_room_config": {"tf": 6.164414002968976}, "livekit.api.AccessToken.to_jwt": {"tf": 3.4641016151377544}, "livekit.api.TokenVerifier.__init__": {"tf": 9.16515138991168}, "livekit.api.TokenVerifier.verify": {"tf": 5.656854249492381}, "livekit.api.WebhookReceiver.__init__": {"tf": 4.898979485566356}, "livekit.api.WebhookReceiver.receive": {"tf": 5.656854249492381}, "livekit.api.TwirpError.__init__": {"tf": 4.47213595499958}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 6.928203230275509}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 5.477225575051661}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 5.656854249492381}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 5.385164807134504}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 6.324555320336759}, "livekit.api.egress_service.EgressService.__init__": {"tf": 6.928203230275509}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 5.291502622129181}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 5.291502622129181}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 5.291502622129181}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 5.291502622129181}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 5.291502622129181}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 5.291502622129181}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 5.291502622129181}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 5.291502622129181}, "livekit.api.egress_service.EgressService.stop_egress": {"tf": 5.291502622129181}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 6.928203230275509}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 5.291502622129181}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 5.291502622129181}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 5.291502622129181}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 5.291502622129181}, "livekit.api.room_service.RoomService.__init__": {"tf": 6.928203230275509}, "livekit.api.room_service.RoomService.create_room": {"tf": 5.291502622129181}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 5.291502622129181}, "livekit.api.room_service.RoomService.delete_room": {"tf": 5.291502622129181}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 5.291502622129181}, "livekit.api.room_service.RoomService.list_participants": {"tf": 5.477225575051661}, "livekit.api.room_service.RoomService.get_participant": {"tf": 5.291502622129181}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 5.477225575051661}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 5.291502622129181}, "livekit.api.room_service.RoomService.update_participant": {"tf": 5.291502622129181}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 5.477225575051661}, "livekit.api.room_service.RoomService.send_data": {"tf": 5.291502622129181}, "livekit.api.sip_service.SipService.__init__": {"tf": 6.928203230275509}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 5.291502622129181}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 5.477225575051661}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 5.477225575051661}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 5.291502622129181}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 5.477225575051661}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 5.477225575051661}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 5.291502622129181}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 5.477225575051661}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 5.477225575051661}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 5.477225575051661}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 5.291502622129181}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 5.477225575051661}}, "df": 66, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}}, "df": 6}}, "p": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}}, "df": 8, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.update_layout": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.update_stream": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.room_service.RoomService.update_participant": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.__init__": {"tf": 3.3166247903554}, "livekit.api.AccessToken.__init__": {"tf": 1.4142135623730951}, "livekit.api.TokenVerifier.__init__": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 5}}}}}}}, "w": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.__init__": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.__init__": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.to_jwt": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1.4142135623730951}, "livekit.api.TokenVerifier.verify": {"tf": 1}, "livekit.api.WebhookReceiver.receive": {"tf": 1.4142135623730951}, "livekit.api.TwirpError.__init__": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1.7320508075688772}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1.7320508075688772}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService.__init__": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.__init__": {"tf": 1.7320508075688772}}, "df": 22}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.AccessToken.with_kind": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}}, "df": 5}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {"livekit.api.egress_service.EgressService.stop_egress": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.stop_egress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.AccessToken.__init__": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}}, "df": 8}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.TokenVerifier.__init__": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "f": {"docs": {"livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.AccessToken.with_grants": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}, "livekit.api.AccessToken.to_jwt": {"tf": 1}, "livekit.api.TokenVerifier.verify": {"tf": 1}, "livekit.api.WebhookReceiver.receive": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.stop_egress": {"tf": 1}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.create_room": {"tf": 1}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 1}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}, "livekit.api.room_service.RoomService.list_participants": {"tf": 1}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 1}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1}, "livekit.api.room_service.RoomService.send_data": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 54}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}}, "df": 5}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.room_service.RoomService.send_data": {"tf": 1}}, "df": 1, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.room_service.RoomService.send_data": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService.send_data": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.4142135623730951}}, "df": 1}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "p": {"docs": {"livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1.4142135623730951}}, "df": 13, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.with_sip_grants": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {"livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}}, "df": 2}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {"livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {"livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {"livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {"livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}, "h": {"docs": {}, "df": 0, "a": {"2": {"5": {"6": {"docs": {"livekit.api.AccessToken.with_sha256": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 2.449489742783178}, "livekit.api.VideoGrants.__init__": {"tf": 3.3166247903554}, "livekit.api.AccessToken.__init__": {"tf": 1.4142135623730951}, "livekit.api.TokenVerifier.__init__": {"tf": 1.4142135623730951}}, "df": 4}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 4}}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.__init__": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.AccessToken.with_grants": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1.4142135623730951}, "livekit.api.TokenVerifier.verify": {"tf": 1}, "livekit.api.WebhookReceiver.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1.4142135623730951}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService.__init__": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService.__init__": {"tf": 1.4142135623730951}}, "df": 21}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}}, "df": 6}}}}}}, "d": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1.4142135623730951}, "livekit.api.SIPGrants.__init__": {"tf": 1}}, "df": 2}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 6, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 4}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.AccessToken.with_grants": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}, "livekit.api.TokenVerifier.verify": {"tf": 1}, "livekit.api.WebhookReceiver.__init__": {"tf": 1}}, "df": 13, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.AccessToken.with_grants": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}}, "df": 11}}}}}}}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.with_attributes": {"tf": 1}}, "df": 1}}}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.WebhookReceiver.receive": {"tf": 1}}, "df": 1}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.AccessToken.__init__": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}}, "df": 8}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.AccessToken.with_kind": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}}, "df": 1}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.AccessToken.with_grants": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}, "livekit.api.TokenVerifier.verify": {"tf": 1.4142135623730951}, "livekit.api.WebhookReceiver.__init__": {"tf": 1.4142135623730951}, "livekit.api.WebhookReceiver.receive": {"tf": 1}}, "df": 14, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.WebhookReceiver.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "h": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1.7320508075688772}}, "df": 1}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.AccessToken.with_ttl": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}}, "df": 6, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1}, "livekit.api.room_service.RoomService.__init__": {"tf": 1}, "livekit.api.sip_service.SipService.__init__": {"tf": 1}}, "df": 5}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.TokenVerifier.verify": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"livekit.api.AccessToken.with_room_config": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpError.__init__": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.create_room": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}}, "df": 8, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.room_service.RoomService.create_room": {"tf": 1}}, "df": 1}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 2.23606797749979}}, "df": 1}, "l": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.SIPGrants.__init__": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}}, "df": 1}}}}}}, "q": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService.remove_participant": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService.remove_participant": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 2.449489742783178}, "livekit.api.AccessToken.with_room_config": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}, "livekit.api.room_service.RoomService.create_room": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService.list_participants": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService.send_data": {"tf": 1.4142135623730951}}, "df": 16, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.AccessToken.with_room_config": {"tf": 1}}, "df": 1}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 3.605551275463989}, "livekit.api.SIPGrants.__init__": {"tf": 1.4142135623730951}}, "df": 2}}, "d": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.WebhookReceiver.receive": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 1}, "livekit.api.room_service.RoomService.list_participants": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}}, "df": 10, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.list_egress": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.egress_service.EgressService.list_egress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.room_service.RoomService.list_rooms": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService.list_rooms": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.room_service.RoomService.list_participants": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService.list_participants": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.AccessToken.with_grants": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1.4142135623730951}, "livekit.api.AccessToken.with_identity": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.AccessToken.with_name": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}, "livekit.api.AccessToken.with_attributes": {"tf": 1}, "livekit.api.AccessToken.with_sha256": {"tf": 1}, "livekit.api.AccessToken.with_room_preset": {"tf": 1}, "livekit.api.AccessToken.with_room_config": {"tf": 1}, "livekit.api.TokenVerifier.verify": {"tf": 1}, "livekit.api.WebhookReceiver.__init__": {"tf": 1}}, "df": 13}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.AccessToken.with_kind": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.TokenVerifier.__init__": {"tf": 1}}, "df": 1}}}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1.7320508075688772}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.AccessToken.with_room_preset": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {"livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.AccessToken.with_ttl": {"tf": 1}, "livekit.api.TokenVerifier.__init__": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.AccessToken.with_attributes": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1.4142135623730951}}, "df": 4}}}}}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.room_service.RoomService.delete_room": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService.delete_room": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.AccessToken.with_metadata": {"tf": 1}}, "df": 2}}}}}}}, "s": {"docs": {}, "df": 0, "g": {"docs": {"livekit.api.TwirpError.__init__": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.room_service.RoomService.create_room": {"tf": 1}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1}}, "df": 4}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.room_service.RoomService.mute_published_track": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}, "livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1.4142135623730951}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1.4142135623730951}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1.4142135623730951}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1.4142135623730951}}, "df": 6, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {"livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1}}, "df": 3}}}}}}}}}}, "d": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.AccessToken.with_identity": {"tf": 1}}, "df": 1}}}}}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.VideoGrants.__init__": {"tf": 1}}, "df": 1}}}}}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.SIPGrants.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.with_grants": {"tf": 1}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.room_service.RoomService.get_participant": {"tf": 1}}, "df": 1}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.with_grants": {"tf": 1}}, "df": 1}}}}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.WebhookReceiver.__init__": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.AccessToken.with_kind": {"tf": 1}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService.stop_egress": {"tf": 1.4142135623730951}}, "df": 10, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {"livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1}, "livekit.api.egress_service.EgressService.stop_egress": {"tf": 1}}, "df": 8}}}}}}}}}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {"livekit.api.WebhookReceiver.receive": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.WebhookReceiver.receive": {"tf": 1}}, "df": 1}}}}}}}}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}, "bases": {"root": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.TwirpError": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.TwirpError": {"tf": 1}}, "df": 1}}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 5}}}}}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 5}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService": {"tf": 1.4142135623730951}, "livekit.api.ingress_service.IngressService": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService": {"tf": 1.4142135623730951}}, "df": 5}}}}}}}}}, "doc": {"root": {"3": {"9": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "6": {"0": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"livekit.api": {"tf": 3.872983346207417}, "livekit.api.LiveKitAPI": {"tf": 9.273618495495704}, "livekit.api.LiveKitAPI.__init__": {"tf": 5.916079783099616}, "livekit.api.LiveKitAPI.agent_dispatch": {"tf": 2.449489742783178}, "livekit.api.LiveKitAPI.room": {"tf": 2.449489742783178}, "livekit.api.LiveKitAPI.ingress": {"tf": 2.449489742783178}, "livekit.api.LiveKitAPI.egress": {"tf": 2.449489742783178}, "livekit.api.LiveKitAPI.sip": {"tf": 2.449489742783178}, "livekit.api.VideoGrants": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.__init__": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.room_create": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.room_list": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.room_record": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.room_admin": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.room_join": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.room": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.can_publish": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.can_subscribe": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.can_publish_data": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.can_publish_sources": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.can_update_own_metadata": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.ingress_admin": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.hidden": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.recorder": {"tf": 1.7320508075688772}, "livekit.api.VideoGrants.agent": {"tf": 1.7320508075688772}, "livekit.api.SIPGrants": {"tf": 1.7320508075688772}, "livekit.api.SIPGrants.__init__": {"tf": 1.7320508075688772}, "livekit.api.SIPGrants.admin": {"tf": 1.7320508075688772}, "livekit.api.SIPGrants.call": {"tf": 1.7320508075688772}, "livekit.api.AccessToken": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.__init__": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.ParticipantKind": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.api_key": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.api_secret": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.claims": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.identity": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.ttl": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.with_ttl": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.with_grants": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.with_sip_grants": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.with_identity": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.with_kind": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.with_name": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.with_metadata": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.with_attributes": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.with_sha256": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.with_room_preset": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.with_room_config": {"tf": 1.7320508075688772}, "livekit.api.AccessToken.to_jwt": {"tf": 1.7320508075688772}, "livekit.api.TokenVerifier": {"tf": 1.7320508075688772}, "livekit.api.TokenVerifier.__init__": {"tf": 1.7320508075688772}, "livekit.api.TokenVerifier.api_key": {"tf": 1.7320508075688772}, "livekit.api.TokenVerifier.api_secret": {"tf": 1.7320508075688772}, "livekit.api.TokenVerifier.verify": {"tf": 1.7320508075688772}, "livekit.api.WebhookReceiver": {"tf": 1.7320508075688772}, "livekit.api.WebhookReceiver.__init__": {"tf": 1.7320508075688772}, "livekit.api.WebhookReceiver.receive": {"tf": 1.7320508075688772}, "livekit.api.TwirpError": {"tf": 1.7320508075688772}, "livekit.api.TwirpError.__init__": {"tf": 1.7320508075688772}, "livekit.api.TwirpError.code": {"tf": 1.7320508075688772}, "livekit.api.TwirpError.message": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.CANCELED": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.UNKNOWN": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.INVALID_ARGUMENT": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.MALFORMED": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.DEADLINE_EXCEEDED": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.NOT_FOUND": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.BAD_ROUTE": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.ALREADY_EXISTS": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.PERMISSION_DENIED": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.UNAUTHENTICATED": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.RESOURCE_EXHAUSTED": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.FAILED_PRECONDITION": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.ABORTED": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.OUT_OF_RANGE": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.UNIMPLEMENTED": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.INTERNAL": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.UNAVAILABLE": {"tf": 1.7320508075688772}, "livekit.api.TwirpErrorCode.DATA_LOSS": {"tf": 1.7320508075688772}, "livekit.api.agent_dispatch_service": {"tf": 1.7320508075688772}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 7.280109889280518}, "livekit.api.agent_dispatch_service.AgentDispatchService.__init__": {"tf": 1.7320508075688772}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 5.196152422706632}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 5.196152422706632}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 4.69041575982343}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 5.0990195135927845}, "livekit.api.egress_service": {"tf": 1.7320508075688772}, "livekit.api.egress_service.EgressService": {"tf": 7.483314773547883}, "livekit.api.egress_service.EgressService.__init__": {"tf": 1.7320508075688772}, "livekit.api.egress_service.EgressService.start_room_composite_egress": {"tf": 1.7320508075688772}, "livekit.api.egress_service.EgressService.start_web_egress": {"tf": 1.7320508075688772}, "livekit.api.egress_service.EgressService.start_participant_egress": {"tf": 1.7320508075688772}, "livekit.api.egress_service.EgressService.start_track_composite_egress": {"tf": 1.7320508075688772}, "livekit.api.egress_service.EgressService.start_track_egress": {"tf": 1.7320508075688772}, "livekit.api.egress_service.EgressService.update_layout": {"tf": 1.7320508075688772}, "livekit.api.egress_service.EgressService.update_stream": {"tf": 1.7320508075688772}, "livekit.api.egress_service.EgressService.list_egress": {"tf": 1.7320508075688772}, "livekit.api.egress_service.EgressService.stop_egress": {"tf": 1.7320508075688772}, "livekit.api.ingress_service": {"tf": 1.7320508075688772}, "livekit.api.ingress_service.IngressService": {"tf": 7.483314773547883}, "livekit.api.ingress_service.IngressService.__init__": {"tf": 1.7320508075688772}, "livekit.api.ingress_service.IngressService.create_ingress": {"tf": 1.7320508075688772}, "livekit.api.ingress_service.IngressService.update_ingress": {"tf": 1.7320508075688772}, "livekit.api.ingress_service.IngressService.list_ingress": {"tf": 1.7320508075688772}, "livekit.api.ingress_service.IngressService.delete_ingress": {"tf": 1.7320508075688772}, "livekit.api.room_service": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService": {"tf": 7.615773105863909}, "livekit.api.room_service.RoomService.__init__": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService.create_room": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService.list_rooms": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService.delete_room": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService.update_room_metadata": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService.list_participants": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService.get_participant": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService.remove_participant": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService.mute_published_track": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService.update_participant": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService.update_subscriptions": {"tf": 1.7320508075688772}, "livekit.api.room_service.RoomService.send_data": {"tf": 1.7320508075688772}, "livekit.api.sip_service": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService": {"tf": 7.211102550927978}, "livekit.api.sip_service.SipService.__init__": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.create_sip_trunk": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.create_sip_inbound_trunk": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.create_sip_outbound_trunk": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.list_sip_trunk": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.list_sip_inbound_trunk": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.list_sip_outbound_trunk": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.delete_sip_trunk": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.create_sip_dispatch_rule": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.list_sip_dispatch_rule": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.delete_sip_dispatch_rule": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.create_sip_participant": {"tf": 1.7320508075688772}, "livekit.api.sip_service.SipService.transfer_sip_participant": {"tf": 1.7320508075688772}}, "df": 135, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api": {"tf": 1.4142135623730951}, "livekit.api.LiveKitAPI": {"tf": 1.4142135623730951}, "livekit.api.LiveKitAPI.__init__": {"tf": 2}, "livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService": {"tf": 2}, "livekit.api.ingress_service.IngressService": {"tf": 2}, "livekit.api.room_service.RoomService": {"tf": 2.23606797749979}, "livekit.api.sip_service.SipService": {"tf": 1.7320508075688772}}, "df": 13, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService": {"tf": 1.4142135623730951}, "livekit.api.ingress_service.IngressService": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService": {"tf": 1.4142135623730951}}, "df": 8}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1.7320508075688772}}, "df": 2, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "[": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "k": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService": {"tf": 1.4142135623730951}, "livekit.api.ingress_service.IngressService": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService": {"tf": 1.4142135623730951}}, "df": 6}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.LiveKitAPI.__init__": {"tf": 1}}, "df": 3}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1.4142135623730951}, "livekit.api.egress_service.EgressService": {"tf": 1.4142135623730951}, "livekit.api.ingress_service.IngressService": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService": {"tf": 1.4142135623730951}, "livekit.api.sip_service.SipService": {"tf": 1.7320508075688772}}, "df": 10, "s": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}}, "df": 9}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.7320508075688772}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "p": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1.7320508075688772}}, "df": 3, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.sip": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1.4142135623730951}}, "df": 3}}}, "a": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}}, "df": 4, "p": {"docs": {}, "df": 0, "i": {"docs": {"livekit.api.LiveKitAPI": {"tf": 2}, "livekit.api.LiveKitAPI.__init__": {"tf": 2.449489742783178}, "livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1.7320508075688772}, "livekit.api.egress_service.EgressService": {"tf": 2}, "livekit.api.ingress_service.IngressService": {"tf": 2}, "livekit.api.room_service.RoomService": {"tf": 2}, "livekit.api.sip_service.SipService": {"tf": 2}}, "df": 12, "s": {"docs": {"livekit.api": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}}, "df": 2}}}, "n": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1.7320508075688772}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 3, "d": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}}, "df": 2}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1.7320508075688772}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1.7320508075688772}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1.4142135623730951}}, "df": 7, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.TwirpError": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}}, "df": 3}, "s": {"docs": {}, "df": 0, "o": {"docs": {"livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}}, "df": 3}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 5}}}}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api": {"tf": 1.4142135623730951}, "livekit.api.TwirpError": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 8}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.LiveKitAPI.__init__": {"tf": 1.7320508075688772}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 8}}}}, "p": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}}, "df": 2}}}}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}}}}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}}, "df": 1}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}}, "df": 1}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1.7320508075688772}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1.7320508075688772}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 2}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService": {"tf": 1.4142135623730951}}, "df": 7, "s": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.LiveKitAPI": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.room": {"tf": 1.4142135623730951}, "livekit.api.room_service.RoomService": {"tf": 1}}, "df": 2}}}}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.7320508075688772}}, "df": 1}}, "q": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 5}}}}}}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 4}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1.7320508075688772}}, "df": 3, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.egress": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}}, "df": 1}}}}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}}}}, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}}, "df": 2}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.TwirpError": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.TwirpError": {"tf": 1}}, "df": 1}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1.4142135623730951}}, "df": 2, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1.7320508075688772}}, "df": 3, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.ingress": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}}, "df": 6}}}}}}}, "s": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 7}, "o": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"livekit.api.egress_service.EgressService": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"livekit.api.ingress_service.IngressService": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"livekit.api.room_service.RoomService": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 6}}}}}, "f": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.7320508075688772}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 2}, "d": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1.7320508075688772}}, "df": 2}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 2}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 2.23606797749979}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 2.23606797749979}}, "df": 7, "e": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}}, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1.4142135623730951}}, "df": 1, "d": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}}, "df": 1}}}}}}}, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, ":": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1.4142135623730951}}, "df": 4}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 5}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.TwirpError": {"tf": 1}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.TwirpError": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 3}}}}}}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 6}}, "e": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}, "livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 2}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 2}}, "df": 10}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "o": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 9}}, "w": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 5}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 6}}, "r": {"docs": {}, "df": 0, "l": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.7320508075688772}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1.4142135623730951}}, "df": 3, "s": {"docs": {"livekit.api.LiveKitAPI": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "w": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.7320508075688772}}, "df": 1}, "n": {"docs": {"livekit.api.TwirpError": {"tf": 1}}, "df": 1, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "a": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService": {"tf": 1}, "livekit.api.egress_service.EgressService": {"tf": 1}, "livekit.api.ingress_service.IngressService": {"tf": 1}, "livekit.api.room_service.RoomService": {"tf": 1}, "livekit.api.sip_service.SipService": {"tf": 1}}, "df": 5}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"livekit.api.LiveKitAPI.__init__": {"tf": 1.7320508075688772}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "f": {"docs": {"livekit.api.LiveKitAPI.agent_dispatch": {"tf": 1}, "livekit.api.LiveKitAPI.room": {"tf": 1}, "livekit.api.LiveKitAPI.ingress": {"tf": 1}, "livekit.api.LiveKitAPI.egress": {"tf": 1}, "livekit.api.LiveKitAPI.sip": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1.4142135623730951}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1.4142135623730951}}, "df": 8}, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.delete_dispatch": {"tf": 1}, "livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 3, "s": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.list_dispatch": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 1}}}}}}}}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"livekit.api.TwirpError": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}, "y": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 1}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}}}}, "y": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.create_dispatch": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"livekit.api.agent_dispatch_service.AgentDispatchService.get_dispatch": {"tf": 1}}, "df": 1}}}}}}, "pipeline": ["trimmer"], "_isPrebuiltIndex": true};
-
- // mirrored in build-search-index.js (part 1)
- // Also split on html tags. this is a cheap heuristic, but good enough.
- elasticlunr.tokenizer.setSeperator(/[\s\-.;&_'"=,()]+|<[^>]*>/);
-
- let searchIndex;
- if (docs._isPrebuiltIndex) {
- console.info("using precompiled search index");
- searchIndex = elasticlunr.Index.load(docs);
- } else {
- console.time("building search index");
- // mirrored in build-search-index.js (part 2)
- searchIndex = elasticlunr(function () {
- this.pipeline.remove(elasticlunr.stemmer);
- this.pipeline.remove(elasticlunr.stopWordFilter);
- this.addField("qualname");
- this.addField("fullname");
- this.addField("annotation");
- this.addField("default_value");
- this.addField("signature");
- this.addField("bases");
- this.addField("doc");
- this.setRef("fullname");
- });
- for (let doc of docs) {
- searchIndex.addDoc(doc);
- }
- console.timeEnd("building search index");
- }
-
- return (term) => searchIndex.search(term, {
- fields: {
- qualname: {boost: 4},
- fullname: {boost: 2},
- annotation: {boost: 2},
- default_value: {boost: 2},
- signature: {boost: 2},
- bases: {boost: 2},
- doc: {boost: 1},
- },
- expand: true
- });
-})();
\ No newline at end of file
From 08a2c0b8ac3d92a6e5a2d4a90b73215ec7c78110 Mon Sep 17 00:00:00 2001
From: Ben Cherry
Date: Wed, 13 Nov 2024 11:34:04 -0800
Subject: [PATCH 04/11] doc rs
---
livekit-api/livekit/api/room_service.py | 143 +++++++++++++++++++++++-
1 file changed, 142 insertions(+), 1 deletion(-)
diff --git a/livekit-api/livekit/api/room_service.py b/livekit-api/livekit/api/room_service.py
index 0ef4e110..be40f1f5 100644
--- a/livekit-api/livekit/api/room_service.py
+++ b/livekit-api/livekit/api/room_service.py
@@ -25,7 +25,26 @@ def __init__(
):
super().__init__(session, url, api_key, api_secret)
- async def create_room(self, create: CreateRoomRequest) -> Room:
+ async def create_room(
+ self,
+ create: CreateRoomRequest,
+ ) -> Room:
+ """Creates a new room with specified configuration.
+
+ Args:
+ create (CreateRoomRequest): arg containing:
+ - name: str - Unique room name
+ - empty_timeout: int - Seconds to keep room open if empty
+ - max_participants: int - Max allowed participants
+ - metadata: str - Custom room metadata
+ - egress: RoomEgress - Egress configuration
+ - min_playout_delay: int - Minimum playout delay in ms
+ - max_playout_delay: int - Maximum playout delay in ms
+ - sync_streams: bool - Enable A/V sync for playout delays >200ms
+
+ Returns:
+ Room: The created room object
+ """
return await self._client.request(
SVC,
"CreateRoom",
@@ -35,6 +54,16 @@ async def create_room(self, create: CreateRoomRequest) -> Room:
)
async def list_rooms(self, list: ListRoomsRequest) -> ListRoomsResponse:
+ """Lists active rooms.
+
+ Args:
+ list (ListRoomsRequest): arg containing:
+ - names: list[str] - Optional list of room names to filter by
+
+ Returns:
+ ListRoomsResponse:
+ - rooms: list[Room] - List of active Room objects
+ """
return await self._client.request(
SVC,
"ListRooms",
@@ -44,6 +73,15 @@ async def list_rooms(self, list: ListRoomsRequest) -> ListRoomsResponse:
)
async def delete_room(self, delete: DeleteRoomRequest) -> DeleteRoomResponse:
+ """Deletes a room and disconnects all participants.
+
+ Args:
+ delete (DeleteRoomRequest): arg containing:
+ - room: str - Name of room to delete
+
+ Returns:
+ DeleteRoomResponse: Empty response object
+ """
return await self._client.request(
SVC,
"DeleteRoom",
@@ -53,6 +91,16 @@ async def delete_room(self, delete: DeleteRoomRequest) -> DeleteRoomResponse:
)
async def update_room_metadata(self, update: UpdateRoomMetadataRequest) -> Room:
+ """Updates a room's [metadata](https://docs.livekit.io/home/client/data/room-metadata/).
+
+ Args:
+ update (UpdateRoomMetadataRequest): arg containing:
+ - room: str - Name of room to update
+ - metadata: str - New metadata to set
+
+ Returns:
+ Room: Updated Room object
+ """
return await self._client.request(
SVC,
"UpdateRoomMetadata",
@@ -64,6 +112,16 @@ async def update_room_metadata(self, update: UpdateRoomMetadataRequest) -> Room:
async def list_participants(
self, list: ListParticipantsRequest
) -> ListParticipantsResponse:
+ """Lists all participants in a room.
+
+ Args:
+ list (ListParticipantsRequest): arg containing:
+ - room: str - Name of room to list participants from
+
+ Returns:
+ ListParticipantsResponse:
+ - participants: list[ParticipantInfo] - List of participant details
+ """
return await self._client.request(
SVC,
"ListParticipants",
@@ -73,6 +131,26 @@ async def list_participants(
)
async def get_participant(self, get: RoomParticipantIdentity) -> ParticipantInfo:
+ """Gets details about a specific participant.
+
+ Args:
+ get (RoomParticipantIdentity): arg containing:
+ - room: str - Room name
+ - identity: str - Participant identity to look up
+
+ Returns:
+ ParticipantInfo:
+ - sid: str - Participant session ID
+ - identity: str - Participant identity
+ - state: int - Connection state
+ - tracks: list[TrackInfo] - Published tracks
+ - metadata: str - Participant metadata
+ - joined_at: int - Join timestamp
+ - name: str - Display name
+ - version: int - Protocol version
+ - permission: ParticipantPermission - Granted permissions
+ - region: str - Connected region
+ """
return await self._client.request(
SVC,
"GetParticipant",
@@ -84,6 +162,16 @@ async def get_participant(self, get: RoomParticipantIdentity) -> ParticipantInfo
async def remove_participant(
self, remove: RoomParticipantIdentity
) -> RemoveParticipantResponse:
+ """Removes a participant from a room.
+
+ Args:
+ remove (RoomParticipantIdentity): arg containing:
+ - room: str - Room name
+ - identity: str - Identity of participant to remove
+
+ Returns:
+ RemoveParticipantResponse: Empty response object
+ """
return await self._client.request(
SVC,
"RemoveParticipant",
@@ -96,6 +184,19 @@ async def mute_published_track(
self,
update: MuteRoomTrackRequest,
) -> MuteRoomTrackResponse:
+ """Mutes or unmutes a participant's published track.
+
+ Args:
+ update (MuteRoomTrackRequest): arg containing:
+ - room: str - Room name
+ - identity: str - Participant identity
+ - track_sid: str - Track session ID to mute
+ - muted: bool - True to mute, False to unmute
+
+ Returns:
+ MuteRoomTrackResponse containing:
+ - track: TrackInfo - Updated track information
+ """
return await self._client.request(
SVC,
"MutePublishedTrack",
@@ -107,6 +208,20 @@ async def mute_published_track(
async def update_participant(
self, update: UpdateParticipantRequest
) -> ParticipantInfo:
+ """Updates a participant's metadata or permissions.
+
+ Args:
+ update (UpdateParticipantRequest): arg containing:
+ - room: str - Room name
+ - identity: str - Participant identity
+ - metadata: str - New metadata
+ - permission: ParticipantPermission - New permissions
+ - name: str - New display name
+ - attributes: dict[str, str] - Key-value attributes
+
+ Returns:
+ ParticipantInfo: Updated participant information
+ """
return await self._client.request(
SVC,
"UpdateParticipant",
@@ -118,6 +233,19 @@ async def update_participant(
async def update_subscriptions(
self, update: UpdateSubscriptionsRequest
) -> UpdateSubscriptionsResponse:
+ """Updates a participant's track subscriptions.
+
+ Args:
+ update (UpdateSubscriptionsRequest): arg containing:
+ - room: str - Room name
+ - identity: str - Participant identity
+ - track_sids: list[str] - Track session IDs
+ - subscribe: bool - True to subscribe, False to unsubscribe
+ - participant_tracks: list[ParticipantTracks] - Participant track mappings
+
+ Returns:
+ UpdateSubscriptionsResponse: Empty response object
+ """
return await self._client.request(
SVC,
"UpdateSubscriptions",
@@ -127,6 +255,19 @@ async def update_subscriptions(
)
async def send_data(self, send: SendDataRequest) -> SendDataResponse:
+ """Sends data to participants in a room.
+
+ Args:
+ send (SendDataRequest): arg containing:
+ - room: str - Room name
+ - data: bytes - Data payload to send
+ - kind: DataPacket.Kind - RELIABLE or LOSSY delivery
+ - destination_identities: list[str] - Target participant identities
+ - topic: str - Optional topic for the message
+
+ Returns:
+ SendDataResponse: Empty response object
+ """
return await self._client.request(
SVC,
"SendData",
From 8448596bf3b7bccf89d347e2d8e6a1778b426d32 Mon Sep 17 00:00:00 2001
From: Ben Cherry
Date: Wed, 13 Nov 2024 11:35:25 -0800
Subject: [PATCH 05/11] fmt
---
.../livekit/api/agent_dispatch_service.py | 24 +++----
livekit-api/livekit/api/egress_service.py | 46 ++++++------
livekit-api/livekit/api/ingress_service.py | 33 ++++-----
livekit-api/livekit/api/livekit_api.py | 14 ++--
livekit-api/livekit/api/room_service.py | 72 ++++++++++++-------
livekit-api/livekit/api/sip_service.py | 42 +++++++----
6 files changed, 135 insertions(+), 96 deletions(-)
diff --git a/livekit-api/livekit/api/agent_dispatch_service.py b/livekit-api/livekit/api/agent_dispatch_service.py
index a4f4da22..5cdfc1e7 100644
--- a/livekit-api/livekit/api/agent_dispatch_service.py
+++ b/livekit-api/livekit/api/agent_dispatch_service.py
@@ -1,6 +1,12 @@
import aiohttp
from typing import Optional
-from livekit.protocol.agent_dispatch import CreateAgentDispatchRequest, AgentDispatch, DeleteAgentDispatchRequest, ListAgentDispatchRequest, ListAgentDispatchResponse
+from livekit.protocol.agent_dispatch import (
+ CreateAgentDispatchRequest,
+ AgentDispatch,
+ DeleteAgentDispatchRequest,
+ ListAgentDispatchRequest,
+ ListAgentDispatchResponse,
+)
from ._service import Service
from .access_token import VideoGrants
@@ -25,9 +31,7 @@ def __init__(
):
super().__init__(session, url, api_key, api_secret)
- async def create_dispatch(
- self, req: CreateAgentDispatchRequest
- ) -> AgentDispatch:
+ async def create_dispatch(self, req: CreateAgentDispatchRequest) -> AgentDispatch:
"""Create an explicit dispatch for an agent to join a room.
To use explicit dispatch, your agent must be registered with an `agentName`.
@@ -46,9 +50,7 @@ async def create_dispatch(
AgentDispatch,
)
- async def delete_dispatch(
- self, dispatch_id: str, room_name: str
- ) -> AgentDispatch:
+ async def delete_dispatch(self, dispatch_id: str, room_name: str) -> AgentDispatch:
"""Delete an explicit dispatch for an agent in a room.
Args:
@@ -69,9 +71,7 @@ async def delete_dispatch(
AgentDispatch,
)
- async def list_dispatch(
- self, room_name: str
- ) -> list[AgentDispatch]:
+ async def list_dispatch(self, room_name: str) -> list[AgentDispatch]:
"""List all agent dispatches in a room.
Args:
@@ -104,9 +104,7 @@ async def get_dispatch(
res = await self._client.request(
SVC,
"ListDispatch",
- ListAgentDispatchRequest(
- dispatch_id=dispatch_id, room=room_name
- ),
+ ListAgentDispatchRequest(dispatch_id=dispatch_id, room=room_name),
self._auth_header(VideoGrants(room_admin=True, room=room_name)),
ListAgentDispatchResponse,
)
diff --git a/livekit-api/livekit/api/egress_service.py b/livekit-api/livekit/api/egress_service.py
index 37efcbd0..b5d4984e 100644
--- a/livekit-api/livekit/api/egress_service.py
+++ b/livekit-api/livekit/api/egress_service.py
@@ -1,24 +1,38 @@
import aiohttp
-from livekit.protocol.egress import RoomCompositeEgressRequest, WebEgressRequest, ParticipantEgressRequest, TrackCompositeEgressRequest, TrackEgressRequest, UpdateLayoutRequest, UpdateStreamRequest, ListEgressRequest, StopEgressRequest, EgressInfo, ListEgressResponse
+from livekit.protocol.egress import (
+ RoomCompositeEgressRequest,
+ WebEgressRequest,
+ ParticipantEgressRequest,
+ TrackCompositeEgressRequest,
+ TrackEgressRequest,
+ UpdateLayoutRequest,
+ UpdateStreamRequest,
+ ListEgressRequest,
+ StopEgressRequest,
+ EgressInfo,
+ ListEgressResponse,
+)
from ._service import Service
from .access_token import VideoGrants
SVC = "Egress"
"""@private"""
+
class EgressService(Service):
"""Client for LiveKit Egress Service API
-
+
Recommended way to use this service is via `livekit.api.LiveKitAPI`:
-
+
```python
from livekit import api
lkapi = api.LiveKitAPI()
egress = lkapi.egress
```
-
+
Also see https://docs.livekit.io/home/egress/overview/
"""
+
def __init__(
self, session: aiohttp.ClientSession, url: str, api_key: str, api_secret: str
):
@@ -35,9 +49,7 @@ async def start_room_composite_egress(
EgressInfo,
)
- async def start_web_egress(
- self, start: WebEgressRequest
- ) -> EgressInfo:
+ async def start_web_egress(self, start: WebEgressRequest) -> EgressInfo:
return await self._client.request(
SVC,
"StartWebEgress",
@@ -68,9 +80,7 @@ async def start_track_composite_egress(
EgressInfo,
)
- async def start_track_egress(
- self, start: TrackEgressRequest
- ) -> EgressInfo:
+ async def start_track_egress(self, start: TrackEgressRequest) -> EgressInfo:
return await self._client.request(
SVC,
"StartTrackEgress",
@@ -79,9 +89,7 @@ async def start_track_egress(
EgressInfo,
)
- async def update_layout(
- self, update: UpdateLayoutRequest
- ) -> EgressInfo:
+ async def update_layout(self, update: UpdateLayoutRequest) -> EgressInfo:
return await self._client.request(
SVC,
"UpdateLayout",
@@ -90,9 +98,7 @@ async def update_layout(
EgressInfo,
)
- async def update_stream(
- self, update: UpdateStreamRequest
- ) -> EgressInfo:
+ async def update_stream(self, update: UpdateStreamRequest) -> EgressInfo:
return await self._client.request(
SVC,
"UpdateStream",
@@ -101,9 +107,7 @@ async def update_stream(
EgressInfo,
)
- async def list_egress(
- self, list: ListEgressRequest
- ) -> ListEgressResponse:
+ async def list_egress(self, list: ListEgressRequest) -> ListEgressResponse:
return await self._client.request(
SVC,
"ListEgress",
@@ -112,9 +116,7 @@ async def list_egress(
ListEgressResponse,
)
- async def stop_egress(
- self, stop: StopEgressRequest
- ) -> EgressInfo:
+ async def stop_egress(self, stop: StopEgressRequest) -> EgressInfo:
return await self._client.request(
SVC,
"StopEgress",
diff --git a/livekit-api/livekit/api/ingress_service.py b/livekit-api/livekit/api/ingress_service.py
index 45eab6af..7b658bb8 100644
--- a/livekit-api/livekit/api/ingress_service.py
+++ b/livekit-api/livekit/api/ingress_service.py
@@ -1,32 +1,39 @@
import aiohttp
-from livekit.protocol.ingress import CreateIngressRequest, IngressInfo, UpdateIngressRequest, ListIngressRequest, DeleteIngressRequest, ListIngressResponse
+from livekit.protocol.ingress import (
+ CreateIngressRequest,
+ IngressInfo,
+ UpdateIngressRequest,
+ ListIngressRequest,
+ DeleteIngressRequest,
+ ListIngressResponse,
+)
from ._service import Service
from .access_token import VideoGrants
SVC = "Ingress"
"""@private"""
+
class IngressService(Service):
"""Client for LiveKit Ingress Service API
-
+
Recommended way to use this service is via `livekit.api.LiveKitAPI`:
-
+
```python
from livekit import api
lkapi = api.LiveKitAPI()
ingress = lkapi.ingress
```
-
+
Also see https://docs.livekit.io/home/ingress/overview/
"""
+
def __init__(
self, session: aiohttp.ClientSession, url: str, api_key: str, api_secret: str
):
super().__init__(session, url, api_key, api_secret)
- async def create_ingress(
- self, create: CreateIngressRequest
- ) -> IngressInfo:
+ async def create_ingress(self, create: CreateIngressRequest) -> IngressInfo:
return await self._client.request(
SVC,
"CreateIngress",
@@ -35,9 +42,7 @@ async def create_ingress(
IngressInfo,
)
- async def update_ingress(
- self, update: UpdateIngressRequest
- ) -> IngressInfo:
+ async def update_ingress(self, update: UpdateIngressRequest) -> IngressInfo:
return await self._client.request(
SVC,
"UpdateIngress",
@@ -46,9 +51,7 @@ async def update_ingress(
IngressInfo,
)
- async def list_ingress(
- self, list: ListIngressRequest
- ) -> ListIngressResponse:
+ async def list_ingress(self, list: ListIngressRequest) -> ListIngressResponse:
return await self._client.request(
SVC,
"ListIngress",
@@ -57,9 +60,7 @@ async def list_ingress(
ListIngressResponse,
)
- async def delete_ingress(
- self, delete: DeleteIngressRequest
- ) -> IngressInfo:
+ async def delete_ingress(self, delete: DeleteIngressRequest) -> IngressInfo:
return await self._client.request(
SVC,
"DeleteIngress",
diff --git a/livekit-api/livekit/api/livekit_api.py b/livekit-api/livekit/api/livekit_api.py
index 73e38993..b2f25090 100644
--- a/livekit-api/livekit/api/livekit_api.py
+++ b/livekit-api/livekit/api/livekit_api.py
@@ -10,7 +10,7 @@
class LiveKitAPI:
"""LiveKit Server API Client
-
+
This class is the main entrypoint, which exposes all services.
Usage:
@@ -31,7 +31,7 @@ def __init__(
timeout: aiohttp.ClientTimeout = aiohttp.ClientTimeout(total=60), # 60 seconds
):
"""Create a new LiveKitAPI instance.
-
+
Args:
url: LiveKit server URL (read from `LIVEKIT_URL` environment variable if not provided)
api_key: API key (read from `LIVEKIT_API_KEY` environment variable if not provided)
@@ -60,35 +60,35 @@ def __init__(
@property
def agent_dispatch(self) -> AgentDispatchService:
"""Instance of the AgentDispatchService
-
+
See `livekit.api.agent_dispatch_service.AgentDispatchService`"""
return self._agent_dispatch
@property
def room(self) -> RoomService:
"""Instance of the RoomService
-
+
See `livekit.api.room_service.RoomService`"""
return self._room
@property
def ingress(self) -> IngressService:
"""Instance of the IngressService
-
+
See `livekit.api.ingress_service.IngressService`"""
return self._ingress
@property
def egress(self) -> EgressService:
"""Instance of the EgressService
-
+
See `livekit.api.egress_service.EgressService`"""
return self._egress
@property
def sip(self) -> SipService:
"""Instance of the SipService
-
+
See `livekit.api.sip_service.SipService`"""
return self._sip
diff --git a/livekit-api/livekit/api/room_service.py b/livekit-api/livekit/api/room_service.py
index be40f1f5..353a5ec8 100644
--- a/livekit-api/livekit/api/room_service.py
+++ b/livekit-api/livekit/api/room_service.py
@@ -1,5 +1,23 @@
import aiohttp
-from livekit.protocol.room import CreateRoomRequest, ListRoomsRequest, DeleteRoomRequest, ListRoomsResponse, DeleteRoomResponse, ListParticipantsRequest, ListParticipantsResponse, RoomParticipantIdentity, MuteRoomTrackRequest, MuteRoomTrackResponse, UpdateParticipantRequest, UpdateSubscriptionsRequest, SendDataRequest, SendDataResponse, UpdateRoomMetadataRequest, RemoveParticipantResponse, UpdateSubscriptionsResponse
+from livekit.protocol.room import (
+ CreateRoomRequest,
+ ListRoomsRequest,
+ DeleteRoomRequest,
+ ListRoomsResponse,
+ DeleteRoomResponse,
+ ListParticipantsRequest,
+ ListParticipantsResponse,
+ RoomParticipantIdentity,
+ MuteRoomTrackRequest,
+ MuteRoomTrackResponse,
+ UpdateParticipantRequest,
+ UpdateSubscriptionsRequest,
+ SendDataRequest,
+ SendDataResponse,
+ UpdateRoomMetadataRequest,
+ RemoveParticipantResponse,
+ UpdateSubscriptionsResponse,
+)
from livekit.protocol.models import Room, ParticipantInfo
from ._service import Service
from .access_token import VideoGrants
@@ -7,19 +25,21 @@
SVC = "RoomService"
"""@private"""
+
class RoomService(Service):
"""Client for LiveKit RoomService API
-
+
Recommended way to use this service is via `livekit.api.LiveKitAPI`:
-
+
```python
from livekit import api
lkapi = api.LiveKitAPI()
room_service = lkapi.room
```
-
+
Also see https://docs.livekit.io/home/server/managing-rooms/ and https://docs.livekit.io/home/server/managing-participants/
"""
+
def __init__(
self, session: aiohttp.ClientSession, url: str, api_key: str, api_secret: str
):
@@ -30,7 +50,7 @@ async def create_room(
create: CreateRoomRequest,
) -> Room:
"""Creates a new room with specified configuration.
-
+
Args:
create (CreateRoomRequest): arg containing:
- name: str - Unique room name
@@ -41,7 +61,7 @@ async def create_room(
- min_playout_delay: int - Minimum playout delay in ms
- max_playout_delay: int - Maximum playout delay in ms
- sync_streams: bool - Enable A/V sync for playout delays >200ms
-
+
Returns:
Room: The created room object
"""
@@ -55,11 +75,11 @@ async def create_room(
async def list_rooms(self, list: ListRoomsRequest) -> ListRoomsResponse:
"""Lists active rooms.
-
+
Args:
list (ListRoomsRequest): arg containing:
- names: list[str] - Optional list of room names to filter by
-
+
Returns:
ListRoomsResponse:
- rooms: list[Room] - List of active Room objects
@@ -74,11 +94,11 @@ async def list_rooms(self, list: ListRoomsRequest) -> ListRoomsResponse:
async def delete_room(self, delete: DeleteRoomRequest) -> DeleteRoomResponse:
"""Deletes a room and disconnects all participants.
-
+
Args:
delete (DeleteRoomRequest): arg containing:
- room: str - Name of room to delete
-
+
Returns:
DeleteRoomResponse: Empty response object
"""
@@ -92,12 +112,12 @@ async def delete_room(self, delete: DeleteRoomRequest) -> DeleteRoomResponse:
async def update_room_metadata(self, update: UpdateRoomMetadataRequest) -> Room:
"""Updates a room's [metadata](https://docs.livekit.io/home/client/data/room-metadata/).
-
+
Args:
update (UpdateRoomMetadataRequest): arg containing:
- room: str - Name of room to update
- metadata: str - New metadata to set
-
+
Returns:
Room: Updated Room object
"""
@@ -113,11 +133,11 @@ async def list_participants(
self, list: ListParticipantsRequest
) -> ListParticipantsResponse:
"""Lists all participants in a room.
-
+
Args:
list (ListParticipantsRequest): arg containing:
- room: str - Name of room to list participants from
-
+
Returns:
ListParticipantsResponse:
- participants: list[ParticipantInfo] - List of participant details
@@ -132,12 +152,12 @@ async def list_participants(
async def get_participant(self, get: RoomParticipantIdentity) -> ParticipantInfo:
"""Gets details about a specific participant.
-
+
Args:
get (RoomParticipantIdentity): arg containing:
- room: str - Room name
- identity: str - Participant identity to look up
-
+
Returns:
ParticipantInfo:
- sid: str - Participant session ID
@@ -163,12 +183,12 @@ async def remove_participant(
self, remove: RoomParticipantIdentity
) -> RemoveParticipantResponse:
"""Removes a participant from a room.
-
+
Args:
remove (RoomParticipantIdentity): arg containing:
- room: str - Room name
- identity: str - Identity of participant to remove
-
+
Returns:
RemoveParticipantResponse: Empty response object
"""
@@ -185,14 +205,14 @@ async def mute_published_track(
update: MuteRoomTrackRequest,
) -> MuteRoomTrackResponse:
"""Mutes or unmutes a participant's published track.
-
+
Args:
update (MuteRoomTrackRequest): arg containing:
- room: str - Room name
- identity: str - Participant identity
- track_sid: str - Track session ID to mute
- muted: bool - True to mute, False to unmute
-
+
Returns:
MuteRoomTrackResponse containing:
- track: TrackInfo - Updated track information
@@ -209,7 +229,7 @@ async def update_participant(
self, update: UpdateParticipantRequest
) -> ParticipantInfo:
"""Updates a participant's metadata or permissions.
-
+
Args:
update (UpdateParticipantRequest): arg containing:
- room: str - Room name
@@ -218,7 +238,7 @@ async def update_participant(
- permission: ParticipantPermission - New permissions
- name: str - New display name
- attributes: dict[str, str] - Key-value attributes
-
+
Returns:
ParticipantInfo: Updated participant information
"""
@@ -234,7 +254,7 @@ async def update_subscriptions(
self, update: UpdateSubscriptionsRequest
) -> UpdateSubscriptionsResponse:
"""Updates a participant's track subscriptions.
-
+
Args:
update (UpdateSubscriptionsRequest): arg containing:
- room: str - Room name
@@ -242,7 +262,7 @@ async def update_subscriptions(
- track_sids: list[str] - Track session IDs
- subscribe: bool - True to subscribe, False to unsubscribe
- participant_tracks: list[ParticipantTracks] - Participant track mappings
-
+
Returns:
UpdateSubscriptionsResponse: Empty response object
"""
@@ -256,7 +276,7 @@ async def update_subscriptions(
async def send_data(self, send: SendDataRequest) -> SendDataResponse:
"""Sends data to participants in a room.
-
+
Args:
send (SendDataRequest): arg containing:
- room: str - Room name
@@ -264,7 +284,7 @@ async def send_data(self, send: SendDataRequest) -> SendDataResponse:
- kind: DataPacket.Kind - RELIABLE or LOSSY delivery
- destination_identities: list[str] - Target participant identities
- topic: str - Optional topic for the message
-
+
Returns:
SendDataResponse: Empty response object
"""
diff --git a/livekit-api/livekit/api/sip_service.py b/livekit-api/livekit/api/sip_service.py
index af8c1329..eee8bcff 100644
--- a/livekit-api/livekit/api/sip_service.py
+++ b/livekit-api/livekit/api/sip_service.py
@@ -1,30 +1,52 @@
import aiohttp
-from livekit.protocol.sip import CreateSIPTrunkRequest, SIPTrunkInfo, CreateSIPInboundTrunkRequest, SIPInboundTrunkInfo, CreateSIPOutboundTrunkRequest, SIPOutboundTrunkInfo, ListSIPTrunkRequest, ListSIPTrunkResponse, ListSIPInboundTrunkRequest, ListSIPInboundTrunkResponse, ListSIPOutboundTrunkRequest, ListSIPOutboundTrunkResponse, DeleteSIPTrunkRequest, SIPDispatchRuleInfo, CreateSIPDispatchRuleRequest, ListSIPDispatchRuleRequest, ListSIPDispatchRuleResponse, DeleteSIPDispatchRuleRequest, CreateSIPParticipantRequest, TransferSIPParticipantRequest, SIPParticipantInfo
+from livekit.protocol.sip import (
+ CreateSIPTrunkRequest,
+ SIPTrunkInfo,
+ CreateSIPInboundTrunkRequest,
+ SIPInboundTrunkInfo,
+ CreateSIPOutboundTrunkRequest,
+ SIPOutboundTrunkInfo,
+ ListSIPTrunkRequest,
+ ListSIPTrunkResponse,
+ ListSIPInboundTrunkRequest,
+ ListSIPInboundTrunkResponse,
+ ListSIPOutboundTrunkRequest,
+ ListSIPOutboundTrunkResponse,
+ DeleteSIPTrunkRequest,
+ SIPDispatchRuleInfo,
+ CreateSIPDispatchRuleRequest,
+ ListSIPDispatchRuleRequest,
+ ListSIPDispatchRuleResponse,
+ DeleteSIPDispatchRuleRequest,
+ CreateSIPParticipantRequest,
+ TransferSIPParticipantRequest,
+ SIPParticipantInfo,
+)
from ._service import Service
from .access_token import VideoGrants, SIPGrants
SVC = "SIP"
"""@private"""
+
class SipService(Service):
"""Client for LiveKit SIP Service API
-
+
Recommended way to use this service is via `livekit.api.LiveKitAPI`:
-
+
```python
from livekit import api
lkapi = api.LiveKitAPI()
sip_service = lkapi.sip
```
"""
+
def __init__(
self, session: aiohttp.ClientSession, url: str, api_key: str, api_secret: str
):
super().__init__(session, url, api_key, api_secret)
- async def create_sip_trunk(
- self, create: CreateSIPTrunkRequest
- ) -> SIPTrunkInfo:
+ async def create_sip_trunk(self, create: CreateSIPTrunkRequest) -> SIPTrunkInfo:
return await self._client.request(
SVC,
"CreateSIPTrunk",
@@ -55,9 +77,7 @@ async def create_sip_outbound_trunk(
SIPOutboundTrunkInfo,
)
- async def list_sip_trunk(
- self, list: ListSIPTrunkRequest
- ) -> ListSIPTrunkResponse:
+ async def list_sip_trunk(self, list: ListSIPTrunkRequest) -> ListSIPTrunkResponse:
return await self._client.request(
SVC,
"ListSIPTrunk",
@@ -88,9 +108,7 @@ async def list_sip_outbound_trunk(
ListSIPOutboundTrunkResponse,
)
- async def delete_sip_trunk(
- self, delete: DeleteSIPTrunkRequest
- ) -> SIPTrunkInfo:
+ async def delete_sip_trunk(self, delete: DeleteSIPTrunkRequest) -> SIPTrunkInfo:
return await self._client.request(
SVC,
"DeleteSIPTrunk",
From 15b0ca18060d488d7947102b391615cf298469f8 Mon Sep 17 00:00:00 2001
From: Ben Cherry
Date: Wed, 13 Nov 2024 11:39:52 -0800
Subject: [PATCH 06/11] pip
---
livekit-api/livekit/api/__init__.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/livekit-api/livekit/api/__init__.py b/livekit-api/livekit/api/__init__.py
index 6922de3b..e5af0c97 100644
--- a/livekit-api/livekit/api/__init__.py
+++ b/livekit-api/livekit/api/__init__.py
@@ -14,6 +14,8 @@
"""LiveKit Server APIs for Python
+`pip install livekit-api`
+
Manage rooms, participants, egress, ingress, SIP, and Agent dispatch.
Primary entry point is `LiveKitAPI`.
From aad0b751f827291d6bdde5f52d4b518000ba870a Mon Sep 17 00:00:00 2001
From: Ben Cherry
Date: Wed, 13 Nov 2024 11:40:22 -0800
Subject: [PATCH 07/11] twirp
---
livekit-api/livekit/api/__init__.py | 2 --
1 file changed, 2 deletions(-)
diff --git a/livekit-api/livekit/api/__init__.py b/livekit-api/livekit/api/__init__.py
index e5af0c97..6debf821 100644
--- a/livekit-api/livekit/api/__init__.py
+++ b/livekit-api/livekit/api/__init__.py
@@ -52,6 +52,4 @@
"AccessToken",
"TokenVerifier",
"WebhookReceiver",
- "TwirpError",
- "TwirpErrorCode",
]
From 94b09f66cabe0f207700a7ee69132fcbc16964f2 Mon Sep 17 00:00:00 2001
From: Ben Cherry
Date: Wed, 13 Nov 2024 11:42:27 -0800
Subject: [PATCH 08/11] clean
---
livekit-api/livekit/api/livekit_api.py | 20 +++++---------------
1 file changed, 5 insertions(+), 15 deletions(-)
diff --git a/livekit-api/livekit/api/livekit_api.py b/livekit-api/livekit/api/livekit_api.py
index b2f25090..2ca04255 100644
--- a/livekit-api/livekit/api/livekit_api.py
+++ b/livekit-api/livekit/api/livekit_api.py
@@ -59,37 +59,27 @@ def __init__(
@property
def agent_dispatch(self) -> AgentDispatchService:
- """Instance of the AgentDispatchService
-
- See `livekit.api.agent_dispatch_service.AgentDispatchService`"""
+ """Instance of the AgentDispatchService"""
return self._agent_dispatch
@property
def room(self) -> RoomService:
- """Instance of the RoomService
-
- See `livekit.api.room_service.RoomService`"""
+ """Instance of the RoomService"""
return self._room
@property
def ingress(self) -> IngressService:
- """Instance of the IngressService
-
- See `livekit.api.ingress_service.IngressService`"""
+ """Instance of the IngressService"""
return self._ingress
@property
def egress(self) -> EgressService:
- """Instance of the EgressService
-
- See `livekit.api.egress_service.EgressService`"""
+ """Instance of the EgressService"""
return self._egress
@property
def sip(self) -> SipService:
- """Instance of the SipService
-
- See `livekit.api.sip_service.SipService`"""
+ """Instance of the SipService"""
return self._sip
async def aclose(self):
From ea4875b01b3e514b36b17d337114b65355e90326 Mon Sep 17 00:00:00 2001
From: Ben Cherry
Date: Wed, 13 Nov 2024 11:50:49 -0800
Subject: [PATCH 09/11] aclose
---
livekit-api/livekit/api/livekit_api.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/livekit-api/livekit/api/livekit_api.py b/livekit-api/livekit/api/livekit_api.py
index 2ca04255..23473fbc 100644
--- a/livekit-api/livekit/api/livekit_api.py
+++ b/livekit-api/livekit/api/livekit_api.py
@@ -83,5 +83,7 @@ def sip(self) -> SipService:
return self._sip
async def aclose(self):
- """@private"""
+ """Close the API client
+
+ Call this before your application exits or when the API client is no longer needed."""
await self._session.close()
From d861c2ffda924ca751405c05f8fad486e523e2a6 Mon Sep 17 00:00:00 2001
From: Ben Cherry
Date: Wed, 13 Nov 2024 11:51:58 -0800
Subject: [PATCH 10/11] async with
---
livekit-api/livekit/api/livekit_api.py | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/livekit-api/livekit/api/livekit_api.py b/livekit-api/livekit/api/livekit_api.py
index 23473fbc..89f48666 100644
--- a/livekit-api/livekit/api/livekit_api.py
+++ b/livekit-api/livekit/api/livekit_api.py
@@ -87,3 +87,15 @@ async def aclose(self):
Call this before your application exits or when the API client is no longer needed."""
await self._session.close()
+
+ async def __aenter__(self):
+ """@private
+
+ Support for `async with`"""
+ return self
+
+ async def __aexit__(self, exc_type, exc_val, exc_tb):
+ """@private
+
+ Support for `async with`"""
+ await self.aclose()
From 65cf291d5cd75111b5055a6744c4bb68e60c2fde Mon Sep 17 00:00:00 2001
From: Ben Cherry
Date: Wed, 13 Nov 2024 12:56:04 -0800
Subject: [PATCH 11/11] fmt
---
livekit-api/livekit/api/livekit_api.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/livekit-api/livekit/api/livekit_api.py b/livekit-api/livekit/api/livekit_api.py
index 89f48666..63efda02 100644
--- a/livekit-api/livekit/api/livekit_api.py
+++ b/livekit-api/livekit/api/livekit_api.py
@@ -84,18 +84,18 @@ def sip(self) -> SipService:
async def aclose(self):
"""Close the API client
-
+
Call this before your application exits or when the API client is no longer needed."""
await self._session.close()
-
+
async def __aenter__(self):
"""@private
-
+
Support for `async with`"""
return self
async def __aexit__(self, exc_type, exc_val, exc_tb):
"""@private
-
+
Support for `async with`"""
await self.aclose()