# Interface VariantMetadata

All Superinterfaces:
  `HasAttributes, HasConfigurableAttributes<VariantMetadata>`

public interface VariantMetadata extends HasConfigurableAttributes<VariantMetadata>
Represents the metadata of one variant of a component, see `ComponentMetadataDetails.withVariant(String, Action)`.

Since:
  4.4

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `withCapabilities(Action<? super MutableCapabilitiesMetadata> action)`
  Register a rule that modifies the capabilities of this variant.
  `void`
  `withDependencies(Action<? super DirectDependenciesMetadata> action)`
  Register a rule that modifies the dependencies of this variant.
  `void`
  `withDependencyConstraints(Action<? super DependencyConstraintsMetadata> action)`
  Register a rule that modifies the dependency constraints of this variant.
  `void`
  `withFiles(Action<? super MutableVariantFilesMetadata> action)`
  Register a rule that modifies the artifacts of this variant.

  ### Methods inherited from interface HasAttributes

  `getAttributes`

  ### Methods inherited from interface HasConfigurableAttributes

  `attributes`

- ## Method Details

  - ### withDependencies

    void withDependencies(Action<? super DirectDependenciesMetadata> action)
    Register a rule that modifies the dependencies of this variant.
    Parameters:
      `action` - the action that performs the dependencies adjustment
    Since:
      4.4

  - ### withDependencyConstraints

    void withDependencyConstraints(Action<? super DependencyConstraintsMetadata> action)
    Register a rule that modifies the dependency constraints of this variant.
    Parameters:
      `action` - the action that performs the dependency constraints adjustment
    Since:
      4.5

  - ### withCapabilities

    void withCapabilities(Action<? super MutableCapabilitiesMetadata> action)
    Register a rule that modifies the capabilities of this variant.
    Parameters:
      `action` - the action that performs the capabilities adjustment
    Since:
      4.7

  - ### withFiles

    void withFiles(Action<? super MutableVariantFilesMetadata> action)
    Register a rule that modifies the artifacts of this variant.
    Parameters:
      `action` - the action that performs the files adjustment
    Since:
      6.0