import { HttpHandlerOptions as __HttpHandlerOptions } from "@aws-sdk/types" ; import { CreateExperimentTemplateCommand , CreateExperimentTemplateCommandInput , CreateExperimentTemplateCommandOutput , } from "./commands/CreateExperimentTemplateCommand" ; import { DeleteExperimentTemplateCommand , DeleteExperimentTemplateCommandInput , DeleteExperimentTemplateCommandOutput , } from "./commands/DeleteExperimentTemplateCommand" ; import { GetActionCommand , GetActionCommandInput , GetActionCommandOutput } from "./commands/GetActionCommand" ; import { GetExperimentCommand , GetExperimentCommandInput , GetExperimentCommandOutput , } from "./commands/GetExperimentCommand" ; import { GetExperimentTemplateCommand , GetExperimentTemplateCommandInput , GetExperimentTemplateCommandOutput , } from "./commands/GetExperimentTemplateCommand" ; import { ListActionsCommand , ListActionsCommandInput , ListActionsCommandOutput } from "./commands/ListActionsCommand" ; import { ListExperimentsCommand , ListExperimentsCommandInput , ListExperimentsCommandOutput , } from "./commands/ListExperimentsCommand" ; import { ListExperimentTemplatesCommand , ListExperimentTemplatesCommandInput , ListExperimentTemplatesCommandOutput , } from "./commands/ListExperimentTemplatesCommand" ; import { ListTagsForResourceCommand , ListTagsForResourceCommandInput , ListTagsForResourceCommandOutput , } from "./commands/ListTagsForResourceCommand" ; import { StartExperimentCommand , StartExperimentCommandInput , StartExperimentCommandOutput , } from "./commands/StartExperimentCommand" ; import { StopExperimentCommand , StopExperimentCommandInput , StopExperimentCommandOutput , } from "./commands/StopExperimentCommand" ; import { TagResourceCommand , TagResourceCommandInput , TagResourceCommandOutput } from "./commands/TagResourceCommand" ; import { UntagResourceCommand , UntagResourceCommandInput , UntagResourceCommandOutput , } from "./commands/UntagResourceCommand" ; import { UpdateExperimentTemplateCommand , UpdateExperimentTemplateCommandInput , UpdateExperimentTemplateCommandOutput , } from "./commands/UpdateExperimentTemplateCommand" ; import { FisClient } from "./FisClient" ; /**
 * <p>AWS Fault Injection Simulator is a managed service that enables you to perform fault injection
 *            experiments on your AWS workloads. For more information, see the <a href="https://docs.aws.amazon.com/fis/latest/userguide/">AWS Fault Injection Simulator User Guide</a>.</p>
 */ export class Fis extends FisClient { /**
     * <p>Creates an experiment template. </p>
     *          <p>To create a template, specify the following information: </p>
     *          <ul>
     *             <li>
     *                <p>
     *                   <b>Targets</b>: A target can be a specific resource
     *                in your AWS environment, or one or more resources that match criteria that you
     *                specify, for example, resources that have specific tags.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <b>Actions</b>: The actions to carry out on the
     *                target. You can specify multiple actions, the duration of each action, and when to start each action during an experiment.</p>
     *             </li>
     *             <li>
     *                <p>
     *                   <b>Stop conditions</b>: If a stop condition is
     *                triggered while an experiment is running, the experiment is automatically
     *                stopped. You can define a stop condition as a CloudWatch alarm.</p>
     *             </li>
     *          </ul>
     *          <p>For more information, see the <a href="https://docs.aws.amazon.com/fis/latest/userguide/">AWS Fault Injection Simulator User Guide</a>.</p>
     */ public createExperimentTemplate ( args , options ? ) ; public createExperimentTemplate ( args , cb ) ; public createExperimentTemplate ( args , options , cb ) ; public createExperimentTemplate ( args , optionsOrCb ? , cb ? ) { const command = new CreateExperimentTemplateCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Deletes the specified experiment template.</p>
     */ public deleteExperimentTemplate ( args , options ? ) ; public deleteExperimentTemplate ( args , cb ) ; public deleteExperimentTemplate ( args , options , cb ) ; public deleteExperimentTemplate ( args , optionsOrCb ? , cb ? ) { const command = new DeleteExperimentTemplateCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Gets information about the specified AWS FIS action.</p>
     */ public getAction ( args , options ? ) ; public getAction ( args , cb ) ; public getAction ( args , options , cb ) ; public getAction ( args , optionsOrCb ? , cb ? ) { const command = new GetActionCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Gets information about the specified experiment.</p>
     */ public getExperiment ( args , options ? ) ; public getExperiment ( args , cb ) ; public getExperiment ( args , options , cb ) ; public getExperiment ( args , optionsOrCb ? , cb ? ) { const command = new GetExperimentCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Gets information about the specified experiment template.</p>
     */ public getExperimentTemplate ( args , options ? ) ; public getExperimentTemplate ( args , cb ) ; public getExperimentTemplate ( args , options , cb ) ; public getExperimentTemplate ( args , optionsOrCb ? , cb ? ) { const command = new GetExperimentTemplateCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Lists the available AWS FIS actions.</p>
     */ public listActions ( args , options ? ) ; public listActions ( args , cb ) ; public listActions ( args , options , cb ) ; public listActions ( args , optionsOrCb ? , cb ? ) { const command = new ListActionsCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Lists your experiments.</p>
     */ public listExperiments ( args , options ? ) ; public listExperiments ( args , cb ) ; public listExperiments ( args , options , cb ) ; public listExperiments ( args , optionsOrCb ? , cb ? ) { const command = new ListExperimentsCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Lists your experiment templates.</p>
     */ public listExperimentTemplates ( args , options ? ) ; public listExperimentTemplates ( args , cb ) ; public listExperimentTemplates ( args , options , cb ) ; public listExperimentTemplates ( args , optionsOrCb ? , cb ? ) { const command = new ListExperimentTemplatesCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Lists the tags for the specified resource.</p>
     */ public listTagsForResource ( args , options ? ) ; public listTagsForResource ( args , cb ) ; public listTagsForResource ( args , options , cb ) ; public listTagsForResource ( args , optionsOrCb ? , cb ? ) { const command = new ListTagsForResourceCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Starts running an experiment from the specified experiment template.</p>
     */ public startExperiment ( args , options ? ) ; public startExperiment ( args , cb ) ; public startExperiment ( args , options , cb ) ; public startExperiment ( args , optionsOrCb ? , cb ? ) { const command = new StartExperimentCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Stops the specified experiment.</p>
     */ public stopExperiment ( args , options ? ) ; public stopExperiment ( args , cb ) ; public stopExperiment ( args , options , cb ) ; public stopExperiment ( args , optionsOrCb ? , cb ? ) { const command = new StopExperimentCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Applies the specified tags to the specified resource.</p>
     */ public tagResource ( args , options ? ) ; public tagResource ( args , cb ) ; public tagResource ( args , options , cb ) ; public tagResource ( args , optionsOrCb ? , cb ? ) { const command = new TagResourceCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Removes the specified tags from the specified resource.</p>
     */ public untagResource ( args , options ? ) ; public untagResource ( args , cb ) ; public untagResource ( args , options , cb ) ; public untagResource ( args , optionsOrCb ? , cb ? ) { const command = new UntagResourceCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Updates the specified experiment template.</p>
     */ public updateExperimentTemplate ( args , options ? ) ; public updateExperimentTemplate ( args , cb ) ; public updateExperimentTemplate ( args , options , cb ) ; public updateExperimentTemplate ( args , optionsOrCb ? , cb ? ) { const command = new UpdateExperimentTemplateCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } }