# Deployment

The Deployment information is rendered in XML as a `<deployment>` element.

### Attributes

type
  The type of deployment: `INITIAL`, `UPDATE` or `UNDEPLOYMENT`.

### Child elements

<application>
  The `<application` element contains a single Configuration Item denoting the application being deployed, upgraded or undeployed.
<deployeds>
  Contains a list of Configuration Items, pointing to the deployeds of this deployment,
<deployables>
  Contains a list of CI references, pointing to the deployables of this deployment,
<containers>
  Contains a list of CI references, pointing to the containers involved in this deployment,

## Validation messages

The Deployit Server may return validated CIs. The XML of the CI has then been enhanced with `<validation-messages>`. These elements are metadata about the CI and are not considered as ordinary properties.

## Examples

Result of a /deployment/prepare/initial call to server. It contains the DeployedApplication CI, that contains the properties for application to be deployed, the available deployables and the containers they can be deployed to.

    <deployment type="INITIAL">
      <application>
        <udm.DeployedApplication id="Environments/0hostEnv0/AnimalZoo-ear">
          <version ref="Applications/AnimalZoo-ear/1.0"/>
          <environment ref="Environments/0hostEnv0"/>
          <deployeds/>
          <orchestrator>default</orchestrator>
        </udm.DeployedApplication>
      </application>
      <deployeds/>
      <deployables>
        <ci ref="Applications/AnimalZoo-ear/1.0/AnimalZooBE" type="test-v3.DummyEar"/>
        <ci ref="Applications/AnimalZoo-ear/1.0/AnimalZooFE" type="test-v3.DummyEar"/>
        <ci ref="Applications/AnimalZoo-ear/1.0/AnimalZooWeb" type="test-v3.DummyWar"/>
      </deployables>
      <containers>
        <ci ref="Infrastructure/Host-with-hostServer" type="test-v3.DummyHost"/>
        <ci ref="Infrastructure/hostServer0" type="test-v3.DummyJeeServer"/>
      </containers>
    </deployment>

A deployment object that can be sent to the server to create the deployment task using the /deployment/ call. In addition to the DeployedApplication, it contains the deployeds that indicate how the deployables will be mapped to the containers.

    <deployment type="INITIAL">
      <application>
        <udm.DeployedApplication id="Environments/0hostEnv0/AnimalZoo-ear">
          <version ref="Applications/AnimalZoo-ear/1.0"/>
          <environment ref="Environments/0hostEnv0"/>
          <orchestrator>default</orchestrator>
        </udm.DeployedApplication>
      </application>
      <deployeds>
        <test-v3.DummyJeeServerDeployedEar id="Infrastructure/hostServer0/AnimalZooFE">
          <deployable ref="Applications/AnimalZoo-ear/1.0/AnimalZooFE"/>
          <container ref="Infrastructure/hostServer0"/>
        </test-v3.DummyJeeServerDeployedEar>
        <test-v3.DummyJeeServerDeployedEar id="Infrastructure/hostServer0/AnimalZooBE">
          <deployable ref="Applications/AnimalZoo-ear/1.0/AnimalZooBE"/>
          <container ref="Infrastructure/hostServer0"/>
        </test-v3.DummyJeeServerDeployedEar>
      </deployeds>
    </deployment>

Server response of a /deployment/validate call, where the deployed application has validation errors.

    <deployment type="INITIAL">
      <application>
        <udm.DeployedApplication id="Environments/0hostEnv0/AnimalZoo-ear" token="">
          <version ref="Applications/AnimalZoo-ear/1.0"/>
          <environment ref="Environments/0hostEnv0"/>
          <deployeds/>
          <orchestrator>default</orchestrator>
          <validation-messages>
            <validation-message ci="Environments/0hostEnv0/AnimalZoo-ear" property="username">
              Value is required
            </validation-message>
            <validation-message ci="Environments/0hostEnv0/AnimalZoo-ear" property="password">
              Value is required
            </validation-message>
          </validation-messages>
        </udm.DeployedApplication>
      </application>
      <deployeds>
        <test-v3.DummyJeeServerDeployedEar id="Infrastructure/hostServer0/AnimalZooFE" token="">
          <deployable ref="Applications/AnimalZoo-ear/1.0/AnimalZooFE"/>
          <container ref="Infrastructure/hostServer0"/>
          <placeholders/>
          <dummySetOfStrings/>
        </test-v3.DummyJeeServerDeployedEar>
      </deployeds>
      <deployables/>
      <containers/>
    </deployment>