1. Registry
  2. Packages
  3. Scaleway
  4. API Docs
  5. observability
  6. getProducts
Viewing docs for Scaleway v1.54.0
published on Friday, Jul 31, 2026 by pulumiverse
scaleway logo
Viewing docs for Scaleway v1.54.0
published on Friday, Jul 31, 2026 by pulumiverse

    Gets the list of Cockpit products available for a specific region.

    Use this data source to retrieve the list of products that can be exported via scaleway.observability.Exporter. The products are returned with their machine-readable name, display name, and family name.

    Refer to Cockpit’s product documentation and API documentation for more information.

    Example Usage

    Get all available products

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    const main = scaleway.observability.getProducts({
        region: "fr-par",
    });
    export const availableProducts = main.then(main => main.products);
    
    import pulumi
    import pulumi_scaleway as scaleway
    
    main = scaleway.observability.get_products(region="fr-par")
    pulumi.export("availableProducts", main.products)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/observability"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		main, err := observability.GetProducts(ctx, &observability.GetProductsArgs{
    			Region: pulumi.StringRef("fr-par"),
    		}, nil)
    		if err != nil {
    			return err
    		}
    		ctx.Export("availableProducts", main.Products)
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Scaleway = Pulumiverse.Scaleway;
    
    return await Deployment.RunAsync(() => 
    {
        var main = Scaleway.Observability.GetProducts.Invoke(new()
        {
            Region = "fr-par",
        });
    
        return new Dictionary<string, object?>
        {
            ["availableProducts"] = main.Apply(getProductsResult => getProductsResult.Products),
        };
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.observability.ObservabilityFunctions;
    import com.pulumi.scaleway.observability.inputs.GetProductsArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    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 main = ObservabilityFunctions.getProducts(GetProductsArgs.builder()
                .region("fr-par")
                .build());
    
            ctx.export("availableProducts", main.products());
        }
    }
    
    variables:
      main:
        fn::invoke:
          function: scaleway:observability:getProducts
          arguments:
            region: fr-par
    outputs:
      availableProducts: ${main.products}
    
    Example coming soon!
    

    Use with cockpitExporter

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    const main = scaleway.observability.getProducts({
        region: "fr-par",
    });
    const mainExporter = new scaleway.observability.Exporter("main", {
        name: "my-exporter",
        region: "fr-par",
        exportedProducts: main.then(main => main.names),
    });
    
    import pulumi
    import pulumi_scaleway as scaleway
    import pulumiverse_scaleway as scaleway
    
    main = scaleway.observability.get_products(region="fr-par")
    main_exporter = scaleway.observability.Exporter("main",
        name="my-exporter",
        region="fr-par",
        exported_products=main.names)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/observability"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		main, err := observability.GetProducts(ctx, &observability.GetProductsArgs{
    			Region: pulumi.StringRef("fr-par"),
    		}, nil)
    		if err != nil {
    			return err
    		}
    		_, err = observability.NewExporter(ctx, "main", &observability.ExporterArgs{
    			Name:             pulumi.String("my-exporter"),
    			Region:           pulumi.String("fr-par"),
    			ExportedProducts: toPulumiStringArray(main.Names),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    func toPulumiStringArray(arr []string) pulumi.StringArray {
    	var pulumiArr pulumi.StringArray
    	for _, v := range arr {
    		pulumiArr = append(pulumiArr, pulumi.String(v))
    	}
    	return pulumiArr
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Scaleway = Pulumiverse.Scaleway;
    
    return await Deployment.RunAsync(() => 
    {
        var main = Scaleway.Observability.GetProducts.Invoke(new()
        {
            Region = "fr-par",
        });
    
        var mainExporter = new Scaleway.Observability.Exporter("main", new()
        {
            Name = "my-exporter",
            Region = "fr-par",
            ExportedProducts = main.Apply(getProductsResult => getProductsResult.Names),
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.observability.ObservabilityFunctions;
    import com.pulumi.scaleway.observability.inputs.GetProductsArgs;
    import com.pulumi.scaleway.observability.Exporter;
    import com.pulumi.scaleway.observability.ExporterArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    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 main = ObservabilityFunctions.getProducts(GetProductsArgs.builder()
                .region("fr-par")
                .build());
    
            var mainExporter = new Exporter("mainExporter", ExporterArgs.builder()
                .name("my-exporter")
                .region("fr-par")
                .exportedProducts(main.names())
                .build());
    
        }
    }
    
    resources:
      mainExporter:
        type: scaleway:observability:Exporter
        name: main
        properties:
          name: my-exporter
          region: fr-par
          exportedProducts: ${main.names}
    variables:
      main:
        fn::invoke:
          function: scaleway:observability:getProducts
          arguments:
            region: fr-par
    
    Example coming soon!
    

    Filter products by family

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    const main = scaleway.observability.getProducts({
        region: "fr-par",
    });
    // Filter to only compute products
    const computeProducts = main.then(main => .filter(p => p.familyName == "Compute").map(p => (p.name)));
    export const computeProductNames = computeProducts;
    
    import pulumi
    import pulumi_scaleway as scaleway
    
    main = scaleway.observability.get_products(region="fr-par")
    # Filter to only compute products
    compute_products = [p.name for p in main.products if p.family_name == "Compute"]
    pulumi.export("computeProductNames", compute_products)
    
    Example coming soon!
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Scaleway = Pulumiverse.Scaleway;
    
    return await Deployment.RunAsync(() => 
    {
        var main = Scaleway.Observability.GetProducts.Invoke(new()
        {
            Region = "fr-par",
        });
    
        // Filter to only compute products
        var computeProducts = .Where(p => p.FamilyName == "Compute").Select(p => 
        {
            return p.Name;
        }).ToList();
    
        return new Dictionary<string, object?>
        {
            ["computeProductNames"] = computeProducts,
        };
    });
    
    Example coming soon!
    
    Example coming soon!
    
    Example coming soon!
    

    Using getProducts

    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 getProducts(args: GetProductsArgs, opts?: InvokeOptions): Promise<GetProductsResult>
    function getProductsOutput(args: GetProductsOutputArgs, opts?: InvokeOutputOptions): Output<GetProductsResult>
    def get_products(region: Optional[str] = None,
                     opts: Optional[InvokeOptions] = None) -> GetProductsResult
    def get_products_output(region: pulumi.Input[Optional[str]] = None,
                     opts: Optional[InvokeOutputOptions] = None) -> Output[GetProductsResult]
    func GetProducts(ctx *Context, args *GetProductsArgs, opts ...InvokeOption) (*GetProductsResult, error)
    func GetProductsOutput(ctx *Context, args *GetProductsOutputArgs, opts ...InvokeOption) GetProductsResultOutput

    > Note: This function is named GetProducts in the Go SDK.

    public static class GetProducts 
    {
        public static Task<GetProductsResult> InvokeAsync(GetProductsArgs args, InvokeOptions? opts = null)
        public static Output<GetProductsResult> Invoke(GetProductsInvokeArgs args, InvokeOptions? opts = null)
        public static Output<GetProductsResult> Invoke(GetProductsInvokeArgs args, InvokeOutputOptions opts)
    }
    public static CompletableFuture<GetProductsResult> getProducts(GetProductsArgs args, InvokeOptions options)
    public static Output<GetProductsResult> getProducts(GetProductsArgs args, InvokeOptions options)
    public static Output<GetProductsResult> getProducts(GetProductsArgs args, InvokeOutputOptions options)
    
    fn::invoke:
      function: scaleway:observability/getProducts:getProducts
      arguments:
        # arguments dictionary
    data "scaleway_observability_get_products" "name" {
        # arguments
    }

    The following arguments are supported:

    Region string
    The region to query. Defaults to the region configured in the provider.
    Region string
    The region to query. Defaults to the region configured in the provider.
    region string
    The region to query. Defaults to the region configured in the provider.
    region String
    The region to query. Defaults to the region configured in the provider.
    region string
    The region to query. Defaults to the region configured in the provider.
    region str
    The region to query. Defaults to the region configured in the provider.
    region String
    The region to query. Defaults to the region configured in the provider.

    getProducts Result

    The following output properties are available:

    Id string
    The provider-assigned unique ID for this managed resource.
    Names List<string>
    List of product names that can be directly used in scaleway_cockpit_exporter.exported_products.
    Products List<Pulumiverse.Scaleway.Observability.Outputs.GetProductsProduct>
    List of available Cockpit products. (see below)
    Region string
    Id string
    The provider-assigned unique ID for this managed resource.
    Names []string
    List of product names that can be directly used in scaleway_cockpit_exporter.exported_products.
    Products []GetProductsProduct
    List of available Cockpit products. (see below)
    Region string
    id string
    The provider-assigned unique ID for this managed resource.
    names list(string)
    List of product names that can be directly used in scaleway_cockpit_exporter.exported_products.
    products list(object)
    List of available Cockpit products. (see below)
    region string
    id String
    The provider-assigned unique ID for this managed resource.
    names List<String>
    List of product names that can be directly used in scaleway_cockpit_exporter.exported_products.
    products List<GetProductsProduct>
    List of available Cockpit products. (see below)
    region String
    id string
    The provider-assigned unique ID for this managed resource.
    names string[]
    List of product names that can be directly used in scaleway_cockpit_exporter.exported_products.
    products GetProductsProduct[]
    List of available Cockpit products. (see below)
    region string
    id str
    The provider-assigned unique ID for this managed resource.
    names Sequence[str]
    List of product names that can be directly used in scaleway_cockpit_exporter.exported_products.
    products Sequence[GetProductsProduct]
    List of available Cockpit products. (see below)
    region str
    id String
    The provider-assigned unique ID for this managed resource.
    names List<String>
    List of product names that can be directly used in scaleway_cockpit_exporter.exported_products.
    products List<Property Map>
    List of available Cockpit products. (see below)
    region String

    Supporting Types

    GetProductsProduct

    DisplayName string
    Human-readable display name of the product.
    FamilyName string
    Product family category (e.g. Compute, Network, Storage).
    Name string
    The machine-readable product name to use in exportedProducts (e.g. cockpit, lb, object-storage).
    DisplayName string
    Human-readable display name of the product.
    FamilyName string
    Product family category (e.g. Compute, Network, Storage).
    Name string
    The machine-readable product name to use in exportedProducts (e.g. cockpit, lb, object-storage).
    display_name string
    Human-readable display name of the product.
    family_name string
    Product family category (e.g. Compute, Network, Storage).
    name string
    The machine-readable product name to use in exportedProducts (e.g. cockpit, lb, object-storage).
    displayName String
    Human-readable display name of the product.
    familyName String
    Product family category (e.g. Compute, Network, Storage).
    name String
    The machine-readable product name to use in exportedProducts (e.g. cockpit, lb, object-storage).
    displayName string
    Human-readable display name of the product.
    familyName string
    Product family category (e.g. Compute, Network, Storage).
    name string
    The machine-readable product name to use in exportedProducts (e.g. cockpit, lb, object-storage).
    display_name str
    Human-readable display name of the product.
    family_name str
    Product family category (e.g. Compute, Network, Storage).
    name str
    The machine-readable product name to use in exportedProducts (e.g. cockpit, lb, object-storage).
    displayName String
    Human-readable display name of the product.
    familyName String
    Product family category (e.g. Compute, Network, Storage).
    name String
    The machine-readable product name to use in exportedProducts (e.g. cockpit, lb, object-storage).

    Package Details

    Repository
    scaleway pulumiverse/pulumi-scaleway
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the scaleway Terraform Provider.
    scaleway logo
    Viewing docs for Scaleway v1.54.0
    published on Friday, Jul 31, 2026 by pulumiverse

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial