@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS Fault Injection Simulator
@version 2020-12-01
@auth AWS SigV4
@endpoints 26
@hint download_for_search
@toc experimentTemplates(10), actions(2), experiments(7), safetyLevers(2), targetResourceTypes(2), tags(3)

@group experimentTemplates
@endpoint POST /experimentTemplates
@desc Creates an experiment template.  An experiment template includes the following components:    Targets: A target can be a specific resource in your Amazon Web Services environment, or one or more resources that match criteria that you specify, for example, resources that have specific tags.    Actions: 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.    Stop conditions: 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.   For more information, see experiment templates in the Fault Injection Service User Guide.
@required {clientToken: str, description: str, stopConditions: [CreateExperimentTemplateStopConditionInput], actions: map<str,CreateExperimentTemplateActionInput>, roleArn: str}
@optional {targets: map<str,CreateExperimentTemplateTargetInput>, tags: map<str,str>, logConfiguration: CreateExperimentTemplateLogConfigurationInput, experimentOptions: CreateExperimentTemplateExperimentOptionsInput}
@returns(200) {experimentTemplate: ExperimentTemplate?{id: str?, arn: str?, description: str?, targets: map<str,ExperimentTemplateTarget>?, actions: map<str,ExperimentTemplateAction>?, stopConditions: [ExperimentTemplateStopCondition]?, creationTime: str(timestamp)?, lastUpdateTime: str(timestamp)?, roleArn: str?, tags: map<str,str>?, logConfiguration: ExperimentTemplateLogConfiguration?{cloudWatchLogsConfiguration: ExperimentTemplateCloudWatchLogsLogConfiguration?{logGroupArn: str?}, s3Configuration: ExperimentTemplateS3LogConfiguration?{bucketName: str?, prefix: str?}, logSchemaVersion: int?}, experimentOptions: ExperimentTemplateExperimentOptions?{accountTargeting: str?, emptyTargetResolutionMode: str?}, targetAccountConfigurationsCount: int(i64)?}}

@endpoint POST /experimentTemplates/{id}/targetAccountConfigurations/{accountId}
@desc Creates a target account configuration for the experiment template. A target account configuration is required when accountTargeting of experimentOptions is set to multi-account. For more information, see experiment options in the Fault Injection Service User Guide.
@required {experimentTemplateId: str, accountId: str, roleArn: str}
@optional {clientToken: str, description: str}
@returns(200) {targetAccountConfiguration: TargetAccountConfiguration?{roleArn: str?, accountId: str?, description: str?}}

@endpoint DELETE /experimentTemplates/{id}
@desc Deletes the specified experiment template.
@required {id: str}
@returns(200) {experimentTemplate: ExperimentTemplate?{id: str?, arn: str?, description: str?, targets: map<str,ExperimentTemplateTarget>?, actions: map<str,ExperimentTemplateAction>?, stopConditions: [ExperimentTemplateStopCondition]?, creationTime: str(timestamp)?, lastUpdateTime: str(timestamp)?, roleArn: str?, tags: map<str,str>?, logConfiguration: ExperimentTemplateLogConfiguration?{cloudWatchLogsConfiguration: ExperimentTemplateCloudWatchLogsLogConfiguration?{logGroupArn: str?}, s3Configuration: ExperimentTemplateS3LogConfiguration?{bucketName: str?, prefix: str?}, logSchemaVersion: int?}, experimentOptions: ExperimentTemplateExperimentOptions?{accountTargeting: str?, emptyTargetResolutionMode: str?}, targetAccountConfigurationsCount: int(i64)?}}

@endpoint DELETE /experimentTemplates/{id}/targetAccountConfigurations/{accountId}
@desc Deletes the specified target account configuration of the experiment template.
@required {experimentTemplateId: str, accountId: str}
@returns(200) {targetAccountConfiguration: TargetAccountConfiguration?{roleArn: str?, accountId: str?, description: str?}}

@endgroup

@group actions
@endpoint GET /actions/{id}
@desc Gets information about the specified FIS action.
@required {id: str}
@returns(200) {action: Action?{id: str?, arn: str?, description: str?, parameters: map<str,ActionParameter>?, targets: map<str,ActionTarget>?, tags: map<str,str>?}}

@endgroup

@group experiments
@endpoint GET /experiments/{id}
@desc Gets information about the specified experiment.
@required {id: str}
@returns(200) {experiment: Experiment?{id: str?, arn: str?, experimentTemplateId: str?, roleArn: str?, state: ExperimentState?{status: str?, reason: str?, error: ExperimentError?{accountId: str?, code: str?, location: str?}}, targets: map<str,ExperimentTarget>?, actions: map<str,ExperimentAction>?, stopConditions: [ExperimentStopCondition]?, creationTime: str(timestamp)?, startTime: str(timestamp)?, endTime: str(timestamp)?, tags: map<str,str>?, logConfiguration: ExperimentLogConfiguration?{cloudWatchLogsConfiguration: ExperimentCloudWatchLogsLogConfiguration?{logGroupArn: str?}, s3Configuration: ExperimentS3LogConfiguration?{bucketName: str?, prefix: str?}, logSchemaVersion: int?}, experimentOptions: ExperimentOptions?{accountTargeting: str?, emptyTargetResolutionMode: str?, actionsMode: str?}, targetAccountConfigurationsCount: int(i64)?}}

