Try AWS Native preview for resources not in the classic version.
aws.pricing.getProduct
Explore with Pulumi AI
Try AWS Native preview for resources not in the classic version.
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/v6/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/v6/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)
// Output-based functions aren't available in Java yet
fn::invoke:
  function: aws:pricing/getProduct:getProduct
  arguments:
    # arguments dictionaryThe following arguments are supported:
- Filters
List<GetProduct 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.
- ServiceCode string
- Code of the service. Available service codes can be fetched using the DescribeServices pricing API call.
- Filters
[]GetProduct 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.
- ServiceCode string
- Code of the service. Available service codes can be fetched using the DescribeServices pricing API call.
- filters
List<GetProduct 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.
- serviceCode String
- Code of the service. Available service codes can be fetched using the DescribeServices pricing API call.
- filters
GetProduct 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.
- serviceCode string
- Code of the service. Available service codes can be fetched using the DescribeServices pricing API call.
- filters
Sequence[GetProduct 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.
- serviceCode 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<GetProduct Filter> 
- Id string
- The provider-assigned unique ID for this managed resource.
- Result string
- Set to the product returned from the API.
- ServiceCode string
- Filters
[]GetProduct Filter 
- Id string
- The provider-assigned unique ID for this managed resource.
- Result string
- Set to the product returned from the API.
- ServiceCode string
- filters
List<GetProduct Filter> 
- id String
- The provider-assigned unique ID for this managed resource.
- result String
- Set to the product returned from the API.
- serviceCode String
- filters
GetProduct Filter[] 
- id string
- The provider-assigned unique ID for this managed resource.
- result string
- Set to the product returned from the API.
- serviceCode string
- filters
Sequence[GetProduct 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.
- serviceCode 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.
Try AWS Native preview for resources not in the classic version.