# 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.
properties:
  content:
    items:
      $ref: push_rule.yaml
    type: array
  override:
    items:
      $ref: push_rule.yaml
    type: array
  room:
    items:
      $ref: push_rule.yaml
    type: array
  sender:
    items:
      $ref: push_rule.yaml
    type: array
  underride:
    items:
      $ref: push_rule.yaml
    type: array
type: object
example: {
  "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": [],
      "conditions": [],
      "default": true,
      "enabled": false,
      "rule_id": ".m.rule.master"
    },
    {
      "actions": [],
      "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": [
        {
          "kind": "room_member_count",
          "is": "2"
        },
        {
          "kind": "event_match",
          "key": "type",
          "pattern": "m.room.message"
        }
      ],
      "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"
    }
  ]
}
