Skip to content

Commit a617f46

Browse files
committed
Adding the inference grant
1 parent 1c68b5c commit a617f46

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

livekit-api/livekit/api/access_token.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,10 @@ class SIPGrants:
7575
# make outbound calls
7676
call: bool = False
7777

78+
@dataclasses.dataclass
79+
class InferenceGrants:
80+
# perform inference
81+
perform: bool = False
7882

7983
@dataclasses.dataclass
8084
class Claims:
@@ -84,6 +88,7 @@ class Claims:
8488
metadata: str = ""
8589
video: Optional[VideoGrants] = None
8690
sip: Optional[SIPGrants] = None
91+
inference: Optional[InferenceGrants] = None
8792
attributes: Optional[dict[str, str]] = None
8893
sha256: Optional[str] = None
8994
room_preset: Optional[str] = None
@@ -135,6 +140,10 @@ def with_grants(self, grants: VideoGrants) -> "AccessToken":
135140
def with_sip_grants(self, grants: SIPGrants) -> "AccessToken":
136141
self.claims.sip = grants
137142
return self
143+
144+
def with_inference_grants(self, grants: InferenceGrants) -> "AccessToken":
145+
self.claims.inference = grants
146+
return self
138147

139148
def with_identity(self, identity: str) -> "AccessToken":
140149
self.identity = identity
@@ -225,11 +234,17 @@ def verify(self, token: str, *, verify_signature: bool = True) -> Claims:
225234
sip_dict = {k: v for k, v in sip_dict.items() if k in SIPGrants.__dataclass_fields__}
226235
sip = SIPGrants(**sip_dict)
227236

237+
inference_dict = claims.get("inference", dict())
238+
inference_dict = {camel_to_snake(k): v for k, v in inference_dict.items()}
239+
inference_dict = {k: v for k, v in inference_dict.items() if k in InferenceGrants.__dataclass_fields__}
240+
inference = InferenceGrants(**inference_dict)
241+
228242
grant_claims = Claims(
229243
identity=claims.get("sub", ""),
230244
name=claims.get("name", ""),
231245
video=video,
232246
sip=sip,
247+
inference=inference,
233248
attributes=claims.get("attributes", {}),
234249
metadata=claims.get("metadata", ""),
235250
sha256=claims.get("sha256", ""),

0 commit comments

Comments
 (0)