<schema package="org.apache.qpid.acl">

<!--
 * Copyright (c) 2008 The Apache Software Foundation
 *
 * 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.
-->

  <class name="Acl">
    <property name="brokerRef"     type="objId"   references="org.apache.qpid.broker:Broker" access="RO" index="y" parentRef="y"/>
    <property name="policyFile"    type="lstr"    access="RO"    desc="Name of the policy file"/>
    <property name="enforcingAcl"  type="bool"    access="RO"    desc="Currently Enforcing ACL"/>
    <property name="transferAcl"   type="bool"    access="RO"    desc="Any transfer ACL rules in force"/>
    <property name="lastAclLoad"   type="absTime" access="RO"    desc="Timestamp of last successful load of ACL"/>
    <statistic name="aclDenyCount" type="count64" unit="request" desc="Number of ACL requests denied"/>

    <method name="reloadACLFile" desc="Reload the ACL file"/>
  </class>

  <eventArguments>
    <arg name="action"     type="sstr"/>
    <arg name="arguments"  type="map"/>
    <arg name="objectName" type="sstr"/>
    <arg name="objectType" type="sstr"/>
    <arg name="reason"     type="lstr"/>
    <arg name="userId"     type="sstr"/>
  </eventArguments>

  <event name="allow"          sev="inform" args="userId, action, objectType, objectName, arguments"/>
  <event name="deny"           sev="notice" args="userId, action, objectType, objectName, arguments"/>
  <event name="fileLoaded"     sev="inform" args="userId"/>
  <event name="fileLoadFailed" sev="error"  args="userId, reason"/>

</schema>
