Skip to content

Commit 3782b89

Browse files
authored
Add Web PubSub Chat project (#41187)
1 parent d1f5853 commit 3782b89

50 files changed

Lines changed: 3374 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import "./main.tsp";
2+
import "@azure-tools/typespec-client-generator-core";
3+
4+
using Azure.ClientGenerator.Core;
5+
6+
namespace Customizations;
7+
8+
/** Client options for Azure Web PubSub Chat. */
9+
model WebPubSubChatServiceClientOptions {
10+
/** Target hub name, which should start with alphabetic characters and only contain
11+
alpha-numeric characters or underscore. */
12+
hub: string;
13+
}
14+
15+
@@clientName(WebPubSubChat.Chat, "WebPubSubChatService");
16+
17+
@@clientInitialization(
18+
WebPubSubChat.Chat,
19+
{
20+
parameters: WebPubSubChatServiceClientOptions,
21+
}
22+
);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
{
2+
"parameters": {
3+
"api-version": "2026-02-01-preview",
4+
"hub": "WebPubSubChatService_hub",
5+
"roleName": "room.moderator",
6+
"resource": {
7+
"permissions": [
8+
"room.history",
9+
"room.mute",
10+
"room.freeze",
11+
"room.remove_user",
12+
"room.publish_message"
13+
]
14+
},
15+
"if-match": "etag1"
16+
},
17+
"responses": {
18+
"200": {
19+
"body": {
20+
"name": "room.moderator",
21+
"permissions": [
22+
"room.history",
23+
"room.mute",
24+
"room.freeze",
25+
"room.remove_user",
26+
"room.publish_message"
27+
],
28+
"etag": "etag2"
29+
}
30+
},
31+
"201": {
32+
"body": {
33+
"name": "room.moderator",
34+
"permissions": [
35+
"room.history",
36+
"room.mute",
37+
"room.freeze",
38+
"room.remove_user",
39+
"room.publish_message"
40+
],
41+
"etag": "etag3"
42+
}
43+
}
44+
},
45+
"operationId": "WebPubSubChatService_CreateOrReplaceRole",
46+
"title": "WebPubSubChatService_CreateOrReplaceRole"
47+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{
2+
"parameters": {
3+
"api-version": "2026-02-01-preview",
4+
"hub": "WebPubSubChatService_hub",
5+
"roomId": "room1",
6+
"resource": {
7+
"title": "General Chat"
8+
},
9+
"if-match": "etag1"
10+
},
11+
"responses": {
12+
"200": {
13+
"body": {
14+
"id": "room1",
15+
"title": "General Chat",
16+
"defaultConversation": "c.room1.abcd1234",
17+
"etag": "etag2"
18+
}
19+
},
20+
"201": {
21+
"body": {
22+
"id": "room1",
23+
"title": "General Chat",
24+
"defaultConversation": "c.room1.abcd1234",
25+
"etag": "etag3"
26+
}
27+
}
28+
},
29+
"operationId": "WebPubSubChatService_CreateOrReplaceRoom",
30+
"title": "WebPubSubChatService_CreateOrReplaceRoom"
31+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{
2+
"parameters": {
3+
"api-version": "2026-02-01-preview",
4+
"hub": "WebPubSubChatService_hub",
5+
"roomId": "room1",
6+
"userId": "user1",
7+
"resource": {
8+
"roleName": "room.member"
9+
},
10+
"if-match": "etag1"
11+
},
12+
"responses": {
13+
"200": {
14+
"body": {
15+
"userId": "user1",
16+
"roleName": "room.member",
17+
"etag": "etag2"
18+
}
19+
},
20+
"201": {
21+
"body": {
22+
"userId": "user1",
23+
"roleName": "room.member",
24+
"etag": "etag3"
25+
}
26+
}
27+
},
28+
"operationId": "WebPubSubChatService_CreateOrReplaceRoomMember",
29+
"title": "WebPubSubChatService_CreateOrReplaceRoomMember"
30+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"parameters": {
3+
"api-version": "2026-02-01-preview",
4+
"hub": "WebPubSubChatService_hub",
5+
"userId": "user1",
6+
"resource": {
7+
"kind": "Human",
8+
"nickname": "John",
9+
"roleName": "user.normal"
10+
},
11+
"if-match": "etag1"
12+
},
13+
"responses": {
14+
"200": {
15+
"body": {
16+
"kind": "Human",
17+
"id": "user1",
18+
"nickname": "John",
19+
"roleName": "user.normal",
20+
"etag": "etag2"
21+
}
22+
},
23+
"201": {
24+
"body": {
25+
"kind": "Human",
26+
"id": "user1",
27+
"nickname": "John",
28+
"roleName": "user.normal",
29+
"etag": "etag3"
30+
}
31+
}
32+
},
33+
"operationId": "WebPubSubChatService_CreateOrReplaceUser",
34+
"title": "WebPubSubChatService_CreateOrReplaceUser"
35+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"parameters": {
3+
"api-version": "2026-02-01-preview",
4+
"hub": "WebPubSubChatService_hub",
5+
"resource": {
6+
"title": "General Chat"
7+
}
8+
},
9+
"responses": {
10+
"201": {
11+
"location": "/hubs/WebPubSubChatService_hub/chat/rooms/room1"
12+
}
13+
},
14+
"operationId": "WebPubSubChatService_CreateRoom",
15+
"title": "WebPubSubChatService_CreateRoom"
16+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"parameters": {
3+
"api-version": "2026-02-01-preview",
4+
"hub": "WebPubSubChatService_hub",
5+
"conversationId": "c.room1.abcd1234",
6+
"messageId": "123",
7+
"if-match": "etag1"
8+
},
9+
"responses": {
10+
"204": {}
11+
},
12+
"operationId": "WebPubSubChatService_DeleteMessage",
13+
"title": "WebPubSubChatService_DeleteMessage"
14+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"parameters": {
3+
"api-version": "2026-02-01-preview",
4+
"hub": "WebPubSubChatService_hub",
5+
"roleName": "room.moderator",
6+
"if-match": "etag1"
7+
},
8+
"responses": {
9+
"204": {}
10+
},
11+
"operationId": "WebPubSubChatService_DeleteRole",
12+
"title": "WebPubSubChatService_DeleteRole"
13+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"parameters": {
3+
"api-version": "2026-02-01-preview",
4+
"hub": "WebPubSubChatService_hub",
5+
"roomId": "room1",
6+
"if-match": "etag1"
7+
},
8+
"responses": {
9+
"204": {}
10+
},
11+
"operationId": "WebPubSubChatService_DeleteRoom",
12+
"title": "WebPubSubChatService_DeleteRoom"
13+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"parameters": {
3+
"api-version": "2026-02-01-preview",
4+
"hub": "WebPubSubChatService_hub",
5+
"roomId": "room1",
6+
"userId": "user1",
7+
"if-match": "etag1"
8+
},
9+
"responses": {
10+
"204": {}
11+
},
12+
"operationId": "WebPubSubChatService_DeleteRoomMember",
13+
"title": "WebPubSubChatService_DeleteRoomMember"
14+
}

0 commit comments

Comments
 (0)