forked from asyncapi/spec
-
Notifications
You must be signed in to change notification settings - Fork 0
/
gitter-streaming.yml
164 lines (159 loc) · 4.61 KB
/
gitter-streaming.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
asyncapi: '2.2.0'
id: 'urn:com:gitter:streaming:api'
info:
title: Gitter Streaming API
version: '1.0.0'
servers:
production:
url: https://stream.gitter.im/v1
protocol: https
protocolVersion: '1.1'
security:
- httpBearerToken: []
channels:
/rooms/{roomId}/{resource}:
parameters:
roomId:
description: Id of the Gitter room.
schema:
type: string
examples:
- 53307860c3599d1de448e19d
resource:
description: The resource to consume.
schema:
type: string
enum:
- chatMessages
- events
subscribe:
bindings:
http:
type: response
message:
oneOf:
- $ref: '#/components/messages/chatMessage'
- $ref: '#/components/messages/heartbeat'
components:
securitySchemes:
httpBearerToken:
type: http
scheme: bearer
messages:
chatMessage:
schemaFormat: 'application/schema+yaml;version=draft-07'
summary: >-
A message represents an individual chat message sent to a room.
They are a sub-resource of a room.
payload:
type: object
properties:
id:
type: string
description: ID of the message.
text:
type: string
description: Original message in plain-text/markdown.
html:
type: string
description: HTML formatted message.
sent:
type: string
format: date-time
description: ISO formatted date of the message.
fromUser:
type: object
description: User that sent the message.
properties:
id:
type: string
description: Gitter User ID.
username:
type: string
description: Gitter/GitHub username.
displayName:
type: string
description: Gitter/GitHub user real name.
url:
type: string
description: Path to the user on Gitter.
avatarUrl:
type: string
format: uri
description: User avatar URI.
avatarUrlSmall:
type: string
format: uri
description: User avatar URI (small).
avatarUrlMedium:
type: string
format: uri
description: User avatar URI (medium).
v:
type: number
description: Version.
gv:
type: string
description: Stands for "Gravatar version" and is used for cache busting.
unread:
type: boolean
description: Boolean that indicates if the current user has read the message.
readBy:
type: number
description: Number of users that have read the message.
urls:
type: array
description: List of URLs present in the message.
items:
type: string
format: uri
mentions:
type: array
description: List of @Mentions in the message.
items:
type: object
properties:
screenName:
type: string
userId:
type: string
userIds:
type: array
items:
type: string
issues:
type: array
description: 'List of #Issues referenced in the message.'
items:
type: object
properties:
number:
type: string
meta:
type: array
description: Metadata. This is currently not used for anything.
items: {}
v:
type: number
description: Version.
gv:
type: string
description: Stands for "Gravatar version" and is used for cache busting.
bindings:
http:
$ref: '#/components/messageBindings/streamingHeaders'
heartbeat:
schemaFormat: 'application/schema+yaml;version=draft-07'
summary: Its purpose is to keep the connection alive.
payload:
type: string
enum: ["\r\n"]
bindings:
http:
$ref: '#/components/messageBindings/streamingHeaders'
messageBindings:
streamingHeaders:
http:
headers:
'Transfer-Encoding': 'chunked'
Trailer: '\r\n'