AWS v7.11.0 published on Wednesday, Nov 5, 2025 by Pulumi
aws.pricing.getProduct
Start a Neo task
Explain and create an aws.pricing.getProduct resource
Use this data source to get the pricing information of all products in AWS. This data source is only available in a us-east-1 or ap-south-1 provider.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = aws.pricing.getProduct({
serviceCode: "AmazonEC2",
filters: [
{
field: "instanceType",
value: "c5.xlarge",
},
{
field: "operatingSystem",
value: "Linux",
},
{
field: "location",
value: "US East (N. Virginia)",
},
{
field: "preInstalledSw",
value: "NA",
},
{
field: "licenseModel",
value: "No License required",
},
{
field: "tenancy",
value: "Shared",
},
{
field: "capacitystatus",
value: "Used",
},
],
});
import pulumi
import pulumi_aws as aws
example = aws.pricing.get_product(service_code="AmazonEC2",
filters=[
{
"field": "instanceType",
"value": "c5.xlarge",
},
{
"field": "operatingSystem",
"value": "Linux",
},
{
"field": "location",
"value": "US East (N. Virginia)",
},
{
"field": "preInstalledSw",
"value": "NA",
},
{
"field": "licenseModel",
"value": "No License required",
},
{
"field": "tenancy",
"value": "Shared",
},
{
"field": "capacitystatus",
"value": "Used",
},
])
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/pricing"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := pricing.GetProduct(ctx, &pricing.GetProductArgs{
ServiceCode: "AmazonEC2",
Filters: []pricing.GetProductFilter{
{
Field: "instanceType",
Value: "c5.xlarge",
},
{
Field: "operatingSystem",
Value: "Linux",
},
{
Field: "location",
Value: "US East (N. Virginia)",
},
{
Field: "preInstalledSw",
Value: "NA",
},
{
Field: "licenseModel",
Value: "No License required",
},
{
Field: "tenancy",
Value: "Shared",
},
{
Field: "capacitystatus",
Value: "Used",
},
},
}, nil)
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = Aws.Pricing.GetProduct.Invoke(new()
{
ServiceCode = "AmazonEC2",
Filters = new[]
{
new Aws.Pricing.Inputs.GetProductFilterInputArgs
{
Field = "instanceType",
Value = "c5.xlarge",
},
new Aws.Pricing.Inputs.GetProductFilterInputArgs
{
Field = "operatingSystem",
Value = "Linux",
},
new Aws.Pricing.Inputs.GetProductFilterInputArgs
{
Field = "location",
Value = "US East (N. Virginia)",
},
new Aws.Pricing.Inputs.GetProductFilterInputArgs
{
Field = "preInstalledSw",
Value = "NA",
},
new Aws.Pricing.Inputs.GetProductFilterInputArgs
{
Field = "licenseModel",
Value = "No License required",
},
new Aws.Pricing.Inputs.GetProductFilterInputArgs
{
Field = "tenancy",
Value = "Shared",
},
new Aws.Pricing.Inputs.GetProductFilterInputArgs
{
Field = "capacitystatus",
Value = "Used",
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.pricing.PricingFunctions;
import com.pulumi.aws.pricing.inputs.GetProductArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var example = PricingFunctions.getProduct(GetProductArgs.builder()
.serviceCode("AmazonEC2")
.filters(
GetProductFilterArgs.builder()
.field("instanceType")
.value("c5.xlarge")
.build(),
GetProductFilterArgs.builder()
.field("operatingSystem")
.value("Linux")
.build(),
GetProductFilterArgs.builder()
.field("location")
.value("US East (N. Virginia)")
.build(),
GetProductFilterArgs.builder()
.field("preInstalledSw")
.value("NA")
.build(),
GetProductFilterArgs.builder()
.field("licenseModel")
.value("No License required")
.build(),
GetProductFilterArgs.builder()
.field("tenancy")
.value("Shared")
.build(),
GetProductFilterArgs.builder()
.field("capacitystatus")
.value("Used")
.build())
.build());
}
}
variables:
example:
fn::invoke:
function: aws:pricing:getProduct
arguments:
serviceCode: AmazonEC2
filters:
- field: instanceType
value: c5.xlarge
- field: operatingSystem
value: Linux
- field: location
value: US East (N. Virginia)
- field: preInstalledSw
value: NA
- field: licenseModel
value: No License required
- field: tenancy
value: Shared
- field: capacitystatus
value: Used
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = aws.pricing.getProduct({
serviceCode: "AmazonRedshift",
filters: [
{
field: "instanceType",
value: "ds1.xlarge",
},
{
field: "location",
value: "US East (N. Virginia)",
},
],
});
import pulumi
import pulumi_aws as aws
example = aws.pricing.get_product(service_code="AmazonRedshift",
filters=[
{
"field": "instanceType",
"value": "ds1.xlarge",
},
{
"field": "location",
"value": "US East (N. Virginia)",
},
])
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/pricing"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := pricing.GetProduct(ctx, &pricing.GetProductArgs{
ServiceCode: "AmazonRedshift",
Filters: []pricing.GetProductFilter{
{
Field: "instanceType",
Value: "ds1.xlarge",
},
{
Field: "location",
Value: "US East (N. Virginia)",
},
},
}, nil)
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = Aws.Pricing.GetProduct.Invoke(new()
{
ServiceCode = "AmazonRedshift",
Filters = new[]
{
new Aws.Pricing.Inputs.GetProductFilterInputArgs
{
Field = "instanceType",
Value = "ds1.xlarge",
},
new Aws.Pricing.Inputs.GetProductFilterInputArgs
{
Field = "location",
Value = "US East (N. Virginia)",
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.pricing.PricingFunctions;
import com.pulumi.aws.pricing.inputs.GetProductArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var example = PricingFunctions.getProduct(GetProductArgs.builder()
.serviceCode("AmazonRedshift")
.filters(
GetProductFilterArgs.builder()
.field("instanceType")
.value("ds1.xlarge")
.build(),
GetProductFilterArgs.builder()
.field("location")
.value("US East (N. Virginia)")
.build())
.build());
}
}
variables:
example:
fn::invoke:
function: aws:pricing:getProduct
arguments:
serviceCode: AmazonRedshift
filters:
- field: instanceType
value: ds1.xlarge
- field: location
value: US East (N. Virginia)
Using getProduct
Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.
function getProduct(args: GetProductArgs, opts?: InvokeOptions): Promise<GetProductResult>
function getProductOutput(args: GetProductOutputArgs, opts?: InvokeOptions): Output<GetProductResult>def get_product(filters: Optional[Sequence[GetProductFilter]] = None,
service_code: Optional[str] = None,
opts: Optional[InvokeOptions] = None) -> GetProductResult
def get_product_output(filters: Optional[pulumi.Input[Sequence[pulumi.Input[GetProductFilterArgs]]]] = None,
service_code: Optional[pulumi.Input[str]] = None,
opts: Optional[InvokeOptions] = None) -> Output[GetProductResult]func GetProduct(ctx *Context, args *GetProductArgs, opts ...InvokeOption) (*GetProductResult, error)
func GetProductOutput(ctx *Context, args *GetProductOutputArgs, opts ...InvokeOption) GetProductResultOutput> Note: This function is named GetProduct in the Go SDK.
public static class GetProduct
{
public static Task<GetProductResult> InvokeAsync(GetProductArgs args, InvokeOptions? opts = null)
public static Output<GetProductResult> Invoke(GetProductInvokeArgs args, InvokeOptions? opts = null)
}public static CompletableFuture<GetProductResult> getProduct(GetProductArgs args, InvokeOptions options)
public static Output<GetProductResult> getProduct(GetProductArgs args, InvokeOptions options)
fn::invoke:
function: aws:pricing/getProduct:getProduct
arguments:
# arguments dictionaryThe following arguments are supported:
- Filters
List<Get
Product Filter> - List of filters. Passed directly to the API (see GetProducts API reference). These filters must describe a single product, this resource will fail if more than one product is returned by the API.
- Service
Code string - Code of the service. Available service codes can be fetched using the DescribeServices pricing API call.
- Filters
[]Get
Product Filter - List of filters. Passed directly to the API (see GetProducts API reference). These filters must describe a single product, this resource will fail if more than one product is returned by the API.
- Service
Code string - Code of the service. Available service codes can be fetched using the DescribeServices pricing API call.
- filters
List<Get
Product Filter> - List of filters. Passed directly to the API (see GetProducts API reference). These filters must describe a single product, this resource will fail if more than one product is returned by the API.
- service
Code String - Code of the service. Available service codes can be fetched using the DescribeServices pricing API call.
- filters
Get
Product Filter[] - List of filters. Passed directly to the API (see GetProducts API reference). These filters must describe a single product, this resource will fail if more than one product is returned by the API.
- service
Code string - Code of the service. Available service codes can be fetched using the DescribeServices pricing API call.
- filters
Sequence[Get
Product Filter] - List of filters. Passed directly to the API (see GetProducts API reference). These filters must describe a single product, this resource will fail if more than one product is returned by the API.
- service_
code str - Code of the service. Available service codes can be fetched using the DescribeServices pricing API call.
- filters List<Property Map>
- List of filters. Passed directly to the API (see GetProducts API reference). These filters must describe a single product, this resource will fail if more than one product is returned by the API.
- service
Code String - Code of the service. Available service codes can be fetched using the DescribeServices pricing API call.
getProduct Result
The following output properties are available:
- Filters
List<Get
Product Filter> - Id string
- The provider-assigned unique ID for this managed resource.
- Result string
- Set to the product returned from the API.
- Service
Code string
- Filters
[]Get
Product Filter - Id string
- The provider-assigned unique ID for this managed resource.
- Result string
- Set to the product returned from the API.
- Service
Code string
- filters
List<Get
Product Filter> - id String
- The provider-assigned unique ID for this managed resource.
- result String
- Set to the product returned from the API.
- service
Code String
- filters
Get
Product Filter[] - id string
- The provider-assigned unique ID for this managed resource.
- result string
- Set to the product returned from the API.
- service
Code string
- filters
Sequence[Get
Product Filter] - id str
- The provider-assigned unique ID for this managed resource.
- result str
- Set to the product returned from the API.
- service_
code str
- filters List<Property Map>
- id String
- The provider-assigned unique ID for this managed resource.
- result String
- Set to the product returned from the API.
- service
Code String
Supporting Types
GetProductFilter
Package Details
- Repository
- AWS Classic pulumi/pulumi-aws
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
awsTerraform Provider.
