summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--contrib/api.yaml210
1 files changed, 210 insertions, 0 deletions
diff --git a/contrib/api.yaml b/contrib/api.yaml
new file mode 100644
index 00000000..328393f2
--- /dev/null
+++ b/contrib/api.yaml
@@ -0,0 +1,210 @@
+openapi: 3.0.0
+info:
+ contact: {}
+ description: A read/write API for the Matterbridge chat bridge.
+ license:
+ name: Apache 2.0
+ url: 'https://github.com/42wim/matterbridge/blob/master/LICENSE'
+ title: Matterbridge API
+ version: "0.1.0-oas3"
+paths:
+ /health:
+ get:
+ responses:
+ '200':
+ description: OK
+ content:
+ '*/*':
+ schema:
+ type: string
+ summary: Checks if the server is alive.
+ /message:
+ post:
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/config.OutgoingMessageResponse'
+ summary: Create a message
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/config.OutgoingMessage'
+ description: Message object to create
+ required: true
+ /messages:
+ get:
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/config.IncomingMessage'
+ type: array
+ security:
+ - ApiKeyAuth: []
+ summary: List new messages
+ /stream:
+ get:
+ responses:
+ '200':
+ description: OK
+ content:
+ application/x-json-stream:
+ schema:
+ $ref: '#/components/schemas/config.IncomingMessage'
+ summary: Stream realtime messages
+servers:
+ - url: /api
+components:
+ securitySchemes:
+ bearerAuth:
+ type: http
+ scheme: bearer
+ schemas:
+ config.IncomingMessage:
+ properties:
+ avatar:
+ description: URL to an avatar image
+ example: >-
+ https://secure.gravatar.com/avatar/1234567890abcdef1234567890abcdef.jpg
+ type: string
+ event:
+ description: >-
+ A specific matterbridge event. (see
+ https://github.com/42wim/matterbridge/blob/master/bridge/config/config.go#L16)
+ type: string
+ gateway:
+ description: Name of the gateway as configured in matterbridge.toml
+ example: mygateway
+ type: string
+ text:
+ description: Content of the message
+ example: 'Testing, testing, 1-2-3.'
+ type: string
+ username:
+ description: Human-readable username
+ example: alice
+ type: string
+ account:
+ description: Unique account name of format "[protocol].[slug]" as defined in matterbridge.toml
+ example: slack.myteam
+ type: string
+ channel:
+ description: Human-readable channel name of sending bridge
+ example: test-channel
+ type: string
+ id:
+ description: Unique ID of message on the gateway
+ example: slack 1541361213.030700
+ type: string
+ parent_id:
+ description: Unique ID of a parent message, if threaded
+ example: slack 1541361213.030700
+ type: string
+ protocol:
+ description: Chat protocol of the sending bridge
+ example: slack
+ type: string
+ timestamp:
+ description: Timestamp of the message
+ example: "1541361213.030700"
+ type: string
+ userid:
+ description: Userid on the sending bridge
+ example: U4MCXJKNC
+ type: string
+ extra:
+ description: Extra data that doesn't fit in other fields (eg base64 encoded files)
+ type: object
+ config.OutgoingMessage:
+ properties:
+ avatar:
+ description: URL to an avatar image
+ example: >-
+ https://secure.gravatar.com/avatar/1234567890abcdef1234567890abcdef.jpg
+ type: string
+ event:
+ description: >-
+ A specific matterbridge event. (see
+ https://github.com/42wim/matterbridge/blob/master/bridge/config/config.go#L16)
+ example: ""
+ type: string
+ gateway:
+ description: Name of the gateway as configured in matterbridge.toml
+ example: mygateway
+ type: string
+ text:
+ description: Content of the message
+ example: 'Testing, testing, 1-2-3.'
+ type: string
+ username:
+ description: Human-readable username
+ example: alice
+ type: string
+ type: object
+ required:
+ - gateway
+ - text
+ - username
+ config.OutgoingMessageResponse:
+ properties:
+ avatar:
+ description: URL to an avatar image
+ example: >-
+ https://secure.gravatar.com/avatar/1234567890abcdef1234567890abcdef.jpg
+ type: string
+ event:
+ description: >-
+ A specific matterbridge event. (see
+ https://github.com/42wim/matterbridge/blob/master/bridge/config/config.go#L16)
+ example: ""
+ type: string
+ gateway:
+ description: Name of the gateway as configured in matterbridge.toml
+ example: mygateway
+ type: string
+ text:
+ description: Content of the message
+ example: 'Testing, testing, 1-2-3.'
+ type: string
+ username:
+ description: Human-readable username
+ example: alice
+ type: string
+ account:
+ description: fixed api account
+ example: api.local
+ type: string
+ channel:
+ description: fixed api channel
+ example: api
+ type: string
+ id:
+ example: ""
+ type: string
+ parent_id:
+ example: ""
+ type: string
+ protocol:
+ description: fixed api protocol
+ example: api
+ type: string
+ timestamp:
+ description: Timestamp of the message
+ example: "1541361213.030700"
+ type: string
+ userid:
+ example: ""
+ type: string
+ extra:
+ example: null
+ type: object
+ type: object
+security:
+ - bearerAuth: []