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 @@ + + + + + 4.0.0 + + software.amazon.awssdk + services + 2.16.19-SNAPSHOT + + fis + AWS Java SDK :: Services :: Fis + The AWS Java SDK for Fis module holds the client classes that are used for + communicating with Fis. + + https://aws.amazon.com/sdkforjava + + + + org.apache.maven.plugins + maven-jar-plugin + + + + software.amazon.awssdk.services.fis + + + + + + + + + + software.amazon.awssdk + protocol-core + ${awsjavasdk.version} + + + software.amazon.awssdk + aws-json-protocol + ${awsjavasdk.version} + + + diff --git a/services/fis/src/main/resources/codegen-resources/paginators-1.json b/services/fis/src/main/resources/codegen-resources/paginators-1.json new file mode 100644 index 000000000000..325359fe45ef --- /dev/null +++ b/services/fis/src/main/resources/codegen-resources/paginators-1.json @@ -0,0 +1,19 @@ +{ + "pagination": { + "ListActions": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListExperimentTemplates": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListExperiments": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + } + } +} diff --git a/services/fis/src/main/resources/codegen-resources/service-2.json b/services/fis/src/main/resources/codegen-resources/service-2.json new file mode 100644 index 000000000000..46b1b61838ee --- /dev/null +++ b/services/fis/src/main/resources/codegen-resources/service-2.json @@ -0,0 +1,1610 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2020-12-01", + "endpointPrefix":"fis", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceAbbreviation":"FIS", + "serviceFullName":"AWS Fault Injection Simulator", + "serviceId":"fis", + "signatureVersion":"v4", + "signingName":"fis", + "uid":"fis-2020-12-01" + }, + "operations":{ + "CreateExperimentTemplate":{ + "name":"CreateExperimentTemplate", + "http":{ + "method":"POST", + "requestUri":"/experimentTemplates", + "responseCode":200 + }, + "input":{"shape":"CreateExperimentTemplateRequest"}, + "output":{"shape":"CreateExperimentTemplateResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Creates an experiment template.

To create a template, specify the following information:

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.

" + }, + "value":{ + "shape":"StopConditionValue", + "documentation":"

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.

" + } + }, + "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 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.

", + "box":true, + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

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.

" + } + } + }, + "ListExperimentTemplatesMaxResults":{ + "type":"integer", + "max":100, + "min":1 + }, + "ListExperimentTemplatesRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListExperimentTemplatesMaxResults", + "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.

", + "box":true, + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

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.

" + } + } + }, + "ListExperimentsMaxResults":{ + "type":"integer", + "max":100, + "min":1 + }, + "ListExperimentsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListExperimentsMaxResults", + "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.

", + "box":true, + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

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.

" + } + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"

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.

" + }, + "value":{ + "shape":"StopConditionValue", + "documentation":"

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.

" +}