Package com.xebialabs.deployit.plugin.api.udm

# Interface ConfigurationItem

All Superinterfaces:
  `Serializable`

All Known Subinterfaces:
  `AppliedProvisioner<D>`, `ArchiveArtifact`, `Artifact`, `Container`, `Deployable`, `DeployableArtifact`, `DeployableContainer`, `Deployed<D,C>`, `DerivedArtifact<D>`, `EmbeddedDeployable`, `EmbeddedDeployed<D,C>`, `EmbeddedDeployedContainer<D,C>`, `FileArtifact`, `FolderArtifact`, `HostContainer`, `IDictionary`, `IEncryptedDictionary`, `LookupValueProvider`, `Provisionable`, `Provisioned<D,C>`, `Provisioner`, `SourceArtifact`, `Taggable`

All Known Implementing Classes:
  `AbstractDictionary`, `Application`, `BaseAppliedProvisioner`, `BaseAppliedProvisionerArtifact`, `BaseConfigurationItem`, `BaseConfigurationItemWithPolicies`, `BaseContainer`, `BaseDeployable`, `BaseDeployableArchiveArtifact`, `BaseDeployableArtifact`, `BaseDeployableContainer`, `BaseDeployableFileArtifact`, `BaseDeployableFolderArtifact`, `BaseDeployed`, `BaseDeployedArtifact`, `BaseDeployedContainer`, `BaseDeployedInfrastructureAsCode`, `BaseEmbeddedDeployable`, `BaseEmbeddedDeployed`, `BaseProvisionable`, `BaseProvisioned`, `BaseProvisionedContainer`, `BaseProvisioner`, `BaseProvisionerArtifact`, `CompositePackage`, `Configuration`, `DeployedApplication`, `DeploymentPackage`, `Dictionary`, `Directory`, `EmbeddedDeployableArtifact`, `EmbeddedDeployedArtifact`, `EncryptedDictionary`, `Environment`, `Host`, `Parameters`, `ProvisioningPackage`, `SimpleLookupValueProvider`, `Template`, `Version`

public interface ConfigurationItem extends Serializable
Base interface of all configuration item types.

Do not directly implement this class, instead extend `BaseConfigurationItem` or one of the types derived from it (e.g. `BaseDeployable`, `BaseDeployed` or `BaseContainer`).

The following contract is required: - The Type of a ConfigurationItem should be stored in a field called 'type'.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `SYNTHETIC_PROPERTIES_FIELD`
  `static final String`
  `TYPE_FIELD`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `get$directoryReference()`
  `Long`
  `get$internalId()`
  `String`
  `get$referenceId()`
  `Long`
  `get$securedCi()`
  `String`
  `get$securedDirectoryReference()`
  `List<ValidationMessage>`
  `get$validationMessages()`
  Gets the validation messages set on the ConfigurationItem.
  `String`
  `getId()`
  `String`
  `getName()`
  `<T> T`
  `getProperty(String key)`
  `Type`
  `getType()`
  `boolean`
  `hasProperty(String key)`
  `void`
  `setId(String id)`
  Sets The id of the CI.
  `<T> void`
  `setProperty(String key, T value)`
  Adds a custom property of a generic type to the CI.

- ## Field Details

  - ### TYPE_FIELD

    static final String TYPE_FIELD
    See Also:
      - Constant Field Values

  - ### SYNTHETIC_PROPERTIES_FIELD

    static final String SYNTHETIC_PROPERTIES_FIELD
    See Also:
      - Constant Field Values

- ## Method Details

  - ### getId

    String getId()
    Returns:
      The id of the CI.

  - ### setId

    void setId(String id)
    Sets The id of the CI.

  - ### getName

    String getName()
    Returns:
      The name of the CI.

  - ### getType

    Type getType()
    Returns:
      The type metadata for this CI.

  - ### getProperty

    <T> T getProperty(String key)
    Type Parameters:
      `T` - The type of the property.
    Parameters:
      `key` - The name of the property.
    Returns:
      The value of type T of the property.

  - ### hasProperty

    boolean hasProperty(String key)
    Parameters:
      `key` - The name of the property.
    Returns:
      True if the CI has a added property with the given name.

  - ### setProperty

    <T> void setProperty(String key, T value)
    Adds a custom property of a generic type to the CI.
    Type Parameters:
      `T` - The type of the property.
    Parameters:
      `key` - The name of the property.
      `value` - The value of type T of the property.

  - ### get$validationMessages

    List<ValidationMessage> get$validationMessages()
    Gets the validation messages set on the ConfigurationItem.
    Returns:
      a List<ValidationMessage>

  - ### get$internalId

    Long get$internalId()
    Returns:
      The internal ID of ConfigurationItem.

  - ### get$securedCi

    Long get$securedCi()
    Returns:
      The ID of secured CI which determines ConfigurationItem's permissions.

  - ### get$directoryReference

    String get$directoryReference()
    Returns:
      The UUID of ConfigurationItem's directory.

  - ### get$securedDirectoryReference

    String get$securedDirectoryReference()
    Returns:
      The UUID of ConfigurationItems secured directory which determines ConfigurationItems permissions.

  - ### get$referenceId

    String get$referenceId()
    Returns:
      The reference UUID of ConfigurationItem.