<?xml version="1.0"?>

<!--
  ~ 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>continuum-view-models</id>
  <name>ContinuumViewModels</name>
  <defaults>
    <default>
      <key>package</key>
      <value>org.apache.maven.continuum.web.model</value>
    </default>
  </defaults>
  <classes>
    <class rootElement="true">
      <name>ContinuumViewModels</name>
      <version>1.0.0+</version>
      <fields>
        <field>
          <name>projectSummarys</name>
          <version>1.0.0+</version>
          <description></description>
          <required>true</required>
          <association>
            <type>ProjectSummary</type>
            <multiplicity>*</multiplicity>
          </association>
        </field>
        <field>
          <name>groupSummarys</name>
          <version>1.0.0+</version>
          <description></description>
          <required>true</required>
          <association>
            <type>GroupSummary</type>
            <multiplicity>*</multiplicity>
          </association>
        </field>
        <field>
          <name>buildDefinitionSummarys</name>
          <version>1.0.0+</version>
          <description></description>
          <required>true</required>
          <association>
            <type>BuildDefinitionSummary</type>
            <multiplicity>*</multiplicity>
          </association>
        </field>
        <field>
          <name>notifierSummarys</name>
          <version>1.0.0+</version>
          <description></description>
          <required>false</required>
          <association>
            <type>NotifierSummary</type>
            <multiplicity>*</multiplicity>
          </association>
        </field>
      </fields>
    </class>
    <class>
      <name>ProjectSummary</name>
      <version>1.0.0+</version>
      <fields>
        <field>
          <name>id</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>project id of the project</description>
          <type>int</type>
          <defaultValue>-1</defaultValue>
        </field>
        <field>
          <name>name</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>name of the project</description>
          <type>String</type>
        </field>
        <field>
          <name>version</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>version of the project</description>
          <type>String</type>
        </field>
        <field>
          <name>projectGroupId</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>id of the project group this project is a member of</description>
          <type>int</type>
          <defaultValue>-1</defaultValue>
        </field>
        <field>
          <name>projectGroupName</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>name of the project group this project is a member of</description>
          <type>String</type>
        </field>
        <field>
          <name>latestBuildId</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>latest build id of the project</description>
          <type>int</type>
          <defaultValue>-1</defaultValue>
        </field>
        <field>
          <name>buildInSuccessId</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description></description>
          <type>int</type>
          <defaultValue>-1</defaultValue>
        </field>
        <field>
          <name>buildNumber</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description></description>
          <type>int</type>
          <defaultValue>-1</defaultValue>
        </field>
        <field>
          <name>state</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>lifecycle state of the project</description>
          <type>int</type>
          <defaultValue>-1</defaultValue>
        </field>
        <field>
          <name>inBuildingQueue</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>true/false depending on if the project is in the build queue or not</description>
          <type>boolean</type>
          <defaultValue>false</defaultValue>
        </field>
        <field>
          <name>inCheckoutQueue</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>true/false depending on if the project is in the checkout queue or not</description>
          <type>boolean</type>
          <defaultValue>false</defaultValue>
        </field>
        <field>
          <name>lastBuildDateTime</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>last build dateTime of the project</description>
          <type>long</type>
        </field>
        <field>
          <name>lastBuildDuration</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>last build duration of the project</description>
          <type>String</type>
        </field>
        <field>
          <name>projectType</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>type of the project</description>
          <type>String</type>
        </field>
      </fields>
    </class>
    <class>
      <name>GroupSummary</name>
      <version>1.0.0+</version>
      <fields>
        <field>
          <name>id</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>internal continuum group id</description>
          <type>int</type>
          <defaultValue>-1</defaultValue>
        </field>
        <field>
          <name>name</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>name of the project group</description>
          <type>String</type>
        </field>
        <field>
          <name>groupId</name>
          <version>1.0.0+</version>
          <required>false</required>
          <description>maven groupId of the project group</description>
          <type>String</type>
        </field>
        <field>
          <name>description</name>
          <version>1.0.0+</version>
          <required>false</required>
          <description>description of the project group</description>
          <type>String</type>
        </field>
        <field>
          <name>numProjects</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>the number of projects in the project group</description>
          <type>int</type>
        </field>
        <field>
          <name>projectType</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>the type of project, maven2/maven1/ant/shell</description>
          <type>String</type>
        </field>
        <field>
          <name>statusMessage</name>
          <version>1.0.0+</version>
          <required>false</required>
          <description>a status message like, (building project X)</description>
          <type>String</type>
        </field>
        <field>
          <name>nextScheduledBuild</name>
          <version>1.0.0+</version>
          <required>false</required>
          <description>timestamp for the next scheduled build</description>
          <type>String</type>
        </field>
        <field>
          <name>projects</name>
          <version>1.0.0+</version>
          <description></description>
          <required>true</required>
          <association>
            <type>ProjectSummary</type>
            <multiplicity>*</multiplicity>
          </association>
        </field>
        <field>
          <name>numSuccesses</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>number of successful builds in the project group</description>
          <type>int</type>
          <defaultValue>0</defaultValue>
        </field>
        <field>
          <name>numFailures</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>number of failed builds in the project group</description>
          <type>int</type>
          <defaultValue>0</defaultValue>
        </field>
        <field>
          <name>numErrors</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>number of errored builds in the project group</description>
          <type>int</type>
          <defaultValue>0</defaultValue>
        </field>
        <field>
          <name>repositoryId</name>
          <version>1.0.0+</version>
          <required>false</required>
          <description>local repository id of the project group</description>
          <type>int</type>
          <defaultValue>-1</defaultValue>
        </field>
        <field>
          <name>repositoryName</name>
          <version>1.0.0+</version>
          <required>false</required>
          <description>local repository name of the project group</description>
          <type>String</type>
        </field>
      </fields>
    </class>
    <class>
      <name>BuildDefinitionSummary</name>
      <version>1.0.0+</version>
      <fields>
        <field>
          <name>id</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>id of the build definition</description>
          <type>int</type>
        </field>
        <field>
          <name>projectId</name>
          <version>1.0.0+</version>
          <required>false</required>
          <description>project id of the project containing the build definition</description>
          <type>int</type>
        </field>
        <field>
          <name>projectGroupId</name>
          <version>1.0.0+</version>
          <required>false</required>
          <description>project group id of the project group with the build definition</description>
          <type>int</type>
        </field>
        <field>
          <name>goals</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>goals for build definition</description>
          <type>String</type>
        </field>
        <field>
          <name>arguments</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>arguments for build definition</description>
          <type>String</type>
        </field>
        <field>
          <name>buildFile</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>goals for build definition</description>
          <type>String</type>
        </field>
        <field>
          <name>isBuildFresh</name>
          <version>1.0.0+</version>
          <description>if the build is to be smoked and checked back out from the scm each build</description>
          <type>boolean</type>
        </field>
        <field>
          <name>isDefault</name>
          <version>1.0.0+</version>
          <description>if the build definition is used in default cases</description>
          <type>boolean</type>
        </field>
        <field>
          <name>scheduleId</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>id of the schedule for build definition</description>
          <type>int</type>
        </field>
        <field>
          <name>scheduleName</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>name of the schedule for build definition</description>
          <type>String</type>
        </field>
        <field>
          <name>from</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>source of build definition, project or project group lvl</description>
          <type>String</type>
        </field>
        <field>
          <name>profileName</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>name of the profile for the build definition</description>
          <type>String</type>
        </field>
        <field>
          <name>projectName</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>if project lvl, then the name of the project using the definition</description>
          <type>String</type>
        </field>
        <field>
          <name>profileId</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>id of the profile for build definition</description>
          <type>int</type>
        </field>
        <field>
          <name>description</name>
          <version>1.0.0+</version>
          <type>String</type>
          <description>description of the buid defintion</description>
        </field>
        <field>
          <name>type</name>
          <version>1.0.0+</version>
          <type>String</type>
          <description>type of the buid defintion</description>
        </field>
        <field>
          <name>alwaysBuild</name>
          <version>1.0.0+</version>
          <type>boolean</type>
          <defaultValue>false</defaultValue>
          <description>true if the build had to be forced even if there is no scm change</description>
        </field>
      </fields>
    </class>
    <class>
      <name>NotifierSummary</name>
      <version>1.0.0+</version>
      <fields>
        <field>
          <name>id</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>id of the notifier</description>
          <type>int</type>
        </field>
        <field>
          <name>projectId</name>
          <version>1.0.0+</version>
          <required>false</required>
          <description>project id of the project containing the notifier</description>
          <type>int</type>
        </field>
        <field>
          <name>projectName</name>
          <version>1.0.0+</version>
          <required>false</required>
          <description>project name of the project containing the notifier</description>
          <type>String</type>
        </field>
        <field>
          <name>projectGroupId</name>
          <version>1.0.0+</version>
          <required>false</required>
          <description>project group id of the project group with the notifier</description>
          <type>int</type>
        </field>
        <field>
          <name>type</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>Type of notifier - mail, IRC, jabber etc.</description>
          <type>String</type>
        </field>
        <field>
          <name>fromProject</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>The origin of the notifier (pom or user).</description>
          <type>boolean</type>
        </field>
        <field>
          <name>events</name>
          <version>1.0.0+</version>
          <required>false</required>
          <description>Events that trigger this notifier</description>
          <type>String</type>
        </field>
        <field>
          <name>recipient</name>
          <version>1.0.0+</version>
          <required>false</required>
          <description>Recipient for notifications generated by the notifier</description>
          <type>String</type>
        </field>
        <field>
          <name>sender</name>
          <version>1.0.0+</version>
          <required>false</required>
          <description>Sender of the notifications</description>
          <type>String</type>
        </field>
        <field>
          <name>enabled</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>Determines if the notifier is enabled</description>
          <type>boolean</type>
        </field>
      </fields>
    </class>
    <class>
      <name>PrepareBuildSummary</name>
      <version>1.0.0+</version>
      <fields>
        <field>
          <name>buildAgentUrl</name>
          <version>1.0.0+</version>
          <required>false</required>
          <description>URL of the build agent</description>
          <type>String</type>
        </field>
        <field>
          <name>projectGroupId</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>ID of the project group</description>
          <type>int</type>
        </field>
        <field>
          <name>projectGroupName</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>Name of the project group</description>
          <type>String</type>
        </field>
        <field>
          <name>scmRootAddress</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>Scm root address of projects</description>
          <type>String</type>
        </field>
        <field>
          <name>scmRootId</name>
          <version>1.0.0+</version>
          <required>true</required>
          <description>ID of the scm root</description>
          <type>int</type>
        </field>
        <field>
          <name>hashCode</name>
          <version>1.0.0+</version>
          <required>false</required>
          <type>int</type>
        </field>
        <field>
          <name>queueName</name>
          <version>1.4.1+</version>
          <required>true</required>
          <description>Name where the prepare build is queued</description>
          <type>String</type>
        </field>
      </fields>
    </class>
    <class>
      <name>DistributedReleaseSummary</name>
      <version>1.0.0+</version>
      <fields>
        <field>
          <name>releaseId</name>
          <version>1.0.0+</version>
          <required>true</required>
          <type>String</type>
        </field>
        <field>
          <name>releaseGoal</name>
          <version>1.0.0+</version>
          <required>true</required>
          <type>String</type>
        </field>
        <field>
          <name>buildAgentUrl</name>
          <version>1.0.0+</version>
          <required>true</required>
          <type>String</type>
        </field>
        <field>
          <name>projectId</name>
          <version>1.0.0+</version>
          <required>true</required>
          <type>int</type>
        </field>
      </fields>
    </class>
    <class>
      <name>DistributedBuildSummary</name>
      <version>1.0.0+</version>
      <fields>
        <field>
          <name>projectId</name>
          <version>1.0.0+</version>
          <required>true</required>
          <type>int</type>
        </field>
        <field>
          <name>projectName</name>
          <version>1.0.0+</version>
          <required>true</required>
          <type>String</type>
        </field>
        <field>
          <name>projectGroupName</name>
          <version>1.0.0+</version>
          <required>true</required>
          <type>String</type>
        </field>
        <field>
          <name>buildDefinitionId</name>
          <version>1.0.0+</version>
          <required>true</required>
          <type>int</type>
        </field>
        <field>
          <name>buildDefinitionLabel</name>
          <version>1.0.0+</version>
          <required>true</required>
          <type>String</type>
        </field>
        <field>
          <name>buildAgentUrl</name>
          <version>1.0.0+</version>
          <required>true</required>
          <type>String</type>
        </field>
        <field>
          <name>hashCode</name>
          <version>1.0.0+</version>
          <required>true</required>
          <type>int</type>
        </field>
        <field>
          <name>triggeredBy</name>
          <version>1.5.0+</version>
          <required>true</required>
          <type>String</type>
        </field>
      </fields>
    </class>
  </classes>
</model>
