1. Packages
  2. AWS
  3. API Docs
  4. fis
  5. getExperimentTemplates
AWS v7.11.0 published on Wednesday, Nov 5, 2025 by Pulumi

aws.fis.getExperimentTemplates

Start a Neo task
Explain and create an aws.fis.getExperimentTemplates resource
aws logo
AWS v7.11.0 published on Wednesday, Nov 5, 2025 by Pulumi

    This resource can be useful for getting back a set of FIS experiment template IDs.

    Example Usage

    The following shows outputting a list of all FIS experiment template IDs

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    export = async () => {
        const all = await aws.fis.getExperimentTemplates({});
        return {
            all: all.ids,
        };
    }
    
    import pulumi
    import pulumi_aws as aws
    
    all = aws.fis.get_experiment_templates()
    pulumi.export("all", all.ids)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/fis"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		all, err := fis.GetExperimentTemplates(ctx, &fis.GetExperimentTemplatesArgs{}, nil)
    		if err != nil {
    			return err
    		}
    		ctx.Export("all", all.Ids)
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var all = Aws.Fis.GetExperimentTemplates.Invoke();
    
        return new Dictionary<string, object?>
        {
            ["all"] = all.Apply(getExperimentTemplatesResult => getExperimentTemplatesResult.Ids),
        };
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.fis.FisFunctions;
    import com.pulumi.aws.fis.inputs.GetExperimentTemplatesArgs;
    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 all = FisFunctions.getExperimentTemplates(GetExperimentTemplatesArgs.builder()
                .build());
    
            ctx.export("all", all.ids());
        }
    }
    
    variables:
      all:
        fn::invoke:
          function: aws:fis:getExperimentTemplates
          arguments: {}
    outputs:
      all: ${all.ids}
    

    The following shows filtering FIS experiment templates by tag

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const example = aws.fis.getExperimentTemplates({
        tags: {
            Name: "example",
            Tier: "1",
        },
    });
    const exampleGetPolicyDocument = example.then(example => aws.iam.getPolicyDocument({
        statements: [{
            sid: "StartFISExperiment",
            effect: "Allow",
            actions: ["fis:StartExperiment"],
            resources: [
                `arn:aws:fis:*:*:experiment-template/${example.ids?.[0]}`,
                "arn:aws:fis:*:*:experiment/*",
            ],
        }],
    }));
    
    import pulumi
    import pulumi_aws as aws
    
    example = aws.fis.get_experiment_templates(tags={
        "Name": "example",
        "Tier": "1",
    })
    example_get_policy_document = aws.iam.get_policy_document(statements=[{
        "sid": "StartFISExperiment",
        "effect": "Allow",
        "actions": ["fis:StartExperiment"],
        "resources": [
            f"arn:aws:fis:*:*:experiment-template/{example.ids[0]}",
            "arn:aws:fis:*:*:experiment/*",
        ],
    }])
    
    package main
    
    import (
    	"fmt"
    
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/fis"
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		example, err := fis.GetExperimentTemplates(ctx, &fis.GetExperimentTemplatesArgs{
    			Tags: map[string]interface{}{
    				"Name": "example",
    				"Tier": "1",
    			},
    		}, nil)
    		if err != nil {
    			return err
    		}
    		_, err = iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
    			Statements: []iam.GetPolicyDocumentStatement{
    				{
    					Sid:    pulumi.StringRef("StartFISExperiment"),
    					Effect: pulumi.StringRef("Allow"),
    					Actions: []string{
    						"fis:StartExperiment",
    					},
    					Resources: []string{
    						fmt.Sprintf("arn:aws:fis:*:*:experiment-template/%v", example.Ids[0]),
    						"arn:aws:fis:*:*:experiment/*",
    					},
    				},
    			},
    		}, 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.Fis.GetExperimentTemplates.Invoke(new()
        {
            Tags = 
            {
                { "Name", "example" },
                { "Tier", "1" },
            },
        });
    
        var exampleGetPolicyDocument = Aws.Iam.GetPolicyDocument.Invoke(new()
        {
            Statements = new[]
            {
                new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs
                {
                    Sid = "StartFISExperiment",
                    Effect = "Allow",
                    Actions = new[]
                    {
                        "fis:StartExperiment",
                    },
                    Resources = new[]
                    {
                        $"arn:aws:fis:*:*:experiment-template/{example.Apply(getExperimentTemplatesResult => getExperimentTemplatesResult.Ids[0])}",
                        "arn:aws:fis:*:*:experiment/*",
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.fis.FisFunctions;
    import com.pulumi.aws.fis.inputs.GetExperimentTemplatesArgs;
    import com.pulumi.aws.iam.IamFunctions;
    import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
    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 = FisFunctions.getExperimentTemplates(GetExperimentTemplatesArgs.builder()
                .tags(Map.ofEntries(
                    Map.entry("Name", "example"),
                    Map.entry("Tier", "1")
                ))
                .build());
    
            final var exampleGetPolicyDocument = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                .statements(GetPolicyDocumentStatementArgs.builder()
                    .sid("StartFISExperiment")
                    .effect("Allow")
                    .actions("fis:StartExperiment")
                    .resources(                
                        String.format("arn:aws:fis:*:*:experiment-template/%s", example.ids()[0]),
                        "arn:aws:fis:*:*:experiment/*")
                    .build())
                .build());
    
        }
    }
    
    variables:
      example:
        fn::invoke:
          function: aws:fis:getExperimentTemplates
          arguments:
            tags:
              Name: example
              Tier: 1
      exampleGetPolicyDocument:
        fn::invoke:
          function: aws:iam:getPolicyDocument
          arguments:
            statements:
              - sid: StartFISExperiment
                effect: Allow
                actions:
                  - fis:StartExperiment
                resources:
                  - arn:aws:fis:*:*:experiment-template/${example.ids[0]}
                  - arn:aws:fis:*:*:experiment/*
    

    Using getExperimentTemplates

    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 getExperimentTemplates(args: GetExperimentTemplatesArgs, opts?: InvokeOptions): Promise<GetExperimentTemplatesResult>
    function getExperimentTemplatesOutput(args: GetExperimentTemplatesOutputArgs, opts?: InvokeOptions): Output<GetExperimentTemplatesResult>
    def get_experiment_templates(region: Optional[str] = None,
                                 tags: Optional[Mapping[str, str]] = None,
                                 opts: Optional[InvokeOptions] = None) -> GetExperimentTemplatesResult
    def get_experiment_templates_output(region: Optional[pulumi.Input[str]] = None,
                                 tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
                                 opts: Optional[InvokeOptions] = None) -> Output[GetExperimentTemplatesResult]
    func GetExperimentTemplates(ctx *Context, args *GetExperimentTemplatesArgs, opts ...InvokeOption) (*GetExperimentTemplatesResult, error)
    func GetExperimentTemplatesOutput(ctx *Context, args *GetExperimentTemplatesOutputArgs, opts ...InvokeOption) GetExperimentTemplatesResultOutput

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

    public static class GetExperimentTemplates 
    {
        public static Task<GetExperimentTemplatesResult> InvokeAsync(GetExperimentTemplatesArgs args, InvokeOptions? opts = null)
        public static Output<GetExperimentTemplatesResult> Invoke(GetExperimentTemplatesInvokeArgs args, InvokeOptions? opts = null)
    }
    public static CompletableFuture<GetExperimentTemplatesResult> getExperimentTemplates(GetExperimentTemplatesArgs args, InvokeOptions options)
    public static Output<GetExperimentTemplatesResult> getExperimentTemplates(GetExperimentTemplatesArgs args, InvokeOptions options)
    
    fn::invoke:
      function: aws:fis/getExperimentTemplates:getExperimentTemplates
      arguments:
        # arguments dictionary

    The following arguments are supported:

    Region string
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    Tags Dictionary<string, string>
    Map of tags, each pair of which must exactly match a pair on the desired experiment templates.
    Region string
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    Tags map[string]string
    Map of tags, each pair of which must exactly match a pair on the desired experiment templates.
    region String
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    tags Map<String,String>
    Map of tags, each pair of which must exactly match a pair on the desired experiment templates.
    region string
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    tags {[key: string]: string}
    Map of tags, each pair of which must exactly match a pair on the desired experiment templates.
    region str
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    tags Mapping[str, str]
    Map of tags, each pair of which must exactly match a pair on the desired experiment templates.
    region String
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    tags Map<String>
    Map of tags, each pair of which must exactly match a pair on the desired experiment templates.

    getExperimentTemplates Result

    The following output properties are available:

    Id string
    The provider-assigned unique ID for this managed resource.
    Ids List<string>
    List of all the experiment template ids found.
    Region string
    Tags Dictionary<string, string>
    Id string
    The provider-assigned unique ID for this managed resource.
    Ids []string
    List of all the experiment template ids found.
    Region string
    Tags map[string]string
    id String
    The provider-assigned unique ID for this managed resource.
    ids List<String>
    List of all the experiment template ids found.
    region String
    tags Map<String,String>
    id string
    The provider-assigned unique ID for this managed resource.
    ids string[]
    List of all the experiment template ids found.
    region string
    tags {[key: string]: string}
    id str
    The provider-assigned unique ID for this managed resource.
    ids Sequence[str]
    List of all the experiment template ids found.
    region str
    tags Mapping[str, str]
    id String
    The provider-assigned unique ID for this managed resource.
    ids List<String>
    List of all the experiment template ids found.
    region String
    tags Map<String>

    Package Details

    Repository
    AWS Classic pulumi/pulumi-aws
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the aws Terraform Provider.
    aws logo
    AWS v7.11.0 published on Wednesday, Nov 5, 2025 by Pulumi
      Meet Neo: Your AI Platform Teammate