# Interface BuildServiceRegistration<T extends BuildService<P>, P extends BuildServiceParameters>

Type Parameters:
  `T` - the service type.
  `P` - the service parameters type.

All Superinterfaces:
  `Named`

public interface BuildServiceRegistration<T extends BuildService<P>, P extends BuildServiceParameters> extends Named
Details of a build service.

Since:
  6.1

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from interface Named

  `Named.Namer`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Property<Integer>`
  `getMaxParallelUsages()`
  Specifies the maximum number of tasks that can use this service in parallel.
  `P`
  `getParameters()`
  Returns the parameters that will be used to instantiate the service with.
  `Provider<T>`
  `getService()`
  Returns a `Provider` that will create the service instance when its value is queried.

  ### Methods inherited from interface Named

  `getName`

- ## Method Details

  - ### getParameters

    P getParameters()
    Returns the parameters that will be used to instantiate the service with.

  - ### getMaxParallelUsages

    Property<Integer> getMaxParallelUsages()
    Specifies the maximum number of tasks that can use this service in parallel. Setting this to 1 means that the service will be used by a single task at a time. When this property has no value defined, then any number of tasks may use this service in parallel. This is the default.

    IMPORTANT: the build service must be consumed via a `ServiceReference` property, or explicitly registered with every using task via `Task#usesService` for this constraint to be honored.

    See Also:
      - `ServiceReference`
      - `Task.usesService(Provider)`

  - ### getService

    Provider<T> getService()
    Returns a `Provider` that will create the service instance when its value is queried.