# RadiusCloudProviderExtensions Methods

- Package: [Aspire.Hosting.Radius](/reference/api/csharp/aspire.hosting.radius.md)
- Type: [RadiusCloudProviderExtensions](/reference/api/csharp/aspire.hosting.radius/radiuscloudproviderextensions.md)
- Kind: `Methods`
- Members: `2`

Cloud-provider configuration entry points for [RadiusEnvironmentResource](/reference/api/csharp/aspire.hosting.radius/radiusenvironmentresource.md). These extensions attach a `Annotations.RadiusCloudProvidersAnnotation` to the environment that the publisher consumes to emit `providers.azure` / `providers.aws` scope blocks and to schedule `rad credential register` invocations during deploy.

<a id="withawsprovider"></a>
<a id="withawsprovider-iresourcebuilder-radiusenvironmentresource-string-string-action-iawsradiusproviderbuilder"></a>

## WithAwsProvider(IResourceBuilder<RadiusEnvironmentResource>, string, string, Action<IAwsRadiusProviderBuilder>)

> **Experimental:** ASPIRERADIUS003 - [Learn more](/diagnostics/aspireradius003/)

- Name: `WithAwsProvider(IResourceBuilder<RadiusEnvironmentResource>, string, string, Action<IAwsRadiusProviderBuilder>)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<RadiusEnvironmentResource>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/b5f143315ffb6968ea939a9978797a5b20e4c688/src/Aspire.Hosting.Radius/CloudProviders/RadiusCloudProviderExtensions.cs#L88-L106)

Attaches an AWS cloud provider to the Radius environment. The `configure` callback selects exactly one credential mode (Access Key or IRSA); omitting a selection is an error.

```csharp
public static class RadiusCloudProviderExtensions
{
    public static IResourceBuilder<RadiusEnvironmentResource> WithAwsProvider(
        this IResourceBuilder<RadiusEnvironmentResource> builder,
        string accountId,
        string region,
        Action<IAwsRadiusProviderBuilder> configure)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<RadiusEnvironmentResource>`)
  The Radius environment resource builder.
- `accountId` (`string`)
  12-digit AWS account ID.
- `region` (`string`)
  AWS region code (e.g. `us-west-2`).
- `configure` (`Action<IAwsRadiusProviderBuilder>`)
  Callback that selects a credential mode.

## Returns

`IResourceBuilder<RadiusEnvironmentResource>` -- The same builder for chaining.

## Exceptions

- `ArgumentException` -- Validation failed on inputs.
- `InvalidOperationException` -- The callback did not select a credential (ASPIRERADIUS010).

## ATS metadata

### Ignored by ATS

- Excluded from automatic Polyglot export.

<a id="withazureprovider"></a>
<a id="withazureprovider-iresourcebuilder-radiusenvironmentresource-string-string-action-iazureradiusproviderbuilder"></a>

## WithAzureProvider(IResourceBuilder<RadiusEnvironmentResource>, string, string, Action<IAzureRadiusProviderBuilder>)

> **Experimental:** ASPIRERADIUS003 - [Learn more](/diagnostics/aspireradius003/)

- Name: `WithAzureProvider(IResourceBuilder<RadiusEnvironmentResource>, string, string, Action<IAzureRadiusProviderBuilder>)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<RadiusEnvironmentResource>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/b5f143315ffb6968ea939a9978797a5b20e4c688/src/Aspire.Hosting.Radius/CloudProviders/RadiusCloudProviderExtensions.cs#L47-L65)

Attaches an Azure cloud provider to the Radius environment. The `configure` callback selects exactly one credential mode (Service Principal or Workload Identity); omitting a selection is an error.

```csharp
public static class RadiusCloudProviderExtensions
{
    public static IResourceBuilder<RadiusEnvironmentResource> WithAzureProvider(
        this IResourceBuilder<RadiusEnvironmentResource> builder,
        string subscriptionId,
        string resourceGroup,
        Action<IAzureRadiusProviderBuilder> configure)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<RadiusEnvironmentResource>`)
  The Radius environment resource builder.
- `subscriptionId` (`string`)
  Azure subscription GUID.
- `resourceGroup` (`string`)
  Resource-group name within the subscription.
- `configure` (`Action<IAzureRadiusProviderBuilder>`)
  Callback that selects a credential mode.

## Returns

`IResourceBuilder<RadiusEnvironmentResource>` -- The same builder for chaining.

## Exceptions

- `ArgumentException` -- Validation failed on inputs.
- `InvalidOperationException` -- The callback did not select a credential (ASPIRERADIUS010).

## ATS metadata

### Ignored by ATS

- Excluded from automatic Polyglot export.
