asyncapi: 3.0.0 id: 'tag:stream.gitter.im,2022:api' info: title: Gitter Streaming API version: 1.0.0 servers: production: host: stream.gitter.im pathname: /v1 protocol: https protocolVersion: '1.1' security: - $ref: '#/components/securitySchemes/httpBearerToken' channels: rooms: address: '/rooms/{roomId}/{resource}' messages: chatMessage: $ref: '#/components/messages/chatMessage' heartbeat: $ref: '#/components/messages/heartbeat' parameters: roomId: description: Id of the Gitter room. examples: - 53307860c3599d1de448e19d resource: enum: - chatMessages - events description: The resource to consume. operations: sendRoomInfo: action: send channel: $ref: '#/channels/rooms' bindings: http: method: POST messages: - $ref: '#/channels/rooms/messages/chatMessage' - $ref: '#/channels/rooms/messages/heartbeat' components: securitySchemes: httpBearerToken: type: http scheme: bearer messages: chatMessage: summary: >- A message represents an individual chat message sent to a room. They are a sub-resource of a room. payload: schemaFormat: application/schema+yaml;version=draft-07 schema: 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: headers: type: object properties: Transfer-Encoding: type: string const: chunked Trailer: type: string const: \r\n heartbeat: summary: Its purpose is to keep the connection alive. payload: schemaFormat: application/schema+yaml;version=draft-07 schema: type: string enum: - "\r\n" bindings: http: headers: type: object properties: Transfer-Encoding: type: string const: chunked Trailer: type: string const: \r\n