@endpoint GET /experiments/{id}/targetAccountConfigurations/{accountId}
@desc Gets information about the specified target account configuration of the experiment.
@required {experimentId: str, accountId: str}
@returns(200) {targetAccountConfiguration: ExperimentTargetAccountConfiguration?{roleArn: str?, accountId: str?, description: str?}}

@endgroup

@group experimentTemplates
@endpoint GET /experimentTemplates/{id}
@desc Gets information about the specified experiment template.
@required {id: str}
@returns(200) {experimentTemplate: ExperimentTemplate?{id: str?, arn: str?, description: str?, targets: map<str,ExperimentTemplateTarget>?, actions: map<str,ExperimentTemplateAction>?, stopConditions: [ExperimentTemplateStopCondition]?, creationTime: str(timestamp)?, lastUpdateTime: str(timestamp)?, roleArn: str?, tags: map<str,str>?, logConfiguration: ExperimentTemplateLogConfiguration?{cloudWatchLogsConfiguration: ExperimentTemplateCloudWatchLogsLogConfiguration?{logGroupArn: str?}, s3Configuration: ExperimentTemplateS3LogConfiguration?{bucketName: str?, prefix: str?}, logSchemaVersion: int?}, experimentOptions: ExperimentTemplateExperimentOptions?{accountTargeting: str?, emptyTargetResolutionMode: str?}, targetAccountConfigurationsCount: int(i64)?}}

@endgroup

@group safetyLevers
@endpoint GET /safetyLevers/{id}
@desc Gets information about the specified safety lever.
@required {id: str}
@returns(200) {safetyLever: SafetyLever?{id: str?, arn: str?, state: SafetyLeverState?{status: str?, reason: str?}}}

@endgroup

@group experimentTemplates
@endpoint GET /experimentTemplates/{id}/targetAccountConfigurations/{accountId}
@desc Gets information about the specified target account configuration of the experiment template.
@required {experimentTemplateId: str, accountId: str}
@returns(200) {targetAccountConfiguration: TargetAccountConfiguration?{roleArn: str?, accountId: str?, description: str?}}

@endgroup

@group targetResourceTypes
@endpoint GET /targetResourceTypes/{resourceType}
@desc Gets information about the specified resource type.
@required {resourceType: str}
@returns(200) {targetResourceType: TargetResourceType?{resourceType: str?, description: str?, parameters: map<str,TargetResourceTypeParameter>?}}

@endgroup

@group actions
@endpoint GET /actions
@desc Lists the available FIS actions.
@optional {maxResults: int, nextToken: str}
@returns(200) {actions: [ActionSummary]?, nextToken: str?}

@endgroup

@group experiments
@endpoint GET /experiments/{id}/resolvedTargets
@desc Lists the resolved targets information of the specified experiment.
@required {experimentId: str}
@optional {maxResults: int, nextToken: str, targetName: str}
@returns(200) {resolvedTargets: [ResolvedTarget]?, nextToken: str?}

@endpoint GET /experiments/{id}/targetAccountConfigurations
@desc Lists the target account configurations of the specified experiment.
@required {experimentId: str}
@optional {nextToken: str}
@returns(200) {targetAccountConfigurations: [ExperimentTargetAccountConfigurationSummary]?, nextToken: str?}

@endgroup

@group experimentTemplates
@endpoint GET /experimentTemplates
@desc Lists your experiment templates.
@optional {maxResults: int, nextToken: str}
@returns(200) {experimentTemplates: [ExperimentTemplateSummary]?, nextToken: str?}

@endgroup

@group experiments
@endpoint GET /experiments
@desc Lists your experiments.
@optional {maxResults: int, nextToken: str, experimentTemplateId: str}
@returns(200) {experiments: [ExperimentSummary]?, nextToken: str?}

@endgroup

@group tags
@endpoint GET /tags/{resourceArn}
@desc Lists the tags for the specified resource.
@required {resourceArn: str}
@returns(200) {tags: map<str,str>?}

@endgroup

@group experimentTemplates
@endpoint GET /experimentTemplates/{id}/targetAccountConfigurations
@desc Lists the target account configurations of the specified experiment template.
@required {experimentTemplateId: str}
@optional {maxResults: int, nextToken: str}
@returns(200) {targetAccountConfigurations: [TargetAccountConfigurationSummary]?, nextToken: str?}

@endgroup

@group targetResourceTypes
@endpoint GET /targetResourceTypes
@desc Lists the target resource types.
@optional {maxResults: int, nextToken: str}
@returns(200) {targetResourceTypes: [TargetResourceTypeSummary]?, nextToken: str?}

@endgroup

