@ -17,10 +17,23 @@ paths:
summary : Notify a push gateway about an event.
summary : Notify a push gateway about an event.
description : |-
description : |-
This endpoint is invoked by HTTP pushers to notify a push gateway about
This endpoint is invoked by HTTP pushers to notify a push gateway about
an event.
an event or update the number of unread notifications a user has.
*NB: Notifications are sent to the URL configured when the pusher is
In the former case it will contain selected information about the event.
In either case it may contain numeric counts of the number of unread
events of different types the user has. The counts may be sent along
with a notification about an event or by themselves.
Notifications about a particular event will normally cause the user to be
alerted in some way. It is therefore necessary to perform duplicate
suppression for such notifications using the `event_id` field to avoid
retries of this HTTP API causing duplicate alerts. The operation of
updating counts of unread notifications should be idempotent and
therefore do not require duplicate suppression.
Notifications are sent to the URL configured when the pusher is
created. This means that the HTTP path may be different depending on the
created. This means that the HTTP path may be different depending on the
push gateway.*
push gateway.
parameters:
parameters:
- in : body
- in : body
name : notification
name : notification
@ -42,47 +55,58 @@ paths:
"content": {
"content": {
"msgtype": "m.text" ,
"msgtype": "m.text" ,
"body": "I'm floating in a most peculiar way."
"body": "I'm floating in a most peculiar way."
}
},
},
"counts": {
"counts": {
"unread" : 2 ,
"unread" : 2 ,
"missed_calls": 1
"missed_calls": 1
},
},
"devices": [
"devices": [
{
{
"app_id": "org.matrix.matrixConsole.ios" ,
"app_id": "org.matrix.matrixConsole.ios ",
"pushkey": "V2h5IG9uIGVhcnRoIGRpZCB5b3UgZGVjb2RlIHRoaXM/ ",
"pushkey": "V2h5IG9uIGVhcnRoIGRpZCB5b3UgZGVjb2RlIHRoaXM/" ,
"pushkey_ts": 12345678 ,
"pushkey_ts": 12345678 ,
"data" : {} ,
"data" : {},
"tweaks": {
"tweaks": {
"sound": "bing"
"sound": "bing"
}
}
}
}
]
]
}
}
}
required : [ "notification" , "counts" , "devices" ]
required : [ "notification" ]
properties:
properties:
notification:
notification:
type : object
type : object
title : Notification
description : Information about the push notification
description : Information about the push notification
required : [ " id", "room_id" , "type" , "sender "]
required : [ " devices "]
properties:
properties:
id:
event_ id:
type : string
type : string
description : |-
description : |-
An identifier for this notification that may be used to
The Matrix event ID of the event being notified about.
detect duplicate notification requests. This is not
This is required if the notification is about a
necessarily the ID of the event that triggered the
particular Matrix event. It may be omitted for notifications
notification.
that only contain updated badge counts. This ID can and
should be used to detect duplicate notification requests.
room_id:
room_id:
type : string
type : string
description : The ID of the room in which this event occurred.
description : |-
The ID of the room in which this event occurred.
Required if the notification relates to a specific
Matrix event.
type:
type:
type : string
type : string
description : The type of the event as in the event's ``type`` field.
description : |-
The type of the event as in the event's ``type`` field.
Required if the notification relates to a specific
Matrix event.
sender:
sender:
type : string
type : string
description : The sender of the event as in the corresponding event field.
description : |-
The sender of the event as in the corresponding event field.
Required if the notification relates to a specific
Matrix event.
sender_display_name:
sender_display_name:
type : string
type : string
description : |-
description : |-
@ -114,56 +138,58 @@ paths:
description : |-
description : |-
The ``content`` field from the event, if present. If the
The ``content`` field from the event, if present. If the
event had no content field, this field is omitted.
event had no content field, this field is omitted.
counts:
counts:
type : object
type : object
description : |-
title : Counts
This is a dictionary of the current number of unacknowledged
communications for the recipient user. Counts whose value is
zero are omitted.
properties:
unread:
type : integer
description : |-
description : |-
The number of unread messages a user has across all of the
This is a dictionary of the current number of unacknowledged
rooms they are a member of.
communications for the recipient user. Counts whose value is
missed_calls:
zero are omitted.
type : integer
properties:
unread:
type : integer
description : |-
The number of unread messages a user has across all of the
rooms they are a member of.
missed_calls:
type : integer
description : |-
The number of unacknowledged missed calls a user has
across all rooms of which they are a member.
devices:
type : array
title : Devices
description : |-
description : |-
The number of unacknowledged missed calls a user has
This is an array of devices that the notification should be sent to.
across all rooms of which they are a member.
items:
devices:
type : array
title : Devices
description : |-
This is an array of devices that the notification should be sent to.
items:
type : object
properties:
app_id:
type : string
description : |-
The app_id given when the pusher was created.
pushkey:
type : string
description : The pushkey given when the pusher was created.
pushkey_ts:
type : integer
description : |-
The unix timestamp (in seconds) when the
pushkey was last updated.
data:
type : object
title : PusherData
description : |-
A dictionary of additional pusher-specific data. For
'http' pushers, this is the data dictionary passed in at
pusher creation minus the ``url`` key.
tweaks:
type : object
type : object
title : Tweaks
title : Device
description : |-
properties:
A dictionary of customisations made to the way this
app_id:
notification is to be presented. These are added by push rules.
type : string
description : |-
The app_id given when the pusher was created.
pushkey:
type : string
description : The pushkey given when the pusher was created.
pushkey_ts:
type : integer
description : |-
The unix timestamp (in seconds) when the
pushkey was last updated.
data:
type : object
title : PusherData
description : |-
A dictionary of additional pusher-specific data. For
'http' pushers, this is the data dictionary passed in at
pusher creation minus the ``url`` key.
tweaks:
type : object
title : Tweaks
description : |-
A dictionary of customisations made to the way this
notification is to be presented. These are added by push rules.
responses:
responses:
200 :
200 :
description : A list of rejected push keys.
description : A list of rejected push keys.