> ## Documentation Index
> Fetch the complete documentation index at: https://bazel-pr-30012.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Provider

A constructor for simple value objects, known as provider instances.
This value has a dual purpose:

* It is a function that can be called to construct 'struct'-like values:

  ```
  DataInfo = provider()
  d = DataInfo(x = 2, y = 3)
  print(d.x + d.y) # prints 5
  ```

  Note: Some providers, defined internally, do not allow instance creation
* It is a *key* to access a provider instance on a [Target](../builtins/Target)

  ```
  DataInfo = provider()
  def _rule_impl(ctx)
    ... ctx.attr.dep[DataInfo]
  ```

Create a new `Provider` using the [provider](../globals/bzl#provider) function.
