[ 'required', 'string', 'max:50' ], 'conditions' => [ 'required', 'array', 'max:5' ], 'conditions.*.type' => [ 'required', Rule::in([ 'subject', 'sender', 'alias' ]) ], 'conditions.*.match' => [ 'sometimes', 'required', Rule::in([ 'is exactly', 'is not', 'contains', 'does not contain', 'starts with', 'does not start with', 'ends with', 'does not end with' ]) ], 'conditions.*.values' => [ 'required', 'array', 'min:1', 'max:10' ], 'conditions.*.values.*' => [ 'distinct', ], 'actions' => [ 'required', 'array', 'max:5' ], 'actions.*.type' => [ 'required', Rule::in([ 'subject', 'displayFrom', 'encryption', 'banner', 'block', 'webhook' ]), ], 'actions.*.value' => [ 'required', 'max:50' ], 'operator' => [ 'required', 'in:AND,OR' ] ]; } }