asyncapi3-1.0.0.0: reference/examples/gitter-streaming-asyncapi.yml
asyncapi: 3.1.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