# Interface ComponentMetadata

All Superinterfaces:
  `HasAttributes`

All Known Subinterfaces:
  `ComponentMetadataDetails`

public interface ComponentMetadata extends HasAttributes
Provides a read-only view of a resolved component's metadata, which typically originates from a component descriptor (Ivy file, Maven POM).

Since:
  2.2

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ModuleVersionIdentifier`
  `getId()`
  Returns the identifier of the component.
  `String`
  `getStatus()`
  Returns the status of the component.
  `List<String>`
  `getStatusScheme()`
  Returns the status scheme of the component.
  `boolean`
  `isChanging()`
  Tells whether the component is changing or immutable.

  ### Methods inherited from interface HasAttributes

  `getAttributes`

- ## Method Details

  - ### getId

    ModuleVersionIdentifier getId()
    Returns the identifier of the component.
    Returns:
      the identifier of the component.
    Since:
      2.2

  - ### isChanging

    boolean isChanging()
    Tells whether the component is changing or immutable.
    Returns:
      whether the component is changing or immutable.
    Since:
      2.2

  - ### getStatus

    String getStatus()
    Returns the status of the component. Must match one of the values in `getStatusScheme()`.

    For an external module component, the status is determined from the module descriptor:

    - For modules in an Ivy repository, this value is taken from the published ivy descriptor.
    - For modules in a Maven repository, this value will be "integration" for a SNAPSHOT module, and "release" for all non-SNAPSHOT modules.
    Returns:
      the status of the component
    Since:
      2.2

  - ### getStatusScheme

    List<String> getStatusScheme()
    Returns the status scheme of the component. Values are ordered from least to most mature status. Defaults to `["integration", "milestone", "release"]`.
    Returns:
      the status scheme of the component
    Since:
      2.2