{"files":{"SKILL.md":"---\nname: aws-fault-injection-simulator\ndescription: \"AWS Fault Injection Simulator API skill. Use when working with AWS Fault Injection Simulator for experimentTemplates, actions, experiments. Covers 26 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# AWS Fault Injection Simulator\nAPI version: 2020-12-01\n\n## Auth\nAWS SigV4\n\n## Base URL\nNot specified.\n\n## Setup\n1. Configure auth: AWS SigV4\n2. GET /actions -- lists the available fis actions.\n3. POST /experimentTemplates -- create first experimentTemplate\n\n## Endpoints\n26 endpoints across 6 groups. See references/api-spec.lap for full details.\n\n### ExperimentTemplates\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /experimentTemplates | 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. |\n| POST | /experimentTemplates/{id}/targetAccountConfigurations/{accountId} | 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. |\n| DELETE | /experimentTemplates/{id} | Deletes the specified experiment template. |\n| DELETE | /experimentTemplates/{id}/targetAccountConfigurations/{accountId} | Deletes the specified target account configuration of the experiment template. |\n| GET | /experimentTemplates/{id} | Gets information about the specified experiment template. |\n| GET | /experimentTemplates/{id}/targetAccountConfigurations/{accountId} | Gets information about the specified target account configuration of the experiment template. |\n| GET | /experimentTemplates | Lists your experiment templates. |\n| GET | /experimentTemplates/{id}/targetAccountConfigurations | Lists the target account configurations of the specified experiment template. |\n| PATCH | /experimentTemplates/{id} | Updates the specified experiment template. |\n| PATCH | /experimentTemplates/{id}/targetAccountConfigurations/{accountId} | Updates the target account configuration for the specified experiment template. |\n\n### Actions\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /actions/{id} | Gets information about the specified FIS action. |\n| GET | /actions | Lists the available FIS actions. |\n\n### Experiments\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /experiments/{id} | Gets information about the specified experiment. |\n| GET | /experiments/{id}/targetAccountConfigurations/{accountId} | Gets information about the specified target account configuration of the experiment. |\n| GET | /experiments/{id}/resolvedTargets | Lists the resolved targets information of the specified experiment. |\n| GET | /experiments/{id}/targetAccountConfigurations | Lists the target account configurations of the specified experiment. |\n| GET | /experiments | Lists your experiments. |\n| POST | /experiments | Starts running an experiment from the specified experiment template. |\n| DELETE | /experiments/{id} | Stops the specified experiment. |\n\n### SafetyLevers\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /safetyLevers/{id} | Gets information about the specified safety lever. |\n| PATCH | /safetyLevers/{id}/state | Updates the specified safety lever state. |\n\n### TargetResourceTypes\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /targetResourceTypes/{resourceType} | Gets information about the specified resource type. |\n| GET | /targetResourceTypes | Lists the target resource types. |\n\n### Tags\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /tags/{resourceArn} | Lists the tags for the specified resource. |\n| POST | /tags/{resourceArn} | Applies the specified tags to the specified resource. |\n| DELETE | /tags/{resourceArn} | Removes the specified tags from the specified resource. |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Create a experimentTemplate?\" -> POST /experimentTemplates\n- \"Delete a experimentTemplate?\" -> DELETE /experimentTemplates/{id}\n- \"Delete a targetAccountConfiguration?\" -> DELETE /experimentTemplates/{id}/targetAccountConfigurations/{accountId}\n- \"Get action details?\" -> GET /actions/{id}\n- \"Get experiment details?\" -> GET /experiments/{id}\n- \"Get targetAccountConfiguration details?\" -> GET /experiments/{id}/targetAccountConfigurations/{accountId}\n- \"Get experimentTemplate details?\" -> GET /experimentTemplates/{id}\n- \"Get safetyLever details?\" -> GET /safetyLevers/{id}\n- \"Get targetResourceType details?\" -> GET /targetResourceTypes/{resourceType}\n- \"List all actions?\" -> GET /actions\n- \"List all resolvedTargets?\" -> GET /experiments/{id}/resolvedTargets\n- \"List all targetAccountConfigurations?\" -> GET /experiments/{id}/targetAccountConfigurations\n- \"List all experimentTemplates?\" -> GET /experimentTemplates\n- \"List all experiments?\" -> GET /experiments\n- \"Get tag details?\" -> GET /tags/{resourceArn}\n- \"List all targetResourceTypes?\" -> GET /targetResourceTypes\n- \"Create a experiment?\" -> POST /experiments\n- \"Delete a experiment?\" -> DELETE /experiments/{id}\n- \"Delete a tag?\" -> DELETE /tags/{resourceArn}\n- \"Partially update a experimentTemplate?\" -> PATCH /experimentTemplates/{id}\n- \"Partially update a targetAccountConfiguration?\" -> PATCH /experimentTemplates/{id}/targetAccountConfigurations/{accountId}\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Create/update endpoints return the modified resource on success\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api AWS Fault Injection Simulator\n@version 2020-12-01\n@auth AWS SigV4\n@endpoints 26\n@hint download_for_search\n@toc experimentTemplates(10), actions(2), experiments(7), safetyLevers(2), targetResourceTypes(2), tags(3)\n\n@group experimentTemplates\n@endpoint POST /experimentTemplates\n@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.\n@required {clientToken: str, description: str, stopConditions: [CreateExperimentTemplateStopConditionInput], actions: map<str,CreateExperimentTemplateActionInput>, roleArn: str}\n@optional {targets: map<str,CreateExperimentTemplateTargetInput>, tags: map<str,str>, logConfiguration: CreateExperimentTemplateLogConfigurationInput, experimentOptions: CreateExperimentTemplateExperimentOptionsInput}\n@returns(200) {experimentTemplate: ExperimentTemplate?{id: str?, arn: str?, description: str?, targets: map<str, ExperimentTemplateTarget>?: any, actions: map<str, ExperimentTemplateAction>?: any, stopConditions: [ExperimentTemplateStopCondition]?, creationTime: str(timestamp)?, lastUpdateTime: str(timestamp)?, roleArn: str?, tags: map<str, str>?: any, logConfiguration: ExperimentTemplateLogConfiguration?{cloudWatchLogsConfiguration: ExperimentTemplateCloudWatchLogsLogConfiguration?{logGroupArn: str?}, s3Configuration: ExperimentTemplateS3LogConfiguration?{bucketName: str?, prefix: str?}, logSchemaVersion: int?}, experimentOptions: ExperimentTemplateExperimentOptions?{accountTargeting: str?, emptyTargetResolutionMode: str?}, targetAccountConfigurationsCount: int(i64)?}}\n\n@endpoint POST /experimentTemplates/{id}/targetAccountConfigurations/{accountId}\n@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.\n@required {experimentTemplateId: str, accountId: str, roleArn: str}\n@optional {clientToken: str, description: str}\n@returns(200) {targetAccountConfiguration: TargetAccountConfiguration?{roleArn: str?, accountId: str?, description: str?}}\n\n@endpoint DELETE /experimentTemplates/{id}\n@desc Deletes the specified experiment template.\n@required {id: str}\n@returns(200) {experimentTemplate: ExperimentTemplate?{id: str?, arn: str?, description: str?, targets: map<str, ExperimentTemplateTarget>?: any, actions: map<str, ExperimentTemplateAction>?: any, stopConditions: [ExperimentTemplateStopCondition]?, creationTime: str(timestamp)?, lastUpdateTime: str(timestamp)?, roleArn: str?, tags: map<str, str>?: any, logConfiguration: ExperimentTemplateLogConfiguration?{cloudWatchLogsConfiguration: ExperimentTemplateCloudWatchLogsLogConfiguration?{logGroupArn: str?}, s3Configuration: ExperimentTemplateS3LogConfiguration?{bucketName: str?, prefix: str?}, logSchemaVersion: int?}, experimentOptions: ExperimentTemplateExperimentOptions?{accountTargeting: str?, emptyTargetResolutionMode: str?}, targetAccountConfigurationsCount: int(i64)?}}\n\n@endpoint DELETE /experimentTemplates/{id}/targetAccountConfigurations/{accountId}\n@desc Deletes the specified target account configuration of the experiment template.\n@required {experimentTemplateId: str, accountId: str}\n@returns(200) {targetAccountConfiguration: TargetAccountConfiguration?{roleArn: str?, accountId: str?, description: str?}}\n\n@endgroup\n\n@group actions\n@endpoint GET /actions/{id}\n@desc Gets information about the specified FIS action.\n@required {id: str}\n@returns(200) {action: Action?{id: str?, arn: str?, description: str?, parameters: map<str, ActionParameter>?: any, targets: map<str, ActionTarget>?: any, tags: map<str, str>?: any}}\n\n@endgroup\n\n@group experiments\n@endpoint GET /experiments/{id}\n@desc Gets information about the specified experiment.\n@required {id: str}\n@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>?: any, actions: map<str, ExperimentAction>?: any, stopConditions: [ExperimentStopCondition]?, creationTime: str(timestamp)?, startTime: str(timestamp)?, endTime: str(timestamp)?, tags: map<str, str>?: any, 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)?}}\n\n@endpoint GET /experiments/{id}/targetAccountConfigurations/{accountId}\n@desc Gets information about the specified target account configuration of the experiment.\n@required {experimentId: str, accountId: str}\n@returns(200) {targetAccountConfiguration: ExperimentTargetAccountConfiguration?{roleArn: str?, accountId: str?, description: str?}}\n\n@endgroup\n\n@group experimentTemplates\n@endpoint GET /experimentTemplates/{id}\n@desc Gets information about the specified experiment template.\n@required {id: str}\n@returns(200) {experimentTemplate: ExperimentTemplate?{id: str?, arn: str?, description: str?, targets: map<str, ExperimentTemplateTarget>?: any, actions: map<str, ExperimentTemplateAction>?: any, stopConditions: [ExperimentTemplateStopCondition]?, creationTime: str(timestamp)?, lastUpdateTime: str(timestamp)?, roleArn: str?, tags: map<str, str>?: any, logConfiguration: ExperimentTemplateLogConfiguration?{cloudWatchLogsConfiguration: ExperimentTemplateCloudWatchLogsLogConfiguration?{logGroupArn: str?}, s3Configuration: ExperimentTemplateS3LogConfiguration?{bucketName: str?, prefix: str?}, logSchemaVersion: int?}, experimentOptions: ExperimentTemplateExperimentOptions?{accountTargeting: str?, emptyTargetResolutionMode: str?}, targetAccountConfigurationsCount: int(i64)?}}\n\n@endgroup\n\n@group safetyLevers\n@endpoint GET /safetyLevers/{id}\n@desc Gets information about the specified safety lever.\n@required {id: str}\n@returns(200) {safetyLever: SafetyLever?{id: str?, arn: str?, state: SafetyLeverState?{status: str?, reason: str?}}}\n\n@endgroup\n\n@group experimentTemplates\n@endpoint GET /experimentTemplates/{id}/targetAccountConfigurations/{accountId}\n@desc Gets information about the specified target account configuration of the experiment template.\n@required {experimentTemplateId: str, accountId: str}\n@returns(200) {targetAccountConfiguration: TargetAccountConfiguration?{roleArn: str?, accountId: str?, description: str?}}\n\n@endgroup\n\n@group targetResourceTypes\n@endpoint GET /targetResourceTypes/{resourceType}\n@desc Gets information about the specified resource type.\n@required {resourceType: str}\n@returns(200) {targetResourceType: TargetResourceType?{resourceType: str?, description: str?, parameters: map<str, TargetResourceTypeParameter>?: any}}\n\n@endgroup\n\n@group actions\n@endpoint GET /actions\n@desc Lists the available FIS actions.\n@optional {maxResults: int, nextToken: str}\n@returns(200) {actions: [ActionSummary]?, nextToken: str?}\n\n@endgroup\n\n@group experiments\n@endpoint GET /experiments/{id}/resolvedTargets\n@desc Lists the resolved targets information of the specified experiment.\n@required {experimentId: str}\n@optional {maxResults: int, nextToken: str, targetName: str}\n@returns(200) {resolvedTargets: [ResolvedTarget]?, nextToken: str?}\n\n@endpoint GET /experiments/{id}/targetAccountConfigurations\n@desc Lists the target account configurations of the specified experiment.\n@required {experimentId: str}\n@optional {nextToken: str}\n@returns(200) {targetAccountConfigurations: [ExperimentTargetAccountConfigurationSummary]?, nextToken: str?}\n\n@endgroup\n\n@group experimentTemplates\n@endpoint GET /experimentTemplates\n@desc Lists your experiment templates.\n@optional {maxResults: int, nextToken: str}\n@returns(200) {experimentTemplates: [ExperimentTemplateSummary]?, nextToken: str?}\n\n@endgroup\n\n@group experiments\n@endpoint GET /experiments\n@desc Lists your experiments.\n@optional {maxResults: int, nextToken: str, experimentTemplateId: str}\n@returns(200) {experiments: [ExperimentSummary]?, nextToken: str?}\n\n@endgroup\n\n@group tags\n@endpoint GET /tags/{resourceArn}\n@desc Lists the tags for the specified resource.\n@required {resourceArn: str}\n@returns(200) {tags: map<str,str>?}\n\n@endgroup\n\n@group experimentTemplates\n@endpoint GET /experimentTemplates/{id}/targetAccountConfigurations\n@desc Lists the target account configurations of the specified experiment template.\n@required {experimentTemplateId: str}\n@optional {maxResults: int, nextToken: str}\n@returns(200) {targetAccountConfigurations: [TargetAccountConfigurationSummary]?, nextToken: str?}\n\n@endgroup\n\n@group targetResourceTypes\n@endpoint GET /targetResourceTypes\n@desc Lists the target resource types.\n@optional {maxResults: int, nextToken: str}\n@returns(200) {targetResourceTypes: [TargetResourceTypeSummary]?, nextToken: str?}\n\n@endgroup\n\n@group experiments\n@endpoint POST /experiments\n@desc Starts running an experiment from the specified experiment template.\n@required {clientToken: str, experimentTemplateId: str}\n@optional {experimentOptions: StartExperimentExperimentOptionsInput, tags: map<str,str>}\n@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>?: any, actions: map<str, ExperimentAction>?: any, stopConditions: [ExperimentStopCondition]?, creationTime: str(timestamp)?, startTime: str(timestamp)?, endTime: str(timestamp)?, tags: map<str, str>?: any, 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)?}}\n\n@endpoint DELETE /experiments/{id}\n@desc Stops the specified experiment.\n@required {id: str}\n@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>?: any, actions: map<str, ExperimentAction>?: any, stopConditions: [ExperimentStopCondition]?, creationTime: str(timestamp)?, startTime: str(timestamp)?, endTime: str(timestamp)?, tags: map<str, str>?: any, 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)?}}\n\n@endgroup\n\n@group tags\n@endpoint POST /tags/{resourceArn}\n@desc Applies the specified tags to the specified resource.\n@required {resourceArn: str, tags: map<str,str>}\n\n@endpoint DELETE /tags/{resourceArn}\n@desc Removes the specified tags from the specified resource.\n@required {resourceArn: str}\n@optional {tagKeys: [str]}\n\n@endgroup\n\n@group experimentTemplates\n@endpoint PATCH /experimentTemplates/{id}\n@desc Updates the specified experiment template.\n@required {id: str}\n@optional {description: str, stopConditions: [UpdateExperimentTemplateStopConditionInput], targets: map<str,UpdateExperimentTemplateTargetInput>, actions: map<str,UpdateExperimentTemplateActionInputItem>, roleArn: str, logConfiguration: UpdateExperimentTemplateLogConfigurationInput, experimentOptions: UpdateExperimentTemplateExperimentOptionsInput}\n@returns(200) {experimentTemplate: ExperimentTemplate?{id: str?, arn: str?, description: str?, targets: map<str, ExperimentTemplateTarget>?: any, actions: map<str, ExperimentTemplateAction>?: any, stopConditions: [ExperimentTemplateStopCondition]?, creationTime: str(timestamp)?, lastUpdateTime: str(timestamp)?, roleArn: str?, tags: map<str, str>?: any, logConfiguration: ExperimentTemplateLogConfiguration?{cloudWatchLogsConfiguration: ExperimentTemplateCloudWatchLogsLogConfiguration?{logGroupArn: str?}, s3Configuration: ExperimentTemplateS3LogConfiguration?{bucketName: str?, prefix: str?}, logSchemaVersion: int?}, experimentOptions: ExperimentTemplateExperimentOptions?{accountTargeting: str?, emptyTargetResolutionMode: str?}, targetAccountConfigurationsCount: int(i64)?}}\n\n@endgroup\n\n@group safetyLevers\n@endpoint PATCH /safetyLevers/{id}/state\n@desc Updates the specified safety lever state.\n@required {id: str, state: UpdateSafetyLeverStateInput}\n@returns(200) {safetyLever: SafetyLever?{id: str?, arn: str?, state: SafetyLeverState?{status: str?, reason: str?}}}\n\n@endgroup\n\n@group experimentTemplates\n@endpoint PATCH /experimentTemplates/{id}/targetAccountConfigurations/{accountId}\n@desc Updates the target account configuration for the specified experiment template.\n@required {experimentTemplateId: str, accountId: str}\n@optional {roleArn: str, description: str}\n@returns(200) {targetAccountConfiguration: TargetAccountConfiguration?{roleArn: str?, accountId: str?, description: str?}}\n\n@endgroup\n\n@end\n"}}