#1865 Add the m.push_rules schema.
parent
72242e4ebb
commit
2de7ef9a3d
@ -0,0 +1,192 @@
|
|||||||
|
{
|
||||||
|
"$ref": "core/state_event.json",
|
||||||
|
"type": "m.push_rules",
|
||||||
|
"content": {
|
||||||
|
"global": {
|
||||||
|
"content": [
|
||||||
|
{
|
||||||
|
"actions": [
|
||||||
|
"notify",
|
||||||
|
{
|
||||||
|
"set_tweak": "sound",
|
||||||
|
"value": "default"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"set_tweak": "highlight"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default": true,
|
||||||
|
"enabled": true,
|
||||||
|
"pattern": "alice",
|
||||||
|
"rule_id": ".m.rule.contains_user_name"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"override": [
|
||||||
|
{
|
||||||
|
"actions": [
|
||||||
|
"dont_notify"
|
||||||
|
],
|
||||||
|
"conditions": [],
|
||||||
|
"default": true,
|
||||||
|
"enabled": false,
|
||||||
|
"rule_id": ".m.rule.master"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"actions": [
|
||||||
|
"dont_notify"
|
||||||
|
],
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"key": "content.msgtype",
|
||||||
|
"kind": "event_match",
|
||||||
|
"pattern": "m.notice"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default": true,
|
||||||
|
"enabled": true,
|
||||||
|
"rule_id": ".m.rule.suppress_notices"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"room": [],
|
||||||
|
"sender": [],
|
||||||
|
"underride": [
|
||||||
|
{
|
||||||
|
"actions": [
|
||||||
|
"notify",
|
||||||
|
{
|
||||||
|
"set_tweak": "sound",
|
||||||
|
"value": "ring"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"set_tweak": "highlight",
|
||||||
|
"value": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"key": "type",
|
||||||
|
"kind": "event_match",
|
||||||
|
"pattern": "m.call.invite"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default": true,
|
||||||
|
"enabled": true,
|
||||||
|
"rule_id": ".m.rule.call"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"actions": [
|
||||||
|
"notify",
|
||||||
|
{
|
||||||
|
"set_tweak": "sound",
|
||||||
|
"value": "default"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"set_tweak": "highlight"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"kind": "contains_display_name"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default": true,
|
||||||
|
"enabled": true,
|
||||||
|
"rule_id": ".m.rule.contains_display_name"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"actions": [
|
||||||
|
"notify",
|
||||||
|
{
|
||||||
|
"set_tweak": "sound",
|
||||||
|
"value": "default"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"set_tweak": "highlight",
|
||||||
|
"value": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"is": "2",
|
||||||
|
"kind": "room_member_count"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default": true,
|
||||||
|
"enabled": true,
|
||||||
|
"rule_id": ".m.rule.room_one_to_one"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"actions": [
|
||||||
|
"notify",
|
||||||
|
{
|
||||||
|
"set_tweak": "sound",
|
||||||
|
"value": "default"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"set_tweak": "highlight",
|
||||||
|
"value": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"key": "type",
|
||||||
|
"kind": "event_match",
|
||||||
|
"pattern": "m.room.member"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "content.membership",
|
||||||
|
"kind": "event_match",
|
||||||
|
"pattern": "invite"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "state_key",
|
||||||
|
"kind": "event_match",
|
||||||
|
"pattern": "@alice:example.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default": true,
|
||||||
|
"enabled": true,
|
||||||
|
"rule_id": ".m.rule.invite_for_me"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"actions": [
|
||||||
|
"notify",
|
||||||
|
{
|
||||||
|
"set_tweak": "highlight",
|
||||||
|
"value": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"key": "type",
|
||||||
|
"kind": "event_match",
|
||||||
|
"pattern": "m.room.member"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default": true,
|
||||||
|
"enabled": true,
|
||||||
|
"rule_id": ".m.rule.member_event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"actions": [
|
||||||
|
"notify",
|
||||||
|
{
|
||||||
|
"set_tweak": "highlight",
|
||||||
|
"value": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"key": "type",
|
||||||
|
"kind": "event_match",
|
||||||
|
"pattern": "m.room.message"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default": true,
|
||||||
|
"enabled": true,
|
||||||
|
"rule_id": ".m.rule.message"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,85 @@
|
|||||||
|
# Copyright 2016 OpenMarket Ltd
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
title: PushRule
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
actions:
|
||||||
|
items:
|
||||||
|
type:
|
||||||
|
- object
|
||||||
|
- string
|
||||||
|
type: array
|
||||||
|
description: |-
|
||||||
|
The actions to perform when this rule is matched.
|
||||||
|
default:
|
||||||
|
type: boolean
|
||||||
|
description: |-
|
||||||
|
Whether this is a default rule, or has been set explicitly.
|
||||||
|
enabled:
|
||||||
|
type: boolean
|
||||||
|
description: |-
|
||||||
|
Whether the push rule is enabled or not.
|
||||||
|
rule_id:
|
||||||
|
type: string
|
||||||
|
description: |-
|
||||||
|
The ID of this rule.
|
||||||
|
conditions:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
title: PushCondition
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
kind:
|
||||||
|
enum:
|
||||||
|
- event_match
|
||||||
|
- contains_display_name
|
||||||
|
- room_member_count
|
||||||
|
type: string
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
description: |-
|
||||||
|
Required for ``event_match`` conditions. The dot-separated field of the
|
||||||
|
event to match.
|
||||||
|
x-example: content.body
|
||||||
|
pattern:
|
||||||
|
type: string
|
||||||
|
description: |-
|
||||||
|
Required for ``event_match`` conditions. The glob-style pattern to
|
||||||
|
match against. Patterns with no special glob characters should be
|
||||||
|
treated as having asterisks prepended and appended when testing the
|
||||||
|
condition.
|
||||||
|
is:
|
||||||
|
type: string
|
||||||
|
description: |-
|
||||||
|
Required for ``room_member_count`` conditions. A decimal integer
|
||||||
|
optionally prefixed by one of, ==, <, >, >= or <=. A prefix of < matches
|
||||||
|
rooms where the member count is strictly less than the given number and
|
||||||
|
so forth. If no prefix is present, this parameter defaults to ==.
|
||||||
|
required:
|
||||||
|
- kind
|
||||||
|
description: |-
|
||||||
|
The conditions that must hold true for an event in order for a rule to be
|
||||||
|
applied to an event. A rule with no conditions always matches. Only
|
||||||
|
applicable to ``underride`` and ``override`` rules.
|
||||||
|
pattern:
|
||||||
|
type: string
|
||||||
|
description: |-
|
||||||
|
The glob-style pattern to match against. Only applicable to ``content``
|
||||||
|
rules.
|
||||||
|
required:
|
||||||
|
- actions
|
||||||
|
- default
|
||||||
|
- enabled
|
||||||
|
- rule_id
|
@ -0,0 +1,59 @@
|
|||||||
|
---
|
||||||
|
allOf:
|
||||||
|
- $ref: core-event-schema/state_event.yaml
|
||||||
|
description: Describes all push rules for this user.
|
||||||
|
properties:
|
||||||
|
content:
|
||||||
|
properties:
|
||||||
|
global:
|
||||||
|
type: object
|
||||||
|
title: Ruleset
|
||||||
|
description: The global ruleset
|
||||||
|
properties:
|
||||||
|
content:
|
||||||
|
items:
|
||||||
|
allOf:
|
||||||
|
- $ref: core-event-schema/push_rule.yaml
|
||||||
|
title: PushRule
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
override:
|
||||||
|
items:
|
||||||
|
allOf:
|
||||||
|
- $ref: core-event-schema/push_rule.yaml
|
||||||
|
title: PushRule
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
room:
|
||||||
|
items:
|
||||||
|
allOf:
|
||||||
|
- $ref: core-event-schema/push_rule.yaml
|
||||||
|
title: PushRule
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
sender:
|
||||||
|
items:
|
||||||
|
allOf:
|
||||||
|
- $ref: core-event-schema/push_rule.yaml
|
||||||
|
title: PushRule
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
underride:
|
||||||
|
items:
|
||||||
|
allOf:
|
||||||
|
- $ref: core-event-schema/push_rule.yaml
|
||||||
|
title: PushRule
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
type: object
|
||||||
|
state_key:
|
||||||
|
description: A zero-length string.
|
||||||
|
pattern: '^$'
|
||||||
|
type: string
|
||||||
|
type:
|
||||||
|
enum:
|
||||||
|
- m.push_rules
|
||||||
|
type: string
|
||||||
|
title: Push rules
|
||||||
|
type: object
|
||||||
|
|
Loading…
Reference in New Issue