# Interface VariantSelectionDetails

public interface VariantSelectionDetails
Allows configuring the variant-aware selection aspects of a specific dependency. This includes the ability to substitute a dependency on a platform with another platform, or substitute a dependency without attributes with a dependency with attributes.

Since:
  6.6

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `attributes(Action<? super AttributeContainer> configurationAction)`
  Replaces the provided selector attributes with the attributes configured via the configuration action.
  `void`
  `capabilities(Action<? super ModuleDependencyCapabilitiesHandler> configurationAction)`
  Replaces the provided selector capabilities with the capabilities configured via the configuration action.
  `void`
  `enforcedPlatform()`
  Selects the enforced platform variant of a component
  `void`
  `library()`
  Selects the library variant of a component
  `void`
  `platform()`
  Selects the platform variant of a component

- ## Method Details

  - ### platform

    void platform()
    Selects the platform variant of a component

  - ### enforcedPlatform

    void enforcedPlatform()
    Selects the enforced platform variant of a component

  - ### library

    void library()
    Selects the library variant of a component

  - ### attributes

    void attributes(Action<? super AttributeContainer> configurationAction)
    Replaces the provided selector attributes with the attributes configured via the configuration action.
    Parameters:
      `configurationAction` - the configuration action

  - ### capabilities

    void capabilities(Action<? super ModuleDependencyCapabilitiesHandler> configurationAction)
    Replaces the provided selector capabilities with the capabilities configured via the configuration action.
    Parameters:
      `configurationAction` - the configuration action