@group experiments
@endpoint POST /experiments
@desc Starts running an experiment from the specified experiment template.
@required {clientToken: str, experimentTemplateId: str}
@optional {experimentOptions: StartExperimentExperimentOptionsInput, tags: map<str,str>}
@returns(200) {experiment: Experiment?{id: str?, arn: str?, experimentTemplateId: str?, roleArn: str?, state: ExperimentState?{status: str?, reason: str?, error: ExperimentError?{accountId: str?, code: str?, location: str?}}, targets: map<str,ExperimentTarget>?, actions: map<str,ExperimentAction>?, stopConditions: [ExperimentStopCondition]?, creationTime: str(timestamp)?, startTime: str(timestamp)?, endTime: str(timestamp)?, tags: map<str,str>?, logConfiguration: ExperimentLogConfiguration?{cloudWatchLogsConfiguration: ExperimentCloudWatchLogsLogConfiguration?{logGroupArn: str?}, s3Configuration: ExperimentS3LogConfiguration?{bucketName: str?, prefix: str?}, logSchemaVersion: int?}, experimentOptions: ExperimentOptions?{accountTargeting: str?, emptyTargetResolutionMode: str?, actionsMode: str?}, targetAccountConfigurationsCount: int(i64)?}}

@endpoint DELETE /experiments/{id}
@desc Stops the specified experiment.
@required {id: str}
@returns(200) {experiment: Experiment?{id: str?, arn: str?, experimentTemplateId: str?, roleArn: str?, state: ExperimentState?{status: str?, reason: str?, error: ExperimentError?{accountId: str?, code: str?, location: str?}}, targets: map<str,ExperimentTarget>?, actions: map<str,ExperimentAction>?, stopConditions: [ExperimentStopCondition]?, creationTime: str(timestamp)?, startTime: str(timestamp)?, endTime: str(timestamp)?, tags: map<str,str>?, logConfiguration: ExperimentLogConfiguration?{cloudWatchLogsConfiguration: ExperimentCloudWatchLogsLogConfiguration?{logGroupArn: str?}, s3Configuration: ExperimentS3LogConfiguration?{bucketName: str?, prefix: str?}, logSchemaVersion: int?}, experimentOptions: ExperimentOptions?{accountTargeting: str?, emptyTargetResolutionMode: str?, actionsMode: str?}, targetAccountConfigurationsCount: int(i64)?}}

@endgroup

@group tags
@endpoint POST /tags/{resourceArn}
@desc Applies the specified tags to the specified resource.
@required {resourceArn: str, tags: map<str,str>}

@endpoint DELETE /tags/{resourceArn}
@desc Removes the specified tags from the specified resource.
@required {resourceArn: str}
@optional {tagKeys: [str]}

@endgroup

@group experimentTemplates
@endpoint PATCH /experimentTemplates/{id}
@desc Updates the specified experiment template.
@required {id: str}
@optional {description: str, stopConditions: [UpdateExperimentTemplateStopConditionInput], targets: map<str,UpdateExperimentTemplateTargetInput>, actions: map<str,UpdateExperimentTemplateActionInputItem>, roleArn: str, logConfiguration: UpdateExperimentTemplateLogConfigurationInput, experimentOptions: UpdateExperimentTemplateExperimentOptionsInput}
@returns(200) {experimentTemplate: ExperimentTemplate?{id: str?, arn: str?, description: str?, targets: map<str,ExperimentTemplateTarget>?, actions: map<str,ExperimentTemplateAction>?, stopConditions: [ExperimentTemplateStopCondition]?, creationTime: str(timestamp)?, lastUpdateTime: str(timestamp)?, roleArn: str?, tags: map<str,str>?, logConfiguration: ExperimentTemplateLogConfiguration?{cloudWatchLogsConfiguration: ExperimentTemplateCloudWatchLogsLogConfiguration?{logGroupArn: str?}, s3Configuration: ExperimentTemplateS3LogConfiguration?{bucketName: str?, prefix: str?}, logSchemaVersion: int?}, experimentOptions: ExperimentTemplateExperimentOptions?{accountTargeting: str?, emptyTargetResolutionMode: str?}, targetAccountConfigurationsCount: int(i64)?}}

@endgroup

@group safetyLevers
@endpoint PATCH /safetyLevers/{id}/state
@desc Updates the specified safety lever state.
@required {id: str, state: UpdateSafetyLeverStateInput}
@returns(200) {safetyLever: SafetyLever?{id: str?, arn: str?, state: SafetyLeverState?{status: str?, reason: str?}}}

@endgroup

@group experimentTemplates
@endpoint PATCH /experimentTemplates/{id}/targetAccountConfigurations/{accountId}
@desc Updates the target account configuration for the specified experiment template.
@required {experimentTemplateId: str, accountId: str}
@optional {roleArn: str, description: str}
@returns(200) {targetAccountConfiguration: TargetAccountConfiguration?{roleArn: str?, accountId: str?, description: str?}}

@endgroup

@end
