<?xml version="1.0" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="abstractPagedListWrapper" type="abstractPagedListWrapper"/>

  <xs:element name="abstractRestModel" type="abstractRestModel"/>

  <xs:element name="action" type="restPlanAction"/>

  <xs:element name="artifact" nillable="true" type="xs:anyType"/>

  <xs:element name="artifacts" type="restArtifactDefinitions"/>

  <xs:element name="branch" type="restPlanBranch"/>

  <xs:element name="change" type="restChange"/>

  <xs:element name="chart" type="restChart"/>

  <xs:element name="comment" type="restComment"/>

  <xs:element name="createDeploymentProjectRequest" type="restCreateDeploymentProjectRequest"/>

  <xs:element name="dashboardEnvironment" type="dashboardEnvironment"/>

  <xs:element name="dashboardProjectWithEnvironmentStatus" type="dashboardProjectWithEnvironmentStatus"/>

  <xs:element name="dedicatedAgent" type="restDedicatedAgent"/>

  <xs:element name="dependencies" type="restDependencies"/>

  <xs:element name="deploymentProject" type="restDeploymentProject"/>

  <xs:element name="deploymentResult" type="restDeploymentResult"/>

  <xs:element name="deploymentVersionStatus" type="restDeploymentVersionStatus"/>

  <xs:element name="elasticConfiguration" type="restElasticImageConfig"/>

  <xs:element name="environment" type="restEnvironment"/>

  <xs:element name="favicon" type="restFavicon"/>

  <xs:element name="file" type="restChangeFile"/>

  <xs:element name="info" type="restInfo"/>

  <xs:element name="issue" type="restJiraIssue"/>

  <xs:element name="key" type="restKey"/>

  <xs:element name="label" nillable="true" type="xs:anyType"/>

  <xs:element name="latestCurrentlyActive" type="restBranchLatestActive"/>

  <xs:element name="link" type="link"/>

  <xs:element name="logEntry" type="restBuildLogEntry"/>

  <xs:element name="operations" type="restOperations"/>

  <xs:element name="plan" type="restPlan"/>

  <xs:element name="plans" type="restPlans"/>

  <xs:element name="project" type="restProject"/>

  <xs:element name="projects" type="restProjects"/>

  <xs:element name="quickFilter" type="restQuickFilter"/>

  <xs:element name="report" type="restReport"/>

  <xs:element name="reports" type="restReports"/>

  <xs:element name="requirement" type="restRequirement"/>

  <xs:element name="restBuildAgent" type="restBuildAgent"/>

  <xs:element name="restBuildArtifactList" type="restBuildArtifactList"/>

  <xs:element name="restBuildLabelList" type="restBuildLabelList"/>

  <xs:element name="restBuildLogEntryList" type="restBuildLogEntryList"/>

  <xs:element name="restChangeFileList" type="restChangeFileList"/>

  <xs:element name="restChangeList" type="restChangeList"/>

  <xs:element name="restCommentList" type="restCommentList"/>

  <xs:element name="restCreateVersionRequest" type="restCreateVersionRequest"/>

  <xs:element name="restEnvironmentDashboardStatus" type="restEnvironmentDashboardStatus"/>

  <xs:element name="restIdContainer" type="restIdContainer"/>

  <xs:element name="restJiraIssueList" type="restJiraIssueList"/>

  <xs:element name="restPlanActionList" type="restPlanActionList"/>

  <xs:element name="restPlanBranchList" type="restPlanBranchList"/>

  <xs:element name="restPlanList" type="restPlanList"/>

  <xs:element name="restProjectList" type="restProjectList"/>

  <xs:element name="restQuarantineExpiry" type="restQuarantineExpiry"/>

  <xs:element name="restReportList" type="restReportList"/>

  <xs:element name="restResultList" type="restResultList"/>

  <xs:element name="restServerStatusInfo" type="restServerStatusInfo"/>

  <xs:element name="restStageList" type="restStageList"/>

  <xs:element name="restStageResultList" type="restStageResultList"/>

  <xs:element name="restVariableDefinitionContextList" type="restVariableDefinitionContextList"/>

  <xs:element name="result" type="result"/>

  <xs:element name="resultKey" nillable="true" type="xs:anyType"/>

  <xs:element name="searchEntity" nillable="true" type="xs:anyType"/>

  <xs:element name="searchResult" type="searchResult"/>

  <xs:element name="searchResults" type="searchResultsList"/>

  <xs:element name="stage" nillable="true" type="xs:anyType"/>

  <xs:element name="updateDeploymentProjectRequest" type="restUpdateDeploymentProjectRequest"/>

  <xs:element name="userBean" type="userBean"/>

  <xs:element name="variable" type="restVariableDefinitionContext"/>

  <xs:element name="vcsRevision" type="vcsRevision"/>

  <xs:element name="vcsRevisionList" type="vcsRevisionList"/>

  <xs:element name="version" type="restDeploymentVersion"/>

  <xs:element name="versionItem" type="restDeploymentVersionItem"/>

  <xs:element name="versionPreview" type="versionPreview"/>

  <xs:complexType name="restPlans">
    <xs:sequence>
      <xs:element ref="link" minOccurs="0"/>
      <xs:element name="plans" type="restPlanList" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="expand" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="link">
    <xs:sequence/>
    <xs:attribute name="href" type="xs:string"/>
    <xs:attribute name="type" type="xs:string"/>
    <xs:attribute name="rel" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="restPlanList">
    <xs:complexContent>
      <xs:extension base="abstractRestList">
        <xs:sequence>
          <xs:element ref="plan" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="expand" type="xs:string"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="abstractRestList" abstract="true">
    <xs:sequence/>
    <xs:attribute name="start-index" type="xs:int" use="required"/>
    <xs:attribute name="max-result" type="xs:int" use="required"/>
    <xs:attribute name="size" type="xs:int" use="required"/>
  </xs:complexType>

  <xs:complexType name="restPlan">
    <xs:sequence>
      <xs:element name="projectKey" type="xs:string" minOccurs="0"/>
      <xs:element name="projectName" type="xs:string" minOccurs="0"/>
      <xs:element ref="project" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="parentName" type="xs:string" minOccurs="0"/>
      <xs:element name="parentKey" type="xs:string" minOccurs="0"/>
      <xs:element name="parent" type="link" minOccurs="0"/>
      <xs:element name="master" type="restPlan" minOccurs="0"/>
      <xs:element name="stageName" type="xs:string" minOccurs="0"/>
      <xs:element name="buildName" type="xs:string" minOccurs="0"/>
      <xs:element name="planKey" type="restKey" minOccurs="0"/>
      <xs:element ref="link" minOccurs="0"/>
      <xs:element name="isFavourite" type="xs:boolean" minOccurs="0"/>
      <xs:element name="isActive" type="xs:boolean" minOccurs="0"/>
      <xs:element name="isBuilding" type="xs:boolean" minOccurs="0"/>
      <xs:element name="averageBuildTimeInSeconds" type="xs:double" minOccurs="0"/>
      <xs:element name="actions" type="restPlanActionList" minOccurs="0"/>
      <xs:element name="stages" type="restStageList" minOccurs="0"/>
      <xs:element name="branches" type="restPlanBranchList" minOccurs="0"/>
      <xs:element name="variableContext" type="restVariableDefinitionContextList" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="expand" type="xs:string"/>
    <xs:attribute name="key" type="xs:string"/>
    <xs:attribute name="name" type="xs:string"/>
    <xs:attribute name="shortName" type="xs:string"/>
    <xs:attribute name="shortKey" type="xs:string"/>
    <xs:attribute name="type" type="xs:string"/>
    <xs:attribute name="enabled" type="xs:boolean"/>
  </xs:complexType>

  <xs:complexType name="restProject">
    <xs:sequence>
      <xs:element ref="link" minOccurs="0"/>
      <xs:element name="plans" type="restPlanList" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="expand" type="xs:string"/>
    <xs:attribute name="key" type="xs:string"/>
    <xs:attribute name="name" type="xs:string"/>
    <xs:attribute name="description" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="restKey">
    <xs:sequence>
      <xs:element name="key" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restPlanActionList">
    <xs:complexContent>
      <xs:extension base="abstractRestList">
        <xs:sequence>
          <xs:element ref="action" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="restPlanAction">
    <xs:sequence>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restStageList">
    <xs:complexContent>
      <xs:extension base="abstractRestList">
        <xs:sequence>
          <xs:element ref="stage" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="expand" type="xs:string"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="restStage">
    <xs:sequence>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="plans" type="restPlanList" minOccurs="0"/>
      <xs:element name="manual" type="xs:boolean"/>
    </xs:sequence>
    <xs:attribute name="expand" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="restPlanBranchList">
    <xs:complexContent>
      <xs:extension base="abstractRestList">
        <xs:sequence>
          <xs:element ref="branch" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="expand" type="xs:string"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="restPlanBranch">
    <xs:sequence>
      <xs:element name="isFavourite" type="xs:boolean" minOccurs="0"/>
      <xs:element name="latestResult" type="result" minOccurs="0"/>
      <xs:element ref="link" minOccurs="0"/>
      <xs:element name="master" type="restPlan" minOccurs="0"/>
      <xs:element ref="latestCurrentlyActive" minOccurs="0"/>
      <xs:element name="workflowType" type="xs:string" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="expand" type="xs:string"/>
    <xs:attribute name="key" type="xs:string"/>
    <xs:attribute name="name" type="xs:string"/>
    <xs:attribute name="description" type="xs:string"/>
    <xs:attribute name="shortName" type="xs:string"/>
    <xs:attribute name="shortKey" type="xs:string"/>
    <xs:attribute name="enabled" type="xs:boolean"/>
  </xs:complexType>

  <xs:complexType name="result">
    <xs:sequence>
      <xs:element ref="link" minOccurs="0"/>
      <xs:element name="parent" type="link" minOccurs="0"/>
      <xs:element ref="plan" minOccurs="0"/>
      <xs:element name="master" type="restPlan" minOccurs="0"/>
      <xs:element name="planName" type="xs:string" minOccurs="0"/>
      <xs:element name="projectName" type="xs:string" minOccurs="0"/>
      <xs:element name="stage" type="xs:string" minOccurs="0"/>
      <xs:element name="buildResultKey" type="xs:string" minOccurs="0"/>
      <xs:element name="planResultKey" type="restResultKey" minOccurs="0"/>
      <xs:element name="buildState" type="xs:string" minOccurs="0"/>
      <xs:element name="buildNumber" type="xs:int" minOccurs="0"/>
      <xs:element name="buildStartedTime" type="xs:string" minOccurs="0"/>
      <xs:element name="prettyBuildStartedTime" type="xs:string" minOccurs="0"/>
      <xs:element name="buildCompletedTime" type="xs:string" minOccurs="0"/>
      <xs:element name="buildCompletedDate" type="xs:string" minOccurs="0"/>
      <xs:element name="prettyBuildCompletedTime" type="xs:string" minOccurs="0"/>
      <xs:element name="buildDurationInSeconds" type="xs:long" minOccurs="0"/>
      <xs:element name="buildDuration" type="xs:long" minOccurs="0"/>
      <xs:element name="buildDurationDescription" type="xs:string" minOccurs="0"/>
      <xs:element name="buildRelativeTime" type="xs:string" minOccurs="0"/>
      <xs:element name="queueStartedTime" type="xs:string" minOccurs="0"/>
      <xs:element name="prettyQueueStartedTime" type="xs:string" minOccurs="0"/>
      <xs:element name="queueTimeInSeconds" type="xs:long" minOccurs="0"/>
      <xs:element name="queueDuration" type="xs:long" minOccurs="0"/>
      <xs:element name="prettyQueueDuration" type="xs:string" minOccurs="0"/>
      <xs:element name="vcsUpdateStartedTime" type="xs:string" minOccurs="0"/>
      <xs:element name="prettyVcsUpdateStartedTime" type="xs:string" minOccurs="0"/>
      <xs:element name="vcsUpdateInSeconds" type="xs:long" minOccurs="0"/>
      <xs:element name="vcsUpdateDuration" type="xs:long" minOccurs="0"/>
      <xs:element name="prettyVcsUpdateDuration" type="xs:string" minOccurs="0"/>
      <xs:element name="vcsRevisionKey" type="xs:string" minOccurs="0"/>
      <xs:element name="vcsRevisions" type="vcsRevisionList" minOccurs="0"/>
      <xs:element name="buildTestSummary" type="xs:string" minOccurs="0"/>
      <xs:element name="successfulTestCount" type="xs:int" minOccurs="0"/>
      <xs:element name="failedTestCount" type="xs:int" minOccurs="0"/>
      <xs:element name="quarantinedTestCount" type="xs:int" minOccurs="0"/>
      <xs:element name="skippedTestCount" type="xs:int" minOccurs="0"/>
      <xs:element name="restartCount" type="xs:int" minOccurs="0"/>
      <xs:element name="buildReason" type="xs:string" minOccurs="0"/>
      <xs:element name="reasonSummary" type="xs:string" minOccurs="0"/>
      <xs:element name="hasExecutableAgents" type="xs:boolean" minOccurs="0"/>
      <xs:element name="artifacts" type="restBuildArtifactList" minOccurs="0"/>
      <xs:element name="comments" type="restCommentList" minOccurs="0"/>
      <xs:element name="labels" type="restBuildLabelList" minOccurs="0"/>
      <xs:element name="jiraIssues" type="restJiraIssueList" minOccurs="0"/>
      <xs:element name="stages" type="restStageResultList" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="expand" type="xs:string"/>
    <xs:attribute name="key" type="xs:string"/>
    <xs:attribute name="state" type="xs:string"/>
    <xs:attribute name="lifeCycleState" type="xs:string"/>
    <xs:attribute name="number" type="xs:int"/>
    <xs:attribute name="id" type="xs:long" use="required"/>
    <xs:attribute name="continuable" type="xs:boolean"/>
    <xs:attribute name="onceOff" type="xs:boolean"/>
    <xs:attribute name="restartable" type="xs:boolean"/>
    <xs:attribute name="notRunYet" type="xs:boolean"/>
    <xs:attribute name="finished" type="xs:boolean"/>
    <xs:attribute name="successful" type="xs:boolean"/>
  </xs:complexType>

  <xs:complexType name="restResultKey">
    <xs:sequence>
      <xs:element name="key" type="xs:string" minOccurs="0"/>
      <xs:element name="entityKey" type="restKey" minOccurs="0"/>
      <xs:element name="resultNumber" type="xs:int"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="vcsRevisionList">
    <xs:complexContent>
      <xs:extension base="abstractRestList">
        <xs:sequence>
          <xs:element ref="vcsRevision" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="expand" type="xs:string"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="vcsRevision">
    <xs:sequence>
      <xs:element name="changes" type="restChangeList" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="expand" type="xs:string"/>
    <xs:attribute name="repositoryId" type="xs:long"/>
    <xs:attribute name="repositoryName" type="xs:string"/>
    <xs:attribute name="vcsRevisionKey" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="restChangeList">
    <xs:complexContent>
      <xs:extension base="abstractRestList">
        <xs:sequence>
          <xs:element ref="change" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="expand" type="xs:string"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="restChange">
    <xs:sequence>
      <xs:element name="comment" type="xs:string" minOccurs="0"/>
      <xs:element name="commitUrl" type="xs:string" minOccurs="0"/>
      <xs:element name="date" type="xs:string" minOccurs="0"/>
      <xs:element name="files" type="restChangeFileList" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="expand" type="xs:string"/>
    <xs:attribute name="author" type="xs:string"/>
    <xs:attribute name="userName" type="xs:string"/>
    <xs:attribute name="fullName" type="xs:string"/>
    <xs:attribute name="changesetId" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="restChangeFileList">
    <xs:complexContent>
      <xs:extension base="abstractRestList">
        <xs:sequence>
          <xs:element ref="file" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="restChangeFile">
    <xs:sequence>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element name="revision" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restBuildArtifactList">
    <xs:complexContent>
      <xs:extension base="abstractRestList">
        <xs:sequence>
          <xs:element ref="artifact" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="restBuildArtifact">
    <xs:sequence>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element ref="link" minOccurs="0"/>
      <xs:element name="producerJobKey" type="xs:string" minOccurs="0"/>
      <xs:element name="shared" type="xs:boolean" minOccurs="0"/>
      <xs:element name="size" type="xs:long" minOccurs="0"/>
      <xs:element name="prettySizeDescription" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restCommentList">
    <xs:complexContent>
      <xs:extension base="abstractRestList">
        <xs:sequence>
          <xs:element ref="comment" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="expand" type="xs:string"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="restComment">
    <xs:sequence>
      <xs:element name="content" type="xs:string" minOccurs="0"/>
      <xs:element name="creationDate" type="xs:string" minOccurs="0"/>
      <xs:element name="modificationDate" type="xs:string" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="author" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="restBuildLabelList">
    <xs:complexContent>
      <xs:extension base="abstractRestList">
        <xs:sequence>
          <xs:element ref="label" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="expand" type="xs:string"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="restBuildLabel">
    <xs:sequence/>
    <xs:attribute name="name" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="restJiraIssueList">
    <xs:complexContent>
      <xs:extension base="abstractRestList">
        <xs:sequence>
          <xs:element ref="issue" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="expand" type="xs:string"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="restJiraIssue">
    <xs:sequence>
      <xs:element name="fixVersions" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="url" type="link" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="key" type="xs:string"/>
    <xs:attribute name="summary" type="xs:string"/>
    <xs:attribute name="iconUrl" type="xs:string"/>
    <xs:attribute name="issueType" type="xs:string"/>
    <xs:attribute name="status" type="xs:string"/>
    <xs:attribute name="statusClass" type="xs:string"/>
    <xs:attribute name="assignee" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="restStageResultList">
    <xs:complexContent>
      <xs:extension base="abstractRestList">
        <xs:sequence>
          <xs:element ref="stage" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="expand" type="xs:string"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="restStageResult">
    <xs:sequence>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="results" type="restResultList" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="expand" type="xs:string"/>
    <xs:attribute name="id" type="xs:long" use="required"/>
    <xs:attribute name="lifeCycleState" type="xs:string"/>
    <xs:attribute name="state" type="xs:string"/>
    <xs:attribute name="displayClass" type="xs:string"/>
    <xs:attribute name="displayMessage" type="xs:string"/>
    <xs:attribute name="collapsedByDefault" type="xs:boolean" use="required"/>
    <xs:attribute name="manual" type="xs:boolean" use="required"/>
    <xs:attribute name="restartable" type="xs:boolean" use="required"/>
    <xs:attribute name="runnable" type="xs:boolean" use="required"/>
  </xs:complexType>

  <xs:complexType name="restResultList">
    <xs:complexContent>
      <xs:extension base="abstractRestList">
        <xs:sequence>
          <xs:element ref="result" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="expand" type="xs:string"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="restBranchLatestActive">
    <xs:sequence/>
    <xs:attribute name="key" type="xs:string"/>
    <xs:attribute name="lifeCycleState" type="xs:string"/>
    <xs:attribute name="number" type="xs:int"/>
  </xs:complexType>

  <xs:complexType name="restVariableDefinitionContextList">
    <xs:complexContent>
      <xs:extension base="abstractPagedListWrapper">
        <xs:sequence>
          <xs:element ref="variable" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="abstractPagedListWrapper" abstract="true">
    <xs:sequence/>
    <xs:attribute name="size" type="xs:int" use="required"/>
    <xs:attribute name="max-results" type="xs:int" use="required"/>
    <xs:attribute name="start-index" type="xs:int"/>
  </xs:complexType>

  <xs:complexType name="restVariableDefinitionContext">
    <xs:sequence>
      <xs:element name="key" type="xs:string" minOccurs="0"/>
      <xs:element name="value" type="xs:string" minOccurs="0"/>
      <xs:element name="variableType" type="xs:string" minOccurs="0"/>
      <xs:element name="isPassword" type="xs:boolean"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restUpdateDeploymentProjectRequest">
    <xs:sequence>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element name="planKey" type="restKey" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restReports">
    <xs:sequence>
      <xs:element ref="link" minOccurs="0"/>
      <xs:element name="reports" type="restReportList" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="expand" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="restReportList">
    <xs:complexContent>
      <xs:extension base="abstractRestList">
        <xs:sequence>
          <xs:element ref="report" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="restReport">
    <xs:sequence>
      <xs:element name="key" type="xs:string" minOccurs="0"/>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restPlanLabel">
    <xs:sequence/>
    <xs:attribute name="name" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="restIdContainer">
    <xs:sequence>
      <xs:element name="id" type="xs:long" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restDeploymentResult">
    <xs:sequence>
      <xs:element name="deploymentVersion" type="restDeploymentVersion" minOccurs="0"/>
      <xs:element name="deploymentVersionName" type="xs:string" minOccurs="0"/>
      <xs:element name="id" type="xs:long"/>
      <xs:element name="deploymentState" type="buildState" minOccurs="0"/>
      <xs:element name="lifeCycleState" type="lifeCycleState" minOccurs="0"/>
      <xs:element name="startedDate" type="xs:dateTime" minOccurs="0"/>
      <xs:element name="queuedDate" type="xs:dateTime" minOccurs="0"/>
      <xs:element name="executedDate" type="xs:dateTime" minOccurs="0"/>
      <xs:element name="finishedDate" type="xs:dateTime" minOccurs="0"/>
      <xs:element name="reasonSummary" type="xs:string" minOccurs="0"/>
      <xs:element name="key" type="restDeploymentResultKey" minOccurs="0"/>
      <xs:element name="agent" type="restBuildAgent" minOccurs="0"/>
      <xs:element ref="operations" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restDeploymentVersion">
    <xs:sequence>
      <xs:element name="id" type="xs:long"/>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element name="creationDate" type="xs:dateTime" minOccurs="0"/>
      <xs:element name="creatorUserName" type="xs:string" minOccurs="0"/>
      <xs:element name="items" type="restDeploymentVersionItem" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="versionStatus" type="restDeploymentVersionStatus" minOccurs="0"/>
      <xs:element ref="operations" minOccurs="0"/>
      <xs:element name="creatorDisplayName" type="xs:string" minOccurs="0"/>
      <xs:element name="creatorGravatarUrl" type="xs:string" minOccurs="0"/>
      <xs:element name="planBranchName" type="xs:string" minOccurs="0"/>
      <xs:element name="ageZeroPoint" type="xs:dateTime" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restDeploymentVersionItem" abstract="true">
    <xs:sequence>
      <xs:element name="id" type="xs:long"/>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restArtifactDeploymentVersionItem">
    <xs:complexContent>
      <xs:extension base="restDeploymentVersionItem">
        <xs:sequence>
          <xs:element name="planResultKey" type="restResultKey" minOccurs="0"/>
          <xs:element name="type" type="projectItemType" minOccurs="0"/>
          <xs:element name="label" type="xs:string" minOccurs="0"/>
          <xs:element name="location" type="xs:string" minOccurs="0"/>
          <xs:element name="copyPattern" type="xs:string" minOccurs="0"/>
          <xs:element name="size" type="xs:long"/>
          <xs:element ref="artifact" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="restArtifact">
    <xs:sequence>
      <xs:element name="id" type="xs:long"/>
      <xs:element name="label" type="xs:string" minOccurs="0"/>
      <xs:element name="size" type="xs:long"/>
      <xs:element name="isSharedArtifact" type="xs:boolean"/>
      <xs:element name="isGloballyStored" type="xs:boolean"/>
      <xs:element name="linkType" type="xs:string" minOccurs="0"/>
      <xs:element name="planResultKey" type="restResultKey" minOccurs="0"/>
      <xs:element name="archiverType" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restDeploymentVersionStatus">
    <xs:sequence>
      <xs:element name="id" type="xs:long"/>
      <xs:element name="userName" type="xs:string" minOccurs="0"/>
      <xs:element name="displayName" type="xs:string" minOccurs="0"/>
      <xs:element name="gravatarUrl" type="xs:string" minOccurs="0"/>
      <xs:element name="creationDate" type="xs:dateTime" minOccurs="0"/>
      <xs:element name="versionState" type="deploymentVersionState" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restOperations">
    <xs:sequence>
      <xs:element name="canView" type="xs:boolean"/>
      <xs:element name="canEdit" type="xs:boolean"/>
      <xs:element name="canDelete" type="xs:boolean"/>
      <xs:element name="allowedToExecute" type="xs:boolean"/>
      <xs:element name="canExecute" type="xs:boolean"/>
      <xs:element name="cantExecuteReason" type="xs:string" minOccurs="0"/>
      <xs:element name="allowedToCreateVersion" type="xs:boolean"/>
      <xs:element name="allowedToSetVersionStatus" type="xs:boolean"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restDeploymentResultKey">
    <xs:complexContent>
      <xs:extension base="restResultKey">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="restBuildAgent">
    <xs:sequence>
      <xs:element name="id" type="xs:long"/>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element name="type" type="agentType" minOccurs="0"/>
      <xs:element name="active" type="xs:boolean" minOccurs="0"/>
      <xs:element name="enabled" type="xs:boolean" minOccurs="0"/>
      <xs:element name="busy" type="xs:boolean" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restDeploymentResultWithLogs">
    <xs:complexContent>
      <xs:extension base="restDeploymentResult">
        <xs:sequence>
          <xs:element name="logEntries" type="restBuildLogEntryList" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="restBuildLogEntryList">
    <xs:complexContent>
      <xs:extension base="abstractRestList">
        <xs:sequence>
          <xs:element ref="logEntry" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="expand" type="xs:string"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="restBuildLogEntry">
    <xs:sequence>
      <xs:element name="log" type="xs:string" minOccurs="0"/>
      <xs:element name="unstyledLog" type="xs:string" minOccurs="0"/>
      <xs:element name="date" type="xs:dateTime" minOccurs="0"/>
      <xs:element name="formattedDate" type="xs:string" minOccurs="0"/>
      <xs:element name="cssStyle" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restCreateDeploymentProjectRequest">
    <xs:sequence>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element name="planKey" type="restKey" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restQuickFilter">
    <xs:sequence>
      <xs:element name="id" type="xs:long" minOccurs="0"/>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element name="position" type="xs:int" minOccurs="0"/>
      <xs:element name="hasRules" type="xs:boolean" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="dashboardProjectWithEnvironmentStatus">
    <xs:sequence>
      <xs:element ref="deploymentProject" minOccurs="0"/>
      <xs:element name="environmentStatuses" type="restEnvironmentDashboardStatus" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="relatedVersion" type="restDeploymentVersion" minOccurs="0"/>
      <xs:element name="futureVersion" type="restDeploymentVersion" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restDeploymentProject">
    <xs:sequence>
      <xs:element name="id" type="xs:long"/>
      <xs:element name="oid" type="xs:string" minOccurs="0"/>
      <xs:element ref="key" minOccurs="0"/>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element name="planKey" type="restKey" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="environments" type="restEnvironment" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="operations" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restEnvironment">
    <xs:sequence>
      <xs:element name="id" type="xs:long"/>
      <xs:element ref="key" minOccurs="0"/>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="deploymentProjectId" type="xs:long" minOccurs="0"/>
      <xs:element ref="operations" minOccurs="0"/>
      <xs:element name="position" type="xs:int"/>
      <xs:element name="configurationState" type="configurationState" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restEnvironmentDashboardStatus">
    <xs:sequence>
      <xs:element name="environment" type="dashboardEnvironment" minOccurs="0"/>
      <xs:element ref="deploymentResult" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="dashboardEnvironment">
    <xs:complexContent>
      <xs:extension base="restEnvironment">
        <xs:sequence>
          <xs:element name="name" type="xs:string" minOccurs="0"/>
          <xs:element name="id" type="xs:long" minOccurs="0"/>
          <xs:element name="deploymentProjectId" type="xs:long" minOccurs="0"/>
          <xs:element ref="operations" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="restChart">
    <xs:sequence>
      <xs:element name="location" type="xs:string" minOccurs="0"/>
      <xs:element name="imageMapName" type="xs:string" minOccurs="0"/>
      <xs:element name="imageMap" type="xs:string" minOccurs="0"/>
      <xs:element name="width" type="xs:int" minOccurs="0"/>
      <xs:element name="height" type="xs:int" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restDedicatedAgent">
    <xs:sequence>
      <xs:element name="nameElements" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="executableType" type="executableType" minOccurs="0"/>
      <xs:element name="id" type="xs:long"/>
      <xs:element name="executableId" type="xs:long"/>
      <xs:element name="executableTypeLabel" type="xs:string" minOccurs="0"/>
      <xs:element name="executorType" type="executorType" minOccurs="0"/>
      <xs:element name="executorId" type="xs:long"/>
      <xs:element name="capabilitiesMatch" type="xs:boolean"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restProjects">
    <xs:sequence>
      <xs:element ref="link" minOccurs="0"/>
      <xs:element name="projects" type="restProjectList" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="expand" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="restProjectList">
    <xs:complexContent>
      <xs:extension base="abstractRestList">
        <xs:sequence>
          <xs:element ref="project" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="expand" type="xs:string"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="restQuarantineExpiry">
    <xs:sequence>
      <xs:element name="expiryDuration" type="xs:int" minOccurs="0"/>
      <xs:element name="expiryPeriod" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restElasticImageConfig">
    <xs:sequence>
      <xs:element name="configurationId" type="xs:long" minOccurs="0"/>
      <xs:element name="configurationName" type="xs:string" minOccurs="0"/>
      <xs:element name="configurationDescription" type="xs:string" minOccurs="0"/>
      <xs:element name="imageId" type="xs:string" minOccurs="0"/>
      <xs:element name="ebsEnabled" type="xs:boolean"/>
      <xs:element name="ebsSnapshotId" type="xs:string" minOccurs="0"/>
      <xs:element name="useLegacyEbsHandling" type="xs:boolean"/>
      <xs:element name="instanceType" type="xs:string" minOccurs="0"/>
      <xs:element name="availabilityZone" type="xs:string" minOccurs="0"/>
      <xs:element name="product" type="xs:string" minOccurs="0"/>
      <xs:element name="subnetId" type="xs:string" minOccurs="0"/>
      <xs:element name="startupScripts" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="architecture" type="xs:string" minOccurs="0"/>
      <xs:element name="platform" type="xs:string" minOccurs="0"/>
      <xs:element name="rootDeviceType" type="xs:string" minOccurs="0"/>
      <xs:element name="region" type="xs:string" minOccurs="0"/>
      <xs:element name="imageFilesVersion" type="xs:string" minOccurs="0"/>
      <xs:element name="iamInstanceProfileArnOrName" type="xs:string" minOccurs="0"/>
      <xs:element name="isEbsOptimised" type="xs:boolean" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restDependencies">
    <xs:sequence>
      <xs:element ref="link" minOccurs="0"/>
      <xs:element name="dependencies" type="restPlanList" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="expand" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="restInfo">
    <xs:sequence>
      <xs:element name="version" type="xs:string" minOccurs="0"/>
      <xs:element name="edition" type="xs:string" minOccurs="0"/>
      <xs:element name="buildDate" type="xs:string" minOccurs="0"/>
      <xs:element name="buildNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="state" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="searchResultsList">
    <xs:sequence>
      <xs:element name="searchResults" type="searchResult" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="start-index" type="xs:int" use="required"/>
    <xs:attribute name="max-result" type="xs:int" use="required"/>
    <xs:attribute name="size" type="xs:int" use="required"/>
  </xs:complexType>

  <xs:complexType name="searchResult">
    <xs:sequence>
      <xs:element ref="searchEntity" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="id" type="xs:string"/>
    <xs:attribute name="type" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="searchResultEntity" abstract="true">
    <xs:sequence/>
    <xs:attribute name="id" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="userSearchResult">
    <xs:complexContent>
      <xs:extension base="searchResultEntity">
        <xs:sequence>
          <xs:element name="username" type="xs:string" minOccurs="0"/>
          <xs:element name="fullName" type="xs:string" minOccurs="0"/>
          <xs:element name="displayableEmail" type="xs:string" minOccurs="0"/>
          <xs:element name="avatarUrl" type="xs:string" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="authorSearchResult">
    <xs:complexContent>
      <xs:extension base="searchResultEntity">
        <xs:sequence>
          <xs:element name="authorName" type="xs:string" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="planSearchResult">
    <xs:complexContent>
      <xs:extension base="searchResultEntity">
        <xs:sequence>
          <xs:element name="key" type="xs:string" minOccurs="0"/>
          <xs:element name="projectName" type="xs:string" minOccurs="0"/>
          <xs:element name="planName" type="xs:string" minOccurs="0"/>
          <xs:element name="branchName" type="xs:string" minOccurs="0"/>
          <xs:element name="stageName" type="xs:string" minOccurs="0"/>
          <xs:element name="jobName" type="xs:string" minOccurs="0"/>
          <xs:element name="description" type="xs:string" minOccurs="0"/>
          <xs:element name="type" type="xs:string" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="stageSearchResult">
    <xs:complexContent>
      <xs:extension base="searchResultEntity">
        <xs:sequence>
          <xs:element name="key" type="xs:string" minOccurs="0"/>
          <xs:element name="name" type="xs:string" minOccurs="0"/>
          <xs:element name="projectName" type="xs:string" minOccurs="0"/>
          <xs:element name="planName" type="xs:string" minOccurs="0"/>
          <xs:element name="branchName" type="xs:string" minOccurs="0"/>
          <xs:element name="description" type="xs:string" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="projectSearchResult">
    <xs:complexContent>
      <xs:extension base="searchResultEntity">
        <xs:sequence>
          <xs:element name="key" type="xs:string" minOccurs="0"/>
          <xs:element name="projectName" type="xs:string" minOccurs="0"/>
          <xs:element name="description" type="xs:string" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="deploymentVersionSearchResult">
    <xs:complexContent>
      <xs:extension base="searchResultEntity">
        <xs:sequence>
          <xs:element name="name" type="xs:string" minOccurs="0"/>
          <xs:element name="versionStatus" type="restDeploymentVersionStatus" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="agentAssignmentSearchResult">
    <xs:complexContent>
      <xs:extension base="searchResultEntity">
        <xs:sequence>
          <xs:element name="nameElements" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="id" type="xs:long"/>
          <xs:element name="description" type="xs:string" minOccurs="0"/>
          <xs:element name="type" type="xs:string" minOccurs="0"/>
          <xs:element name="typeLabel" type="xs:string" minOccurs="0"/>
          <xs:element name="capabilitiesMatch" type="xs:boolean"/>
          <xs:element name="executorType" type="xs:string" minOccurs="0"/>
          <xs:element name="executorId" type="xs:long"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="restServerStatusInfo">
    <xs:sequence>
      <xs:element name="state" type="xs:string" minOccurs="0"/>
      <xs:element name="setByUser" type="xs:string" minOccurs="0"/>
      <xs:element name="reindexInProgress" type="xs:boolean"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restFavicon">
    <xs:sequence>
      <xs:element name="faviconUrl" type="xs:string" minOccurs="0"/>
      <xs:element name="faviconType" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restCreateVersionRequest">
    <xs:sequence>
      <xs:element name="planResultKey" type="xs:string" minOccurs="0"/>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element name="nextVersionName" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restArtifactDefinitions">
    <xs:sequence>
      <xs:element ref="link" minOccurs="0"/>
      <xs:element name="artifacts" type="restArtifactDefinitionList" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="expand" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="restArtifactDefinitionList">
    <xs:complexContent>
      <xs:extension base="abstractRestList">
        <xs:sequence>
          <xs:element ref="artifact" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="restArtifactDefinition">
    <xs:sequence>
      <xs:element name="id" type="xs:long"/>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element name="location" type="xs:string" minOccurs="0"/>
      <xs:element name="copyPattern" type="xs:string" minOccurs="0"/>
      <xs:element name="shared" type="xs:boolean"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="versionPreview">
    <xs:sequence>
      <xs:element name="id" type="xs:long" minOccurs="0"/>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element name="planBranchName" type="xs:string" minOccurs="0"/>
      <xs:element name="differentBranchAsPreviousRelease" type="xs:boolean"/>
      <xs:element name="issueCount" type="xs:int"/>
      <xs:element name="issueUrl" type="xs:string" minOccurs="0"/>
      <xs:element name="commitCount" type="xs:int"/>
      <xs:element name="commitUrl" type="xs:string" minOccurs="0"/>
      <xs:element name="numEnvironments" type="xs:int" minOccurs="0"/>
      <xs:element name="numEnvironmentsDeployedSuccessful" type="xs:int" minOccurs="0"/>
      <xs:element name="numEnvironmentsDeployedFailed" type="xs:int" minOccurs="0"/>
      <xs:element name="versionStatus" type="restDeploymentVersionStatus" minOccurs="0"/>
      <xs:element name="rollback" type="xs:boolean"/>
      <xs:element name="previousVersionName" type="xs:string" minOccurs="0"/>
      <xs:element name="previousVersionId" type="xs:long" minOccurs="0"/>
      <xs:element name="lastCreatedVersionName" type="xs:string" minOccurs="0"/>
      <xs:element name="lastCreatedVersionId" type="xs:long" minOccurs="0"/>
      <xs:element name="differentBuildPlan" type="xs:boolean"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="restRequirement">
    <xs:complexContent>
      <xs:extension base="abstractRestModel">
        <xs:sequence>
          <xs:element name="id" type="xs:long"/>
          <xs:element name="key" type="xs:string" minOccurs="0"/>
          <xs:element name="matchType" type="matchType" minOccurs="0"/>
          <xs:element name="matchValue" type="xs:string" minOccurs="0"/>
          <xs:element name="readonlyData" type="requirementReadonlyData" minOccurs="0"/>
          <xs:element name="operations" type="requirementOperations" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="abstractRestModel" abstract="true">
    <xs:sequence>
      <xs:element name="self" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="requirementReadonlyData">
    <xs:sequence>
      <xs:element name="ownerId" type="xs:long" minOccurs="0"/>
      <xs:element name="ownerPluginKey" type="xs:string" minOccurs="0"/>
      <xs:element name="ownerName" type="xs:string" minOccurs="0"/>
      <xs:element name="requirementLabel" type="xs:string" minOccurs="0"/>
      <xs:element name="matchingAgents" type="xs:int" minOccurs="0"/>
      <xs:element name="matchingImages" type="xs:int" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="requirementOperations">
    <xs:sequence>
      <xs:element name="canEdit" type="xs:boolean"/>
      <xs:element name="canDelete" type="xs:boolean"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="userBean">
    <xs:sequence>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element name="fullName" type="xs:string" minOccurs="0"/>
      <xs:element name="email" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="projectItemType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="BAM_ARTIFACT"/>
      <xs:enumeration value="SOURCE"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="deploymentVersionState">
    <xs:restriction base="xs:string">
      <xs:enumeration value="UNKNOWN"/>
      <xs:enumeration value="APPROVED"/>
      <xs:enumeration value="BROKEN"/>
      <xs:enumeration value="INCOMPLETE"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="buildState">
    <xs:restriction base="xs:string">
      <xs:enumeration value="UNKNOWN"/>
      <xs:enumeration value="SUCCESS"/>
      <xs:enumeration value="FAILED"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="lifeCycleState">
    <xs:restriction base="xs:string">
      <xs:enumeration value="PENDING"/>
      <xs:enumeration value="QUEUED"/>
      <xs:enumeration value="IN_PROGRESS"/>
      <xs:enumeration value="FINISHED"/>
      <xs:enumeration value="NOT_BUILT"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="agentType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="LOCAL"/>
      <xs:enumeration value="REMOTE"/>
      <xs:enumeration value="ELASTIC"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="configurationState">
    <xs:restriction base="xs:string">
      <xs:enumeration value="CREATED"/>
      <xs:enumeration value="DETAILED"/>
      <xs:enumeration value="TASKED"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="executableType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="PROJECT"/>
      <xs:enumeration value="PLAN"/>
      <xs:enumeration value="JOB"/>
      <xs:enumeration value="DEPLOYMENT_PROJECT"/>
      <xs:enumeration value="ENVIRONMENT"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="executorType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="AGENT"/>
      <xs:enumeration value="IMAGE"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="matchType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="EXISTS"/>
      <xs:enumeration value="EQUALS"/>
      <xs:enumeration value="MATCHES"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>

