import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Resource schema for AWS::FIS::ExperimentTemplate * * ## Example Usage * ### Example * * ```typescript * 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, * }); * * ``` */ export declare class ExperimentTemplate extends pulumi.CustomResource { /** * Get an existing ExperimentTemplate resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): ExperimentTemplate; /** * Returns true if the given object is an instance of ExperimentTemplate. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is ExperimentTemplate; /** * The actions for the experiment. */ readonly actions: pulumi.Output<{ [key: string]: outputs.fis.ExperimentTemplateAction; } | undefined>; /** * The ID of the experiment template. */ readonly awsId: pulumi.Output; /** * The description for the experiment template. */ readonly description: pulumi.Output; /** * The experiment options for an experiment template. */ readonly experimentOptions: pulumi.Output; /** * Describes the report configuration for the experiment template. */ readonly experimentReportConfiguration: pulumi.Output; /** * The configuration for experiment logging. */ readonly logConfiguration: pulumi.Output; /** * The Amazon Resource Name (ARN) of an IAM role. */ readonly roleArn: pulumi.Output; /** * The stop conditions for the experiment. */ readonly stopConditions: pulumi.Output; /** * The tags for the experiment template. */ readonly tags: pulumi.Output<{ [key: string]: string; } | undefined>; /** * The targets for the experiment. */ readonly targets: pulumi.Output<{ [key: string]: outputs.fis.ExperimentTemplateTarget; }>; /** * Create a ExperimentTemplate resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: ExperimentTemplateArgs, opts?: pulumi.CustomResourceOptions); } /** * The set of arguments for constructing a ExperimentTemplate resource. */ export interface ExperimentTemplateArgs { /** * The actions for the experiment. */ actions?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The description for the experiment template. */ description: pulumi.Input; /** * The experiment options for an experiment template. */ experimentOptions?: pulumi.Input; /** * Describes the report configuration for the experiment template. */ experimentReportConfiguration?: pulumi.Input; /** * The configuration for experiment logging. */ logConfiguration?: pulumi.Input; /** * The Amazon Resource Name (ARN) of an IAM role. */ roleArn: pulumi.Input; /** * The stop conditions for the experiment. */ stopConditions: pulumi.Input[]>; /** * The tags for the experiment template. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The targets for the experiment. */ targets: pulumi.Input<{ [key: string]: pulumi.Input; }>; }