Skip to content

Commit 07b747c

Browse files
Add private link methods in AgentClient (#845)
1 parent ca8b662 commit 07b747c

File tree

4 files changed

+42
-1
lines changed

4 files changed

+42
-1
lines changed

agent_client.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,3 +120,27 @@ func (c *AgentClient) GetClientSettings(ctx context.Context, req *livekit.Client
120120
}
121121
return c.agentClient.GetClientSettings(ctx, req)
122122
}
123+
124+
func (c *AgentClient) CreatePrivateLink(ctx context.Context, req *livekit.CreatePrivateLinkRequest) (*livekit.CreatePrivateLinkResponse, error) {
125+
ctx, err := c.withAuth(ctx, withAgentGrant{Admin: true})
126+
if err != nil {
127+
return nil, err
128+
}
129+
return c.agentClient.CreatePrivateLink(ctx, req)
130+
}
131+
132+
func (c *AgentClient) DestroyPrivateLink(ctx context.Context, req *livekit.DestroyPrivateLinkRequest) (*livekit.DestroyPrivateLinkResponse, error) {
133+
ctx, err := c.withAuth(ctx, withAgentGrant{Admin: true})
134+
if err != nil {
135+
return nil, err
136+
}
137+
return c.agentClient.DestroyPrivateLink(ctx, req)
138+
}
139+
140+
func (c *AgentClient) ListPrivateLinks(ctx context.Context, req *livekit.ListPrivateLinksRequest) (*livekit.ListPrivateLinksResponse, error) {
141+
ctx, err := c.withAuth(ctx, withAgentGrant{Admin: true})
142+
if err != nil {
143+
return nil, err
144+
}
145+
return c.agentClient.ListPrivateLinks(ctx, req)
146+
}

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ require (
1010
github.com/livekit/mageutil v0.0.0-20250511045019-0f1ff63f7731
1111
github.com/livekit/media-sdk v0.0.0-20251106223430-dd8f5e0de2cf
1212
github.com/livekit/mediatransportutil v0.0.0-20251128105421-19c7a7b81c22
13-
github.com/livekit/protocol v1.44.1-0.20260120134243-0914cc74653e
13+
github.com/livekit/protocol v1.44.1-0.20260211210831-af21b2260770
1414
github.com/magefile/mage v1.15.0
1515
github.com/pion/dtls/v3 v3.0.10
1616
github.com/pion/interceptor v0.1.43

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,8 @@ github.com/livekit/mediatransportutil v0.0.0-20251128105421-19c7a7b81c22 h1:dzCB
163163
github.com/livekit/mediatransportutil v0.0.0-20251128105421-19c7a7b81c22/go.mod h1:mSNtYzSf6iY9xM3UX42VEI+STHvMgHmrYzEHPcdhB8A=
164164
github.com/livekit/protocol v1.44.1-0.20260120134243-0914cc74653e h1:ClpOUpIDcIT/fKh66kOlO4b7fj47ApsITOwCOlvFrGc=
165165
github.com/livekit/protocol v1.44.1-0.20260120134243-0914cc74653e/go.mod h1:BLJHYHErQTu3+fnmfGrzN6CbHxNYiooFIIYGYxXxotw=
166+
github.com/livekit/protocol v1.44.1-0.20260211210831-af21b2260770 h1:iOG7eeQDc83HEeOgJ1E9uBr8zmCWjmi61qsADNQrC3I=
167+
github.com/livekit/protocol v1.44.1-0.20260211210831-af21b2260770/go.mod h1:BLJHYHErQTu3+fnmfGrzN6CbHxNYiooFIIYGYxXxotw=
166168
github.com/livekit/psrpc v0.7.1 h1:ms37az0QTD3UXIWuUC5D/SkmKOlRMVRsI261eBWu/Vw=
167169
github.com/livekit/psrpc v0.7.1/go.mod h1:bZ4iHFQptTkbPnB0LasvRNu/OBYXEu1NA6O5BMFo9kk=
168170
github.com/magefile/mage v1.15.0 h1:BvGheCMAsG3bWUDbZ8AyXXpCNwU9u5CB6sM+HNb9HYg=

pkg/cloudagents/client.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,21 @@ func (c *Client) DeployAgent(
122122
return c.uploadAndBuild(ctx, agentID, resp.PresignedUrl, resp.PresignedPostRequest, source, excludeFiles, buildLogStreamWriter)
123123
}
124124

125+
// CreatePrivateLink creates a new private link for cloud agents.
126+
func (c *Client) CreatePrivateLink(ctx context.Context, req *lkproto.CreatePrivateLinkRequest) (*lkproto.CreatePrivateLinkResponse, error) {
127+
return c.AgentClient.CreatePrivateLink(ctx, req)
128+
}
129+
130+
// DestroyPrivateLink deletes a private link by ID.
131+
func (c *Client) DestroyPrivateLink(ctx context.Context, req *lkproto.DestroyPrivateLinkRequest) (*lkproto.DestroyPrivateLinkResponse, error) {
132+
return c.AgentClient.DestroyPrivateLink(ctx, req)
133+
}
134+
135+
// ListPrivateLinks lists private links for the project.
136+
func (c *Client) ListPrivateLinks(ctx context.Context, req *lkproto.ListPrivateLinksRequest) (*lkproto.ListPrivateLinksResponse, error) {
137+
return c.AgentClient.ListPrivateLinks(ctx, req)
138+
}
139+
125140
// uploadAndBuild uploads the source and triggers remote build
126141
func (c *Client) uploadAndBuild(
127142
ctx context.Context,

0 commit comments

Comments
 (0)