---
title: provider
url: /docs/iac/concepts/resources/options/provider/
---
The `provider` resource option sets a provider for the resource. For more information, see [Providers](/docs/iac/concepts/resources/options/providers). The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.

> **Applies to custom and component resources.** The `provider` resource option applies to both [custom resources](/docs/iac/concepts/resources/) and [component resources](/docs/iac/concepts/components/). It is defined on the base resource-options type in every Pulumi SDK. A `provider` set on a component is inherited by its child custom resources of the same package, acting as the default provider for the subtree. For components whose children span multiple packages, prefer `providers`, which accepts a list keyed by package name.

<!-- chooser: language -->

<!-- option: typescript -->
```typescript
let provider = new aws.Provider("provider", { region: "us-west-2" });
let vpc = new aws.ec2.Vpc("vpc", {}, { provider: provider });

```

<!-- /option -->

<!-- option: python -->
```python
provider = Provider("provider", region="us-west-2")
vpc = ec2.Vpc("vpc", opts=ResourceOptions(provider=provider))

```

<!-- /option -->

<!-- option: go -->
```go
provider, _ := aws.NewProvider(ctx, "provider", &aws.ProviderArgs{Region: pulumi.StringPtr("us-west-2")})
vpc, _ := ec2.NewVpc(ctx, "vpc", &ec2.VpcArgs{}, pulumi.Provider(provider))

```

<!-- /option -->

<!-- option: csharp -->
```csharp
var provider = new Aws.Provider("provider", new Aws.ProviderArgs { Region = "us-west-2" });
var vpc = new Aws.Ec2.Vpc("vpc", new Aws.Ec2.VpcArgs(),
    new CustomResourceOptions { Provider = provider });

```

<!-- /option -->

<!-- option: java -->
```java
var provider = new Provider("provider",
    ProviderArgs.builder()
        .region("us-west-2")
        .build());

var vpc = new Vpc("vpc",
    VpcArgs.Empty,
    CustomResourceOptions.builder()
        .provider(provider)
        .build());

```

<!-- /option -->

<!-- option: yaml -->
```yaml
resources:
  provider:
    type: pulumi:providers:aws
    properties:
      region: us-west-2
  vpc:
    type: aws:ec2:Vpc
    options:
      provider: ${provider}

```

<!-- /option -->

<!-- /chooser -->

