1. Packages
  2. AWS
  3. API Docs
  4. fis
  5. getExperimentTemplates
AWS v6.80.0 published on Tuesday, May 6, 2025 by Pulumi

aws.fis.getExperimentTemplates

Explore with Pulumi AI

aws logo
AWS v6.80.0 published on Tuesday, May 6, 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/v6/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/v6/go/aws/fis"
    	"github.com/pulumi/pulumi-aws/sdk/v6/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(tags: Optional[Mapping[str, str]] = None,
                                 opts: Optional[InvokeOptions] = None) -> GetExperimentTemplatesResult
    def get_experiment_templates_output(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:

    Tags Dictionary<string, string>
    Map of tags, each pair of which must exactly match a pair on the desired experiment templates.
    Tags map[string]string
    Map of tags, each pair of which must exactly match a pair on the desired experiment templates.
    tags Map<String,String>
    Map of tags, each pair of which must exactly match a pair on the desired experiment templates.
    tags {[key: string]: string}
    Map of tags, each pair of which must exactly match a pair on the desired experiment templates.
    tags Mapping[str, str]
    Map of tags, each pair of which must exactly match a pair on the desired experiment templates.
    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.
    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.
    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.
    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.
    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.
    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.
    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 v6.80.0 published on Tuesday, May 6, 2025 by Pulumi