diff --git a/.changes/next-release/feature-AWSFaultInjectionSimulator-9607251.json b/.changes/next-release/feature-AWSFaultInjectionSimulator-9607251.json
new file mode 100644
index 000000000000..e379917bc188
--- /dev/null
+++ b/.changes/next-release/feature-AWSFaultInjectionSimulator-9607251.json
@@ -0,0 +1,6 @@
+{
+ "type": "feature",
+ "category": "AWS Fault Injection Simulator",
+ "contributor": "",
+ "description": "Initial release of AWS Fault Injection Simulator, a managed service that enables you to perform fault injection experiments on your AWS workloads"
+}
diff --git a/services/fis/pom.xml b/services/fis/pom.xml
new file mode 100644
index 000000000000..c5a989179d21
--- /dev/null
+++ b/services/fis/pom.xml
@@ -0,0 +1,60 @@
+
+
+
+
Creates an experiment template.
To create a template, specify the following information:
Targets: 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.
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 the AWS Fault Injection Simulator User Guide.
" + }, + "DeleteExperimentTemplate":{ + "name":"DeleteExperimentTemplate", + "http":{ + "method":"DELETE", + "requestUri":"/experimentTemplates/{id}", + "responseCode":200 + }, + "input":{"shape":"DeleteExperimentTemplateRequest"}, + "output":{"shape":"DeleteExperimentTemplateResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"Deletes the specified experiment template.
" + }, + "GetAction":{ + "name":"GetAction", + "http":{ + "method":"GET", + "requestUri":"/actions/{id}", + "responseCode":200 + }, + "input":{"shape":"GetActionRequest"}, + "output":{"shape":"GetActionResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"Gets information about the specified AWS FIS action.
" + }, + "GetExperiment":{ + "name":"GetExperiment", + "http":{ + "method":"GET", + "requestUri":"/experiments/{id}", + "responseCode":200 + }, + "input":{"shape":"GetExperimentRequest"}, + "output":{"shape":"GetExperimentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"Gets information about the specified experiment.
" + }, + "GetExperimentTemplate":{ + "name":"GetExperimentTemplate", + "http":{ + "method":"GET", + "requestUri":"/experimentTemplates/{id}", + "responseCode":200 + }, + "input":{"shape":"GetExperimentTemplateRequest"}, + "output":{"shape":"GetExperimentTemplateResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"Gets information about the specified experiment template.
" + }, + "ListActions":{ + "name":"ListActions", + "http":{ + "method":"GET", + "requestUri":"/actions", + "responseCode":200 + }, + "input":{"shape":"ListActionsRequest"}, + "output":{"shape":"ListActionsResponse"}, + "errors":[ + {"shape":"ValidationException"} + ], + "documentation":"Lists the available AWS FIS actions.
" + }, + "ListExperimentTemplates":{ + "name":"ListExperimentTemplates", + "http":{ + "method":"GET", + "requestUri":"/experimentTemplates", + "responseCode":200 + }, + "input":{"shape":"ListExperimentTemplatesRequest"}, + "output":{"shape":"ListExperimentTemplatesResponse"}, + "errors":[ + {"shape":"ValidationException"} + ], + "documentation":"Lists your experiment templates.
" + }, + "ListExperiments":{ + "name":"ListExperiments", + "http":{ + "method":"GET", + "requestUri":"/experiments", + "responseCode":200 + }, + "input":{"shape":"ListExperimentsRequest"}, + "output":{"shape":"ListExperimentsResponse"}, + "errors":[ + {"shape":"ValidationException"} + ], + "documentation":"Lists your experiments.
" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "documentation":"Lists the tags for the specified resource.
" + }, + "StartExperiment":{ + "name":"StartExperiment", + "http":{ + "method":"POST", + "requestUri":"/experiments", + "responseCode":200 + }, + "input":{"shape":"StartExperimentRequest"}, + "output":{"shape":"StartExperimentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"Starts running an experiment from the specified experiment template.
" + }, + "StopExperiment":{ + "name":"StopExperiment", + "http":{ + "method":"DELETE", + "requestUri":"/experiments/{id}", + "responseCode":200 + }, + "input":{"shape":"StopExperimentRequest"}, + "output":{"shape":"StopExperimentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"Stops the specified experiment.
" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "documentation":"Applies the specified tags to the specified resource.
" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "documentation":"Removes the specified tags from the specified resource.
" + }, + "UpdateExperimentTemplate":{ + "name":"UpdateExperimentTemplate", + "http":{ + "method":"PATCH", + "requestUri":"/experimentTemplates/{id}", + "responseCode":200 + }, + "input":{"shape":"UpdateExperimentTemplateRequest"}, + "output":{"shape":"UpdateExperimentTemplateResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"Updates the specified experiment template.
" + } + }, + "shapes":{ + "Action":{ + "type":"structure", + "members":{ + "id":{ + "shape":"ActionId", + "documentation":"The ID of the action.
" + }, + "description":{ + "shape":"ActionDescription", + "documentation":"The description for the action.
" + }, + "parameters":{ + "shape":"ActionParameterMap", + "documentation":"The action parameters, if applicable.
" + }, + "targets":{ + "shape":"ActionTargetMap", + "documentation":"The supported targets for the action.
" + }, + "tags":{ + "shape":"TagMap", + "documentation":"The tags for the action.
" + } + }, + "documentation":"Describes an action. For more information, see AWS FIS actions in the AWS Fault Injection Simulator User Guide.
" + }, + "ActionDescription":{ + "type":"string", + "max":512, + "pattern":"[\\s\\S]+" + }, + "ActionId":{ + "type":"string", + "max":128, + "pattern":"[\\S]+" + }, + "ActionParameter":{ + "type":"structure", + "members":{ + "description":{ + "shape":"ActionParameterDescription", + "documentation":"The parameter description.
" + }, + "required":{ + "shape":"ActionParameterRequired", + "documentation":"Indicates whether the parameter is required.
", + "box":true + } + }, + "documentation":"Describes a parameter for an action.
" + }, + "ActionParameterDescription":{ + "type":"string", + "max":512, + "pattern":"[\\s\\S]+" + }, + "ActionParameterMap":{ + "type":"map", + "key":{"shape":"ActionParameterName"}, + "value":{"shape":"ActionParameter"} + }, + "ActionParameterName":{ + "type":"string", + "max":64, + "pattern":"[\\S]+" + }, + "ActionParameterRequired":{"type":"boolean"}, + "ActionSummary":{ + "type":"structure", + "members":{ + "id":{ + "shape":"ActionId", + "documentation":"The ID of the action.
" + }, + "description":{ + "shape":"ActionDescription", + "documentation":"The description for the action.
" + }, + "targets":{ + "shape":"ActionTargetMap", + "documentation":"The targets for the action.
" + }, + "tags":{ + "shape":"TagMap", + "documentation":"The tags for the action.
" + } + }, + "documentation":"Provides a summary of an action.
" + }, + "ActionSummaryList":{ + "type":"list", + "member":{"shape":"ActionSummary"} + }, + "ActionTarget":{ + "type":"structure", + "members":{ + "resourceType":{ + "shape":"TargetResourceType", + "documentation":"The resource type of the target.
" + } + }, + "documentation":"Describes a target for an action.
" + }, + "ActionTargetMap":{ + "type":"map", + "key":{"shape":"ActionTargetName"}, + "value":{"shape":"ActionTarget"} + }, + "ActionTargetName":{ + "type":"string", + "max":64, + "pattern":"[\\S]+" + }, + "ClientToken":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"[\\S]+" + }, + "ConflictException":{ + "type":"structure", + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "documentation":"The request could not be processed because of a conflict.
", + "error":{"httpStatusCode":409}, + "exception":true + }, + "CreateExperimentTemplateActionInput":{ + "type":"structure", + "required":["actionId"], + "members":{ + "actionId":{ + "shape":"ActionId", + "documentation":"The ID of the action.
" + }, + "description":{ + "shape":"ExperimentTemplateActionDescription", + "documentation":"A description for the action.
" + }, + "parameters":{ + "shape":"ExperimentTemplateActionParameterMap", + "documentation":"The parameters for the action, if applicable.
" + }, + "targets":{ + "shape":"ExperimentTemplateActionTargetMap", + "documentation":"The targets for the action.
" + }, + "startAfter":{ + "shape":"ExperimentTemplateActionStartAfterList", + "documentation":"The name of the action that must be completed before the current action starts. Omit this parameter to run the action at the start of the experiment.
" + } + }, + "documentation":"Specifies an action for an experiment template.
" + }, + "CreateExperimentTemplateActionInputMap":{ + "type":"map", + "key":{"shape":"ExperimentTemplateActionName"}, + "value":{"shape":"CreateExperimentTemplateActionInput"} + }, + "CreateExperimentTemplateRequest":{ + "type":"structure", + "required":[ + "clientToken", + "description", + "stopConditions", + "actions", + "roleArn" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.
", + "idempotencyToken":true + }, + "description":{ + "shape":"ExperimentTemplateDescription", + "documentation":"A description for the experiment template. Can contain up to 64 letters (A-Z and a-z).
" + }, + "stopConditions":{ + "shape":"CreateExperimentTemplateStopConditionInputList", + "documentation":"The stop conditions.
" + }, + "targets":{ + "shape":"CreateExperimentTemplateTargetInputMap", + "documentation":"The targets for the experiment.
" + }, + "actions":{ + "shape":"CreateExperimentTemplateActionInputMap", + "documentation":"The actions for the experiment.
" + }, + "roleArn":{ + "shape":"RoleArn", + "documentation":"The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf.
" + }, + "tags":{ + "shape":"TagMap", + "documentation":"The tags to apply to the experiment template.
" + } + } + }, + "CreateExperimentTemplateResponse":{ + "type":"structure", + "members":{ + "experimentTemplate":{ + "shape":"ExperimentTemplate", + "documentation":"Information about the experiment template.
" + } + } + }, + "CreateExperimentTemplateStopConditionInput":{ + "type":"structure", + "required":["source"], + "members":{ + "source":{ + "shape":"StopConditionSource", + "documentation":"The source for the stop condition. Specify aws:cloudwatch:alarm
if the stop condition is defined by a CloudWatch alarm. Specify none
if there is no stop condition.
The Amazon Resource Name (ARN) of the CloudWatch alarm. This is required if the source is a CloudWatch alarm.
" + } + }, + "documentation":"Specifies a stop condition for an experiment template.
" + }, + "CreateExperimentTemplateStopConditionInputList":{ + "type":"list", + "member":{"shape":"CreateExperimentTemplateStopConditionInput"} + }, + "CreateExperimentTemplateTargetInput":{ + "type":"structure", + "required":[ + "resourceType", + "selectionMode" + ], + "members":{ + "resourceType":{ + "shape":"ResourceType", + "documentation":"The AWS resource type. The resource type must be supported for the specified action.
" + }, + "resourceArns":{ + "shape":"ResourceArnList", + "documentation":"The Amazon Resource Names (ARNs) of the resources.
" + }, + "resourceTags":{ + "shape":"TagMap", + "documentation":"The tags for the target resources.
" + }, + "filters":{ + "shape":"ExperimentTemplateTargetFilterInputList", + "documentation":"The filters to apply to identify target resources using specific attributes.
" + }, + "selectionMode":{ + "shape":"ExperimentTemplateTargetSelectionMode", + "documentation":"Scopes the identified resources to a specific count of the resources at random, or a percentage of the resources. All identified resources are included in the target.
ALL - Run the action on all identified targets. This is the default.
COUNT(n) - Run the action on the specified number of targets, chosen from the identified targets at random. For example, COUNT(1) selects one of the targets.
PERCENT(n) - Run the action on the specified percentage of targets, chosen from the identified targets at random. For example, PERCENT(25) selects 25% of the targets.
Specifies a target for an experiment. You must specify at least one Amazon Resource Name (ARN) or at least one resource tag. You cannot specify both ARNs and tags.
" + }, + "CreateExperimentTemplateTargetInputMap":{ + "type":"map", + "key":{"shape":"ExperimentTemplateTargetName"}, + "value":{"shape":"CreateExperimentTemplateTargetInput"} + }, + "CreationTime":{"type":"timestamp"}, + "DeleteExperimentTemplateRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"ExperimentTemplateId", + "documentation":"The ID of the experiment template.
", + "location":"uri", + "locationName":"id" + } + } + }, + "DeleteExperimentTemplateResponse":{ + "type":"structure", + "members":{ + "experimentTemplate":{ + "shape":"ExperimentTemplate", + "documentation":"Information about the experiment template.
" + } + } + }, + "ExceptionMessage":{ + "type":"string", + "max":1024, + "pattern":"[\\s\\S]+" + }, + "Experiment":{ + "type":"structure", + "members":{ + "id":{ + "shape":"ExperimentId", + "documentation":"The ID of the experiment.
" + }, + "experimentTemplateId":{ + "shape":"ExperimentTemplateId", + "documentation":"The ID of the experiment template.
" + }, + "roleArn":{ + "shape":"RoleArn", + "documentation":"The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf.
" + }, + "state":{ + "shape":"ExperimentState", + "documentation":"The state of the experiment.
" + }, + "targets":{ + "shape":"ExperimentTargetMap", + "documentation":"The targets for the experiment.
" + }, + "actions":{ + "shape":"ExperimentActionMap", + "documentation":"The actions for the experiment.
" + }, + "stopConditions":{ + "shape":"ExperimentStopConditionList", + "documentation":"The stop conditions for the experiment.
" + }, + "creationTime":{ + "shape":"CreationTime", + "documentation":"The time the experiment was created.
" + }, + "startTime":{ + "shape":"ExperimentStartTime", + "documentation":"The time that the experiment was started.
" + }, + "endTime":{ + "shape":"ExperimentEndTime", + "documentation":"The time that the experiment ended.
" + }, + "tags":{ + "shape":"TagMap", + "documentation":"The tags for the experiment.
" + } + }, + "documentation":"Describes an experiment.
" + }, + "ExperimentAction":{ + "type":"structure", + "members":{ + "actionId":{ + "shape":"ActionId", + "documentation":"The ID of the action.
" + }, + "description":{ + "shape":"ExperimentActionDescription", + "documentation":"The description for the action.
" + }, + "parameters":{ + "shape":"ExperimentActionParameterMap", + "documentation":"The parameters for the action.
" + }, + "targets":{ + "shape":"ExperimentActionTargetMap", + "documentation":"The targets for the action.
" + }, + "startAfter":{ + "shape":"ExperimentActionStartAfterList", + "documentation":"The name of the action that must be completed before this action starts.
" + }, + "state":{ + "shape":"ExperimentActionState", + "documentation":"The state of the action.
" + } + }, + "documentation":"Describes the action for an experiment.
" + }, + "ExperimentActionDescription":{ + "type":"string", + "max":512, + "pattern":"[\\s\\S]+" + }, + "ExperimentActionMap":{ + "type":"map", + "key":{"shape":"ExperimentActionName"}, + "value":{"shape":"ExperimentAction"} + }, + "ExperimentActionName":{ + "type":"string", + "max":64, + "pattern":"[\\S]+" + }, + "ExperimentActionParameter":{ + "type":"string", + "max":64, + "pattern":"[\\S]+" + }, + "ExperimentActionParameterMap":{ + "type":"map", + "key":{"shape":"ExperimentActionParameterName"}, + "value":{"shape":"ExperimentActionParameter"} + }, + "ExperimentActionParameterName":{ + "type":"string", + "max":64, + "pattern":"[\\S]+" + }, + "ExperimentActionStartAfter":{ + "type":"string", + "max":64, + "pattern":"[\\S]+" + }, + "ExperimentActionStartAfterList":{ + "type":"list", + "member":{"shape":"ExperimentActionStartAfter"} + }, + "ExperimentActionState":{ + "type":"structure", + "members":{ + "status":{ + "shape":"ExperimentActionStatus", + "documentation":"The state of the action.
" + }, + "reason":{ + "shape":"ExperimentActionStatusReason", + "documentation":"The reason for the state.
" + } + }, + "documentation":"Describes the state of an action.
" + }, + "ExperimentActionStatus":{ + "type":"string", + "enum":[ + "pending", + "initiating", + "running", + "completed", + "cancelled", + "stopping", + "stopped", + "failed" + ] + }, + "ExperimentActionStatusReason":{ + "type":"string", + "max":512, + "pattern":"[\\s\\S]+" + }, + "ExperimentActionTargetMap":{ + "type":"map", + "key":{"shape":"ExperimentActionTargetName"}, + "value":{"shape":"ExperimentTargetName"} + }, + "ExperimentActionTargetName":{ + "type":"string", + "max":64, + "pattern":"[\\S]+" + }, + "ExperimentEndTime":{"type":"timestamp"}, + "ExperimentId":{ + "type":"string", + "max":64, + "pattern":"[\\S]+" + }, + "ExperimentStartTime":{"type":"timestamp"}, + "ExperimentState":{ + "type":"structure", + "members":{ + "status":{ + "shape":"ExperimentStatus", + "documentation":"The state of the experiment.
" + }, + "reason":{ + "shape":"ExperimentStatusReason", + "documentation":"The reason for the state.
" + } + }, + "documentation":"Describes the state of an experiment.
" + }, + "ExperimentStatus":{ + "type":"string", + "enum":[ + "pending", + "initiating", + "running", + "completed", + "stopping", + "stopped", + "failed" + ] + }, + "ExperimentStatusReason":{ + "type":"string", + "max":512, + "pattern":"[\\s\\S]+" + }, + "ExperimentStopCondition":{ + "type":"structure", + "members":{ + "source":{ + "shape":"StopConditionSource", + "documentation":"The source for the stop condition.
" + }, + "value":{ + "shape":"StopConditionValue", + "documentation":"The Amazon Resource Name (ARN) of the CloudWatch alarm, if applicable.
" + } + }, + "documentation":"Describes the stop condition for an experiment.
" + }, + "ExperimentStopConditionList":{ + "type":"list", + "member":{"shape":"ExperimentStopCondition"} + }, + "ExperimentSummary":{ + "type":"structure", + "members":{ + "id":{ + "shape":"ExperimentId", + "documentation":"The ID of the experiment.
" + }, + "experimentTemplateId":{ + "shape":"ExperimentTemplateId", + "documentation":"The ID of the experiment template.
" + }, + "state":{ + "shape":"ExperimentState", + "documentation":"The state of the experiment.
" + }, + "creationTime":{ + "shape":"CreationTime", + "documentation":"The time that the experiment was created.
" + }, + "tags":{ + "shape":"TagMap", + "documentation":"The tags for the experiment.
" + } + }, + "documentation":"Provides a summary of an experiment.
" + }, + "ExperimentSummaryList":{ + "type":"list", + "member":{"shape":"ExperimentSummary"} + }, + "ExperimentTarget":{ + "type":"structure", + "members":{ + "resourceType":{ + "shape":"ResourceType", + "documentation":"The resource type.
" + }, + "resourceArns":{ + "shape":"ResourceArnList", + "documentation":"The Amazon Resource Names (ARNs) of the resources.
" + }, + "resourceTags":{ + "shape":"TagMap", + "documentation":"The tags for the target resources.
" + }, + "filters":{ + "shape":"ExperimentTargetFilterList", + "documentation":"The filters to apply to identify target resources using specific attributes.
" + }, + "selectionMode":{ + "shape":"ExperimentTargetSelectionMode", + "documentation":"Scopes the identified resources to a specific count or percentage.
" + } + }, + "documentation":"Describes a target for an experiment.
" + }, + "ExperimentTargetFilter":{ + "type":"structure", + "members":{ + "path":{ + "shape":"ExperimentTargetFilterPath", + "documentation":"The attribute path for the filter.
" + }, + "values":{ + "shape":"ExperimentTargetFilterValues", + "documentation":"The attribute values for the filter.
" + } + }, + "documentation":"Describes a filter used for the target resources in an experiment.
" + }, + "ExperimentTargetFilterList":{ + "type":"list", + "member":{"shape":"ExperimentTargetFilter"} + }, + "ExperimentTargetFilterPath":{ + "type":"string", + "max":256, + "pattern":"[\\S]+" + }, + "ExperimentTargetFilterValue":{ + "type":"string", + "max":128, + "pattern":"[\\S]+" + }, + "ExperimentTargetFilterValues":{ + "type":"list", + "member":{"shape":"ExperimentTargetFilterValue"} + }, + "ExperimentTargetMap":{ + "type":"map", + "key":{"shape":"ExperimentTargetName"}, + "value":{"shape":"ExperimentTarget"} + }, + "ExperimentTargetName":{ + "type":"string", + "max":64, + "pattern":"[\\S]+" + }, + "ExperimentTargetSelectionMode":{ + "type":"string", + "max":64, + "pattern":"[\\S]+" + }, + "ExperimentTemplate":{ + "type":"structure", + "members":{ + "id":{ + "shape":"ExperimentTemplateId", + "documentation":"The ID of the experiment template.
" + }, + "description":{ + "shape":"ExperimentTemplateDescription", + "documentation":"The description for the experiment template.
" + }, + "targets":{ + "shape":"ExperimentTemplateTargetMap", + "documentation":"The targets for the experiment.
" + }, + "actions":{ + "shape":"ExperimentTemplateActionMap", + "documentation":"The actions for the experiment.
" + }, + "stopConditions":{ + "shape":"ExperimentTemplateStopConditionList", + "documentation":"The stop conditions for the experiment.
" + }, + "creationTime":{ + "shape":"CreationTime", + "documentation":"The time the experiment template was created.
" + }, + "lastUpdateTime":{ + "shape":"LastUpdateTime", + "documentation":"The time the experiment template was last updated.
" + }, + "roleArn":{ + "shape":"RoleArn", + "documentation":"The Amazon Resource Name (ARN) of an IAM role.
" + }, + "tags":{ + "shape":"TagMap", + "documentation":"The tags for the experiment template.
" + } + }, + "documentation":"Describes an experiment template.
" + }, + "ExperimentTemplateAction":{ + "type":"structure", + "members":{ + "actionId":{ + "shape":"ActionId", + "documentation":"The ID of the action.
" + }, + "description":{ + "shape":"ExperimentTemplateActionDescription", + "documentation":"A description for the action.
" + }, + "parameters":{ + "shape":"ExperimentTemplateActionParameterMap", + "documentation":"The parameters for the action.
" + }, + "targets":{ + "shape":"ExperimentTemplateActionTargetMap", + "documentation":"The targets for the action.
" + }, + "startAfter":{ + "shape":"ExperimentTemplateActionStartAfterList", + "documentation":"The name of the action that must be completed before the current action starts.
" + } + }, + "documentation":"Describes an action for an experiment template.
" + }, + "ExperimentTemplateActionDescription":{ + "type":"string", + "max":512, + "pattern":"[\\s\\S]+" + }, + "ExperimentTemplateActionMap":{ + "type":"map", + "key":{"shape":"ExperimentTemplateActionName"}, + "value":{"shape":"ExperimentTemplateAction"} + }, + "ExperimentTemplateActionName":{ + "type":"string", + "max":64, + "pattern":"[\\S]+" + }, + "ExperimentTemplateActionParameter":{ + "type":"string", + "max":64, + "pattern":"[\\S]+" + }, + "ExperimentTemplateActionParameterMap":{ + "type":"map", + "key":{"shape":"ExperimentTemplateActionParameterName"}, + "value":{"shape":"ExperimentTemplateActionParameter"} + }, + "ExperimentTemplateActionParameterName":{ + "type":"string", + "max":64, + "pattern":"[\\S]+" + }, + "ExperimentTemplateActionStartAfter":{ + "type":"string", + "max":64, + "pattern":"[\\S]+" + }, + "ExperimentTemplateActionStartAfterList":{ + "type":"list", + "member":{"shape":"ExperimentTemplateActionStartAfter"} + }, + "ExperimentTemplateActionTargetMap":{ + "type":"map", + "key":{"shape":"ExperimentTemplateActionTargetName"}, + "value":{"shape":"ExperimentTemplateTargetName"} + }, + "ExperimentTemplateActionTargetName":{ + "type":"string", + "max":64, + "pattern":"[\\S]+" + }, + "ExperimentTemplateDescription":{ + "type":"string", + "max":512, + "pattern":"[\\s\\S]+" + }, + "ExperimentTemplateId":{ + "type":"string", + "max":64, + "pattern":"[\\S]+" + }, + "ExperimentTemplateStopCondition":{ + "type":"structure", + "members":{ + "source":{ + "shape":"StopConditionSource", + "documentation":"The source for the stop condition.
" + }, + "value":{ + "shape":"StopConditionValue", + "documentation":"The Amazon Resource Name (ARN) of the CloudWatch alarm, if applicable.
" + } + }, + "documentation":"Describes a stop condition for an experiment template.
" + }, + "ExperimentTemplateStopConditionList":{ + "type":"list", + "member":{"shape":"ExperimentTemplateStopCondition"} + }, + "ExperimentTemplateSummary":{ + "type":"structure", + "members":{ + "id":{ + "shape":"ExperimentTemplateId", + "documentation":"The ID of the experiment template.
" + }, + "description":{ + "shape":"ExperimentTemplateDescription", + "documentation":"The description of the experiment template.
" + }, + "creationTime":{ + "shape":"CreationTime", + "documentation":"The time that the experiment template was created.
" + }, + "lastUpdateTime":{ + "shape":"LastUpdateTime", + "documentation":"The time that the experiment template was last updated.
" + }, + "tags":{ + "shape":"TagMap", + "documentation":"The tags for the experiment template.
" + } + }, + "documentation":"Provides a summary of an experiment template.
" + }, + "ExperimentTemplateSummaryList":{ + "type":"list", + "member":{"shape":"ExperimentTemplateSummary"} + }, + "ExperimentTemplateTarget":{ + "type":"structure", + "members":{ + "resourceType":{ + "shape":"ResourceType", + "documentation":"The resource type.
" + }, + "resourceArns":{ + "shape":"ResourceArnList", + "documentation":"The Amazon Resource Names (ARNs) of the targets.
" + }, + "resourceTags":{ + "shape":"TagMap", + "documentation":"The tags for the target resources.
" + }, + "filters":{ + "shape":"ExperimentTemplateTargetFilterList", + "documentation":"The filters to apply to identify target resources using specific attributes.
" + }, + "selectionMode":{ + "shape":"ExperimentTemplateTargetSelectionMode", + "documentation":"Scopes the identified resources to a specific count or percentage.
" + } + }, + "documentation":"Describes a target for an experiment template.
" + }, + "ExperimentTemplateTargetFilter":{ + "type":"structure", + "members":{ + "path":{ + "shape":"ExperimentTemplateTargetFilterPath", + "documentation":"The attribute path for the filter.
" + }, + "values":{ + "shape":"ExperimentTemplateTargetFilterValues", + "documentation":"The attribute values for the filter.
" + } + }, + "documentation":"Describes a filter used for the target resources in an experiment template.
" + }, + "ExperimentTemplateTargetFilterInputList":{ + "type":"list", + "member":{"shape":"ExperimentTemplateTargetInputFilter"} + }, + "ExperimentTemplateTargetFilterList":{ + "type":"list", + "member":{"shape":"ExperimentTemplateTargetFilter"} + }, + "ExperimentTemplateTargetFilterPath":{ + "type":"string", + "max":256, + "pattern":"[\\S]+" + }, + "ExperimentTemplateTargetFilterValue":{ + "type":"string", + "max":128, + "pattern":"[\\S]+" + }, + "ExperimentTemplateTargetFilterValues":{ + "type":"list", + "member":{"shape":"ExperimentTemplateTargetFilterValue"} + }, + "ExperimentTemplateTargetInputFilter":{ + "type":"structure", + "required":[ + "path", + "values" + ], + "members":{ + "path":{ + "shape":"ExperimentTemplateTargetFilterPath", + "documentation":"The attribute path for the filter.
" + }, + "values":{ + "shape":"ExperimentTemplateTargetFilterValues", + "documentation":"The attribute values for the filter.
" + } + }, + "documentation":"Describes a filter used for the target resource input in an experiment template.
" + }, + "ExperimentTemplateTargetMap":{ + "type":"map", + "key":{"shape":"ExperimentTemplateTargetName"}, + "value":{"shape":"ExperimentTemplateTarget"} + }, + "ExperimentTemplateTargetName":{ + "type":"string", + "max":64, + "pattern":"[\\S]+" + }, + "ExperimentTemplateTargetSelectionMode":{ + "type":"string", + "max":64, + "pattern":"[\\S]+" + }, + "GetActionRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"ActionId", + "documentation":"The ID of the action.
", + "location":"uri", + "locationName":"id" + } + } + }, + "GetActionResponse":{ + "type":"structure", + "members":{ + "action":{ + "shape":"Action", + "documentation":"Information about the action.
" + } + } + }, + "GetExperimentRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"ExperimentId", + "documentation":"The ID of the experiment.
", + "location":"uri", + "locationName":"id" + } + } + }, + "GetExperimentResponse":{ + "type":"structure", + "members":{ + "experiment":{ + "shape":"Experiment", + "documentation":"Information about the experiment.
" + } + } + }, + "GetExperimentTemplateRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"ExperimentTemplateId", + "documentation":"The ID of the experiment template.
", + "location":"uri", + "locationName":"id" + } + } + }, + "GetExperimentTemplateResponse":{ + "type":"structure", + "members":{ + "experimentTemplate":{ + "shape":"ExperimentTemplate", + "documentation":"Information about the experiment template.
" + } + } + }, + "LastUpdateTime":{"type":"timestamp"}, + "ListActionsMaxResults":{ + "type":"integer", + "max":100, + "min":1 + }, + "ListActionsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListActionsMaxResults", + "documentation":"The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken
value.
The token for the next page of results.
", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListActionsResponse":{ + "type":"structure", + "members":{ + "actions":{ + "shape":"ActionSummaryList", + "documentation":"The actions.
" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"The token to use to retrieve the next page of results. This value is null
when there are no more results to return.
The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken
value.
The token for the next page of results.
", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListExperimentTemplatesResponse":{ + "type":"structure", + "members":{ + "experimentTemplates":{ + "shape":"ExperimentTemplateSummaryList", + "documentation":"The experiment templates.
" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"The token to use to retrieve the next page of results. This value is null
when there are no more results to return.
The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken
value.
The token for the next page of results.
", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListExperimentsResponse":{ + "type":"structure", + "members":{ + "experiments":{ + "shape":"ExperimentSummaryList", + "documentation":"The experiments.
" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"The token to use to retrieve the next page of results. This value is null
when there are no more results to return.
The Amazon Resource Name (ARN) of the resource.
", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{ + "shape":"TagMap", + "documentation":"The tags for the resource.
" + } + } + }, + "NextToken":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"[\\S]+" + }, + "ResourceArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"[\\S]+" + }, + "ResourceArnList":{ + "type":"list", + "member":{"shape":"ResourceArn"}, + "max":5 + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "documentation":"The specified resource cannot be found.
", + "error":{"httpStatusCode":404}, + "exception":true + }, + "ResourceType":{ + "type":"string", + "max":64, + "pattern":"[\\S]+" + }, + "RoleArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"[\\S]+" + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "documentation":"You have exceeded your service quota.
", + "error":{"httpStatusCode":402}, + "exception":true + }, + "StartExperimentRequest":{ + "type":"structure", + "required":[ + "clientToken", + "experimentTemplateId" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.
", + "idempotencyToken":true + }, + "experimentTemplateId":{ + "shape":"ExperimentTemplateId", + "documentation":"The ID of the experiment template.
" + }, + "tags":{ + "shape":"TagMap", + "documentation":"The tags to apply to the experiment.
" + } + } + }, + "StartExperimentResponse":{ + "type":"structure", + "members":{ + "experiment":{ + "shape":"Experiment", + "documentation":"Information about the experiment.
" + } + } + }, + "StopConditionSource":{ + "type":"string", + "max":64, + "pattern":"[\\S]+" + }, + "StopConditionValue":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"[\\s\\S]+" + }, + "StopExperimentRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"ExperimentId", + "documentation":"The ID of the experiment.
", + "location":"uri", + "locationName":"id" + } + } + }, + "StopExperimentResponse":{ + "type":"structure", + "members":{ + "experiment":{ + "shape":"Experiment", + "documentation":"Information about the experiment.
" + } + } + }, + "TagKey":{ + "type":"string", + "max":128, + "pattern":"[\\s\\S]+" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"} + }, + "TagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "max":50 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"The Amazon Resource Name (ARN) of the resource.
", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{ + "shape":"TagMap", + "documentation":"The tags for the resource.
" + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "pattern":"[\\s\\S]*" + }, + "TargetResourceType":{ + "type":"string", + "max":128, + "pattern":"[\\S]+" + }, + "UntagResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"The Amazon Resource Name (ARN) of the resource.
", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeyList", + "documentation":"The tag keys to remove.
", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateExperimentTemplateActionInputItem":{ + "type":"structure", + "members":{ + "actionId":{ + "shape":"ActionId", + "documentation":"The ID of the action.
" + }, + "description":{ + "shape":"ExperimentTemplateActionDescription", + "documentation":"A description for the action.
" + }, + "parameters":{ + "shape":"ExperimentTemplateActionParameterMap", + "documentation":"The parameters for the action, if applicable.
" + }, + "targets":{ + "shape":"ExperimentTemplateActionTargetMap", + "documentation":"The targets for the action.
" + }, + "startAfter":{ + "shape":"ExperimentTemplateActionStartAfterList", + "documentation":"The name of the action that must be completed before the current action starts. Omit this parameter to run the action at the start of the experiment.
" + } + }, + "documentation":"Specifies an action for an experiment template.
" + }, + "UpdateExperimentTemplateActionInputMap":{ + "type":"map", + "key":{"shape":"ExperimentTemplateActionName"}, + "value":{"shape":"UpdateExperimentTemplateActionInputItem"} + }, + "UpdateExperimentTemplateRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"ExperimentTemplateId", + "documentation":"The ID of the experiment template.
", + "location":"uri", + "locationName":"id" + }, + "description":{ + "shape":"ExperimentTemplateDescription", + "documentation":"A description for the template.
" + }, + "stopConditions":{ + "shape":"UpdateExperimentTemplateStopConditionInputList", + "documentation":"The stop conditions for the experiment.
" + }, + "targets":{ + "shape":"UpdateExperimentTemplateTargetInputMap", + "documentation":"The targets for the experiment.
" + }, + "actions":{ + "shape":"UpdateExperimentTemplateActionInputMap", + "documentation":"The actions for the experiment.
" + }, + "roleArn":{ + "shape":"RoleArn", + "documentation":"The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf.
" + } + } + }, + "UpdateExperimentTemplateResponse":{ + "type":"structure", + "members":{ + "experimentTemplate":{ + "shape":"ExperimentTemplate", + "documentation":"Information about the experiment template.
" + } + } + }, + "UpdateExperimentTemplateStopConditionInput":{ + "type":"structure", + "required":["source"], + "members":{ + "source":{ + "shape":"StopConditionSource", + "documentation":"The source for the stop condition. Specify aws:cloudwatch:alarm
if the stop condition is defined by a CloudWatch alarm. Specify none
if there is no stop condition.
The Amazon Resource Name (ARN) of the CloudWatch alarm.
" + } + }, + "documentation":"Specifies a stop condition for an experiment. You can define a stop condition as a CloudWatch alarm.
" + }, + "UpdateExperimentTemplateStopConditionInputList":{ + "type":"list", + "member":{"shape":"UpdateExperimentTemplateStopConditionInput"} + }, + "UpdateExperimentTemplateTargetInput":{ + "type":"structure", + "required":[ + "resourceType", + "selectionMode" + ], + "members":{ + "resourceType":{ + "shape":"ResourceType", + "documentation":"The AWS resource type. The resource type must be supported for the specified action.
" + }, + "resourceArns":{ + "shape":"ResourceArnList", + "documentation":"The Amazon Resource Names (ARNs) of the targets.
" + }, + "resourceTags":{ + "shape":"TagMap", + "documentation":"The tags for the target resources.
" + }, + "filters":{ + "shape":"ExperimentTemplateTargetFilterInputList", + "documentation":"The filters to apply to identify target resources using specific attributes.
" + }, + "selectionMode":{ + "shape":"ExperimentTemplateTargetSelectionMode", + "documentation":"Scopes the identified resources to a specific count or percentage.
" + } + }, + "documentation":"Specifies a target for an experiment. You must specify at least one Amazon Resource Name (ARN) or at least one resource tag. You cannot specify both.
" + }, + "UpdateExperimentTemplateTargetInputMap":{ + "type":"map", + "key":{"shape":"ExperimentTemplateTargetName"}, + "value":{"shape":"UpdateExperimentTemplateTargetInput"} + }, + "ValidationException":{ + "type":"structure", + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "documentation":"The specified input is not valid, or fails to satisfy the constraints for the request.
", + "error":{"httpStatusCode":400}, + "exception":true + } + }, + "documentation":"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 AWS Fault Injection Simulator User Guide.
" +}