diff --git a/changelogs/client_server/newsfragments/1319.clarification b/changelogs/client_server/newsfragments/1319.clarification new file mode 100644 index 00000000..8f9c4adb --- /dev/null +++ b/changelogs/client_server/newsfragments/1319.clarification @@ -0,0 +1 @@ +Clarify the behavior of `PUT /_matrix/client/v3/pushrules/{scope}/{kind}/{ruleId}`. diff --git a/data/api/client-server/pushrules.yaml b/data/api/client-server/pushrules.yaml index 5432df54..3a67aea8 100644 --- a/data/api/client-server/pushrules.yaml +++ b/data/api/client-server/pushrules.yaml @@ -365,9 +365,20 @@ paths: put: summary: Add or change a push rule. description: |- - This endpoint allows the creation, modification and deletion of pushers - for this user ID. The behaviour of this endpoint varies depending on the - values in the JSON body. + This endpoint allows the creation and modification of user defined push + rules. + + If a rule with the same `rule_id` already exists among rules of the same + kind, it is updated with the new parameters, otherwise a new rule is + created. + + If both `after` and `before` are provided, the new or updated rule must + be the next most important rule with respect to the rule identified by + `before`. + + If neither `after` nor `before` are provided and the rule is created, it + should be added as the most important user defined rule among rules of + the same kind. When creating push rules, they MUST be enabled by default. operationId: setPushRule @@ -395,7 +406,9 @@ paths: required: true x-example: "nocake" description: | - The identifier for the rule. + The identifier for the rule. If the string starts with a dot ("."), + the request MUST be rejected as this is reserved for server-default + rules. Slashes ("/") and backslashes ("\\") are also not allowed. - in: query type: string name: before