AWS Native is in preview. AWS Classic is fully supported.
aws-native.fis.ExperimentTemplate
Explore with Pulumi AI
AWS Native is in preview. AWS Classic is fully supported.
Resource schema for AWS::FIS::ExperimentTemplate
Example Usage
Example
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AwsNative = Pulumi.AwsNative;
return await Deployment.RunAsync(() =>
{
var fisRole = new AwsNative.Iam.Role("fisRole", new()
{
AssumeRolePolicyDocument = new Dictionary<string, object?>
{
["version"] = "2012-10-17",
["statement"] = new[]
{
new Dictionary<string, object?>
{
["effect"] = "Allow",
["principal"] = new Dictionary<string, object?>
{
["service"] = "fis.amazonaws.com",
},
["action"] = "sts:AssumeRole",
},
},
},
Policies = new[]
{
new AwsNative.Iam.Inputs.RolePolicyArgs
{
PolicyName = "FISRoleEC2Actions",
PolicyDocument = new Dictionary<string, object?>
{
["version"] = "2012-10-17",
["statement"] = new[]
{
new Dictionary<string, object?>
{
["effect"] = "Allow",
["action"] = new[]
{
"ec2:RebootInstances",
"ec2:StopInstances",
"ec2:StartInstances",
"ec2:TerminateInstances",
},
["resource"] = "arn:aws:ec2:*:*:instance/*",
},
},
},
},
},
});
var experimentTemplate = new AwsNative.Fis.ExperimentTemplate("experimentTemplate", new()
{
Description = "stop an instance based on a tag",
Actions =
{
{ "stopInstances", new AwsNative.Fis.Inputs.ExperimentTemplateActionArgs
{
ActionId = "aws:ec2:stop-instances",
Parameters =
{
{ "startInstancesAfterDuration", "PT2M" },
},
Targets =
{
{ "instances", "oneRandomInstance" },
},
} },
},
Targets =
{
{ "oneRandomInstance", new AwsNative.Fis.Inputs.ExperimentTemplateTargetArgs
{
ResourceTags =
{
{ "env", "prod" },
},
ResourceType = "aws:ec2:instance",
SelectionMode = "COUNT(1)",
} },
},
StopConditions = new[]
{
new AwsNative.Fis.Inputs.ExperimentTemplateStopConditionArgs
{
Source = "none",
},
},
Tags =
{
{ "name", "fisStopInstances" },
},
RoleArn = fisRole.Arn,
});
});
package main
import (
"github.com/pulumi/pulumi-aws-native/sdk/go/aws/fis"
"github.com/pulumi/pulumi-aws-native/sdk/go/aws/iam"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
fisRole, err := iam.NewRole(ctx, "fisRole", &iam.RoleArgs{
AssumeRolePolicyDocument: pulumi.Any(map[string]interface{}{
"version": "2012-10-17",
"statement": []map[string]interface{}{
map[string]interface{}{
"effect": "Allow",
"principal": map[string]interface{}{
"service": "fis.amazonaws.com",
},
"action": "sts:AssumeRole",
},
},
}),
Policies: iam.RolePolicyTypeArray{
&iam.RolePolicyTypeArgs{
PolicyName: pulumi.String("FISRoleEC2Actions"),
PolicyDocument: pulumi.Any(map[string]interface{}{
"version": "2012-10-17",
"statement": []map[string]interface{}{
map[string]interface{}{
"effect": "Allow",
"action": []string{
"ec2:RebootInstances",
"ec2:StopInstances",
"ec2:StartInstances",
"ec2:TerminateInstances",
},
"resource": "arn:aws:ec2:*:*:instance/*",
},
},
}),
},
},
})
if err != nil {
return err
}
_, err = fis.NewExperimentTemplate(ctx, "experimentTemplate", &fis.ExperimentTemplateArgs{
Description: pulumi.String("stop an instance based on a tag"),
Actions: fis.ExperimentTemplateActionMap{
"stopInstances": &fis.ExperimentTemplateActionArgs{
ActionId: pulumi.String("aws:ec2:stop-instances"),
Parameters: pulumi.StringMap{
"startInstancesAfterDuration": pulumi.String("PT2M"),
},
Targets: pulumi.StringMap{
"instances": pulumi.String("oneRandomInstance"),
},
},
},
Targets: fis.ExperimentTemplateTargetMap{
"oneRandomInstance": &fis.ExperimentTemplateTargetArgs{
ResourceTags: pulumi.StringMap{
"env": pulumi.String("prod"),
},
ResourceType: pulumi.String("aws:ec2:instance"),
SelectionMode: pulumi.String("COUNT(1)"),
},
},
StopConditions: fis.ExperimentTemplateStopConditionArray{
&fis.ExperimentTemplateStopConditionArgs{
Source: pulumi.String("none"),
},
},
Tags: pulumi.StringMap{
"name": pulumi.String("fisStopInstances"),
},
RoleArn: fisRole.Arn,
})
if err != nil {
return err
}
return nil
})
}
Coming soon!
import pulumi
import pulumi_aws_native as aws_native
fis_role = aws_native.iam.Role("fisRole",
assume_role_policy_document={
"version": "2012-10-17",
"statement": [{
"effect": "Allow",
"principal": {
"service": "fis.amazonaws.com",
},
"action": "sts:AssumeRole",
}],
},
policies=[aws_native.iam.RolePolicyArgs(
policy_name="FISRoleEC2Actions",
policy_document={
"version": "2012-10-17",
"statement": [{
"effect": "Allow",
"action": [
"ec2:RebootInstances",
"ec2:StopInstances",
"ec2:StartInstances",
"ec2:TerminateInstances",
],
"resource": "arn:aws:ec2:*:*:instance/*",
}],
},
)])
experiment_template = aws_native.fis.ExperimentTemplate("experimentTemplate",
description="stop an instance based on a tag",
actions={
"stopInstances": aws_native.fis.ExperimentTemplateActionArgs(
action_id="aws:ec2:stop-instances",
parameters={
"startInstancesAfterDuration": "PT2M",
},
targets={
"instances": "oneRandomInstance",
},
),
},
targets={
"oneRandomInstance": aws_native.fis.ExperimentTemplateTargetArgs(
resource_tags={
"env": "prod",
},
resource_type="aws:ec2:instance",
selection_mode="COUNT(1)",
),
},
stop_conditions=[aws_native.fis.ExperimentTemplateStopConditionArgs(
source="none",
)],
tags={
"name": "fisStopInstances",
},
role_arn=fis_role.arn)
import * as pulumi from "@pulumi/pulumi";
import * as aws_native from "@pulumi/aws-native";
const fisRole = new aws_native.iam.Role("fisRole", {
assumeRolePolicyDocument: {
version: "2012-10-17",
statement: [{
effect: "Allow",
principal: {
service: "fis.amazonaws.com",
},
action: "sts:AssumeRole",
}],
},
policies: [{
policyName: "FISRoleEC2Actions",
policyDocument: {
version: "2012-10-17",
statement: [{
effect: "Allow",
action: [
"ec2:RebootInstances",
"ec2:StopInstances",
"ec2:StartInstances",
"ec2:TerminateInstances",
],
resource: "arn:aws:ec2:*:*:instance/*",
}],
},
}],
});
const experimentTemplate = new aws_native.fis.ExperimentTemplate("experimentTemplate", {
description: "stop an instance based on a tag",
actions: {
stopInstances: {
actionId: "aws:ec2:stop-instances",
parameters: {
startInstancesAfterDuration: "PT2M",
},
targets: {
instances: "oneRandomInstance",
},
},
},
targets: {
oneRandomInstance: {
resourceTags: {
env: "prod",
},
resourceType: "aws:ec2:instance",
selectionMode: "COUNT(1)",
},
},
stopConditions: [{
source: "none",
}],
tags: {
name: "fisStopInstances",
},
roleArn: fisRole.arn,
});
Coming soon!
Create ExperimentTemplate Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new ExperimentTemplate(name: string, args: ExperimentTemplateArgs, opts?: CustomResourceOptions);
@overload
def ExperimentTemplate(resource_name: str,
args: ExperimentTemplateArgs,
opts: Optional[ResourceOptions] = None)
@overload
def ExperimentTemplate(resource_name: str,
opts: Optional[ResourceOptions] = None,
description: Optional[str] = None,
role_arn: Optional[str] = None,
stop_conditions: Optional[Sequence[ExperimentTemplateStopConditionArgs]] = None,
tags: Optional[Mapping[str, str]] = None,
targets: Optional[Mapping[str, ExperimentTemplateTargetArgs]] = None,
actions: Optional[Mapping[str, ExperimentTemplateActionArgs]] = None,
experiment_options: Optional[ExperimentTemplateExperimentOptionsArgs] = None,
log_configuration: Optional[ExperimentTemplateLogConfigurationArgs] = None)
func NewExperimentTemplate(ctx *Context, name string, args ExperimentTemplateArgs, opts ...ResourceOption) (*ExperimentTemplate, error)
public ExperimentTemplate(string name, ExperimentTemplateArgs args, CustomResourceOptions? opts = null)
public ExperimentTemplate(String name, ExperimentTemplateArgs args)
public ExperimentTemplate(String name, ExperimentTemplateArgs args, CustomResourceOptions options)
type: aws-native:fis:ExperimentTemplate
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args ExperimentTemplateArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args ExperimentTemplateArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args ExperimentTemplateArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args ExperimentTemplateArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args ExperimentTemplateArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Example
The following reference example uses placeholder values for all input properties.
Coming soon!
Coming soon!
Coming soon!
Coming soon!
const experimentTemplateResource = new aws_native.fis.ExperimentTemplate("experimentTemplateResource", {
description: "string",
roleArn: "string",
stopConditions: [{
source: "string",
value: "string",
}],
tags: {
string: "string",
},
targets: {
string: {
resourceType: "string",
selectionMode: "string",
filters: [{
path: "string",
values: ["string"],
}],
parameters: {
string: "string",
},
resourceArns: ["string"],
resourceTags: {
string: "string",
},
},
},
actions: {
string: {
actionId: "string",
description: "string",
parameters: {
string: "string",
},
startAfter: ["string"],
targets: {
string: "string",
},
},
},
experimentOptions: {
accountTargeting: aws_native.fis.ExperimentTemplateExperimentOptionsAccountTargeting.MultiAccount,
emptyTargetResolutionMode: aws_native.fis.ExperimentTemplateExperimentOptionsEmptyTargetResolutionMode.Fail,
},
logConfiguration: {
logSchemaVersion: 0,
cloudWatchLogsConfiguration: {
logGroupArn: "string",
},
s3Configuration: {
bucketName: "string",
prefix: "string",
},
},
});
Coming soon!
ExperimentTemplate Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
The ExperimentTemplate resource accepts the following input properties:
- Description string
- Role
Arn string - Stop
Conditions List<Pulumi.Aws Native. Fis. Inputs. Experiment Template Stop Condition> - Dictionary<string, string>
- Targets
Dictionary<string, Pulumi.
Aws Native. Fis. Inputs. Experiment Template Target Args> - Actions
Dictionary<string, Pulumi.
Aws Native. Fis. Inputs. Experiment Template Action Args> - Experiment
Options Pulumi.Aws Native. Fis. Inputs. Experiment Template Experiment Options - Log
Configuration Pulumi.Aws Native. Fis. Inputs. Experiment Template Log Configuration
- Description string
- Role
Arn string - Stop
Conditions []ExperimentTemplate Stop Condition Args - map[string]string
- Targets
map[string]Experiment
Template Target Args - Actions
map[string]Experiment
Template Action Args - Experiment
Options ExperimentTemplate Experiment Options Args - Log
Configuration ExperimentTemplate Log Configuration Args
- description String
- role
Arn String - stop
Conditions List<ExperimentTemplate Stop Condition> - Map<String,String>
- targets
Map<String,Experiment
Template Target Args> - actions
Map<String,Experiment
Template Action Args> - experiment
Options ExperimentTemplate Experiment Options - log
Configuration ExperimentTemplate Log Configuration
- description string
- role
Arn string - stop
Conditions ExperimentTemplate Stop Condition[] - {[key: string]: string}
- targets
{[key: string]: Experiment
Template Target Args} - actions
{[key: string]: Experiment
Template Action Args} - experiment
Options ExperimentTemplate Experiment Options - log
Configuration ExperimentTemplate Log Configuration
- description str
- role_
arn str - stop_
conditions Sequence[ExperimentTemplate Stop Condition Args] - Mapping[str, str]
- targets
Mapping[str, Experiment
Template Target Args] - actions
Mapping[str, Experiment
Template Action Args] - experiment_
options ExperimentTemplate Experiment Options Args - log_
configuration ExperimentTemplate Log Configuration Args
- description String
- role
Arn String - stop
Conditions List<Property Map> - Map<String>
- targets Map<Property Map>
- actions Map<Property Map>
- experiment
Options Property Map - log
Configuration Property Map
Outputs
All input properties are implicitly available as output properties. Additionally, the ExperimentTemplate resource produces the following output properties:
Supporting Types
ExperimentTemplateAction, ExperimentTemplateActionArgs
- Action
Id string - Description string
- Parameters Dictionary<string, string>
- The parameters for the action, if applicable.
- Start
After List<string> - Targets Dictionary<string, string>
- One or more targets for the action.
- Action
Id string - Description string
- Parameters map[string]string
- The parameters for the action, if applicable.
- Start
After []string - Targets map[string]string
- One or more targets for the action.
- action
Id String - description String
- parameters Map<String,String>
- The parameters for the action, if applicable.
- start
After List<String> - targets Map<String,String>
- One or more targets for the action.
- action
Id string - description string
- parameters {[key: string]: string}
- The parameters for the action, if applicable.
- start
After string[] - targets {[key: string]: string}
- One or more targets for the action.
- action_
id str - description str
- parameters Mapping[str, str]
- The parameters for the action, if applicable.
- start_
after Sequence[str] - targets Mapping[str, str]
- One or more targets for the action.
- action
Id String - description String
- parameters Map<String>
- The parameters for the action, if applicable.
- start
After List<String> - targets Map<String>
- One or more targets for the action.
ExperimentTemplateExperimentOptions, ExperimentTemplateExperimentOptionsArgs
- Account
Targeting Pulumi.Aws Native. Fis. Experiment Template Experiment Options Account Targeting - The account targeting setting for the experiment template.
- Empty
Target Pulumi.Resolution Mode Aws Native. Fis. Experiment Template Experiment Options Empty Target Resolution Mode - The target resolution failure mode for the experiment template.
- Account
Targeting ExperimentTemplate Experiment Options Account Targeting - The account targeting setting for the experiment template.
- Empty
Target ExperimentResolution Mode Template Experiment Options Empty Target Resolution Mode - The target resolution failure mode for the experiment template.
- account
Targeting ExperimentTemplate Experiment Options Account Targeting - The account targeting setting for the experiment template.
- empty
Target ExperimentResolution Mode Template Experiment Options Empty Target Resolution Mode - The target resolution failure mode for the experiment template.
- account
Targeting ExperimentTemplate Experiment Options Account Targeting - The account targeting setting for the experiment template.
- empty
Target ExperimentResolution Mode Template Experiment Options Empty Target Resolution Mode - The target resolution failure mode for the experiment template.
- account_
targeting ExperimentTemplate Experiment Options Account Targeting - The account targeting setting for the experiment template.
- empty_
target_ Experimentresolution_ mode Template Experiment Options Empty Target Resolution Mode - The target resolution failure mode for the experiment template.
- account
Targeting "multi-account" | "single-account" - The account targeting setting for the experiment template.
- empty
Target "fail" | "skip"Resolution Mode - The target resolution failure mode for the experiment template.
ExperimentTemplateExperimentOptionsAccountTargeting, ExperimentTemplateExperimentOptionsAccountTargetingArgs
- Multi
Account - multi-account
- Single
Account - single-account
- Experiment
Template Experiment Options Account Targeting Multi Account - multi-account
- Experiment
Template Experiment Options Account Targeting Single Account - single-account
- Multi
Account - multi-account
- Single
Account - single-account
- Multi
Account - multi-account
- Single
Account - single-account
- MULTI_ACCOUNT
- multi-account
- SINGLE_ACCOUNT
- single-account
- "multi-account"
- multi-account
- "single-account"
- single-account
ExperimentTemplateExperimentOptionsEmptyTargetResolutionMode, ExperimentTemplateExperimentOptionsEmptyTargetResolutionModeArgs
- Fail
- fail
- Skip
- skip
- Experiment
Template Experiment Options Empty Target Resolution Mode Fail - fail
- Experiment
Template Experiment Options Empty Target Resolution Mode Skip - skip
- Fail
- fail
- Skip
- skip
- Fail
- fail
- Skip
- skip
- FAIL
- fail
- SKIP
- skip
- "fail"
- fail
- "skip"
- skip
ExperimentTemplateLogConfiguration, ExperimentTemplateLogConfigurationArgs
ExperimentTemplateLogConfigurationCloudWatchLogsConfigurationProperties, ExperimentTemplateLogConfigurationCloudWatchLogsConfigurationPropertiesArgs
- Log
Group stringArn
- Log
Group stringArn
- log
Group StringArn
- log
Group stringArn
- log_
group_ strarn
- log
Group StringArn
ExperimentTemplateLogConfigurationS3ConfigurationProperties, ExperimentTemplateLogConfigurationS3ConfigurationPropertiesArgs
- Bucket
Name string - Prefix string
- Bucket
Name string - Prefix string
- bucket
Name String - prefix String
- bucket
Name string - prefix string
- bucket_
name str - prefix str
- bucket
Name String - prefix String
ExperimentTemplateStopCondition, ExperimentTemplateStopConditionArgs
ExperimentTemplateTarget, ExperimentTemplateTargetArgs
- Resource
Type string - Selection
Mode string - Filters
List<Pulumi.
Aws Native. Fis. Inputs. Experiment Template Target Filter> - Parameters Dictionary<string, string>
- Resource
Arns List<string> - Dictionary<string, string>
- Resource
Type string - Selection
Mode string - Filters
[]Experiment
Template Target Filter - Parameters map[string]string
- Resource
Arns []string - map[string]string
- resource
Type String - selection
Mode String - filters
List<Experiment
Template Target Filter> - parameters Map<String,String>
- resource
Arns List<String> - Map<String,String>
- resource
Type string - selection
Mode string - filters
Experiment
Template Target Filter[] - parameters {[key: string]: string}
- resource
Arns string[] - {[key: string]: string}
- resource_
type str - selection_
mode str - filters
Sequence[Experiment
Template Target Filter] - parameters Mapping[str, str]
- resource_
arns Sequence[str] - Mapping[str, str]
- resource
Type String - selection
Mode String - filters List<Property Map>
- parameters Map<String>
- resource
Arns List<String> - Map<String>
ExperimentTemplateTargetFilter, ExperimentTemplateTargetFilterArgs
Package Details
- Repository
- AWS Native pulumi/pulumi-aws-native
- License
- Apache-2.0
AWS Native is in preview. AWS Classic is fully supported.