<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements.  See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership.  The ASF licenses this file
  ~ to you 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.
  -->
<model>
  <id>rbac-jdo</id>
  <name>RbacJdoModel</name>
  <version>1.0.1</version>
  <defaults>
    <default>
      <key>package</key>
      <value>org.codehaus.plexus.security.authorization.rbac.jdo</value>
    </default>
  </defaults>
  <classes>
    <class rootElement="true"
           stash.storable="false">
      <name>RbacDatabase</name>
      <version>1.0.1+</version>
      <fields>
        <field>
          <name>roles</name>
          <version>1.0.1+</version>
          <association>
            <type>JdoRole</type>
            <multiplicity>*</multiplicity>
          </association>
        </field>
        <field>
          <name>userAssignments</name>
          <version>1.0.1+</version>
          <association>
            <type>JdoUserAssignment</type>
            <multiplicity>*</multiplicity>
          </association>
        </field>
      </fields>
    </class>

    <class stash.storable="true"
           jpox.table="SECURITY_ROLES"
           jpox.not-persisted-fields="modelEncoding">
      <name>JdoRole</name>
      <version>1.0.0+</version>
      <fields>
        <field jpox.primary-key="true" jpox.value-strategy="off">
          <name>name</name>
          <version>1.0.0+</version>
          <type>String</type>
          <identifier>true</identifier>
        </field>
        <field>
          <name>description</name>
          <version>1.0.0+</version>
          <type>String</type>
        </field>
        <field>
          <name>assignable</name>
          <version>1.0.0+</version>
          <type>boolean</type>
          <description>
            true if this role is available to be assigned to a user
          </description>
        </field>
        <field>
          <name>permanent</name>
          <version>1.0.0+</version>
          <type>boolean</type>
          <description>
            true if this object is permanent.
          </description>
        </field>
        <field jpox.persistence-modifier="persistent"
               jpox.fetchGroupNames="role-child-detail"
               jpox.join-table="ROLE_CHILDROLE_MAP">
          <name>childRoleNames</name>
          <version>1.0.0+</version>
          <association stash.part="true"
                       jpox.join="true"
                       java.init="field"
                       jpox.dependent="false"
                       java.generate-break="false"
                       java.generate-create="false">
            <type>String</type>
            <multiplicity>*</multiplicity>
          </association>
          <description>
            roles that will inherit the permissions of this role
          </description>
        </field>
        <field jpox.fetchGroupNames="role-child-detail"
               jpox.join-table="ROLE_PERMISSION_MAP">
          <name>permissions</name>
          <version>1.0.0+</version>
          <association stash.part="true"
                       jpox.join="true"
                       jpox.dependent="false"
                       java.init="field"
                       java.generate-break="false"
                       java.generate-create="false">
            <type>JdoPermission</type>
            <multiplicity>*</multiplicity>
          </association>
        </field>
      </fields>
    </class>

    <class stash.storable="true"
           jpox.table="PERMISSIONS"
           jpox.not-persisted-fields="modelEncoding">
      <name>JdoPermission</name>
      <version>1.0.0+</version>
      <fields>
        <field jpox.primary-key="true" jpox.value-strategy="off">
          <name>name</name>
          <version>1.0.0+</version>
          <type>String</type>
          <identifier>true</identifier>
        </field>
        <field>
          <name>description</name>
          <version>1.0.0+</version>
          <type>String</type>
        </field>
        <field>
          <name>permanent</name>
          <version>1.0.0+</version>
          <type>boolean</type>
          <description>
            true if this object is permanent.
          </description>
        </field>
        <field jpox.indexed="true"
               jpox.column="SECURITY_OPERATIONS">
          <name>operation</name>
          <version>1.0.0+</version>
          <association stash.part="true"
                       jpox.dependent="false">
            <type>JdoOperation</type>
            <multiplicity>1</multiplicity>
          </association>
        </field>
        <field jpox.indexed="true"
               jpox.column="SECURITY_RESOURCES">
          <name>resource</name>
          <version>1.0.0+</version>
          <association stash.part="true"
                       jpox.dependent="false">
            <type>JdoResource</type>
            <multiplicity>1</multiplicity>
          </association>
        </field>
      </fields>
    </class>

    <class stash.storable="true"
           jpox.table="OPERATIONS"
           jpox.not-persisted-fields="modelEncoding">
      <name>JdoOperation</name>
      <version>1.0.0+</version>
      <fields>
        <field jpox.primary-key="true" jpox.value-strategy="off">
          <name>name</name>
          <version>1.0.0+</version>
          <type>String</type>
          <identifier>true</identifier>
        </field>
        <field>
          <name>description</name>
          <version>1.0.0+</version>
          <type>String</type>
        </field>
        <field>
          <name>permanent</name>
          <version>1.0.0+</version>
          <type>boolean</type>
          <description>
            true if this object is permanent.
          </description>
        </field>
        <field>
          <name>resourceRequired</name>
          <version>1.0.0+</version>
          <type>boolean</type>
          <description>
            true if the resource is required for authorization to be granted
          </description>
        </field>
      </fields>
    </class>

    <class stash.storable="true"
           jpox.table="RESOURCES"
           jpox.not-persisted-fields="modelEncoding">
      <name>JdoResource</name>
      <version>1.0.0+</version>
      <description>
        In RBAC terms, this is the entity which an operation is associated with that which permissions are based on.
      </description>
      <fields>
        <field jpox.primary-key="true" jpox.value-strategy="off">
          <name>identifier</name>
          <version>1.0.0+</version>
          <type>String</type>
          <description>
            The string identifier for an operation.
          </description>
          <identifier>true</identifier>
        </field>
        <field>
          <name>pattern</name>
          <version>1.0.0+</version>
          <type>boolean</type>
          <description>
            true if the identifer is a pattern that is to be evaluated, for example x.* could match x.a or x.b and x.**
            could match x.foo
          </description>
        </field>
        <field>
          <name>permanent</name>
          <version>1.0.0+</version>
          <type>boolean</type>
          <description>
            true if this object is permanent.
          </description>
        </field>
      </fields>
    </class>

    <class stash.storable="true"
           jpox.table="USER_ASSIGNMENTS"
           jpox.not-persisted-fields="modelEncoding">
      <name>JdoUserAssignment</name>
      <description>binding of a principal to a role</description>
      <version>1.0.0+</version>
      <fields>
        <field jpox.primary-key="true" 
               jpox.value-strategy="off"
               jpox.foreign-key-delete-action="cascade">
          <name>principal</name>
          <version>1.0.0+</version>
          <type>String</type>
          <identifier>true</identifier>
        </field>
        <field jpox.column="LAST_UPDATED">
          <name>timestamp</name>
          <version>1.0.0+</version>
          <type>Date</type>
        </field>
        <field>
          <name>permanent</name>
          <version>1.0.0+</version>
          <type>boolean</type>
          <description>
            true if this object is permanent.
          </description>
        </field>
        <field java.adder="false"
               jpox.persistence-modifier="persistent"
               jpox.indexed="true"
               jpox.join-table="USERASSIGNMENT_ROLENAMES">
          <name>roleNames</name>
          <version>1.0.0+</version>
          <association stash.part="true"
                       jpox.join="true"
                       java.init="field"
                       java.generate-break="false"
                       java.generate-create="false">
            <type>String</type>
            <multiplicity>*</multiplicity>
          </association>
        </field>
      </fields>
    </class>
  </classes>
</model>
