Type Descriptor

Describes a type in the XL Deploy type system. A descriptor is rendered in XML as a <descriptor> element containing attributes and child elements. Here's a breakdown of the structure.

The <descriptor> element

Attributes

type
The name of the type. A type name consists of a package name followed by a dot and then the actual name. For example: core.Directory
deployableType
The name of the deployable type. Only applicable for deployeds, the deployable type refers the environment-indendent CI that created this deployed.
containerType
The name of the container type. Only applicable for deployeds, the container type refers to type of container this deployed can be deployed to.
virtual
Whether this type is a virtual type. (Boolean)
inspectable
Whether this type supports inspection. (Boolean)
rooted
The root node in the repository this type can be created under. If not present, this type can't be created directly under a root node. Possible values: Applications, Environments or Infrastructure

Child elements

<description>
Contains a textual description of this type.
<property-descriptors>
The properties of this type. Contains a list of <property-descriptor> elements.
<control-tasks>
The control tasks exposed by this type. Contains a list of <control-task> elements.
<interfaces>
The interfaces implemented by this type. Contains a list of <#interface> elements, each of which contains a single type name.
<superTypes>
The supertype chain of this type. Contains a list of <#superType> elements, each of which contains a single type name.

Type descriptor example

<descriptor type="overthere.SshHost" virtual="false" root="Infrastructure">
  <description>A machine that can be connected to using ssh.</description>
  <property-descriptors>
    ...
  </property-descriptors>
  <control-tasks>
    <control-task name="checkConnection" fqn="overthere.SshHost.checkConnection" description="Check connection"/>
  </control-tasks>
  <interfaces>
    <interface>udm.Taggable</interface>
    <interface>udm.ConfigurationItem</interface>
    <interface>udm.Container</interface>
    <interface>overthere.HostContainer</interface>
  </interfaces>
  <superTypes>
    <superType>overthere.Host</superType>
    <superType>udm.BaseContainer</superType>
    <superType>udm.BaseConfigurationItem</superType>
  </superTypes>
</descriptor>

The <property-descriptor> element

Describes a property of a XL Deploy type.

Attributes

name
The name of the property.
fqn
The fully qualified name of the property. This is the type name followed by a dot and then the property name. For example: overthere.SshJumpstation.port
label
Label text for use in the UI.
kind
The property type. Possible values: BOOLEAN, INTEGER, STRING, ENUM, CI, SET_OF_STRING, SET_OF_CI, LIST_OF_STRING, LIST_OF_CI or MAP_STRING_STRING
description
Textual description of the property.
category
The category of this property. The UI groups all properties in the same category into a tab of their own.
asContainment
Indicates a parent / child relationship (Boolean). Only applicable for properties that refer to other CIs. If asContainment is set to true and the property is of kind CI then we are referring to the parent of this CI. If the kind is LIST_OF_CI or SET_OF_CI, then this CI is the parent and this property refers to its children.
required
Whether this property is required (Boolean).
inspection
Whether this property is used when doing inspection (Boolean). Only relevant if the CI supports inspection.
requiredInspection
Whether this property is required when doing inspection (Boolean). Only relevant if the CI supports inspection.
password
Whether this property is a password (Boolean). Only applicable for String property types. Contents maybe masked with '*' character.
transient
Whether this property is transient (Boolean). Transient properties will not be stored.
size
Indicates the size of the input field in the UI. Possible values: DEFAULT, SMALL, MEDIUM or LARGE

Child elements

<referencedType>
For properties that refer to CIs, this indicates the type of CI to refer to. Contains the name of the referred type as content.
<defaultValue>
The default value of the property, as String.
<enumValues>
For properties of type ENUM, this element contains all possible values, wrapped in <string> elements.

Property descriptor examples

Property with enum values:
<property-descriptor name="os" fqn="overthere.SshHost.os" label="Os" kind="ENUM" description="Operating system" 
    category="Common" asContainment="false" inspection="false" required="true" requiredInspection="false" 
    password="false" transient="false" size="DEFAULT">
  <enumValues>
    <string>WINDOWS</string>
    <string>UNIX</string>
  </enumValues>
</property-descriptor>
Property referring to a parent CI
<descriptor type="udm.CompositePackage" virtual="false">
  <property-descriptor name="application" fqn="udm.CompositePackage.application" label="Application" kind="CI"
      asContainment="true" ...>
    <referencedType>udm.Application</referencedType>
  </property-descriptor>
  ...
</descriptor>

The <control-task> element

Attributes

name
The name of the control task.
fqn
The fully qualified name of the control task. This is the type name followed by a dot and then the control task name. For example: overthere.SshJumpstation.checkConnection
description
Textual description of the control task.

Example

<control-task name="checkConnection" fqn="overthere.SshJumpstation.checkConnection" description="Check connection"/>