<?xml version="1.0"?>
<mbeans-descriptors>

  <mbean name="Group"
         className="org.apache.catalina.mbeans.GroupMBean"
          description="Group from a user database"
               domain="Users"
                group="Group"
                 type="org.apache.catalina.Group">

    <attribute   name="description"
          description="Description of this group"
                 type="java.lang.String"/>

    <attribute   name="groupname"
          description="Group name of this group"
                 type="java.lang.String"/>

    <attribute   name="roles"
          description="MBean Names of roles for this group"
                 type="[Ljava.lang.String;"
            writeable="false"/>

    <attribute   name="users"
          description="MBean Names of user members of this group"
                 type="[Ljava.lang.String;"
            writeable="false"/>

    <operation   name="addRole"
          description="Add a new authorized role for this group"
               impact="ACTION"
           returnType="void">
      <parameter name="role"
          description="Role to be added"
                 type="java.lang.String"/>
    </operation>

    <operation   name="removeRole"
          description="Remove an old authorized role for this group"
               impact="ACTION"
           returnType="void">
      <parameter name="role"
          description="Role to be removed"
                 type="java.lang.String"/>
    </operation>

    <operation   name="removeRoles"
          description="Remove all authorized roles for this group"
               impact="ACTION"
           returnType="void">
    </operation>

  </mbean>

  <mbean         name="Role"
            className="org.apache.catalina.mbeans.RoleMBean"
          description="Security role from a user database"
               domain="Users"
                group="Role"
                 type="org.apache.catalina.Role">

    <attribute   name="description"
          description="Description of this role"
                 type="java.lang.String"/>

    <attribute   name="rolename"
          description="Role name of this role"
                 type="java.lang.String"/>

  </mbean>

  <mbean         name="User"
            className="org.apache.catalina.mbeans.UserMBean"
          description="User from a user database"
               domain="Users"
                group="User"
                 type="org.apache.catalina.User">

    <attribute   name="fullName"
          description="Full name of this user"
                 type="java.lang.String"/>

    <attribute   name="groups"
          description="MBean Names of groups this user is a member of"
                 type="[Ljava.lang.String;"/>

    <attribute   name="password"
          description="Password of this user"
                 type="java.lang.String"/>

    <attribute   name="roles"
          description="MBean Names of roles for this user"
                 type="[Ljava.lang.String;"
            writeable="false"/>

    <attribute   name="username"
          description="User name of this user"
                 type="java.lang.String"/>

    <operation   name="addGroup"
          description="Add a new group membership for this user"
               impact="ACTION"
           returnType="void">
      <parameter name="groupname"
          description="Group name of the new group"
                 type="java.lang.String"/>
    </operation>

    <operation   name="addRole"
          description="Add a new authorized role for this user"
               impact="ACTION"
           returnType="void">
      <parameter name="role"
          description="Role to be added"
                 type="java.lang.String"/>
    </operation>

    <operation   name="removeGroup"
          description="Remove an old group membership for this user"
               impact="ACTION"
           returnType="void">
      <parameter name="groupname"
          description="Group name of the old group"
                 type="java.lang.String"/>
    </operation>

    <operation   name="removeGroups"
          description="Remove all group memberships for this user"
               impact="ACTION"
           returnType="void">
    </operation>

    <operation   name="removeRole"
          description="Remove an old authorized role for this user"
               impact="ACTION"
           returnType="void">
      <parameter name="role"
          description="Role to be removed"
                 type="java.lang.String"/>
    </operation>

    <operation   name="removeRoles"
          description="Remove all authorized roles for this user"
               impact="ACTION"
           returnType="void">
    </operation>

  </mbean>

</mbeans-descriptors>
