From dd984e98c0a142413e405b94f331766dfe7a4f61 Mon Sep 17 00:00:00 2001 From: awssdkgo Date: Mon, 15 Mar 2021 18:15:30 +0000 Subject: [PATCH] Release v1.37.31 (2021-03-15) === ### Service Client Updates * `service/codedeploy`: Updates service API and documentation * AWS CodeDeploy can now detect instances running an outdated revision of your application and automatically update them with the latest revision. * `service/ecs`: Updates service API and documentation * This is for ecs exec feature release which includes two new APIs - execute-command and update-cluster and an AWS CLI customization for execute-command API * `service/elasticmapreduce`: Updates service API and documentation * Amazon EMR customers can now specify Resource Group to target Capacity Reservations in their EMR clusters with instance fleets using allocation strategy. * `service/fis`: Updates service API, documentation, paginators, and examples * `service/transcribe-streaming`: Updates service API and documentation --- CHANGELOG.md | 13 + aws/version.go | 2 +- models/apis/codedeploy/2014-10-06/api-2.json | 31 +- models/apis/codedeploy/2014-10-06/docs-2.json | 27 +- models/apis/ecs/2014-11-13/api-2.json | 175 +- models/apis/ecs/2014-11-13/docs-2.json | 201 +- .../elasticmapreduce/2009-03-31/api-2.json | 3 +- .../elasticmapreduce/2009-03-31/docs-2.json | 7 +- models/apis/fis/2020-12-01/api-2.json | 1160 +++++ models/apis/fis/2020-12-01/docs-2.json | 915 ++++ models/apis/fis/2020-12-01/examples-1.json | 5 + models/apis/fis/2020-12-01/paginators-1.json | 19 + .../2017-10-26/api-2.json | 6 +- .../2017-10-26/docs-2.json | 9 +- service/codedeploy/api.go | 124 +- service/ecs/api.go | 1312 ++++- service/ecs/doc.go | 14 +- service/ecs/ecsiface/interface.go | 8 + service/ecs/errors.go | 8 + service/emr/api.go | 23 +- service/fis/api.go | 4238 +++++++++++++++++ service/fis/doc.go | 30 + service/fis/errors.go | 42 + service/fis/fisiface/interface.go | 129 + service/fis/service.go | 104 + service/transcribestreamingservice/api.go | 21 +- .../eventstream_test.go | 27 + 27 files changed, 8388 insertions(+), 265 deletions(-) create mode 100644 models/apis/fis/2020-12-01/api-2.json create mode 100644 models/apis/fis/2020-12-01/docs-2.json create mode 100644 models/apis/fis/2020-12-01/examples-1.json create mode 100644 models/apis/fis/2020-12-01/paginators-1.json create mode 100644 service/fis/api.go create mode 100644 service/fis/doc.go create mode 100644 service/fis/errors.go create mode 100644 service/fis/fisiface/interface.go create mode 100644 service/fis/service.go diff --git a/CHANGELOG.md b/CHANGELOG.md index 17647f241c5..dac470ed8d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,16 @@ +Release v1.37.31 (2021-03-15) +=== + +### Service Client Updates +* `service/codedeploy`: Updates service API and documentation + * AWS CodeDeploy can now detect instances running an outdated revision of your application and automatically update them with the latest revision. +* `service/ecs`: Updates service API and documentation + * This is for ecs exec feature release which includes two new APIs - execute-command and update-cluster and an AWS CLI customization for execute-command API +* `service/elasticmapreduce`: Updates service API and documentation + * Amazon EMR customers can now specify Resource Group to target Capacity Reservations in their EMR clusters with instance fleets using allocation strategy. +* `service/fis`: Updates service API, documentation, paginators, and examples +* `service/transcribe-streaming`: Updates service API and documentation + Release v1.37.30 (2021-03-12) === diff --git a/aws/version.go b/aws/version.go index bccdd196e11..cf16ba68ef4 100644 --- a/aws/version.go +++ b/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.37.30" +const SDKVersion = "1.37.31" diff --git a/models/apis/codedeploy/2014-10-06/api-2.json b/models/apis/codedeploy/2014-10-06/api-2.json index ad2f4ece7a6..3af4e41fead 100644 --- a/models/apis/codedeploy/2014-10-06/api-2.json +++ b/models/apis/codedeploy/2014-10-06/api-2.json @@ -1235,6 +1235,7 @@ "triggerConfigurations":{"shape":"TriggerConfigList"}, "alarmConfiguration":{"shape":"AlarmConfiguration"}, "autoRollbackConfiguration":{"shape":"AutoRollbackConfiguration"}, + "outdatedInstancesStrategy":{"shape":"OutdatedInstancesStrategy"}, "deploymentStyle":{"shape":"DeploymentStyle"}, "blueGreenDeploymentConfiguration":{"shape":"BlueGreenDeploymentConfiguration"}, "loadBalancerInfo":{"shape":"LoadBalancerInfo"}, @@ -1396,6 +1397,7 @@ "autoscaling", "codeDeployRollback", "CodeDeploy", + "CodeDeployAutoUpdate", "CloudFormation", "CloudFormationRollback" ] @@ -1435,6 +1437,7 @@ "alarmConfiguration":{"shape":"AlarmConfiguration"}, "autoRollbackConfiguration":{"shape":"AutoRollbackConfiguration"}, "deploymentStyle":{"shape":"DeploymentStyle"}, + "outdatedInstancesStrategy":{"shape":"OutdatedInstancesStrategy"}, "blueGreenDeploymentConfiguration":{"shape":"BlueGreenDeploymentConfiguration"}, "loadBalancerInfo":{"shape":"LoadBalancerInfo"}, "lastSuccessfulDeployment":{"shape":"LastDeploymentInfo"}, @@ -1507,7 +1510,8 @@ "fileExistsBehavior":{"shape":"FileExistsBehavior"}, "deploymentStatusMessages":{"shape":"DeploymentStatusMessageList"}, "computePlatform":{"shape":"ComputePlatform"}, - "externalId":{"shape":"ExternalId"} + "externalId":{"shape":"ExternalId"}, + "relatedDeployments":{"shape":"RelatedDeployments"} } }, "DeploymentIsNotInReadyStateException":{ @@ -2207,12 +2211,6 @@ }, "exception":true }, - "InvalidDeploymentConfigIdException":{ - "type":"structure", - "members":{ - }, - "exception":true - }, "InvalidDeploymentConfigNameException":{ "type":"structure", "members":{ @@ -2761,8 +2759,8 @@ "MinimumHealthyHosts":{ "type":"structure", "members":{ - "value":{"shape":"MinimumHealthyHostsValue"}, - "type":{"shape":"MinimumHealthyHostsType"} + "type":{"shape":"MinimumHealthyHostsType"}, + "value":{"shape":"MinimumHealthyHostsValue"} } }, "MinimumHealthyHostsType":{ @@ -2797,6 +2795,13 @@ }, "exception":true }, + "OutdatedInstancesStrategy":{ + "type":"string", + "enum":[ + "UPDATE", + "IGNORE" + ] + }, "Percentage":{"type":"integer"}, "PutLifecycleEventHookExecutionStatusInput":{ "type":"structure", @@ -2851,6 +2856,13 @@ "Deregistered" ] }, + "RelatedDeployments":{ + "type":"structure", + "members":{ + "autoUpdateOutdatedInstancesRootDeploymentId":{"shape":"DeploymentId"}, + "autoUpdateOutdatedInstancesDeploymentIds":{"shape":"DeploymentsList"} + } + }, "RemoveTagsFromOnPremisesInstancesInput":{ "type":"structure", "required":[ @@ -3259,6 +3271,7 @@ "triggerConfigurations":{"shape":"TriggerConfigList"}, "alarmConfiguration":{"shape":"AlarmConfiguration"}, "autoRollbackConfiguration":{"shape":"AutoRollbackConfiguration"}, + "outdatedInstancesStrategy":{"shape":"OutdatedInstancesStrategy"}, "deploymentStyle":{"shape":"DeploymentStyle"}, "blueGreenDeploymentConfiguration":{"shape":"BlueGreenDeploymentConfiguration"}, "loadBalancerInfo":{"shape":"LoadBalancerInfo"}, diff --git a/models/apis/codedeploy/2014-10-06/docs-2.json b/models/apis/codedeploy/2014-10-06/docs-2.json index b5dc8a60bb2..900528e8a5d 100644 --- a/models/apis/codedeploy/2014-10-06/docs-2.json +++ b/models/apis/codedeploy/2014-10-06/docs-2.json @@ -552,7 +552,7 @@ "DeploymentCreator": { "base": null, "refs": { - "DeploymentInfo$creator": "

The means by which the deployment was created:

" + "DeploymentInfo$creator": "

The means by which the deployment was created:

" } }, "DeploymentDoesNotExistException": { @@ -644,6 +644,7 @@ "ListDeploymentInstancesInput$deploymentId": "

The unique ID of a deployment.

", "ListDeploymentTargetsInput$deploymentId": "

The unique ID of a deployment.

", "PutLifecycleEventHookExecutionStatusInput$deploymentId": "

The unique ID of a deployment. Pass this ID to a Lambda function that validates a deployment lifecycle event.

", + "RelatedDeployments$autoUpdateOutdatedInstancesRootDeploymentId": "

The deployment ID of the root deployment that triggered this deployment.

", "RollbackInfo$rollbackDeploymentId": "

The ID of the deployment rollback.

", "RollbackInfo$rollbackTriggeringDeploymentId": "

The deployment ID of the deployment that was underway and triggered a rollback deployment because it failed or was stopped.

", "SkipWaitTimeForInstanceTerminationInput$deploymentId": "

The unique ID of a blue/green deployment for which you want to skip the instance termination wait time.

", @@ -786,7 +787,8 @@ "base": null, "refs": { "BatchGetDeploymentsInput$deploymentIds": "

A list of deployment IDs, separated by spaces. The maximum number of deployment IDs you can specify is 25.

", - "ListDeploymentsOutput$deployments": "

A list of deployment IDs.

" + "ListDeploymentsOutput$deployments": "

A list of deployment IDs.

", + "RelatedDeployments$autoUpdateOutdatedInstancesDeploymentIds": "

The deployment IDs of 'auto-update outdated instances' deployments triggered by this deployment.

" } }, "DeregisterOnPremisesInstanceInput": { @@ -1355,11 +1357,6 @@ "refs": { } }, - "InvalidDeploymentConfigIdException": { - "base": "

The ID of the deployment configuration is invalid.

", - "refs": { - } - }, "InvalidDeploymentConfigNameException": { "base": "

The deployment configuration name was specified in an invalid format.

", "refs": { @@ -1679,7 +1676,7 @@ "base": null, "refs": { "LifecycleEvent$status": "

The deployment lifecycle event status:

", - "PutLifecycleEventHookExecutionStatusInput$status": "

The result of a Lambda function that validates a deployment lifecycle event (Succeeded or Failed).

" + "PutLifecycleEventHookExecutionStatusInput$status": "

The result of a Lambda function that validates a deployment lifecycle event. Succeeded and Failed are the only valid values for status.

" } }, "LifecycleHookLimitExceededException": { @@ -1906,6 +1903,14 @@ "refs": { } }, + "OutdatedInstancesStrategy": { + "base": null, + "refs": { + "CreateDeploymentGroupInput$outdatedInstancesStrategy": "

Indicates what happens when new EC2 instances are launched mid-deployment and do not receive the deployed application revision.

If this option is set to UPDATE or is unspecified, CodeDeploy initiates one or more 'auto-update outdated instances' deployments to apply the deployed application revision to the new EC2 instances.

If this option is set to IGNORE, CodeDeploy does not initiate a deployment to update the new EC2 instances. This may result in instances having different revisions.

", + "DeploymentGroupInfo$outdatedInstancesStrategy": "

Indicates what happens when new EC2 instances are launched mid-deployment and do not receive the deployed application revision.

If this option is set to UPDATE or is unspecified, CodeDeploy initiates one or more 'auto-update outdated instances' deployments to apply the deployed application revision to the new EC2 instances.

If this option is set to IGNORE, CodeDeploy does not initiate a deployment to update the new EC2 instances. This may result in instances having different revisions.

", + "UpdateDeploymentGroupInput$outdatedInstancesStrategy": "

Indicates what happens when new EC2 instances are launched mid-deployment and do not receive the deployed application revision.

If this option is set to UPDATE or is unspecified, CodeDeploy initiates one or more 'auto-update outdated instances' deployments to apply the deployed application revision to the new EC2 instances.

If this option is set to IGNORE, CodeDeploy does not initiate a deployment to update the new EC2 instances. This may result in instances having different revisions.

" + } + }, "Percentage": { "base": null, "refs": { @@ -1959,6 +1964,12 @@ "ListOnPremisesInstancesInput$registrationStatus": "

The registration status of the on-premises instances:

" } }, + "RelatedDeployments": { + "base": "

Information about deployments related to the specified deployment.

", + "refs": { + "DeploymentInfo$relatedDeployments": null + } + }, "RemoveTagsFromOnPremisesInstancesInput": { "base": "

Represents the input of a RemoveTagsFromOnPremisesInstances operation.

", "refs": { diff --git a/models/apis/ecs/2014-11-13/api-2.json b/models/apis/ecs/2014-11-13/api-2.json index 3766114763c..3632e7f8991 100644 --- a/models/apis/ecs/2014-11-13/api-2.json +++ b/models/apis/ecs/2014-11-13/api-2.json @@ -328,6 +328,23 @@ {"shape":"ClientException"} ] }, + "ExecuteCommand":{ + "name":"ExecuteCommand", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ExecuteCommandRequest"}, + "output":{"shape":"ExecuteCommandResponse"}, + "errors":[ + {"shape":"ServerException"}, + {"shape":"ClientException"}, + {"shape":"InvalidParameterException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ClusterNotFoundException"}, + {"shape":"TargetNotConnectedException"} + ] + }, "ListAccountSettings":{ "name":"ListAccountSettings", "http":{ @@ -686,6 +703,21 @@ {"shape":"InvalidParameterException"} ] }, + "UpdateCluster":{ + "name":"UpdateCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateClusterRequest"}, + "output":{"shape":"UpdateClusterResponse"}, + "errors":[ + {"shape":"ServerException"}, + {"shape":"ClientException"}, + {"shape":"ClusterNotFoundException"}, + {"shape":"InvalidParameterException"} + ] + }, "UpdateClusterSettings":{ "name":"UpdateClusterSettings", "http":{ @@ -989,6 +1021,7 @@ "members":{ "clusterArn":{"shape":"String"}, "clusterName":{"shape":"String"}, + "configuration":{"shape":"ClusterConfiguration"}, "status":{"shape":"String"}, "registeredContainerInstancesCount":{"shape":"Integer"}, "runningTasksCount":{"shape":"Integer"}, @@ -1003,6 +1036,12 @@ "attachmentsStatus":{"shape":"String"} } }, + "ClusterConfiguration":{ + "type":"structure", + "members":{ + "executeCommandConfiguration":{"shape":"ExecuteCommandConfiguration"} + } + }, "ClusterContainsContainerInstancesException":{ "type":"structure", "members":{ @@ -1025,6 +1064,7 @@ "type":"string", "enum":[ "ATTACHMENTS", + "CONFIGURATIONS", "SETTINGS", "STATISTICS", "TAGS" @@ -1092,6 +1132,7 @@ "networkBindings":{"shape":"NetworkBindings"}, "networkInterfaces":{"shape":"NetworkInterfaces"}, "healthStatus":{"shape":"HealthStatus"}, + "managedAgents":{"shape":"ManagedAgents"}, "cpu":{"shape":"String"}, "memory":{"shape":"String"}, "memoryReservation":{"shape":"String"}, @@ -1275,6 +1316,7 @@ "clusterName":{"shape":"String"}, "tags":{"shape":"Tags"}, "settings":{"shape":"ClusterSettings"}, + "configuration":{"shape":"ClusterConfiguration"}, "capacityProviders":{"shape":"StringList"}, "defaultCapacityProviderStrategy":{"shape":"CapacityProviderStrategy"} } @@ -1309,7 +1351,8 @@ "deploymentController":{"shape":"DeploymentController"}, "tags":{"shape":"Tags"}, "enableECSManagedTags":{"shape":"Boolean"}, - "propagateTags":{"shape":"PropagateTags"} + "propagateTags":{"shape":"PropagateTags"}, + "enableExecuteCommand":{"shape":"Boolean"} } }, "CreateServiceResponse":{ @@ -1762,6 +1805,58 @@ "type":"list", "member":{"shape":"KeyValuePair"} }, + "ExecuteCommandConfiguration":{ + "type":"structure", + "members":{ + "kmsKeyId":{"shape":"String"}, + "logging":{"shape":"ExecuteCommandLogging"}, + "logConfiguration":{"shape":"ExecuteCommandLogConfiguration"} + } + }, + "ExecuteCommandLogConfiguration":{ + "type":"structure", + "members":{ + "cloudWatchLogGroupName":{"shape":"String"}, + "cloudWatchEncryptionEnabled":{"shape":"Boolean"}, + "s3BucketName":{"shape":"String"}, + "s3EncryptionEnabled":{"shape":"Boolean"}, + "s3KeyPrefix":{"shape":"String"} + } + }, + "ExecuteCommandLogging":{ + "type":"string", + "enum":[ + "NONE", + "DEFAULT", + "OVERRIDE" + ] + }, + "ExecuteCommandRequest":{ + "type":"structure", + "required":[ + "command", + "interactive", + "task" + ], + "members":{ + "cluster":{"shape":"String"}, + "container":{"shape":"String"}, + "command":{"shape":"String"}, + "interactive":{"shape":"Boolean"}, + "task":{"shape":"String"} + } + }, + "ExecuteCommandResponse":{ + "type":"structure", + "members":{ + "clusterArn":{"shape":"String"}, + "containerArn":{"shape":"String"}, + "containerName":{"shape":"String"}, + "interactive":{"shape":"Boolean"}, + "session":{"shape":"Session"}, + "taskArn":{"shape":"String"} + } + }, "FSxWindowsFileServerAuthorizationConfig":{ "type":"structure", "required":[ @@ -2135,6 +2230,41 @@ ] }, "Long":{"type":"long"}, + "ManagedAgent":{ + "type":"structure", + "members":{ + "lastStartedAt":{"shape":"Timestamp"}, + "name":{"shape":"ManagedAgentName"}, + "reason":{"shape":"String"}, + "lastStatus":{"shape":"String"} + } + }, + "ManagedAgentName":{ + "type":"string", + "enum":["ExecuteCommandAgent"] + }, + "ManagedAgentStateChange":{ + "type":"structure", + "required":[ + "containerName", + "managedAgentName", + "status" + ], + "members":{ + "containerName":{"shape":"String"}, + "managedAgentName":{"shape":"ManagedAgentName"}, + "status":{"shape":"String"}, + "reason":{"shape":"String"} + } + }, + "ManagedAgentStateChanges":{ + "type":"list", + "member":{"shape":"ManagedAgentStateChange"} + }, + "ManagedAgents":{ + "type":"list", + "member":{"shape":"ManagedAgent"} + }, "ManagedScaling":{ "type":"structure", "members":{ @@ -2536,6 +2666,7 @@ "cluster":{"shape":"String"}, "count":{"shape":"BoxedInteger"}, "enableECSManagedTags":{"shape":"Boolean"}, + "enableExecuteCommand":{"shape":"Boolean"}, "group":{"shape":"String"}, "launchType":{"shape":"LaunchType"}, "networkConfiguration":{"shape":"NetworkConfiguration"}, @@ -2597,6 +2728,10 @@ "type":"list", "member":{"shape":"Secret"} }, + "SensitiveString":{ + "type":"string", + "sensitive":true + }, "ServerException":{ "type":"structure", "members":{ @@ -2636,7 +2771,8 @@ "tags":{"shape":"Tags"}, "createdBy":{"shape":"String"}, "enableECSManagedTags":{"shape":"Boolean"}, - "propagateTags":{"shape":"PropagateTags"} + "propagateTags":{"shape":"PropagateTags"}, + "enableExecuteCommand":{"shape":"Boolean"} } }, "ServiceEvent":{ @@ -2688,6 +2824,14 @@ "type":"list", "member":{"shape":"Service"} }, + "Session":{ + "type":"structure", + "members":{ + "sessionId":{"shape":"String"}, + "streamUrl":{"shape":"String"}, + "tokenValue":{"shape":"SensitiveString"} + } + }, "Setting":{ "type":"structure", "members":{ @@ -2734,6 +2878,7 @@ "cluster":{"shape":"String"}, "containerInstances":{"shape":"StringList"}, "enableECSManagedTags":{"shape":"Boolean"}, + "enableExecuteCommand":{"shape":"Boolean"}, "group":{"shape":"String"}, "networkConfiguration":{"shape":"NetworkConfiguration"}, "overrides":{"shape":"TaskOverride"}, @@ -2822,6 +2967,7 @@ "reason":{"shape":"String"}, "containers":{"shape":"ContainerStateChanges"}, "attachments":{"shape":"AttachmentStateChanges"}, + "managedAgents":{"shape":"ManagedAgentStateChanges"}, "pullStartedAt":{"shape":"Timestamp"}, "pullStoppedAt":{"shape":"Timestamp"}, "executionStoppedAt":{"shape":"Timestamp"} @@ -2889,6 +3035,12 @@ "max":50, "min":0 }, + "TargetNotConnectedException":{ + "type":"structure", + "members":{ + }, + "exception":true + }, "TargetNotFoundException":{ "type":"structure", "members":{ @@ -2914,6 +3066,7 @@ "cpu":{"shape":"String"}, "createdAt":{"shape":"Timestamp"}, "desiredStatus":{"shape":"String"}, + "enableExecuteCommand":{"shape":"Boolean"}, "executionStoppedAt":{"shape":"Timestamp"}, "group":{"shape":"String"}, "healthStatus":{"shape":"HealthStatus"}, @@ -3179,6 +3332,21 @@ "capacityProvider":{"shape":"CapacityProvider"} } }, + "UpdateClusterRequest":{ + "type":"structure", + "required":["cluster"], + "members":{ + "cluster":{"shape":"String"}, + "settings":{"shape":"ClusterSettings"}, + "configuration":{"shape":"ClusterConfiguration"} + } + }, + "UpdateClusterResponse":{ + "type":"structure", + "members":{ + "cluster":{"shape":"Cluster"} + } + }, "UpdateClusterSettingsRequest":{ "type":"structure", "required":[ @@ -3269,7 +3437,8 @@ "placementStrategy":{"shape":"PlacementStrategies"}, "platformVersion":{"shape":"String"}, "forceNewDeployment":{"shape":"Boolean"}, - "healthCheckGracePeriodSeconds":{"shape":"BoxedInteger"} + "healthCheckGracePeriodSeconds":{"shape":"BoxedInteger"}, + "enableExecuteCommand":{"shape":"BoxedBoolean"} } }, "UpdateServiceResponse":{ diff --git a/models/apis/ecs/2014-11-13/docs-2.json b/models/apis/ecs/2014-11-13/docs-2.json index 2000f5a28f3..a212b8b5771 100644 --- a/models/apis/ecs/2014-11-13/docs-2.json +++ b/models/apis/ecs/2014-11-13/docs-2.json @@ -1,6 +1,6 @@ { "version": "2.0", - "service": "Amazon Elastic Container Service

Amazon Elastic Container Service (Amazon ECS) is a highly scalable, fast, container management service that makes it easy to run, stop, and manage Docker containers on a cluster. You can host your cluster on a serverless infrastructure that is managed by Amazon ECS by launching your services or tasks using the Fargate launch type. For more control, you can host your tasks on a cluster of Amazon Elastic Compute Cloud (Amazon EC2) instances that you manage by using the EC2 launch type. For more information about launch types, see Amazon ECS Launch Types.

Amazon ECS lets you launch and stop container-based applications with simple API calls, allows you to get the state of your cluster from a centralized service, and gives you access to many familiar Amazon EC2 features.

You can use Amazon ECS to schedule the placement of containers across your cluster based on your resource needs, isolation policies, and availability requirements. Amazon ECS eliminates the need for you to operate your own cluster management and configuration management systems or worry about scaling your management infrastructure.

", + "service": "Amazon Elastic Container Service

Amazon Elastic Container Service (Amazon ECS) is a highly scalable, fast, container management service that makes it easy to run, stop, and manage Docker containers on a cluster. You can host your cluster on a serverless infrastructure that is managed by Amazon ECS by launching your services or tasks on AWS Fargate. For more control, you can host your tasks on a cluster of Amazon Elastic Compute Cloud (Amazon EC2) instances that you manage.

Amazon ECS makes it easy to launch and stop container-based applications with simple API calls, allows you to get the state of your cluster from a centralized service, and gives you access to many familiar Amazon EC2 features.

You can use Amazon ECS to schedule the placement of containers across your cluster based on your resource needs, isolation policies, and availability requirements. Amazon ECS eliminates the need for you to operate your own cluster management and configuration management systems or worry about scaling your management infrastructure.

", "operations": { "CreateCapacityProvider": "

Creates a new capacity provider. Capacity providers are associated with an Amazon ECS cluster and are used in capacity provider strategies to facilitate cluster auto scaling.

Only capacity providers using an Auto Scaling group can be created. Amazon ECS tasks on AWS Fargate use the FARGATE and FARGATE_SPOT capacity providers which are already created and available to all accounts in Regions supported by AWS Fargate.

", "CreateCluster": "

Creates a new Amazon ECS cluster. By default, your account receives a default cluster when you launch your first container instance. However, you can create your own cluster with a unique name with the CreateCluster action.

When you call the CreateCluster API operation, Amazon ECS attempts to create the Amazon ECS service-linked role for your account so that required resources in other AWS services can be managed on your behalf. However, if the IAM user that makes the call does not have permissions to create the service-linked role, it is not created. For more information, see Using Service-Linked Roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

", @@ -22,6 +22,7 @@ "DescribeTaskSets": "

Describes the task sets in the specified cluster and service. This is used when a service uses the EXTERNAL deployment controller type. For more information, see Amazon ECS Deployment Types in the Amazon Elastic Container Service Developer Guide.

", "DescribeTasks": "

Describes a specified task or tasks.

", "DiscoverPollEndpoint": "

This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent.

Returns an endpoint for the Amazon ECS agent to poll for updates.

", + "ExecuteCommand": "

Runs a command remotely on a container within a task.

", "ListAccountSettings": "

Lists the account settings for a specified principal.

", "ListAttributes": "

Lists the attributes for Amazon ECS resources within a specified target type and cluster. When you specify a target type and cluster, ListAttributes returns a list of attribute objects, one for each attribute on each resource. You can filter the list of results to a single attribute name to only return results that have that name. You can also filter the results by attribute name and value, for example, to see which container instances in a cluster are running a Linux AMI (ecs.os-type=linux).

", "ListClusters": "

Returns a list of existing clusters.

", @@ -46,6 +47,7 @@ "TagResource": "

Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are deleted as well.

", "UntagResource": "

Deletes specified tags from a resource.

", "UpdateCapacityProvider": "

Modifies the parameters for a capacity provider.

", + "UpdateCluster": "

Updates the cluster.

", "UpdateClusterSettings": "

Modifies the settings to use for a cluster.

", "UpdateContainerAgent": "

Updates the Amazon ECS container agent on a specified container instance. Updating the Amazon ECS container agent does not interrupt running tasks or services on the container instance. The process for updating the agent differs depending on whether your container instance was launched with the Amazon ECS-optimized AMI or another operating system.

UpdateContainerAgent requires the Amazon ECS-optimized AMI or Amazon Linux with the ecs-init service installed and running. For help updating the Amazon ECS container agent on other operating systems, see Manually Updating the Amazon ECS Container Agent in the Amazon Elastic Container Service Developer Guide.

", "UpdateContainerInstancesState": "

Modifies the status of an Amazon ECS container instance.

Once a container instance has reached an ACTIVE state, you can change the status of a container instance to DRAINING to manually remove an instance from a cluster, for example to perform system updates, update the Docker daemon, or scale down the cluster size.

A container instance cannot be changed to DRAINING until it has reached an ACTIVE status. If the instance is in any other status, an error will be received.

When you set a container instance to DRAINING, Amazon ECS prevents new tasks from being scheduled for placement on the container instance and replacement service tasks are started on other container instances in the cluster if the resources are available. Service tasks on the container instance that are in the PENDING state are stopped immediately.

Service tasks on the container instance that are in the RUNNING state are stopped and replaced according to the service's deployment configuration parameters, minimumHealthyPercent and maximumPercent. You can change the deployment configuration of your service using UpdateService.

Any PENDING or RUNNING tasks that do not belong to a service are not affected. You must wait for them to finish or stop them manually.

A container instance has completed draining when it has no more RUNNING tasks. You can verify this using ListTasks.

When a container instance has been drained, you can set a container instance to ACTIVE status and once it has reached that status the Amazon ECS scheduler can begin scheduling tasks on the instance again.

", @@ -158,12 +160,21 @@ "refs": { "ContainerInstance$agentConnected": "

This parameter returns true if the agent is connected to Amazon ECS. Registered instances with an agent that may be unhealthy or stopped return false. Only instances connected to an agent can accept placement requests.

", "CreateServiceRequest$enableECSManagedTags": "

Specifies whether to enable Amazon ECS managed tags for the tasks within the service. For more information, see Tagging Your Amazon ECS Resources in the Amazon Elastic Container Service Developer Guide.

", + "CreateServiceRequest$enableExecuteCommand": "

Whether or not the execute command functionality is enabled for the service. If true, this enables execute command functionality on all containers in the service tasks.

", "DeploymentCircuitBreaker$enable": "

Whether to enable the deployment circuit breaker logic for the service.

", "DeploymentCircuitBreaker$rollback": "

Whether to enable Amazon ECS to roll back the service if a service deployment fails. If rollback is enabled, when a service deployment fails, the service is rolled back to the last deployment that completed successfully.

", + "ExecuteCommandLogConfiguration$cloudWatchEncryptionEnabled": "

Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled.

", + "ExecuteCommandLogConfiguration$s3EncryptionEnabled": "

Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled.

", + "ExecuteCommandRequest$interactive": "

Use this flag to run your command in interactive mode.

", + "ExecuteCommandResponse$interactive": "

Whether or not the execute command session is running in interactive mode.

", "ListAccountSettingsRequest$effectiveSettings": "

Specifies whether to return the effective settings. If true, the account settings for the root user or the default setting for the principalArn are returned. If false, the account settings for the principalArn are returned if they are set. Otherwise, no account settings are returned.

", "RunTaskRequest$enableECSManagedTags": "

Specifies whether to enable Amazon ECS managed tags for the task. For more information, see Tagging Your Amazon ECS Resources in the Amazon Elastic Container Service Developer Guide.

", + "RunTaskRequest$enableExecuteCommand": "

Whether or not to enable the execute command functionality for the containers in this task. If true, this enables execute command functionality on all containers in the task.

", "Service$enableECSManagedTags": "

Specifies whether to enable Amazon ECS managed tags for the tasks in the service. For more information, see Tagging Your Amazon ECS Resources in the Amazon Elastic Container Service Developer Guide.

", + "Service$enableExecuteCommand": "

Whether or not the execute command functionality is enabled for the service. If true, the execute command functionality is enabled for all containers in tasks as part of the service.

", "StartTaskRequest$enableECSManagedTags": "

Specifies whether to enable Amazon ECS managed tags for the task. For more information, see Tagging Your Amazon ECS Resources in the Amazon Elastic Container Service Developer Guide.

", + "StartTaskRequest$enableExecuteCommand": "

Whether or not the execute command functionality is enabled for the task. If true, this enables execute command functionality on all containers in the task.

", + "Task$enableExecuteCommand": "

Whether or not execute command functionality is enabled for this task. If true, this enables execute command functionality on all containers in the task.

", "UpdateServiceRequest$forceNewDeployment": "

Whether to force a new deployment of the service. Deployments are not forced by default. You can use this option to trigger a new deployment with no service definition changes. For example, you can update a service's tasks to use a newer Docker image with the same image/tag combination (my_image:latest) or to roll Fargate tasks onto a newer platform version.

" } }, @@ -172,7 +183,7 @@ "refs": { "ContainerDefinition$essential": "

If the essential parameter of a container is marked as true, and that container fails or stops for any reason, all other containers that are part of the task are stopped. If the essential parameter of a container is marked as false, then its failure does not affect the rest of the containers in a task. If this parameter is omitted, a container is assumed to be essential.

All tasks must have at least one essential container. If you have an application that is composed of multiple containers, you should group containers that are used for a common purpose into components, and separate the different components into multiple task definitions. For more information, see Application Architecture in the Amazon Elastic Container Service Developer Guide.

", "ContainerDefinition$disableNetworking": "

When this parameter is true, networking is disabled within the container. This parameter maps to NetworkDisabled in the Create a container section of the Docker Remote API.

This parameter is not supported for Windows containers or tasks that use the awsvpc network mode.

", - "ContainerDefinition$privileged": "

When this parameter is true, the container is given elevated privileges on the host container instance (similar to the root user). This parameter maps to Privileged in the Create a container section of the Docker Remote API and the --privileged option to docker run.

This parameter is not supported for Windows containers or tasks using the Fargate launch type.

", + "ContainerDefinition$privileged": "

When this parameter is true, the container is given elevated privileges on the host container instance (similar to the root user). This parameter maps to Privileged in the Create a container section of the Docker Remote API and the --privileged option to docker run.

This parameter is not supported for Windows containers or tasks run on AWS Fargate.

", "ContainerDefinition$readonlyRootFilesystem": "

When this parameter is true, the container is given read-only access to its root file system. This parameter maps to ReadonlyRootfs in the Create a container section of the Docker Remote API and the --read-only option to docker run.

This parameter is not supported for Windows containers or tasks that use the awsvpc network mode.

", "ContainerDefinition$interactive": "

When this parameter is true, this allows you to deploy containerized applications that require stdin or a tty to be allocated. This parameter maps to OpenStdin in the Create a container section of the Docker Remote API and the --interactive option to docker run.

", "ContainerDefinition$pseudoTerminal": "

When this parameter is true, a TTY is allocated. This parameter maps to Tty in the Create a container section of the Docker Remote API and the --tty option to docker run.

", @@ -182,6 +193,7 @@ "DockerVolumeConfiguration$autoprovision": "

If this value is true, the Docker volume is created if it does not already exist.

This field is only used if the scope is shared.

", "LinuxParameters$initProcessEnabled": "

Run an init process inside the container that forwards signals and reaps processes. This parameter maps to the --init option to docker run. This parameter requires version 1.25 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}'

", "MountPoint$readOnly": "

If this value is true, the container has read-only access to the volume. If this value is false, then the container can write to the volume. The default value is false.

", + "UpdateServiceRequest$enableExecuteCommand": "

If true, this enables execute command functionality on all task containers.

If you do not want to override the value that was set when the service was created, you can set this to null when performing this action.

", "VolumeFrom$readOnly": "

If this value is true, the container has read-only access to the volume. If this value is false, then the container can write to the volume. The default value is false.

" } }, @@ -262,19 +274,19 @@ "base": null, "refs": { "Cluster$defaultCapacityProviderStrategy": "

The default capacity provider strategy for the cluster. When services or tasks are run in the cluster with no launch type or capacity provider strategy specified, the default capacity provider strategy is used.

", - "CreateClusterRequest$defaultCapacityProviderStrategy": "

The capacity provider strategy to use by default for the cluster.

When creating a service or running a task on a cluster, if no capacity provider or launch type is specified then the default capacity provider strategy for the cluster is used.

A capacity provider strategy consists of one or more capacity providers along with the base and weight to assign to them. A capacity provider must be associated with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster. Only capacity providers with an ACTIVE or UPDATING status can be used.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New capacity providers can be created with the CreateCapacityProvider API operation.

To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used.

If a default capacity provider strategy is not defined for a cluster during creation, it can be defined later with the PutClusterCapacityProviders API operation.

", - "CreateServiceRequest$capacityProviderStrategy": "

The capacity provider strategy to use for the service.

A capacity provider strategy consists of one or more capacity providers along with the base and weight to assign to them. A capacity provider must be associated with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster. Only capacity providers with an ACTIVE or UPDATING status can be used.

If a capacityProviderStrategy is specified, the launchType parameter must be omitted. If no capacityProviderStrategy or launchType is specified, the defaultCapacityProviderStrategy for the cluster is used.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New capacity providers can be created with the CreateCapacityProvider API operation.

To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used.

The PutClusterCapacityProviders API operation is used to update the list of available capacity providers for a cluster after the cluster is created.

", + "CreateClusterRequest$defaultCapacityProviderStrategy": "

The capacity provider strategy to set as the default for the cluster. When a default capacity provider strategy is set for a cluster, when calling the RunTask or CreateService APIs wtih no capacity provider strategy or launch type specified, the default capacity provider strategy for the cluster is used.

If a default capacity provider strategy is not defined for a cluster during creation, it can be defined later with the PutClusterCapacityProviders API operation.

", + "CreateServiceRequest$capacityProviderStrategy": "

The capacity provider strategy to use for the service.

If a capacityProviderStrategy is specified, the launchType parameter must be omitted. If no capacityProviderStrategy or launchType is specified, the defaultCapacityProviderStrategy for the cluster is used.

", "CreateTaskSetRequest$capacityProviderStrategy": "

The capacity provider strategy to use for the task set.

A capacity provider strategy consists of one or more capacity providers along with the base and weight to assign to them. A capacity provider must be associated with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster. Only capacity providers with an ACTIVE or UPDATING status can be used.

If a capacityProviderStrategy is specified, the launchType parameter must be omitted. If no capacityProviderStrategy or launchType is specified, the defaultCapacityProviderStrategy for the cluster is used.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New capacity providers can be created with the CreateCapacityProvider API operation.

To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used.

The PutClusterCapacityProviders API operation is used to update the list of available capacity providers for a cluster after the cluster is created.

", "Deployment$capacityProviderStrategy": "

The capacity provider strategy that the deployment is using.

", "PutClusterCapacityProvidersRequest$defaultCapacityProviderStrategy": "

The capacity provider strategy to use by default for the cluster.

When creating a service or running a task on a cluster, if no capacity provider or launch type is specified then the default capacity provider strategy for the cluster is used.

A capacity provider strategy consists of one or more capacity providers along with the base and weight to assign to them. A capacity provider must be associated with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster. Only capacity providers with an ACTIVE or UPDATING status can be used.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New capacity providers can be created with the CreateCapacityProvider API operation.

To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used.

", - "RunTaskRequest$capacityProviderStrategy": "

The capacity provider strategy to use for the task.

A capacity provider strategy consists of one or more capacity providers along with the base and weight to assign to them. A capacity provider must be associated with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster. Only capacity providers with an ACTIVE or UPDATING status can be used.

If a capacityProviderStrategy is specified, the launchType parameter must be omitted. If no capacityProviderStrategy or launchType is specified, the defaultCapacityProviderStrategy for the cluster is used.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New capacity providers can be created with the CreateCapacityProvider API operation.

To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used.

The PutClusterCapacityProviders API operation is used to update the list of available capacity providers for a cluster after the cluster is created.

", + "RunTaskRequest$capacityProviderStrategy": "

The capacity provider strategy to use for the task.

If a capacityProviderStrategy is specified, the launchType parameter must be omitted. If no capacityProviderStrategy or launchType is specified, the defaultCapacityProviderStrategy for the cluster is used.

", "Service$capacityProviderStrategy": "

The capacity provider strategy associated with the service.

", "TaskSet$capacityProviderStrategy": "

The capacity provider strategy associated with the task set.

", "UpdateServiceRequest$capacityProviderStrategy": "

The capacity provider strategy to update the service to use.

If the service is using the default capacity provider strategy for the cluster, the service can be updated to use one or more capacity providers as opposed to the default capacity provider strategy. However, when a service is using a capacity provider strategy that is not the default capacity provider strategy, the service cannot be updated to use the cluster's default capacity provider strategy.

A capacity provider strategy consists of one or more capacity providers along with the base and weight to assign to them. A capacity provider must be associated with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster. Only capacity providers with an ACTIVE or UPDATING status can be used.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New capacity providers can be created with the CreateCapacityProvider API operation.

To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used.

The PutClusterCapacityProviders API operation is used to update the list of available capacity providers for a cluster after the cluster is created.

" } }, "CapacityProviderStrategyItem": { - "base": "

The details of a capacity provider strategy.

", + "base": "

The details of a capacity provider strategy. A capacity provider strategy can be set when using the RunTask or CreateCluster APIs or as the default capacity provider strategy for a cluster with the CreateCluster API.

Only capacity providers that are already associated with a cluster and have an ACTIVE or UPDATING status can be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New Auto Scaling group capacity providers can be created with the CreateCapacityProvider API operation.

To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used in a capacity provider strategy.

", "refs": { "CapacityProviderStrategy$member": null } @@ -282,13 +294,13 @@ "CapacityProviderStrategyItemBase": { "base": null, "refs": { - "CapacityProviderStrategyItem$base": "

The base value designates how many tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined.

" + "CapacityProviderStrategyItem$base": "

The base value designates how many tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. If no value is specified, the default value of 0 is used.

" } }, "CapacityProviderStrategyItemWeight": { "base": null, "refs": { - "CapacityProviderStrategyItem$weight": "

The weight value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider.

For example, if you have a strategy that contains two capacity providers and both have a weight of 1, then when the base is satisfied, the tasks will be split evenly across the two capacity providers. Using that same logic, if you specify a weight of 1 for capacityProviderA and a weight of 4 for capacityProviderB, then for every one task that is run using capacityProviderA, four tasks would use capacityProviderB.

" + "CapacityProviderStrategyItem$weight": "

The weight value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider. The weight value is taken into consideration after the base value, if defined, is satisfied.

If no weight value is specified, the default value of 0 is used. When multiple capacity providers are specified within a capacity provider strategy, at least one of the capacity providers must have a weight value greater than zero and any capacity providers with a weight of 0 will not be used to place tasks. If you specify multiple capacity providers in a strategy that all have a weight of 0, any RunTask or CreateService actions using the capacity provider strategy will fail.

An example scenario for using weights is defining a strategy that contains two capacity providers and both have a weight of 1, then when the base is satisfied, the tasks will be split evenly across the two capacity providers. Using that same logic, if you specify a weight of 1 for capacityProviderA and a weight of 4 for capacityProviderB, then for every one task that is run using capacityProviderA, four tasks would use capacityProviderB.

" } }, "CapacityProviderUpdateStatus": { @@ -315,9 +327,18 @@ "CreateClusterResponse$cluster": "

The full description of your new cluster.

", "DeleteClusterResponse$cluster": "

The full description of the deleted cluster.

", "PutClusterCapacityProvidersResponse$cluster": null, + "UpdateClusterResponse$cluster": null, "UpdateClusterSettingsResponse$cluster": null } }, + "ClusterConfiguration": { + "base": "

The execute command configuration for the cluster.

", + "refs": { + "Cluster$configuration": "

The execute command configuration for the cluster.

", + "CreateClusterRequest$configuration": "

The execute command configuration for the cluster.

", + "UpdateClusterRequest$configuration": "

The execute command configuration for the cluster.

" + } + }, "ClusterContainsContainerInstancesException": { "base": "

You cannot delete a cluster that has registered container instances. First, deregister the container instances before you can delete the cluster. For more information, see DeregisterContainerInstance.

", "refs": { @@ -367,6 +388,7 @@ "refs": { "Cluster$settings": "

The settings for the cluster. This parameter indicates whether CloudWatch Container Insights is enabled or disabled for a cluster.

", "CreateClusterRequest$settings": "

The setting to use when creating a cluster. This parameter is used to enable CloudWatch Container Insights for a cluster. If this value is specified, it will override the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.

", + "UpdateClusterRequest$settings": "

The cluster settings for your cluster.

", "UpdateClusterSettingsRequest$settings": "

The setting to use by default for a cluster. This parameter is used to enable CloudWatch Container Insights for a cluster. If this value is specified, it will override the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.

" } }, @@ -385,9 +407,9 @@ "CompatibilityList": { "base": null, "refs": { - "RegisterTaskDefinitionRequest$requiresCompatibilities": "

The task launch type that Amazon ECS should validate the task definition against. This ensures that the task definition parameters are compatible with the specified launch type. If no value is specified, it defaults to EC2.

", - "TaskDefinition$compatibilities": "

The launch type to use with your task. For more information, see Amazon ECS Launch Types in the Amazon Elastic Container Service Developer Guide.

", - "TaskDefinition$requiresCompatibilities": "

The launch type the task requires. If no value is specified, it will default to EC2. Valid values include EC2 and FARGATE.

" + "RegisterTaskDefinitionRequest$requiresCompatibilities": "

The task launch type that Amazon ECS should validate the task definition against. A client exception is returned if the task definition doesn't validate against the compatibilities specified. If no value is specified, the parameter is omitted from the response.

", + "TaskDefinition$compatibilities": "

The task launch types the task definition validated against during task definition registration. For more information, see Amazon ECS launch types in the Amazon Elastic Container Service Developer Guide.

", + "TaskDefinition$requiresCompatibilities": "

The task launch types the task definition was validated against. To determine which task launch types the task definition is validated for, see the TaskDefinition$compatibilities parameter.

" } }, "Connectivity": { @@ -782,7 +804,7 @@ "DockerVolumeConfiguration": { "base": "

This parameter is specified when you are using Docker volumes. Docker volumes are only supported when you are using the EC2 launch type. Windows containers only support the use of the local driver. To use bind mounts, specify a host instead.

", "refs": { - "Volume$dockerVolumeConfiguration": "

This parameter is specified when you are using Docker volumes. Docker volumes are only supported when you are using the EC2 launch type. Windows containers only support the use of the local driver. To use bind mounts, specify the host parameter instead.

" + "Volume$dockerVolumeConfiguration": "

This parameter is specified when you are using Docker volumes.

Windows containers only support the use of the local driver. To use bind mounts, specify the host parameter instead.

Docker volumes are not supported by tasks run on AWS Fargate.

" } }, "Double": { @@ -817,7 +839,7 @@ } }, "EnvironmentFile": { - "base": "

A list of files containing the environment variables to pass to a container. You can specify up to ten environment files. The file must have a .env file extension. Each line in an environment file should contain an environment variable in VARIABLE=VALUE format. Lines beginning with # are treated as comments and are ignored. For more information on the environment variable file syntax, see Declare default environment variables in file.

If there are environment variables specified using the environment parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they are processed from the top down. It is recommended to use unique variable names. For more information, see Specifying Environment Variables in the Amazon Elastic Container Service Developer Guide.

This field is not valid for containers in tasks using the Fargate launch type.

", + "base": "

A list of files containing the environment variables to pass to a container. You can specify up to ten environment files. The file must have a .env file extension. Each line in an environment file should contain an environment variable in VARIABLE=VALUE format. Lines beginning with # are treated as comments and are ignored. For more information on the environment variable file syntax, see Declare default environment variables in file.

If there are environment variables specified using the environment parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they are processed from the top down. It is recommended to use unique variable names. For more information, see Specifying environment variables in the Amazon Elastic Container Service Developer Guide.

This field is only valid for containers in Fargate tasks that use platform version 1.4.0 or later.

", "refs": { "EnvironmentFiles$member": null } @@ -842,6 +864,34 @@ "ContainerOverride$environment": "

The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name.

" } }, + "ExecuteCommandConfiguration": { + "base": "

The details of the execute command configuration.

", + "refs": { + "ClusterConfiguration$executeCommandConfiguration": "

The details of the execute command configuration.

" + } + }, + "ExecuteCommandLogConfiguration": { + "base": "

The log configuration for the results of the execute command actions. The logs can be sent to CloudWatch Logs or an Amazon S3 bucket.

", + "refs": { + "ExecuteCommandConfiguration$logConfiguration": "

The log configuration for the results of the execute command actions. The logs can be sent to CloudWatch Logs or an Amazon S3 bucket. When logging=OVERRIDE is specified, a logConfiguration must be provided.

" + } + }, + "ExecuteCommandLogging": { + "base": null, + "refs": { + "ExecuteCommandConfiguration$logging": "

The log setting to use for redirecting logs for your execute command results. The following log settings are available.

" + } + }, + "ExecuteCommandRequest": { + "base": null, + "refs": { + } + }, + "ExecuteCommandResponse": { + "base": null, + "refs": { + } + }, "FSxWindowsFileServerAuthorizationConfig": { "base": "

The authorization configuration details for Amazon FSx for Windows File Server file system. See FSxWindowsFileServerVolumeConfiguration in the Amazon Elastic Container Service API Reference.

For more information and the input format, see Amazon FSx for Windows File Server Volumes in the Amazon Elastic Container Service Developer Guide.

", "refs": { @@ -883,7 +933,7 @@ "FirelensConfigurationOptionsMap": { "base": null, "refs": { - "FirelensConfiguration$options": "

The options to use when configuring the log router. This field is optional and can be used to specify a custom configuration file or to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event. If specified, the syntax to use is \"options\":{\"enable-ecs-log-metadata\":\"true|false\",\"config-file-type:\"s3|file\",\"config-file-value\":\"arn:aws:s3:::mybucket/fluent.conf|filepath\"}. For more information, see Creating a Task Definition that Uses a FireLens Configuration in the Amazon Elastic Container Service Developer Guide.

" + "FirelensConfiguration$options": "

The options to use when configuring the log router. This field is optional and can be used to specify a custom configuration file or to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event. If specified, the syntax to use is \"options\":{\"enable-ecs-log-metadata\":\"true|false\",\"config-file-type:\"s3|file\",\"config-file-value\":\"arn:aws:s3:::mybucket/fluent.conf|filepath\"}. For more information, see Creating a Task Definition that Uses a FireLens Configuration in the Amazon Elastic Container Service Developer Guide.

Tasks hosted on AWS Fargate only support the file configuration file type.

" } }, "FirelensConfigurationType": { @@ -991,8 +1041,8 @@ "IpcMode": { "base": null, "refs": { - "RegisterTaskDefinitionRequest$ipcMode": "

The IPC resource namespace to use for the containers in the task. The valid values are host, task, or none. If host is specified, then all containers within the tasks that specified the host IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If task is specified, all containers within the specified task share the same IPC resources. If none is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see IPC settings in the Docker run reference.

If the host IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see Docker security.

If you are setting namespaced kernel parameters using systemControls for the containers in the task, the following will apply to your IPC resource namespace. For more information, see System Controls in the Amazon Elastic Container Service Developer Guide.

This parameter is not supported for Windows containers or tasks using the Fargate launch type.

", - "TaskDefinition$ipcMode": "

The IPC resource namespace to use for the containers in the task. The valid values are host, task, or none. If host is specified, then all containers within the tasks that specified the host IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If task is specified, all containers within the specified task share the same IPC resources. If none is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see IPC settings in the Docker run reference.

If the host IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see Docker security.

If you are setting namespaced kernel parameters using systemControls for the containers in the task, the following will apply to your IPC resource namespace. For more information, see System Controls in the Amazon Elastic Container Service Developer Guide.

This parameter is not supported for Windows containers or tasks using the Fargate launch type.

" + "RegisterTaskDefinitionRequest$ipcMode": "

The IPC resource namespace to use for the containers in the task. The valid values are host, task, or none. If host is specified, then all containers within the tasks that specified the host IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If task is specified, all containers within the specified task share the same IPC resources. If none is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see IPC settings in the Docker run reference.

If the host IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see Docker security.

If you are setting namespaced kernel parameters using systemControls for the containers in the task, the following will apply to your IPC resource namespace. For more information, see System Controls in the Amazon Elastic Container Service Developer Guide.

This parameter is not supported for Windows containers or tasks run on AWS Fargate.

", + "TaskDefinition$ipcMode": "

The IPC resource namespace to use for the containers in the task. The valid values are host, task, or none. If host is specified, then all containers within the tasks that specified the host IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If task is specified, all containers within the specified task share the same IPC resources. If none is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see IPC settings in the Docker run reference.

If the host IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more information, see Docker security.

If you are setting namespaced kernel parameters using systemControls for the containers in the task, the following will apply to your IPC resource namespace. For more information, see System Controls in the Amazon Elastic Container Service Developer Guide.

This parameter is not supported for Windows containers or tasks run on AWS Fargate.

" } }, "KernelCapabilities": { @@ -1013,15 +1063,15 @@ "LaunchType": { "base": null, "refs": { - "CreateServiceRequest$launchType": "

The launch type on which to run your service. For more information, see Amazon ECS Launch Types in the Amazon Elastic Container Service Developer Guide.

If a launchType is specified, the capacityProviderStrategy parameter must be omitted.

", + "CreateServiceRequest$launchType": "

The launch type on which to run your service. The accepted values are FARGATE and EC2. For more information, see Amazon ECS launch types in the Amazon Elastic Container Service Developer Guide.

When a value of FARGATE is specified, your tasks are launched on AWS Fargate On-Demand infrastructure. To use Fargate Spot, you must use a capacity provider strategy with the FARGATE_SPOT capacity provider.

When a value of EC2 is specified, your tasks are launched on Amazon EC2 instances registered to your cluster.

If a launchType is specified, the capacityProviderStrategy parameter must be omitted.

", "CreateTaskSetRequest$launchType": "

The launch type that new tasks in the task set will use. For more information, see Amazon ECS Launch Types in the Amazon Elastic Container Service Developer Guide.

If a launchType is specified, the capacityProviderStrategy parameter must be omitted.

", "Deployment$launchType": "

The launch type the tasks in the service are using. For more information, see Amazon ECS Launch Types in the Amazon Elastic Container Service Developer Guide.

", "ListServicesRequest$launchType": "

The launch type for the services to list.

", "ListTasksRequest$launchType": "

The launch type for services to list.

", - "RunTaskRequest$launchType": "

The launch type on which to run your task. For more information, see Amazon ECS Launch Types in the Amazon Elastic Container Service Developer Guide.

If a launchType is specified, the capacityProviderStrategy parameter must be omitted.

", + "RunTaskRequest$launchType": "

The launch type on which to run your task. The accepted values are FARGATE and EC2. For more information, see Amazon ECS Launch Types in the Amazon Elastic Container Service Developer Guide.

When a value of FARGATE is specified, your tasks are launched on AWS Fargate On-Demand infrastructure. To use Fargate Spot, you must use a capacity provider strategy with the FARGATE_SPOT capacity provider.

When a value of EC2 is specified, your tasks are launched on Amazon EC2 instances registered to your cluster.

If a launchType is specified, the capacityProviderStrategy parameter must be omitted.

", "Service$launchType": "

The launch type on which your service is running. If no value is specified, it will default to EC2. Valid values include EC2 and FARGATE. For more information, see Amazon ECS Launch Types in the Amazon Elastic Container Service Developer Guide.

", "Task$launchType": "

The launch type on which your task is running. For more information, see Amazon ECS Launch Types in the Amazon Elastic Container Service Developer Guide.

", - "TaskSet$launchType": "

The launch type the tasks in the task set are using. For more information, see Amazon ECS Launch Types in the Amazon Elastic Container Service Developer Guide.

" + "TaskSet$launchType": "

The launch type the tasks in the task set are using. For more information, see Amazon ECS launch types in the Amazon Elastic Container Service Developer Guide.

" } }, "LimitExceededException": { @@ -1134,7 +1184,7 @@ "LoadBalancers": { "base": null, "refs": { - "CreateServiceRequest$loadBalancers": "

A load balancer object representing the load balancers to use with your service. For more information, see Service Load Balancing in the Amazon Elastic Container Service Developer Guide.

If the service is using the rolling update (ECS) deployment controller and using either an Application Load Balancer or Network Load Balancer, you must specify one or more target group ARNs to attach to the service. The service-linked role is required for services that make use of multiple target groups. For more information, see Using Service-Linked Roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

If the service is using the CODE_DEPLOY deployment controller, the service is required to use either an Application Load Balancer or Network Load Balancer. When creating an AWS CodeDeploy deployment group, you specify two target groups (referred to as a targetGroupPair). During a deployment, AWS CodeDeploy determines which task set in your service has the status PRIMARY and associates one target group with it, and then associates the other target group with the replacement task set. The load balancer can also have up to two listeners: a required listener for production traffic and an optional listener that allows you perform validation tests with Lambda functions before routing production traffic to it.

After you create a service using the ECS deployment controller, the load balancer name or target group ARN, container name, and container port specified in the service definition are immutable. If you are using the CODE_DEPLOY deployment controller, these values can be changed when updating the service.

For Application Load Balancers and Network Load Balancers, this object must contain the load balancer target group ARN, the container name (as it appears in a container definition), and the container port to access from the load balancer. The load balancer name parameter must be omitted. When a task from this service is placed on a container instance, the container instance and port combination is registered as a target in the target group specified here.

For Classic Load Balancers, this object must contain the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer. The target group ARN parameter must be omitted. When a task from this service is placed on a container instance, the container instance is registered with the load balancer specified here.

Services with tasks that use the awsvpc network mode (for example, those with the Fargate launch type) only support Application Load Balancers and Network Load Balancers. Classic Load Balancers are not supported. Also, when you create any target groups for these services, you must choose ip as the target type, not instance, because tasks that use the awsvpc network mode are associated with an elastic network interface, not an Amazon EC2 instance.

", + "CreateServiceRequest$loadBalancers": "

A load balancer object representing the load balancers to use with your service. For more information, see Service Load Balancing in the Amazon Elastic Container Service Developer Guide.

If the service is using the rolling update (ECS) deployment controller and using either an Application Load Balancer or Network Load Balancer, you must specify one or more target group ARNs to attach to the service. The service-linked role is required for services that make use of multiple target groups. For more information, see Using service-linked roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

If the service is using the CODE_DEPLOY deployment controller, the service is required to use either an Application Load Balancer or Network Load Balancer. When creating an AWS CodeDeploy deployment group, you specify two target groups (referred to as a targetGroupPair). During a deployment, AWS CodeDeploy determines which task set in your service has the status PRIMARY and associates one target group with it, and then associates the other target group with the replacement task set. The load balancer can also have up to two listeners: a required listener for production traffic and an optional listener that allows you perform validation tests with Lambda functions before routing production traffic to it.

After you create a service using the ECS deployment controller, the load balancer name or target group ARN, container name, and container port specified in the service definition are immutable. If you are using the CODE_DEPLOY deployment controller, these values can be changed when updating the service.

For Application Load Balancers and Network Load Balancers, this object must contain the load balancer target group ARN, the container name (as it appears in a container definition), and the container port to access from the load balancer. The load balancer name parameter must be omitted. When a task from this service is placed on a container instance, the container instance and port combination is registered as a target in the target group specified here.

For Classic Load Balancers, this object must contain the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer. The target group ARN parameter must be omitted. When a task from this service is placed on a container instance, the container instance is registered with the load balancer specified here.

Services with tasks that use the awsvpc network mode (for example, those with the Fargate launch type) only support Application Load Balancers and Network Load Balancers. Classic Load Balancers are not supported. Also, when you create any target groups for these services, you must choose ip as the target type, not instance, because tasks that use the awsvpc network mode are associated with an elastic network interface, not an Amazon EC2 instance.

", "CreateTaskSetRequest$loadBalancers": "

A load balancer object representing the load balancer to use with the task set. The supported load balancer types are either an Application Load Balancer or a Network Load Balancer.

", "Service$loadBalancers": "

A list of Elastic Load Balancing load balancer objects, containing the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer.

", "TaskSet$loadBalancers": "

Details on a load balancer that is used with a task set.

" @@ -1166,6 +1216,37 @@ "Task$version": "

The version counter for the task. Every time a task experiences a change that triggers a CloudWatch event, the version counter is incremented. If you are replicating your Amazon ECS task state with CloudWatch Events, you can compare the version of a task reported by the Amazon ECS API actions with the version reported in CloudWatch Events for the task (inside the detail object) to verify that the version in your event stream is current.

" } }, + "ManagedAgent": { + "base": "

Details about the managed agent status for the container.

", + "refs": { + "ManagedAgents$member": null + } + }, + "ManagedAgentName": { + "base": null, + "refs": { + "ManagedAgent$name": "

The name of the managed agent. When the execute command feature is enabled, the managed agent name is ExecuteCommandAgent.

", + "ManagedAgentStateChange$managedAgentName": "

The name of the managed agent.

" + } + }, + "ManagedAgentStateChange": { + "base": "

An object representing a change in state for a managed agent.

", + "refs": { + "ManagedAgentStateChanges$member": null + } + }, + "ManagedAgentStateChanges": { + "base": null, + "refs": { + "SubmitTaskStateChangeRequest$managedAgents": "

The details for the managed agent associated with the task.

" + } + }, + "ManagedAgents": { + "base": null, + "refs": { + "Container$managedAgents": "

The details of any Amazon ECS managed agents associated with the container.

" + } + }, "ManagedScaling": { "base": "

The managed scaling settings for the Auto Scaling group capacity provider.

When managed scaling is enabled, Amazon ECS manages the scale-in and scale-out actions of the Auto Scaling group. Amazon ECS manages a target tracking scaling policy using an Amazon ECS-managed CloudWatch metric with the specified targetCapacity value as the target value for the metric. For more information, see Using Managed Scaling in the Amazon Elastic Container Service Developer Guide.

If managed scaling is disabled, the user must manage the scaling of the Auto Scaling group.

", "refs": { @@ -1239,7 +1320,7 @@ "NetworkConfiguration": { "base": "

An object representing the network configuration for a task or service.

", "refs": { - "CreateServiceRequest$networkConfiguration": "

The network configuration for the service. This parameter is required for task definitions that use the awsvpc network mode to receive their own elastic network interface, and it is not supported for other network modes. For more information, see Task Networking in the Amazon Elastic Container Service Developer Guide.

", + "CreateServiceRequest$networkConfiguration": "

The network configuration for the service. This parameter is required for task definitions that use the awsvpc network mode to receive their own elastic network interface, and it is not supported for other network modes. For more information, see Task networking in the Amazon Elastic Container Service Developer Guide.

", "CreateTaskSetRequest$networkConfiguration": null, "Deployment$networkConfiguration": "

The VPC subnet and security group configuration for tasks that receive their own elastic network interface by using the awsvpc networking mode.

", "RunTaskRequest$networkConfiguration": "

The network configuration for the task. This parameter is required for task definitions that use the awsvpc network mode to receive their own elastic network interface, and it is not supported for other network modes. For more information, see Task Networking in the Amazon Elastic Container Service Developer Guide.

", @@ -1276,8 +1357,8 @@ "PidMode": { "base": null, "refs": { - "RegisterTaskDefinitionRequest$pidMode": "

The process namespace to use for the containers in the task. The valid values are host or task. If host is specified, then all containers within the tasks that specified the host PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. If task is specified, all containers within the specified task share the same process namespace. If no value is specified, the default is a private namespace. For more information, see PID settings in the Docker run reference.

If the host PID mode is used, be aware that there is a heightened risk of undesired process namespace expose. For more information, see Docker security.

This parameter is not supported for Windows containers or tasks using the Fargate launch type.

", - "TaskDefinition$pidMode": "

The process namespace to use for the containers in the task. The valid values are host or task. If host is specified, then all containers within the tasks that specified the host PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. If task is specified, all containers within the specified task share the same process namespace. If no value is specified, the default is a private namespace. For more information, see PID settings in the Docker run reference.

If the host PID mode is used, be aware that there is a heightened risk of undesired process namespace expose. For more information, see Docker security.

This parameter is not supported for Windows containers or tasks using the Fargate launch type.

" + "RegisterTaskDefinitionRequest$pidMode": "

The process namespace to use for the containers in the task. The valid values are host or task. If host is specified, then all containers within the tasks that specified the host PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. If task is specified, all containers within the specified task share the same process namespace. If no value is specified, the default is a private namespace. For more information, see PID settings in the Docker run reference.

If the host PID mode is used, be aware that there is a heightened risk of undesired process namespace expose. For more information, see Docker security.

This parameter is not supported for Windows containers or tasks run on AWS Fargate.

", + "TaskDefinition$pidMode": "

The process namespace to use for the containers in the task. The valid values are host or task. If host is specified, then all containers within the tasks that specified the host PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. If task is specified, all containers within the specified task share the same process namespace. If no value is specified, the default is a private namespace. For more information, see PID settings in the Docker run reference.

If the host PID mode is used, be aware that there is a heightened risk of undesired process namespace expose. For more information, see Docker security.

This parameter is not supported for Windows containers or tasks run on AWS Fargate.

" } }, "PlacementConstraint": { @@ -1459,7 +1540,7 @@ "RequiresAttributes": { "base": null, "refs": { - "TaskDefinition$requiresAttributes": "

The container instance attributes required by your task. This field is not valid if you are using the Fargate launch type for your task.

" + "TaskDefinition$requiresAttributes": "

The container instance attributes required by your task. When an Amazon EC2 instance is registered to your cluster, the Amazon ECS container agent assigns some standard attributes to the instance. You can apply custom attributes, specified as key-value pairs using the Amazon ECS console or the PutAttributes API. These attributes are used when considering task placement for tasks hosted on Amazon EC2 instances. For more information, see Attributes in the Amazon Elastic Container Service Developer Guide.

This parameter is not supported for tasks run on AWS Fargate.

" } }, "Resource": { @@ -1556,6 +1637,12 @@ "LogConfiguration$secretOptions": "

The secrets to pass to the log configuration. For more information, see Specifying Sensitive Data in the Amazon Elastic Container Service Developer Guide.

" } }, + "SensitiveString": { + "base": null, + "refs": { + "Session$tokenValue": "

An encrypted token value containing session and caller information. Used to authenticate the connection to the container.

" + } + }, "ServerException": { "base": "

These errors are usually caused by a server issue.

", "refs": { @@ -1607,10 +1694,10 @@ "ServiceRegistries": { "base": null, "refs": { - "CreateServiceRequest$serviceRegistries": "

The details of the service discovery registries to assign to this service. For more information, see Service Discovery.

Service discovery is supported for Fargate tasks if you are using platform version v1.1.0 or later. For more information, see AWS Fargate Platform Versions.

", + "CreateServiceRequest$serviceRegistries": "

The details of the service discovery registries to assign to this service. For more information, see Service discovery.

Service discovery is supported for Fargate tasks if you are using platform version v1.1.0 or later. For more information, see AWS Fargate platform versions.

", "CreateTaskSetRequest$serviceRegistries": "

The details of the service discovery registries to assign to this task set. For more information, see Service Discovery.

", "Service$serviceRegistries": "

The details of the service discovery registries to assign to this service. For more information, see Service Discovery.

", - "TaskSet$serviceRegistries": "

The details of the service discovery registries to assign to this task set. For more information, see Service Discovery.

" + "TaskSet$serviceRegistries": "

The details of the service discovery registries to assign to this task set. For more information, see Service discovery.

" } }, "ServiceRegistry": { @@ -1625,6 +1712,12 @@ "DescribeServicesResponse$services": "

The list of services described.

" } }, + "Session": { + "base": "

The details of the execute command session.

", + "refs": { + "ExecuteCommandResponse$session": "

The details of the SSM session that was created for this instance of execute-command.

" + } + }, "Setting": { "base": "

The current account setting for a resource.

", "refs": { @@ -1744,8 +1837,8 @@ "CreateServiceRequest$serviceName": "

The name of your service. Up to 255 letters (uppercase and lowercase), numbers, and hyphens are allowed. Service names must be unique within a cluster, but you can have similarly named services in multiple clusters within a Region or across multiple Regions.

", "CreateServiceRequest$taskDefinition": "

The family and revision (family:revision) or full ARN of the task definition to run in your service. If a revision is not specified, the latest ACTIVE revision is used.

A task definition must be specified if the service is using either the ECS or CODE_DEPLOY deployment controllers.

", "CreateServiceRequest$clientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 32 ASCII characters are allowed.

", - "CreateServiceRequest$platformVersion": "

The platform version that your tasks in the service are running on. A platform version is specified only for tasks using the Fargate launch type. If one isn't specified, the LATEST platform version is used by default. For more information, see AWS Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide.

", - "CreateServiceRequest$role": "

The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon ECS to make calls to your load balancer on your behalf. This parameter is only permitted if you are using a load balancer with your service and your task definition does not use the awsvpc network mode. If you specify the role parameter, you must also specify a load balancer object with the loadBalancers parameter.

If your account has already created the Amazon ECS service-linked role, that role is used by default for your service unless you specify a role here. The service-linked role is required if your task definition uses the awsvpc network mode or if the service is configured to use service discovery, an external deployment controller, multiple target groups, or Elastic Inference accelerators in which case you should not specify a role here. For more information, see Using Service-Linked Roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

If your specified role has a path other than /, then you must either specify the full role ARN (this is recommended) or prefix the role name with the path. For example, if a role with the name bar has a path of /foo/ then you would specify /foo/bar as the role name. For more information, see Friendly Names and Paths in the IAM User Guide.

", + "CreateServiceRequest$platformVersion": "

The platform version that your tasks in the service are running on. A platform version is specified only for tasks using the Fargate launch type. If one isn't specified, the LATEST platform version is used by default. For more information, see AWS Fargate platform versions in the Amazon Elastic Container Service Developer Guide.

", + "CreateServiceRequest$role": "

The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon ECS to make calls to your load balancer on your behalf. This parameter is only permitted if you are using a load balancer with your service and your task definition does not use the awsvpc network mode. If you specify the role parameter, you must also specify a load balancer object with the loadBalancers parameter.

If your account has already created the Amazon ECS service-linked role, that role is used by default for your service unless you specify a role here. The service-linked role is required if your task definition uses the awsvpc network mode or if the service is configured to use service discovery, an external deployment controller, multiple target groups, or Elastic Inference accelerators in which case you should not specify a role here. For more information, see Using service-linked roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

If your specified role has a path other than /, then you must either specify the full role ARN (this is recommended) or prefix the role name with the path. For example, if a role with the name bar has a path of /foo/ then you would specify /foo/bar as the role name. For more information, see Friendly names and paths in the IAM User Guide.

", "CreateTaskSetRequest$service": "

The short name or full Amazon Resource Name (ARN) of the service to create the task set in.

", "CreateTaskSetRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service to create the task set in.

", "CreateTaskSetRequest$externalId": "

An optional non-unique tag that identifies this task set in external systems. If the task set is associated with a service discovery registry, the tasks in this task set will have the ECS_TASK_SET_EXTERNAL_ID AWS Cloud Map attribute set to the provided value.

", @@ -1790,6 +1883,18 @@ "EFSVolumeConfiguration$fileSystemId": "

The Amazon EFS file system ID to use.

", "EFSVolumeConfiguration$rootDirectory": "

The directory within the Amazon EFS file system to mount as the root directory inside the host. If this parameter is omitted, the root of the Amazon EFS volume will be used. Specifying / will have the same effect as omitting this parameter.

If an EFS access point is specified in the authorizationConfig, the root directory parameter must either be omitted or set to / which will enforce the path set on the EFS access point.

", "EnvironmentFile$value": "

The Amazon Resource Name (ARN) of the Amazon S3 object containing the environment variable file.

", + "ExecuteCommandConfiguration$kmsKeyId": "

Specify an AWS Key Management Service key ID to encrypt the data between the local client and the container.

", + "ExecuteCommandLogConfiguration$cloudWatchLogGroupName": "

The name of the CloudWatch log group to send logs to.

The CloudWatch log group must already be created.

", + "ExecuteCommandLogConfiguration$s3BucketName": "

The name of the S3 bucket to send logs to.

The S3 bucket must already be created.

", + "ExecuteCommandLogConfiguration$s3KeyPrefix": "

An optional folder in the S3 bucket to place logs in.

", + "ExecuteCommandRequest$cluster": "

The Amazon Resource Name (ARN) or short name of the cluster the task is running in. If you do not specify a cluster, the default cluster is assumed.

", + "ExecuteCommandRequest$container": "

The name of the container to execute the command on. A container name only needs to be specified for tasks containing multiple containers.

", + "ExecuteCommandRequest$command": "

The command to run on the container.

", + "ExecuteCommandRequest$task": "

The Amazon Resource Name (ARN) or ID of the task the container is part of.

", + "ExecuteCommandResponse$clusterArn": "

The Amazon Resource Name (ARN) of the cluster.

", + "ExecuteCommandResponse$containerArn": "

The Amazon Resource Name (ARN) of the container.

", + "ExecuteCommandResponse$containerName": "

The name of the container.

", + "ExecuteCommandResponse$taskArn": "

The Amazon Resource Name (ARN) of the task.

", "FSxWindowsFileServerAuthorizationConfig$credentialsParameter": "

The authorization credential option to use. The authorization credential options can be provided using either the Amazon Resource Name (ARN) of an AWS Secrets Manager secret or AWS Systems Manager Parameter Store parameter. The ARNs refer to the stored credentials.

", "FSxWindowsFileServerAuthorizationConfig$domain": "

A fully qualified domain name hosted by an AWS Directory Service Managed Microsoft AD (Active Directory) or self-hosted AD on Amazon EC2.

", "FSxWindowsFileServerVolumeConfiguration$fileSystemId": "

The Amazon FSx for Windows File Server file system ID to use.

", @@ -1846,6 +1951,11 @@ "LoadBalancer$containerName": "

The name of the container (as it appears in a container definition) to associate with the load balancer.

", "LogConfigurationOptionsMap$key": null, "LogConfigurationOptionsMap$value": null, + "ManagedAgent$reason": "

The reason for why the managed agent is in the state it is in.

", + "ManagedAgent$lastStatus": "

The last known status of the managed agent.

", + "ManagedAgentStateChange$containerName": "

The name of the container associated with the managed agent.

", + "ManagedAgentStateChange$status": "

The status of the managed agent.

", + "ManagedAgentStateChange$reason": "

The reason for the status of the managed agent.

", "MountPoint$sourceVolume": "

The name of the volume to mount. Must be a volume name referenced in the name parameter of task definition volume.

", "MountPoint$containerPath": "

The path on the container to mount the host volume at.

", "NetworkBinding$bindIP": "

The IP address that the container is bound to on the container instance.

", @@ -1895,6 +2005,8 @@ "ServiceEvent$message": "

The event message.

", "ServiceRegistry$registryArn": "

The Amazon Resource Name (ARN) of the service registry. The currently supported service registry is AWS Cloud Map. For more information, see CreateService.

", "ServiceRegistry$containerName": "

The container name value, already specified in the task definition, to be used for your service discovery service. If the task definition that your service task specifies uses the bridge or host network mode, you must specify a containerName and containerPort combination from the task definition. If the task definition that your service task specifies uses the awsvpc network mode and a type SRV DNS record is used, you must specify either a containerName and containerPort combination or a port value, but not both.

", + "Session$sessionId": "

The ID of the execute command session.

", + "Session$streamUrl": "

A URL back to managed agent on the container that the SSM Session Manager client uses to send commands and receive output from the container.

", "Setting$value": "

Whether the account setting is enabled or disabled for the specified resource.

", "Setting$principalArn": "

The ARN of the principal, which can be an IAM user, IAM role, or the root user. If this field is omitted, the authenticated user is assumed.

", "StartTaskRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster on which to start your task. If you do not specify a cluster, the default cluster is assumed.

", @@ -1941,12 +2053,12 @@ "Task$taskDefinitionArn": "

The ARN of the task definition that creates the task.

", "TaskDefinition$taskDefinitionArn": "

The full Amazon Resource Name (ARN) of the task definition.

", "TaskDefinition$family": "

The name of a family that this task definition is registered to. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed.

A family groups multiple versions of a task definition. Amazon ECS gives the first task definition that you registered to a family a revision number of 1. Amazon ECS gives sequential revision numbers to each task definition that you add.

", - "TaskDefinition$taskRoleArn": "

The short name or full Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants containers in the task permission to call AWS APIs on your behalf. For more information, see Amazon ECS Task Role in the Amazon Elastic Container Service Developer Guide.

IAM roles for tasks on Windows require that the -EnableTaskIAMRole option is set when you launch the Amazon ECS-optimized Windows AMI. Your containers must also run some configuration code in order to take advantage of the feature. For more information, see Windows IAM Roles for Tasks in the Amazon Elastic Container Service Developer Guide.

", + "TaskDefinition$taskRoleArn": "

The short name or full Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants containers in the task permission to call AWS APIs on your behalf. For more information, see Amazon ECS Task Role in the Amazon Elastic Container Service Developer Guide.

IAM roles for tasks on Windows require that the -EnableTaskIAMRole option is set when you launch the Amazon ECS-optimized Windows AMI. Your containers must also run some configuration code in order to take advantage of the feature. For more information, see Windows IAM roles for tasks in the Amazon Elastic Container Service Developer Guide.

", "TaskDefinition$executionRoleArn": "

The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission to make AWS API calls on your behalf. The task execution IAM role is required depending on the requirements of your task. For more information, see Amazon ECS task execution IAM role in the Amazon Elastic Container Service Developer Guide.

", "TaskDefinition$cpu": "

The number of cpu units used by the task. If you are using the EC2 launch type, this field is optional and any value can be used. If you are using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the memory parameter:

", - "TaskDefinition$memory": "

The amount (in MiB) of memory used by the task.

If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified then the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see ContainerDefinition.

If using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the cpu parameter:

", + "TaskDefinition$memory": "

The amount (in MiB) of memory used by the task.

If your tasks will be run on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified then the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see ContainerDefinition.

If your tasks will be run on AWS Fargate, this field is required and you must use one of the following values, which determines your range of valid values for the cpu parameter:

", "TaskDefinition$registeredBy": "

The principal that registered the task definition.

", - "TaskDefinitionPlacementConstraint$expression": "

A cluster query language expression to apply to the constraint. For more information, see Cluster Query Language in the Amazon Elastic Container Service Developer Guide.

", + "TaskDefinitionPlacementConstraint$expression": "

A cluster query language expression to apply to the constraint. For more information, see Cluster query language in the Amazon Elastic Container Service Developer Guide.

", "TaskOverride$cpu": "

The cpu override for the task.

", "TaskOverride$executionRoleArn": "

The Amazon Resource Name (ARN) of the task execution IAM role override for the task.

", "TaskOverride$memory": "

The memory override for the task.

", @@ -1959,10 +2071,11 @@ "TaskSet$externalId": "

The external ID associated with the task set.

If a task set is created by an AWS CodeDeploy deployment, the externalId parameter contains the AWS CodeDeploy deployment ID.

If a task set is created for an external deployment and is associated with a service discovery registry, the externalId parameter contains the ECS_TASK_SET_EXTERNAL_ID AWS Cloud Map attribute.

", "TaskSet$status": "

The status of the task set. The following describes each state:

PRIMARY

The task set is serving production traffic.

ACTIVE

The task set is not serving production traffic.

DRAINING

The tasks in the task set are being stopped and their corresponding targets are being deregistered from their target group.

", "TaskSet$taskDefinition": "

The task definition the task set is using.

", - "TaskSet$platformVersion": "

The platform version on which the tasks in the task set are running. A platform version is only specified for tasks using the Fargate launch type. If one is not specified, the LATEST platform version is used by default. For more information, see AWS Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide.

", + "TaskSet$platformVersion": "

The AWS Fargate platform version on which the tasks in the task set are running. A platform version is only specified for tasks run on AWS Fargate. For more information, see AWS Fargate platform versions in the Amazon Elastic Container Service Developer Guide.

", "Tmpfs$containerPath": "

The absolute file path where the tmpfs volume is to be mounted.

", "UntagResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource from which to delete tags. Currently, the supported resources are Amazon ECS capacity providers, tasks, services, task definitions, clusters, and container instances.

", "UpdateCapacityProviderRequest$name": "

The name of the capacity provider to update.

", + "UpdateClusterRequest$cluster": "

The name of the cluster to modify the settings for.

", "UpdateClusterSettingsRequest$cluster": "

The name of the cluster to modify the settings for.

", "UpdateContainerAgentRequest$cluster": "

The short name or full Amazon Resource Name (ARN) of the cluster that your container instance is running on. If you do not specify a cluster, the default cluster is assumed.

", "UpdateContainerAgentRequest$containerInstance": "

The container instance ID or full ARN entries for the container instance on which you would like to update the Amazon ECS container agent.

", @@ -1997,7 +2110,7 @@ "ContainerDefinition$dnsSearchDomains": "

A list of DNS search domains that are presented to the container. This parameter maps to DnsSearch in the Create a container section of the Docker Remote API and the --dns-search option to docker run.

This parameter is not supported for Windows containers or tasks that use the awsvpc network mode.

", "ContainerDefinition$dockerSecurityOptions": "

A list of strings to provide custom labels for SELinux and AppArmor multi-level security systems. This field is not valid for containers in tasks using the Fargate launch type.

With Windows containers, this parameter can be used to reference a credential spec file when configuring a container for Active Directory authentication. For more information, see Using gMSAs for Windows Containers in the Amazon Elastic Container Service Developer Guide.

This parameter maps to SecurityOpt in the Create a container section of the Docker Remote API and the --security-opt option to docker run.

The Amazon ECS container agent running on a container instance must register with the ECS_SELINUX_CAPABLE=true or ECS_APPARMOR_CAPABLE=true environment variables before containers placed on that instance can use these security options. For more information, see Amazon ECS Container Agent Configuration in the Amazon Elastic Container Service Developer Guide.

For more information about valid values, see Docker Run Security Configuration.

Valid values: \"no-new-privileges\" | \"apparmor:PROFILE\" | \"label:value\" | \"credentialspec:CredentialSpecFilePath\"

", "ContainerOverride$command": "

The command to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name.

", - "CreateClusterRequest$capacityProviders": "

The short name of one or more capacity providers to associate with the cluster.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created and not already associated with another cluster. New capacity providers can be created with the CreateCapacityProvider API operation.

To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used.

The PutClusterCapacityProviders API operation is used to update the list of available capacity providers for a cluster after the cluster is created.

", + "CreateClusterRequest$capacityProviders": "

The short name of one or more capacity providers to associate with the cluster. A capacity provider must be associated with a cluster before it can be included as part of the default capacity provider strategy of the cluster or used in a capacity provider strategy when calling the CreateService or RunTask actions.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created and not already associated with another cluster. New Auto Scaling group capacity providers can be created with the CreateCapacityProvider API operation.

To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used.

The PutClusterCapacityProviders API operation is used to update the list of available capacity providers for a cluster after the cluster is created.

", "DescribeCapacityProvidersRequest$capacityProviders": "

The short name or full Amazon Resource Name (ARN) of one or more capacity providers. Up to 100 capacity providers can be described in an action.

", "DescribeClustersRequest$clusters": "

A list of up to 100 cluster names or full cluster Amazon Resource Name (ARN) entries. If you do not specify a cluster, the default cluster is assumed.

", "DescribeContainerInstancesRequest$containerInstances": "

A list of up to 100 container instance IDs or full Amazon Resource Name (ARN) entries.

", @@ -2127,6 +2240,11 @@ "TaskSet$tags": "

The metadata that you apply to the task set to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

The following basic restrictions apply to tags:

" } }, + "TargetNotConnectedException": { + "base": "

The target container is not properly configured with the execute command agent or the container is no longer active or running.

", + "refs": { + } + }, "TargetNotFoundException": { "base": "

The specified target could not be found. You can view your available container instances with ListContainerInstances. Amazon ECS container instances are cluster-specific and Region-specific.

", "refs": { @@ -2173,7 +2291,7 @@ } }, "TaskDefinitionPlacementConstraint": { - "base": "

An object representing a constraint on task placement in the task definition. For more information, see Task Placement Constraints in the Amazon Elastic Container Service Developer Guide.

If you are using the Fargate launch type, task placement constraints are not supported.

", + "base": "

An object representing a constraint on task placement in the task definition. For more information, see Task placement constraints in the Amazon Elastic Container Service Developer Guide.

Task placement constraints are not supported for tasks run on AWS Fargate.

", "refs": { "TaskDefinitionPlacementConstraints$member": null } @@ -2188,7 +2306,7 @@ "base": null, "refs": { "RegisterTaskDefinitionRequest$placementConstraints": "

An array of placement constraint objects to use for the task. You can specify a maximum of 10 constraints per task (this limit includes constraints in the task definition and those specified at runtime).

", - "TaskDefinition$placementConstraints": "

An array of placement constraint objects to use for tasks. This field is not valid if you are using the Fargate launch type for your task.

" + "TaskDefinition$placementConstraints": "

An array of placement constraint objects to use for tasks.

This parameter is not supported for tasks run on AWS Fargate.

" } }, "TaskDefinitionStatus": { @@ -2272,6 +2390,7 @@ "ContainerInstance$registeredAt": "

The Unix timestamp for when the container instance was registered.

", "Deployment$createdAt": "

The Unix timestamp for when the service deployment was created.

", "Deployment$updatedAt": "

The Unix timestamp for when the service deployment was last updated.

", + "ManagedAgent$lastStartedAt": "

The Unix timestamp for when the managed agent was last started.

", "Service$createdAt": "

The Unix timestamp for when the service was created.

", "ServiceEvent$createdAt": "

The Unix timestamp for when the event was triggered.

", "SubmitTaskStateChangeRequest$pullStartedAt": "

The Unix timestamp for when the container image pull began.

", @@ -2354,6 +2473,16 @@ "refs": { } }, + "UpdateClusterRequest": { + "base": null, + "refs": { + } + }, + "UpdateClusterResponse": { + "base": null, + "refs": { + } + }, "UpdateClusterSettingsRequest": { "base": null, "refs": { @@ -2448,7 +2577,7 @@ "base": null, "refs": { "RegisterTaskDefinitionRequest$volumes": "

A list of volume definitions in JSON format that containers in your task may use.

", - "TaskDefinition$volumes": "

The list of volume definitions for the task.

If your tasks are using the Fargate launch type, the host and sourcePath parameters are not supported.

For more information about volume definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon Elastic Container Service Developer Guide.

" + "TaskDefinition$volumes": "

The list of data volume definitions for the task. For more information, see Using data volumes in tasks in the Amazon Elastic Container Service Developer Guide.

The host and sourcePath parameters are not supported for tasks run on AWS Fargate.

" } } } diff --git a/models/apis/elasticmapreduce/2009-03-31/api-2.json b/models/apis/elasticmapreduce/2009-03-31/api-2.json index 91b455c820a..c1e0aeb6093 100644 --- a/models/apis/elasticmapreduce/2009-03-31/api-2.json +++ b/models/apis/elasticmapreduce/2009-03-31/api-2.json @@ -2195,7 +2195,8 @@ "type":"structure", "members":{ "UsageStrategy":{"shape":"OnDemandCapacityReservationUsageStrategy"}, - "CapacityReservationPreference":{"shape":"OnDemandCapacityReservationPreference"} + "CapacityReservationPreference":{"shape":"OnDemandCapacityReservationPreference"}, + "CapacityReservationResourceGroupArn":{"shape":"XmlStringMaxLen256"} } }, "OnDemandCapacityReservationPreference":{ diff --git a/models/apis/elasticmapreduce/2009-03-31/docs-2.json b/models/apis/elasticmapreduce/2009-03-31/docs-2.json index c300b08fb45..50cd4bbd6f4 100644 --- a/models/apis/elasticmapreduce/2009-03-31/docs-2.json +++ b/models/apis/elasticmapreduce/2009-03-31/docs-2.json @@ -1976,7 +1976,7 @@ "CreateSecurityConfigurationOutput$Name": "

The name of the security configuration.

", "CreateStudioInput$ServiceRole": "

The IAM role that will be assumed by the Amazon EMR Studio. The service role provides a way for Amazon EMR Studio to interoperate with other AWS services.

", "CreateStudioInput$UserRole": "

The IAM user role that will be assumed by users and groups logged in to an Amazon EMR Studio. The permissions attached to this IAM role can be scoped down for each user or group using session policies.

", - "CreateStudioInput$DefaultS3Location": "

The default Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook files. A Studio user can select an alternative Amazon S3 location when creating a Workspace.

", + "CreateStudioInput$DefaultS3Location": "

The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook files.

", "CreateStudioOutput$Url": "

The unique Studio access URL.

", "DeleteSecurityConfigurationInput$Name": "

The name of the security configuration.

", "DescribeSecurityConfigurationInput$Name": "

The name of the security configuration.

", @@ -2014,8 +2014,8 @@ "Studio$ServiceRole": "

The name of the IAM role assumed by the Amazon EMR Studio.

", "Studio$UserRole": "

The name of the IAM role assumed by users logged in to the Amazon EMR Studio.

", "Studio$Url": "

The unique access URL of the Amazon EMR Studio.

", - "Studio$DefaultS3Location": "

The default Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook files.

", - "UpdateStudioInput$DefaultS3Location": "

A default Amazon S3 location to back up Workspaces and notebook files for the Amazon EMR Studio. A Studio user can select an alternative Amazon S3 location when creating a Workspace.

", + "Studio$DefaultS3Location": "

The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook files.

", + "UpdateStudioInput$DefaultS3Location": "

The Amazon S3 location to back up Workspaces and notebook files for the Amazon EMR Studio.

", "XmlStringList$member": null } }, @@ -2102,6 +2102,7 @@ "NotebookExecutionSummary$NotebookExecutionId": "

The unique identifier of the notebook execution.

", "NotebookExecutionSummary$EditorId": "

The unique identifier of the editor associated with the notebook execution.

", "NotebookExecutionSummary$NotebookExecutionName": "

The name of the notebook execution.

", + "OnDemandCapacityReservationOptions$CapacityReservationResourceGroupArn": "

The ARN of the Capacity Reservation resource group in which to run the instance.

", "RunJobFlowInput$Name": "

The name of the job flow.

", "RunJobFlowInput$AmiVersion": "

Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases 4.0 and later, ReleaseLabel is used. To specify a custom AMI, use CustomAmiID.

", "RunJobFlowInput$ReleaseLabel": "

The Amazon EMR release label, which determines the version of open-source application packages installed on the cluster. Release labels are in the form emr-x.x.x, where x.x.x is an Amazon EMR release version such as emr-5.14.0. For more information about Amazon EMR release versions and included application versions and features, see https://docs.aws.amazon.com/emr/latest/ReleaseGuide/. The release label applies only to Amazon EMR releases version 4.0 and later. Earlier versions use AmiVersion.

", diff --git a/models/apis/fis/2020-12-01/api-2.json b/models/apis/fis/2020-12-01/api-2.json new file mode 100644 index 00000000000..72fb3cb859a --- /dev/null +++ b/models/apis/fis/2020-12-01/api-2.json @@ -0,0 +1,1160 @@ +{ + "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"} + ] + }, + "DeleteExperimentTemplate":{ + "name":"DeleteExperimentTemplate", + "http":{ + "method":"DELETE", + "requestUri":"/experimentTemplates/{id}", + "responseCode":200 + }, + "input":{"shape":"DeleteExperimentTemplateRequest"}, + "output":{"shape":"DeleteExperimentTemplateResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "GetAction":{ + "name":"GetAction", + "http":{ + "method":"GET", + "requestUri":"/actions/{id}", + "responseCode":200 + }, + "input":{"shape":"GetActionRequest"}, + "output":{"shape":"GetActionResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "GetExperiment":{ + "name":"GetExperiment", + "http":{ + "method":"GET", + "requestUri":"/experiments/{id}", + "responseCode":200 + }, + "input":{"shape":"GetExperimentRequest"}, + "output":{"shape":"GetExperimentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "GetExperimentTemplate":{ + "name":"GetExperimentTemplate", + "http":{ + "method":"GET", + "requestUri":"/experimentTemplates/{id}", + "responseCode":200 + }, + "input":{"shape":"GetExperimentTemplateRequest"}, + "output":{"shape":"GetExperimentTemplateResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "ListActions":{ + "name":"ListActions", + "http":{ + "method":"GET", + "requestUri":"/actions", + "responseCode":200 + }, + "input":{"shape":"ListActionsRequest"}, + "output":{"shape":"ListActionsResponse"}, + "errors":[ + {"shape":"ValidationException"} + ] + }, + "ListExperimentTemplates":{ + "name":"ListExperimentTemplates", + "http":{ + "method":"GET", + "requestUri":"/experimentTemplates", + "responseCode":200 + }, + "input":{"shape":"ListExperimentTemplatesRequest"}, + "output":{"shape":"ListExperimentTemplatesResponse"}, + "errors":[ + {"shape":"ValidationException"} + ] + }, + "ListExperiments":{ + "name":"ListExperiments", + "http":{ + "method":"GET", + "requestUri":"/experiments", + "responseCode":200 + }, + "input":{"shape":"ListExperimentsRequest"}, + "output":{"shape":"ListExperimentsResponse"}, + "errors":[ + {"shape":"ValidationException"} + ] + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"} + }, + "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"} + ] + }, + "StopExperiment":{ + "name":"StopExperiment", + "http":{ + "method":"DELETE", + "requestUri":"/experiments/{id}", + "responseCode":200 + }, + "input":{"shape":"StopExperimentRequest"}, + "output":{"shape":"StopExperimentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"} + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"} + }, + "UpdateExperimentTemplate":{ + "name":"UpdateExperimentTemplate", + "http":{ + "method":"PATCH", + "requestUri":"/experimentTemplates/{id}", + "responseCode":200 + }, + "input":{"shape":"UpdateExperimentTemplateRequest"}, + "output":{"shape":"UpdateExperimentTemplateResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceQuotaExceededException"} + ] + } + }, + "shapes":{ + "Action":{ + "type":"structure", + "members":{ + "id":{"shape":"ActionId"}, + "description":{"shape":"ActionDescription"}, + "parameters":{"shape":"ActionParameterMap"}, + "targets":{"shape":"ActionTargetMap"}, + "tags":{"shape":"TagMap"} + } + }, + "ActionDescription":{ + "type":"string", + "max":512, + "pattern":"[\\s\\S]+" + }, + "ActionId":{ + "type":"string", + "max":128, + "pattern":"[\\S]+" + }, + "ActionParameter":{ + "type":"structure", + "members":{ + "description":{"shape":"ActionParameterDescription"}, + "required":{ + "shape":"ActionParameterRequired", + "box":true + } + } + }, + "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"}, + "description":{"shape":"ActionDescription"}, + "targets":{"shape":"ActionTargetMap"}, + "tags":{"shape":"TagMap"} + } + }, + "ActionSummaryList":{ + "type":"list", + "member":{"shape":"ActionSummary"} + }, + "ActionTarget":{ + "type":"structure", + "members":{ + "resourceType":{"shape":"TargetResourceType"} + } + }, + "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"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "CreateExperimentTemplateActionInput":{ + "type":"structure", + "required":["actionId"], + "members":{ + "actionId":{"shape":"ActionId"}, + "description":{"shape":"ExperimentTemplateActionDescription"}, + "parameters":{"shape":"ExperimentTemplateActionParameterMap"}, + "targets":{"shape":"ExperimentTemplateActionTargetMap"}, + "startAfter":{"shape":"ExperimentTemplateActionStartAfterList"} + } + }, + "CreateExperimentTemplateActionInputMap":{ + "type":"map", + "key":{"shape":"ExperimentTemplateActionName"}, + "value":{"shape":"CreateExperimentTemplateActionInput"} + }, + "CreateExperimentTemplateRequest":{ + "type":"structure", + "required":[ + "clientToken", + "description", + "stopConditions", + "actions", + "roleArn" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + }, + "description":{"shape":"ExperimentTemplateDescription"}, + "stopConditions":{"shape":"CreateExperimentTemplateStopConditionInputList"}, + "targets":{"shape":"CreateExperimentTemplateTargetInputMap"}, + "actions":{"shape":"CreateExperimentTemplateActionInputMap"}, + "roleArn":{"shape":"RoleArn"}, + "tags":{"shape":"TagMap"} + } + }, + "CreateExperimentTemplateResponse":{ + "type":"structure", + "members":{ + "experimentTemplate":{"shape":"ExperimentTemplate"} + } + }, + "CreateExperimentTemplateStopConditionInput":{ + "type":"structure", + "required":["source"], + "members":{ + "source":{"shape":"StopConditionSource"}, + "value":{"shape":"StopConditionValue"} + } + }, + "CreateExperimentTemplateStopConditionInputList":{ + "type":"list", + "member":{"shape":"CreateExperimentTemplateStopConditionInput"} + }, + "CreateExperimentTemplateTargetInput":{ + "type":"structure", + "required":[ + "resourceType", + "selectionMode" + ], + "members":{ + "resourceType":{"shape":"ResourceType"}, + "resourceArns":{"shape":"ResourceArnList"}, + "resourceTags":{"shape":"TagMap"}, + "filters":{"shape":"ExperimentTemplateTargetFilterInputList"}, + "selectionMode":{"shape":"ExperimentTemplateTargetSelectionMode"} + } + }, + "CreateExperimentTemplateTargetInputMap":{ + "type":"map", + "key":{"shape":"ExperimentTemplateTargetName"}, + "value":{"shape":"CreateExperimentTemplateTargetInput"} + }, + "CreationTime":{"type":"timestamp"}, + "DeleteExperimentTemplateRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"ExperimentTemplateId", + "location":"uri", + "locationName":"id" + } + } + }, + "DeleteExperimentTemplateResponse":{ + "type":"structure", + "members":{ + "experimentTemplate":{"shape":"ExperimentTemplate"} + } + }, + "ExceptionMessage":{ + "type":"string", + "max":1024, + "pattern":"[\\s\\S]+" + }, + "Experiment":{ + "type":"structure", + "members":{ + "id":{"shape":"ExperimentId"}, + "experimentTemplateId":{"shape":"ExperimentTemplateId"}, + "roleArn":{"shape":"RoleArn"}, + "state":{"shape":"ExperimentState"}, + "targets":{"shape":"ExperimentTargetMap"}, + "actions":{"shape":"ExperimentActionMap"}, + "stopConditions":{"shape":"ExperimentStopConditionList"}, + "creationTime":{"shape":"CreationTime"}, + "startTime":{"shape":"ExperimentStartTime"}, + "endTime":{"shape":"ExperimentEndTime"}, + "tags":{"shape":"TagMap"} + } + }, + "ExperimentAction":{ + "type":"structure", + "members":{ + "actionId":{"shape":"ActionId"}, + "description":{"shape":"ExperimentActionDescription"}, + "parameters":{"shape":"ExperimentActionParameterMap"}, + "targets":{"shape":"ExperimentActionTargetMap"}, + "startAfter":{"shape":"ExperimentActionStartAfterList"}, + "state":{"shape":"ExperimentActionState"} + } + }, + "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"}, + "reason":{"shape":"ExperimentActionStatusReason"} + } + }, + "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"}, + "reason":{"shape":"ExperimentStatusReason"} + } + }, + "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"}, + "value":{"shape":"StopConditionValue"} + } + }, + "ExperimentStopConditionList":{ + "type":"list", + "member":{"shape":"ExperimentStopCondition"} + }, + "ExperimentSummary":{ + "type":"structure", + "members":{ + "id":{"shape":"ExperimentId"}, + "experimentTemplateId":{"shape":"ExperimentTemplateId"}, + "state":{"shape":"ExperimentState"}, + "creationTime":{"shape":"CreationTime"}, + "tags":{"shape":"TagMap"} + } + }, + "ExperimentSummaryList":{ + "type":"list", + "member":{"shape":"ExperimentSummary"} + }, + "ExperimentTarget":{ + "type":"structure", + "members":{ + "resourceType":{"shape":"ResourceType"}, + "resourceArns":{"shape":"ResourceArnList"}, + "resourceTags":{"shape":"TagMap"}, + "filters":{"shape":"ExperimentTargetFilterList"}, + "selectionMode":{"shape":"ExperimentTargetSelectionMode"} + } + }, + "ExperimentTargetFilter":{ + "type":"structure", + "members":{ + "path":{"shape":"ExperimentTargetFilterPath"}, + "values":{"shape":"ExperimentTargetFilterValues"} + } + }, + "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"}, + "description":{"shape":"ExperimentTemplateDescription"}, + "targets":{"shape":"ExperimentTemplateTargetMap"}, + "actions":{"shape":"ExperimentTemplateActionMap"}, + "stopConditions":{"shape":"ExperimentTemplateStopConditionList"}, + "creationTime":{"shape":"CreationTime"}, + "lastUpdateTime":{"shape":"LastUpdateTime"}, + "roleArn":{"shape":"RoleArn"}, + "tags":{"shape":"TagMap"} + } + }, + "ExperimentTemplateAction":{ + "type":"structure", + "members":{ + "actionId":{"shape":"ActionId"}, + "description":{"shape":"ExperimentTemplateActionDescription"}, + "parameters":{"shape":"ExperimentTemplateActionParameterMap"}, + "targets":{"shape":"ExperimentTemplateActionTargetMap"}, + "startAfter":{"shape":"ExperimentTemplateActionStartAfterList"} + } + }, + "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"}, + "value":{"shape":"StopConditionValue"} + } + }, + "ExperimentTemplateStopConditionList":{ + "type":"list", + "member":{"shape":"ExperimentTemplateStopCondition"} + }, + "ExperimentTemplateSummary":{ + "type":"structure", + "members":{ + "id":{"shape":"ExperimentTemplateId"}, + "description":{"shape":"ExperimentTemplateDescription"}, + "creationTime":{"shape":"CreationTime"}, + "lastUpdateTime":{"shape":"LastUpdateTime"}, + "tags":{"shape":"TagMap"} + } + }, + "ExperimentTemplateSummaryList":{ + "type":"list", + "member":{"shape":"ExperimentTemplateSummary"} + }, + "ExperimentTemplateTarget":{ + "type":"structure", + "members":{ + "resourceType":{"shape":"ResourceType"}, + "resourceArns":{"shape":"ResourceArnList"}, + "resourceTags":{"shape":"TagMap"}, + "filters":{"shape":"ExperimentTemplateTargetFilterList"}, + "selectionMode":{"shape":"ExperimentTemplateTargetSelectionMode"} + } + }, + "ExperimentTemplateTargetFilter":{ + "type":"structure", + "members":{ + "path":{"shape":"ExperimentTemplateTargetFilterPath"}, + "values":{"shape":"ExperimentTemplateTargetFilterValues"} + } + }, + "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"}, + "values":{"shape":"ExperimentTemplateTargetFilterValues"} + } + }, + "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", + "location":"uri", + "locationName":"id" + } + } + }, + "GetActionResponse":{ + "type":"structure", + "members":{ + "action":{"shape":"Action"} + } + }, + "GetExperimentRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"ExperimentId", + "location":"uri", + "locationName":"id" + } + } + }, + "GetExperimentResponse":{ + "type":"structure", + "members":{ + "experiment":{"shape":"Experiment"} + } + }, + "GetExperimentTemplateRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"ExperimentTemplateId", + "location":"uri", + "locationName":"id" + } + } + }, + "GetExperimentTemplateResponse":{ + "type":"structure", + "members":{ + "experimentTemplate":{"shape":"ExperimentTemplate"} + } + }, + "LastUpdateTime":{"type":"timestamp"}, + "ListActionsMaxResults":{ + "type":"integer", + "max":100, + "min":1 + }, + "ListActionsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListActionsMaxResults", + "box":true, + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListActionsResponse":{ + "type":"structure", + "members":{ + "actions":{"shape":"ActionSummaryList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListExperimentTemplatesMaxResults":{ + "type":"integer", + "max":100, + "min":1 + }, + "ListExperimentTemplatesRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListExperimentTemplatesMaxResults", + "box":true, + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListExperimentTemplatesResponse":{ + "type":"structure", + "members":{ + "experimentTemplates":{"shape":"ExperimentTemplateSummaryList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListExperimentsMaxResults":{ + "type":"integer", + "max":100, + "min":1 + }, + "ListExperimentsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListExperimentsMaxResults", + "box":true, + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListExperimentsResponse":{ + "type":"structure", + "members":{ + "experiments":{"shape":"ExperimentSummaryList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"ResourceArn", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{"shape":"TagMap"} + } + }, + "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"} + }, + "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"} + }, + "error":{"httpStatusCode":402}, + "exception":true + }, + "StartExperimentRequest":{ + "type":"structure", + "required":[ + "clientToken", + "experimentTemplateId" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + }, + "experimentTemplateId":{"shape":"ExperimentTemplateId"}, + "tags":{"shape":"TagMap"} + } + }, + "StartExperimentResponse":{ + "type":"structure", + "members":{ + "experiment":{"shape":"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", + "location":"uri", + "locationName":"id" + } + } + }, + "StopExperimentResponse":{ + "type":"structure", + "members":{ + "experiment":{"shape":"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", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{"shape":"TagMap"} + } + }, + "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", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeyList", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateExperimentTemplateActionInputItem":{ + "type":"structure", + "members":{ + "actionId":{"shape":"ActionId"}, + "description":{"shape":"ExperimentTemplateActionDescription"}, + "parameters":{"shape":"ExperimentTemplateActionParameterMap"}, + "targets":{"shape":"ExperimentTemplateActionTargetMap"}, + "startAfter":{"shape":"ExperimentTemplateActionStartAfterList"} + } + }, + "UpdateExperimentTemplateActionInputMap":{ + "type":"map", + "key":{"shape":"ExperimentTemplateActionName"}, + "value":{"shape":"UpdateExperimentTemplateActionInputItem"} + }, + "UpdateExperimentTemplateRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"ExperimentTemplateId", + "location":"uri", + "locationName":"id" + }, + "description":{"shape":"ExperimentTemplateDescription"}, + "stopConditions":{"shape":"UpdateExperimentTemplateStopConditionInputList"}, + "targets":{"shape":"UpdateExperimentTemplateTargetInputMap"}, + "actions":{"shape":"UpdateExperimentTemplateActionInputMap"}, + "roleArn":{"shape":"RoleArn"} + } + }, + "UpdateExperimentTemplateResponse":{ + "type":"structure", + "members":{ + "experimentTemplate":{"shape":"ExperimentTemplate"} + } + }, + "UpdateExperimentTemplateStopConditionInput":{ + "type":"structure", + "required":["source"], + "members":{ + "source":{"shape":"StopConditionSource"}, + "value":{"shape":"StopConditionValue"} + } + }, + "UpdateExperimentTemplateStopConditionInputList":{ + "type":"list", + "member":{"shape":"UpdateExperimentTemplateStopConditionInput"} + }, + "UpdateExperimentTemplateTargetInput":{ + "type":"structure", + "required":[ + "resourceType", + "selectionMode" + ], + "members":{ + "resourceType":{"shape":"ResourceType"}, + "resourceArns":{"shape":"ResourceArnList"}, + "resourceTags":{"shape":"TagMap"}, + "filters":{"shape":"ExperimentTemplateTargetFilterInputList"}, + "selectionMode":{"shape":"ExperimentTemplateTargetSelectionMode"} + } + }, + "UpdateExperimentTemplateTargetInputMap":{ + "type":"map", + "key":{"shape":"ExperimentTemplateTargetName"}, + "value":{"shape":"UpdateExperimentTemplateTargetInput"} + }, + "ValidationException":{ + "type":"structure", + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + } + } +} diff --git a/models/apis/fis/2020-12-01/docs-2.json b/models/apis/fis/2020-12-01/docs-2.json new file mode 100644 index 00000000000..36da9af4952 --- /dev/null +++ b/models/apis/fis/2020-12-01/docs-2.json @@ -0,0 +1,915 @@ +{ + "version": "2.0", + "service": "

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.

", + "operations": { + "CreateExperimentTemplate": "

Creates an experiment template.

To create a template, specify the following information:

For more information, see the AWS Fault Injection Simulator User Guide.

", + "DeleteExperimentTemplate": "

Deletes the specified experiment template.

", + "GetAction": "

Gets information about the specified AWS FIS action.

", + "GetExperiment": "

Gets information about the specified experiment.

", + "GetExperimentTemplate": "

Gets information about the specified experiment template.

", + "ListActions": "

Lists the available AWS FIS actions.

", + "ListExperimentTemplates": "

Lists your experiment templates.

", + "ListExperiments": "

Lists your experiments.

", + "ListTagsForResource": "

Lists the tags for the specified resource.

", + "StartExperiment": "

Starts running an experiment from the specified experiment template.

", + "StopExperiment": "

Stops the specified experiment.

", + "TagResource": "

Applies the specified tags to the specified resource.

", + "UntagResource": "

Removes the specified tags from the specified resource.

", + "UpdateExperimentTemplate": "

Updates the specified experiment template.

" + }, + "shapes": { + "Action": { + "base": "

Describes an action. For more information, see AWS FIS actions in the AWS Fault Injection Simulator User Guide.

", + "refs": { + "GetActionResponse$action": "

Information about the action.

" + } + }, + "ActionDescription": { + "base": null, + "refs": { + "Action$description": "

The description for the action.

", + "ActionSummary$description": "

The description for the action.

" + } + }, + "ActionId": { + "base": null, + "refs": { + "Action$id": "

The ID of the action.

", + "ActionSummary$id": "

The ID of the action.

", + "CreateExperimentTemplateActionInput$actionId": "

The ID of the action.

", + "ExperimentAction$actionId": "

The ID of the action.

", + "ExperimentTemplateAction$actionId": "

The ID of the action.

", + "GetActionRequest$id": "

The ID of the action.

", + "UpdateExperimentTemplateActionInputItem$actionId": "

The ID of the action.

" + } + }, + "ActionParameter": { + "base": "

Describes a parameter for an action.

", + "refs": { + "ActionParameterMap$value": null + } + }, + "ActionParameterDescription": { + "base": null, + "refs": { + "ActionParameter$description": "

The parameter description.

" + } + }, + "ActionParameterMap": { + "base": null, + "refs": { + "Action$parameters": "

The action parameters, if applicable.

" + } + }, + "ActionParameterName": { + "base": null, + "refs": { + "ActionParameterMap$key": null + } + }, + "ActionParameterRequired": { + "base": null, + "refs": { + "ActionParameter$required": "

Indicates whether the parameter is required.

" + } + }, + "ActionSummary": { + "base": "

Provides a summary of an action.

", + "refs": { + "ActionSummaryList$member": null + } + }, + "ActionSummaryList": { + "base": null, + "refs": { + "ListActionsResponse$actions": "

The actions.

" + } + }, + "ActionTarget": { + "base": "

Describes a target for an action.

", + "refs": { + "ActionTargetMap$value": null + } + }, + "ActionTargetMap": { + "base": null, + "refs": { + "Action$targets": "

The supported targets for the action.

", + "ActionSummary$targets": "

The targets for the action.

" + } + }, + "ActionTargetName": { + "base": null, + "refs": { + "ActionTargetMap$key": null + } + }, + "ClientToken": { + "base": null, + "refs": { + "CreateExperimentTemplateRequest$clientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", + "StartExperimentRequest$clientToken": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

" + } + }, + "ConflictException": { + "base": "

The request could not be processed because of a conflict.

", + "refs": { + } + }, + "CreateExperimentTemplateActionInput": { + "base": "

Specifies an action for an experiment template.

", + "refs": { + "CreateExperimentTemplateActionInputMap$value": null + } + }, + "CreateExperimentTemplateActionInputMap": { + "base": null, + "refs": { + "CreateExperimentTemplateRequest$actions": "

The actions for the experiment.

" + } + }, + "CreateExperimentTemplateRequest": { + "base": null, + "refs": { + } + }, + "CreateExperimentTemplateResponse": { + "base": null, + "refs": { + } + }, + "CreateExperimentTemplateStopConditionInput": { + "base": "

Specifies a stop condition for an experiment template.

", + "refs": { + "CreateExperimentTemplateStopConditionInputList$member": null + } + }, + "CreateExperimentTemplateStopConditionInputList": { + "base": null, + "refs": { + "CreateExperimentTemplateRequest$stopConditions": "

The stop conditions.

" + } + }, + "CreateExperimentTemplateTargetInput": { + "base": "

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.

", + "refs": { + "CreateExperimentTemplateTargetInputMap$value": null + } + }, + "CreateExperimentTemplateTargetInputMap": { + "base": null, + "refs": { + "CreateExperimentTemplateRequest$targets": "

The targets for the experiment.

" + } + }, + "CreationTime": { + "base": null, + "refs": { + "Experiment$creationTime": "

The time the experiment was created.

", + "ExperimentSummary$creationTime": "

The time that the experiment was created.

", + "ExperimentTemplate$creationTime": "

The time the experiment template was created.

", + "ExperimentTemplateSummary$creationTime": "

The time that the experiment template was created.

" + } + }, + "DeleteExperimentTemplateRequest": { + "base": null, + "refs": { + } + }, + "DeleteExperimentTemplateResponse": { + "base": null, + "refs": { + } + }, + "ExceptionMessage": { + "base": null, + "refs": { + "ConflictException$message": null, + "ResourceNotFoundException$message": null, + "ServiceQuotaExceededException$message": null, + "ValidationException$message": null + } + }, + "Experiment": { + "base": "

Describes an experiment.

", + "refs": { + "GetExperimentResponse$experiment": "

Information about the experiment.

", + "StartExperimentResponse$experiment": "

Information about the experiment.

", + "StopExperimentResponse$experiment": "

Information about the experiment.

" + } + }, + "ExperimentAction": { + "base": "

Describes the action for an experiment.

", + "refs": { + "ExperimentActionMap$value": null + } + }, + "ExperimentActionDescription": { + "base": null, + "refs": { + "ExperimentAction$description": "

The description for the action.

" + } + }, + "ExperimentActionMap": { + "base": null, + "refs": { + "Experiment$actions": "

The actions for the experiment.

" + } + }, + "ExperimentActionName": { + "base": null, + "refs": { + "ExperimentActionMap$key": null + } + }, + "ExperimentActionParameter": { + "base": null, + "refs": { + "ExperimentActionParameterMap$value": null + } + }, + "ExperimentActionParameterMap": { + "base": null, + "refs": { + "ExperimentAction$parameters": "

The parameters for the action.

" + } + }, + "ExperimentActionParameterName": { + "base": null, + "refs": { + "ExperimentActionParameterMap$key": null + } + }, + "ExperimentActionStartAfter": { + "base": null, + "refs": { + "ExperimentActionStartAfterList$member": null + } + }, + "ExperimentActionStartAfterList": { + "base": null, + "refs": { + "ExperimentAction$startAfter": "

The name of the action that must be completed before this action starts.

" + } + }, + "ExperimentActionState": { + "base": "

Describes the state of an action.

", + "refs": { + "ExperimentAction$state": "

The state of the action.

" + } + }, + "ExperimentActionStatus": { + "base": null, + "refs": { + "ExperimentActionState$status": "

The state of the action.

" + } + }, + "ExperimentActionStatusReason": { + "base": null, + "refs": { + "ExperimentActionState$reason": "

The reason for the state.

" + } + }, + "ExperimentActionTargetMap": { + "base": null, + "refs": { + "ExperimentAction$targets": "

The targets for the action.

" + } + }, + "ExperimentActionTargetName": { + "base": null, + "refs": { + "ExperimentActionTargetMap$key": null + } + }, + "ExperimentEndTime": { + "base": null, + "refs": { + "Experiment$endTime": "

The time that the experiment ended.

" + } + }, + "ExperimentId": { + "base": null, + "refs": { + "Experiment$id": "

The ID of the experiment.

", + "ExperimentSummary$id": "

The ID of the experiment.

", + "GetExperimentRequest$id": "

The ID of the experiment.

", + "StopExperimentRequest$id": "

The ID of the experiment.

" + } + }, + "ExperimentStartTime": { + "base": null, + "refs": { + "Experiment$startTime": "

The time that the experiment was started.

" + } + }, + "ExperimentState": { + "base": "

Describes the state of an experiment.

", + "refs": { + "Experiment$state": "

The state of the experiment.

", + "ExperimentSummary$state": "

The state of the experiment.

" + } + }, + "ExperimentStatus": { + "base": null, + "refs": { + "ExperimentState$status": "

The state of the experiment.

" + } + }, + "ExperimentStatusReason": { + "base": null, + "refs": { + "ExperimentState$reason": "

The reason for the state.

" + } + }, + "ExperimentStopCondition": { + "base": "

Describes the stop condition for an experiment.

", + "refs": { + "ExperimentStopConditionList$member": null + } + }, + "ExperimentStopConditionList": { + "base": null, + "refs": { + "Experiment$stopConditions": "

The stop conditions for the experiment.

" + } + }, + "ExperimentSummary": { + "base": "

Provides a summary of an experiment.

", + "refs": { + "ExperimentSummaryList$member": null + } + }, + "ExperimentSummaryList": { + "base": null, + "refs": { + "ListExperimentsResponse$experiments": "

The experiments.

" + } + }, + "ExperimentTarget": { + "base": "

Describes a target for an experiment.

", + "refs": { + "ExperimentTargetMap$value": null + } + }, + "ExperimentTargetFilter": { + "base": "

Describes a filter used for the target resources in an experiment.

", + "refs": { + "ExperimentTargetFilterList$member": null + } + }, + "ExperimentTargetFilterList": { + "base": null, + "refs": { + "ExperimentTarget$filters": "

The filters to apply to identify target resources using specific attributes.

" + } + }, + "ExperimentTargetFilterPath": { + "base": null, + "refs": { + "ExperimentTargetFilter$path": "

The attribute path for the filter.

" + } + }, + "ExperimentTargetFilterValue": { + "base": null, + "refs": { + "ExperimentTargetFilterValues$member": null + } + }, + "ExperimentTargetFilterValues": { + "base": null, + "refs": { + "ExperimentTargetFilter$values": "

The attribute values for the filter.

" + } + }, + "ExperimentTargetMap": { + "base": null, + "refs": { + "Experiment$targets": "

The targets for the experiment.

" + } + }, + "ExperimentTargetName": { + "base": null, + "refs": { + "ExperimentActionTargetMap$value": null, + "ExperimentTargetMap$key": null + } + }, + "ExperimentTargetSelectionMode": { + "base": null, + "refs": { + "ExperimentTarget$selectionMode": "

Scopes the identified resources to a specific count or percentage.

" + } + }, + "ExperimentTemplate": { + "base": "

Describes an experiment template.

", + "refs": { + "CreateExperimentTemplateResponse$experimentTemplate": "

Information about the experiment template.

", + "DeleteExperimentTemplateResponse$experimentTemplate": "

Information about the experiment template.

", + "GetExperimentTemplateResponse$experimentTemplate": "

Information about the experiment template.

", + "UpdateExperimentTemplateResponse$experimentTemplate": "

Information about the experiment template.

" + } + }, + "ExperimentTemplateAction": { + "base": "

Describes an action for an experiment template.

", + "refs": { + "ExperimentTemplateActionMap$value": null + } + }, + "ExperimentTemplateActionDescription": { + "base": null, + "refs": { + "CreateExperimentTemplateActionInput$description": "

A description for the action.

", + "ExperimentTemplateAction$description": "

A description for the action.

", + "UpdateExperimentTemplateActionInputItem$description": "

A description for the action.

" + } + }, + "ExperimentTemplateActionMap": { + "base": null, + "refs": { + "ExperimentTemplate$actions": "

The actions for the experiment.

" + } + }, + "ExperimentTemplateActionName": { + "base": null, + "refs": { + "CreateExperimentTemplateActionInputMap$key": null, + "ExperimentTemplateActionMap$key": null, + "UpdateExperimentTemplateActionInputMap$key": null + } + }, + "ExperimentTemplateActionParameter": { + "base": null, + "refs": { + "ExperimentTemplateActionParameterMap$value": null + } + }, + "ExperimentTemplateActionParameterMap": { + "base": null, + "refs": { + "CreateExperimentTemplateActionInput$parameters": "

The parameters for the action, if applicable.

", + "ExperimentTemplateAction$parameters": "

The parameters for the action.

", + "UpdateExperimentTemplateActionInputItem$parameters": "

The parameters for the action, if applicable.

" + } + }, + "ExperimentTemplateActionParameterName": { + "base": null, + "refs": { + "ExperimentTemplateActionParameterMap$key": null + } + }, + "ExperimentTemplateActionStartAfter": { + "base": null, + "refs": { + "ExperimentTemplateActionStartAfterList$member": null + } + }, + "ExperimentTemplateActionStartAfterList": { + "base": null, + "refs": { + "CreateExperimentTemplateActionInput$startAfter": "

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.

", + "ExperimentTemplateAction$startAfter": "

The name of the action that must be completed before the current action starts.

", + "UpdateExperimentTemplateActionInputItem$startAfter": "

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.

" + } + }, + "ExperimentTemplateActionTargetMap": { + "base": null, + "refs": { + "CreateExperimentTemplateActionInput$targets": "

The targets for the action.

", + "ExperimentTemplateAction$targets": "

The targets for the action.

", + "UpdateExperimentTemplateActionInputItem$targets": "

The targets for the action.

" + } + }, + "ExperimentTemplateActionTargetName": { + "base": null, + "refs": { + "ExperimentTemplateActionTargetMap$key": null + } + }, + "ExperimentTemplateDescription": { + "base": null, + "refs": { + "CreateExperimentTemplateRequest$description": "

A description for the experiment template. Can contain up to 64 letters (A-Z and a-z).

", + "ExperimentTemplate$description": "

The description for the experiment template.

", + "ExperimentTemplateSummary$description": "

The description of the experiment template.

", + "UpdateExperimentTemplateRequest$description": "

A description for the template.

" + } + }, + "ExperimentTemplateId": { + "base": null, + "refs": { + "DeleteExperimentTemplateRequest$id": "

The ID of the experiment template.

", + "Experiment$experimentTemplateId": "

The ID of the experiment template.

", + "ExperimentSummary$experimentTemplateId": "

The ID of the experiment template.

", + "ExperimentTemplate$id": "

The ID of the experiment template.

", + "ExperimentTemplateSummary$id": "

The ID of the experiment template.

", + "GetExperimentTemplateRequest$id": "

The ID of the experiment template.

", + "StartExperimentRequest$experimentTemplateId": "

The ID of the experiment template.

", + "UpdateExperimentTemplateRequest$id": "

The ID of the experiment template.

" + } + }, + "ExperimentTemplateStopCondition": { + "base": "

Describes a stop condition for an experiment template.

", + "refs": { + "ExperimentTemplateStopConditionList$member": null + } + }, + "ExperimentTemplateStopConditionList": { + "base": null, + "refs": { + "ExperimentTemplate$stopConditions": "

The stop conditions for the experiment.

" + } + }, + "ExperimentTemplateSummary": { + "base": "

Provides a summary of an experiment template.

", + "refs": { + "ExperimentTemplateSummaryList$member": null + } + }, + "ExperimentTemplateSummaryList": { + "base": null, + "refs": { + "ListExperimentTemplatesResponse$experimentTemplates": "

The experiment templates.

" + } + }, + "ExperimentTemplateTarget": { + "base": "

Describes a target for an experiment template.

", + "refs": { + "ExperimentTemplateTargetMap$value": null + } + }, + "ExperimentTemplateTargetFilter": { + "base": "

Describes a filter used for the target resources in an experiment template.

", + "refs": { + "ExperimentTemplateTargetFilterList$member": null + } + }, + "ExperimentTemplateTargetFilterInputList": { + "base": null, + "refs": { + "CreateExperimentTemplateTargetInput$filters": "

The filters to apply to identify target resources using specific attributes.

", + "UpdateExperimentTemplateTargetInput$filters": "

The filters to apply to identify target resources using specific attributes.

" + } + }, + "ExperimentTemplateTargetFilterList": { + "base": null, + "refs": { + "ExperimentTemplateTarget$filters": "

The filters to apply to identify target resources using specific attributes.

" + } + }, + "ExperimentTemplateTargetFilterPath": { + "base": null, + "refs": { + "ExperimentTemplateTargetFilter$path": "

The attribute path for the filter.

", + "ExperimentTemplateTargetInputFilter$path": "

The attribute path for the filter.

" + } + }, + "ExperimentTemplateTargetFilterValue": { + "base": null, + "refs": { + "ExperimentTemplateTargetFilterValues$member": null + } + }, + "ExperimentTemplateTargetFilterValues": { + "base": null, + "refs": { + "ExperimentTemplateTargetFilter$values": "

The attribute values for the filter.

", + "ExperimentTemplateTargetInputFilter$values": "

The attribute values for the filter.

" + } + }, + "ExperimentTemplateTargetInputFilter": { + "base": "

Describes a filter used for the target resource input in an experiment template.

", + "refs": { + "ExperimentTemplateTargetFilterInputList$member": null + } + }, + "ExperimentTemplateTargetMap": { + "base": null, + "refs": { + "ExperimentTemplate$targets": "

The targets for the experiment.

" + } + }, + "ExperimentTemplateTargetName": { + "base": null, + "refs": { + "CreateExperimentTemplateTargetInputMap$key": null, + "ExperimentTemplateActionTargetMap$value": null, + "ExperimentTemplateTargetMap$key": null, + "UpdateExperimentTemplateTargetInputMap$key": null + } + }, + "ExperimentTemplateTargetSelectionMode": { + "base": null, + "refs": { + "CreateExperimentTemplateTargetInput$selectionMode": "

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.

", + "ExperimentTemplateTarget$selectionMode": "

Scopes the identified resources to a specific count or percentage.

", + "UpdateExperimentTemplateTargetInput$selectionMode": "

Scopes the identified resources to a specific count or percentage.

" + } + }, + "GetActionRequest": { + "base": null, + "refs": { + } + }, + "GetActionResponse": { + "base": null, + "refs": { + } + }, + "GetExperimentRequest": { + "base": null, + "refs": { + } + }, + "GetExperimentResponse": { + "base": null, + "refs": { + } + }, + "GetExperimentTemplateRequest": { + "base": null, + "refs": { + } + }, + "GetExperimentTemplateResponse": { + "base": null, + "refs": { + } + }, + "LastUpdateTime": { + "base": null, + "refs": { + "ExperimentTemplate$lastUpdateTime": "

The time the experiment template was last updated.

", + "ExperimentTemplateSummary$lastUpdateTime": "

The time that the experiment template was last updated.

" + } + }, + "ListActionsMaxResults": { + "base": null, + "refs": { + "ListActionsRequest$maxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + } + }, + "ListActionsRequest": { + "base": null, + "refs": { + } + }, + "ListActionsResponse": { + "base": null, + "refs": { + } + }, + "ListExperimentTemplatesMaxResults": { + "base": null, + "refs": { + "ListExperimentTemplatesRequest$maxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + } + }, + "ListExperimentTemplatesRequest": { + "base": null, + "refs": { + } + }, + "ListExperimentTemplatesResponse": { + "base": null, + "refs": { + } + }, + "ListExperimentsMaxResults": { + "base": null, + "refs": { + "ListExperimentsRequest$maxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + } + }, + "ListExperimentsRequest": { + "base": null, + "refs": { + } + }, + "ListExperimentsResponse": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceRequest": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceResponse": { + "base": null, + "refs": { + } + }, + "NextToken": { + "base": null, + "refs": { + "ListActionsRequest$nextToken": "

The token for the next page of results.

", + "ListActionsResponse$nextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "ListExperimentTemplatesRequest$nextToken": "

The token for the next page of results.

", + "ListExperimentTemplatesResponse$nextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "ListExperimentsRequest$nextToken": "

The token for the next page of results.

", + "ListExperimentsResponse$nextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

" + } + }, + "ResourceArn": { + "base": null, + "refs": { + "ListTagsForResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource.

", + "ResourceArnList$member": null, + "TagResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource.

", + "UntagResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource.

" + } + }, + "ResourceArnList": { + "base": null, + "refs": { + "CreateExperimentTemplateTargetInput$resourceArns": "

The Amazon Resource Names (ARNs) of the resources.

", + "ExperimentTarget$resourceArns": "

The Amazon Resource Names (ARNs) of the resources.

", + "ExperimentTemplateTarget$resourceArns": "

The Amazon Resource Names (ARNs) of the targets.

", + "UpdateExperimentTemplateTargetInput$resourceArns": "

The Amazon Resource Names (ARNs) of the targets.

" + } + }, + "ResourceNotFoundException": { + "base": "

The specified resource cannot be found.

", + "refs": { + } + }, + "ResourceType": { + "base": null, + "refs": { + "CreateExperimentTemplateTargetInput$resourceType": "

The AWS resource type. The resource type must be supported for the specified action.

", + "ExperimentTarget$resourceType": "

The resource type.

", + "ExperimentTemplateTarget$resourceType": "

The resource type.

", + "UpdateExperimentTemplateTargetInput$resourceType": "

The AWS resource type. The resource type must be supported for the specified action.

" + } + }, + "RoleArn": { + "base": null, + "refs": { + "CreateExperimentTemplateRequest$roleArn": "

The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf.

", + "Experiment$roleArn": "

The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf.

", + "ExperimentTemplate$roleArn": "

The Amazon Resource Name (ARN) of an IAM role.

", + "UpdateExperimentTemplateRequest$roleArn": "

The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf.

" + } + }, + "ServiceQuotaExceededException": { + "base": "

You have exceeded your service quota.

", + "refs": { + } + }, + "StartExperimentRequest": { + "base": null, + "refs": { + } + }, + "StartExperimentResponse": { + "base": null, + "refs": { + } + }, + "StopConditionSource": { + "base": null, + "refs": { + "CreateExperimentTemplateStopConditionInput$source": "

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.

", + "ExperimentStopCondition$source": "

The source for the stop condition.

", + "ExperimentTemplateStopCondition$source": "

The source for the stop condition.

", + "UpdateExperimentTemplateStopConditionInput$source": "

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.

" + } + }, + "StopConditionValue": { + "base": null, + "refs": { + "CreateExperimentTemplateStopConditionInput$value": "

The Amazon Resource Name (ARN) of the CloudWatch alarm. This is required if the source is a CloudWatch alarm.

", + "ExperimentStopCondition$value": "

The Amazon Resource Name (ARN) of the CloudWatch alarm, if applicable.

", + "ExperimentTemplateStopCondition$value": "

The Amazon Resource Name (ARN) of the CloudWatch alarm, if applicable.

", + "UpdateExperimentTemplateStopConditionInput$value": "

The Amazon Resource Name (ARN) of the CloudWatch alarm.

" + } + }, + "StopExperimentRequest": { + "base": null, + "refs": { + } + }, + "StopExperimentResponse": { + "base": null, + "refs": { + } + }, + "TagKey": { + "base": null, + "refs": { + "TagKeyList$member": null, + "TagMap$key": null + } + }, + "TagKeyList": { + "base": null, + "refs": { + "UntagResourceRequest$tagKeys": "

The tag keys to remove.

" + } + }, + "TagMap": { + "base": null, + "refs": { + "Action$tags": "

The tags for the action.

", + "ActionSummary$tags": "

The tags for the action.

", + "CreateExperimentTemplateRequest$tags": "

The tags to apply to the experiment template.

", + "CreateExperimentTemplateTargetInput$resourceTags": "

The tags for the target resources.

", + "Experiment$tags": "

The tags for the experiment.

", + "ExperimentSummary$tags": "

The tags for the experiment.

", + "ExperimentTarget$resourceTags": "

The tags for the target resources.

", + "ExperimentTemplate$tags": "

The tags for the experiment template.

", + "ExperimentTemplateSummary$tags": "

The tags for the experiment template.

", + "ExperimentTemplateTarget$resourceTags": "

The tags for the target resources.

", + "ListTagsForResourceResponse$tags": "

The tags for the resource.

", + "StartExperimentRequest$tags": "

The tags to apply to the experiment.

", + "TagResourceRequest$tags": "

The tags for the resource.

", + "UpdateExperimentTemplateTargetInput$resourceTags": "

The tags for the target resources.

" + } + }, + "TagResourceRequest": { + "base": null, + "refs": { + } + }, + "TagResourceResponse": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "TagMap$value": null + } + }, + "TargetResourceType": { + "base": null, + "refs": { + "ActionTarget$resourceType": "

The resource type of the target.

" + } + }, + "UntagResourceRequest": { + "base": null, + "refs": { + } + }, + "UntagResourceResponse": { + "base": null, + "refs": { + } + }, + "UpdateExperimentTemplateActionInputItem": { + "base": "

Specifies an action for an experiment template.

", + "refs": { + "UpdateExperimentTemplateActionInputMap$value": null + } + }, + "UpdateExperimentTemplateActionInputMap": { + "base": null, + "refs": { + "UpdateExperimentTemplateRequest$actions": "

The actions for the experiment.

" + } + }, + "UpdateExperimentTemplateRequest": { + "base": null, + "refs": { + } + }, + "UpdateExperimentTemplateResponse": { + "base": null, + "refs": { + } + }, + "UpdateExperimentTemplateStopConditionInput": { + "base": "

Specifies a stop condition for an experiment. You can define a stop condition as a CloudWatch alarm.

", + "refs": { + "UpdateExperimentTemplateStopConditionInputList$member": null + } + }, + "UpdateExperimentTemplateStopConditionInputList": { + "base": null, + "refs": { + "UpdateExperimentTemplateRequest$stopConditions": "

The stop conditions for the experiment.

" + } + }, + "UpdateExperimentTemplateTargetInput": { + "base": "

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.

", + "refs": { + "UpdateExperimentTemplateTargetInputMap$value": null + } + }, + "UpdateExperimentTemplateTargetInputMap": { + "base": null, + "refs": { + "UpdateExperimentTemplateRequest$targets": "

The targets for the experiment.

" + } + }, + "ValidationException": { + "base": "

The specified input is not valid, or fails to satisfy the constraints for the request.

", + "refs": { + } + } + } +} diff --git a/models/apis/fis/2020-12-01/examples-1.json b/models/apis/fis/2020-12-01/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/fis/2020-12-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/fis/2020-12-01/paginators-1.json b/models/apis/fis/2020-12-01/paginators-1.json new file mode 100644 index 00000000000..325359fe45e --- /dev/null +++ b/models/apis/fis/2020-12-01/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/models/apis/transcribe-streaming/2017-10-26/api-2.json b/models/apis/transcribe-streaming/2017-10-26/api-2.json index a3008d421e4..a31cc22c368 100755 --- a/models/apis/transcribe-streaming/2017-10-26/api-2.json +++ b/models/apis/transcribe-streaming/2017-10-26/api-2.json @@ -111,7 +111,8 @@ "Type":{"shape":"ItemType"}, "Content":{"shape":"String"}, "VocabularyFilterMatch":{"shape":"Boolean"}, - "Speaker":{"shape":"String"} + "Speaker":{"shape":"String"}, + "Confidence":{"shape":"Confidence"} } }, "ItemList":{ @@ -138,7 +139,8 @@ "de-DE", "pt-BR", "ja-JP", - "ko-KR" + "ko-KR", + "zh-CN" ] }, "LimitExceededException":{ diff --git a/models/apis/transcribe-streaming/2017-10-26/docs-2.json b/models/apis/transcribe-streaming/2017-10-26/docs-2.json index e665c5f5e53..dac6d17791f 100755 --- a/models/apis/transcribe-streaming/2017-10-26/docs-2.json +++ b/models/apis/transcribe-streaming/2017-10-26/docs-2.json @@ -25,9 +25,9 @@ } }, "AudioEvent": { - "base": "

Provides a wrapper for the audio chunks that you are sending.

", + "base": "

Provides a wrapper for the audio chunks that you are sending.

For information on audio encoding in Amazon Transcribe, see input. For information on audio encoding formats in Amazon Transcribe Medical, see input-med.

", "refs": { - "AudioStream$AudioEvent": "

A blob of audio from your application. You audio stream consists of one or more audio events. For information on audio encoding formats, see input. For more information on stream encoding, see event-stream.

" + "AudioStream$AudioEvent": "

A blob of audio from your application. You audio stream consists of one or more audio events.

For information on audio encoding formats in Amazon Transcribe, see input. For information on audio encoding formats in Amazon Transcribe Medical, see input-med.

For more information on stream encoding in Amazon Transcribe, see event-stream. For information on stream encoding in Amazon Transcribe Medical, see event-stream-med.

" } }, "AudioStream": { @@ -63,6 +63,7 @@ "Confidence": { "base": null, "refs": { + "Item$Confidence": "

A value between 0 and 1 for an item that is a confidence score that Amazon Transcribe assigns to each word or phrase that it transcribes.

", "MedicalEntity$Confidence": "

A value between zero and one that Amazon Transcribe Medical assigned to the personal health information that it identified in the source audio. Larger values indicate that Amazon Transcribe Medical has higher confidence in the personal health information that it identified.

", "MedicalItem$Confidence": "

A value between 0 and 1 for an item that is a confidence score that Amazon Transcribe Medical assigns to each word that it transcribes.

" } @@ -97,7 +98,7 @@ } }, "Item": { - "base": "

A word or phrase transcribed from the input audio.

", + "base": "

A word, phrase, or punctuation mark that is transcribed from the input audio.

", "refs": { "ItemList$member": null } @@ -181,7 +182,7 @@ } }, "MedicalItem": { - "base": "

A word or punctuation that is transcribed from the input audio.

", + "base": "

A word, phrase, or punctuation mark that is transcribed from the input audio.

", "refs": { "MedicalItemList$member": null } diff --git a/service/codedeploy/api.go b/service/codedeploy/api.go index 9cbd7b88dd4..3a73ad3ea00 100644 --- a/service/codedeploy/api.go +++ b/service/codedeploy/api.go @@ -6976,6 +6976,18 @@ type CreateDeploymentGroupInput struct { // Cannot be used in the same call as onPremisesInstanceTagFilters. OnPremisesTagSet *OnPremisesTagSet `locationName:"onPremisesTagSet" type:"structure"` + // Indicates what happens when new EC2 instances are launched mid-deployment + // and do not receive the deployed application revision. + // + // If this option is set to UPDATE or is unspecified, CodeDeploy initiates one + // or more 'auto-update outdated instances' deployments to apply the deployed + // application revision to the new EC2 instances. + // + // If this option is set to IGNORE, CodeDeploy does not initiate a deployment + // to update the new EC2 instances. This may result in instances having different + // revisions. + OutdatedInstancesStrategy *string `locationName:"outdatedInstancesStrategy" type:"string" enum:"OutdatedInstancesStrategy"` + // A service role Amazon Resource Name (ARN) that allows AWS CodeDeploy to act // on the user's behalf when interacting with AWS services. // @@ -7115,6 +7127,12 @@ func (s *CreateDeploymentGroupInput) SetOnPremisesTagSet(v *OnPremisesTagSet) *C return s } +// SetOutdatedInstancesStrategy sets the OutdatedInstancesStrategy field's value. +func (s *CreateDeploymentGroupInput) SetOutdatedInstancesStrategy(v string) *CreateDeploymentGroupInput { + s.OutdatedInstancesStrategy = &v + return s +} + // SetServiceRoleArn sets the ServiceRoleArn field's value. func (s *CreateDeploymentGroupInput) SetServiceRoleArn(v string) *CreateDeploymentGroupInput { s.ServiceRoleArn = &v @@ -8290,6 +8308,18 @@ type DeploymentGroupInfo struct { // tag groups. Cannot be used in the same call as onPremisesInstanceTagFilters. OnPremisesTagSet *OnPremisesTagSet `locationName:"onPremisesTagSet" type:"structure"` + // Indicates what happens when new EC2 instances are launched mid-deployment + // and do not receive the deployed application revision. + // + // If this option is set to UPDATE or is unspecified, CodeDeploy initiates one + // or more 'auto-update outdated instances' deployments to apply the deployed + // application revision to the new EC2 instances. + // + // If this option is set to IGNORE, CodeDeploy does not initiate a deployment + // to update the new EC2 instances. This may result in instances having different + // revisions. + OutdatedInstancesStrategy *string `locationName:"outdatedInstancesStrategy" type:"string" enum:"OutdatedInstancesStrategy"` + // A service role Amazon Resource Name (ARN) that grants CodeDeploy permission // to make calls to AWS services on your behalf. For more information, see Create // a Service Role for AWS CodeDeploy (https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-create-service-role.html) @@ -8422,6 +8452,12 @@ func (s *DeploymentGroupInfo) SetOnPremisesTagSet(v *OnPremisesTagSet) *Deployme return s } +// SetOutdatedInstancesStrategy sets the OutdatedInstancesStrategy field's value. +func (s *DeploymentGroupInfo) SetOutdatedInstancesStrategy(v string) *DeploymentGroupInfo { + s.OutdatedInstancesStrategy = &v + return s +} + // SetServiceRoleArn sets the ServiceRoleArn field's value. func (s *DeploymentGroupInfo) SetServiceRoleArn(v string) *DeploymentGroupInfo { s.ServiceRoleArn = &v @@ -8642,6 +8678,9 @@ type DeploymentInfo struct { // * autoscaling: Amazon EC2 Auto Scaling created the deployment. // // * codeDeployRollback: A rollback process created the deployment. + // + // * CodeDeployAutoUpdate: An auto-update process created the deployment + // when it detected outdated EC2 instances. Creator *string `locationName:"creator" type:"string" enum:"DeploymentCreator"` // The deployment configuration name. @@ -8725,6 +8764,9 @@ type DeploymentInfo struct { // group before the most recent successful deployment. PreviousRevision *RevisionLocation `locationName:"previousRevision" type:"structure"` + // Information about deployments related to the specified deployment. + RelatedDeployments *RelatedDeployments `locationName:"relatedDeployments" type:"structure"` + // Information about the location of stored application artifacts and the service // from which to retrieve them. Revision *RevisionLocation `locationName:"revision" type:"structure"` @@ -8894,6 +8936,12 @@ func (s *DeploymentInfo) SetPreviousRevision(v *RevisionLocation) *DeploymentInf return s } +// SetRelatedDeployments sets the RelatedDeployments field's value. +func (s *DeploymentInfo) SetRelatedDeployments(v *RelatedDeployments) *DeploymentInfo { + s.RelatedDeployments = v + return s +} + // SetRevision sets the Revision field's value. func (s *DeploymentInfo) SetRevision(v *RevisionLocation) *DeploymentInfo { s.Revision = v @@ -16405,8 +16453,8 @@ type PutLifecycleEventHookExecutionStatusInput struct { // hook is specified in the hooks section of the AppSpec file. LifecycleEventHookExecutionId *string `locationName:"lifecycleEventHookExecutionId" type:"string"` - // The result of a Lambda function that validates a deployment lifecycle event - // (Succeeded or Failed). + // The result of a Lambda function that validates a deployment lifecycle event. + // Succeeded and Failed are the only valid values for status. Status *string `locationName:"status" type:"string" enum:"LifecycleEventStatus"` } @@ -16653,6 +16701,40 @@ func (s RegisterOnPremisesInstanceOutput) GoString() string { return s.String() } +// Information about deployments related to the specified deployment. +type RelatedDeployments struct { + _ struct{} `type:"structure"` + + // The deployment IDs of 'auto-update outdated instances' deployments triggered + // by this deployment. + AutoUpdateOutdatedInstancesDeploymentIds []*string `locationName:"autoUpdateOutdatedInstancesDeploymentIds" type:"list"` + + // The deployment ID of the root deployment that triggered this deployment. + AutoUpdateOutdatedInstancesRootDeploymentId *string `locationName:"autoUpdateOutdatedInstancesRootDeploymentId" type:"string"` +} + +// String returns the string representation +func (s RelatedDeployments) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RelatedDeployments) GoString() string { + return s.String() +} + +// SetAutoUpdateOutdatedInstancesDeploymentIds sets the AutoUpdateOutdatedInstancesDeploymentIds field's value. +func (s *RelatedDeployments) SetAutoUpdateOutdatedInstancesDeploymentIds(v []*string) *RelatedDeployments { + s.AutoUpdateOutdatedInstancesDeploymentIds = v + return s +} + +// SetAutoUpdateOutdatedInstancesRootDeploymentId sets the AutoUpdateOutdatedInstancesRootDeploymentId field's value. +func (s *RelatedDeployments) SetAutoUpdateOutdatedInstancesRootDeploymentId(v string) *RelatedDeployments { + s.AutoUpdateOutdatedInstancesRootDeploymentId = &v + return s +} + // Represents the input of a RemoveTagsFromOnPremisesInstances operation. type RemoveTagsFromOnPremisesInstancesInput struct { _ struct{} `type:"structure"` @@ -18406,6 +18488,18 @@ type UpdateDeploymentGroupInput struct { // only on-premises instances identified by all the tag groups. OnPremisesTagSet *OnPremisesTagSet `locationName:"onPremisesTagSet" type:"structure"` + // Indicates what happens when new EC2 instances are launched mid-deployment + // and do not receive the deployed application revision. + // + // If this option is set to UPDATE or is unspecified, CodeDeploy initiates one + // or more 'auto-update outdated instances' deployments to apply the deployed + // application revision to the new EC2 instances. + // + // If this option is set to IGNORE, CodeDeploy does not initiate a deployment + // to update the new EC2 instances. This may result in instances having different + // revisions. + OutdatedInstancesStrategy *string `locationName:"outdatedInstancesStrategy" type:"string" enum:"OutdatedInstancesStrategy"` + // A replacement ARN for the service role, if you want to change it. ServiceRoleArn *string `locationName:"serviceRoleArn" type:"string"` @@ -18543,6 +18637,12 @@ func (s *UpdateDeploymentGroupInput) SetOnPremisesTagSet(v *OnPremisesTagSet) *U return s } +// SetOutdatedInstancesStrategy sets the OutdatedInstancesStrategy field's value. +func (s *UpdateDeploymentGroupInput) SetOutdatedInstancesStrategy(v string) *UpdateDeploymentGroupInput { + s.OutdatedInstancesStrategy = &v + return s +} + // SetServiceRoleArn sets the ServiceRoleArn field's value. func (s *UpdateDeploymentGroupInput) SetServiceRoleArn(v string) *UpdateDeploymentGroupInput { s.ServiceRoleArn = &v @@ -18684,6 +18784,9 @@ const ( // DeploymentCreatorCodeDeploy is a DeploymentCreator enum value DeploymentCreatorCodeDeploy = "CodeDeploy" + // DeploymentCreatorCodeDeployAutoUpdate is a DeploymentCreator enum value + DeploymentCreatorCodeDeployAutoUpdate = "CodeDeployAutoUpdate" + // DeploymentCreatorCloudFormation is a DeploymentCreator enum value DeploymentCreatorCloudFormation = "CloudFormation" @@ -18698,6 +18801,7 @@ func DeploymentCreator_Values() []string { DeploymentCreatorAutoscaling, DeploymentCreatorCodeDeployRollback, DeploymentCreatorCodeDeploy, + DeploymentCreatorCodeDeployAutoUpdate, DeploymentCreatorCloudFormation, DeploymentCreatorCloudFormationRollback, } @@ -19199,6 +19303,22 @@ func MinimumHealthyHostsType_Values() []string { } } +const ( + // OutdatedInstancesStrategyUpdate is a OutdatedInstancesStrategy enum value + OutdatedInstancesStrategyUpdate = "UPDATE" + + // OutdatedInstancesStrategyIgnore is a OutdatedInstancesStrategy enum value + OutdatedInstancesStrategyIgnore = "IGNORE" +) + +// OutdatedInstancesStrategy_Values returns all elements of the OutdatedInstancesStrategy enum +func OutdatedInstancesStrategy_Values() []string { + return []string{ + OutdatedInstancesStrategyUpdate, + OutdatedInstancesStrategyIgnore, + } +} + const ( // RegistrationStatusRegistered is a RegistrationStatus enum value RegistrationStatusRegistered = "Registered" diff --git a/service/ecs/api.go b/service/ecs/api.go index 8d525eb3ebc..1212b712084 100644 --- a/service/ecs/api.go +++ b/service/ecs/api.go @@ -2114,6 +2114,105 @@ func (c *ECS) DiscoverPollEndpointWithContext(ctx aws.Context, input *DiscoverPo return out, req.Send() } +const opExecuteCommand = "ExecuteCommand" + +// ExecuteCommandRequest generates a "aws/request.Request" representing the +// client's request for the ExecuteCommand operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ExecuteCommand for more information on using the ExecuteCommand +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ExecuteCommandRequest method. +// req, resp := client.ExecuteCommandRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ExecuteCommand +func (c *ECS) ExecuteCommandRequest(input *ExecuteCommandInput) (req *request.Request, output *ExecuteCommandOutput) { + op := &request.Operation{ + Name: opExecuteCommand, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ExecuteCommandInput{} + } + + output = &ExecuteCommandOutput{} + req = c.newRequest(op, input, output) + return +} + +// ExecuteCommand API operation for Amazon EC2 Container Service. +// +// Runs a command remotely on a container within a task. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon EC2 Container Service's +// API operation ExecuteCommand for usage and error information. +// +// Returned Error Types: +// * ServerException +// These errors are usually caused by a server issue. +// +// * ClientException +// These errors are usually caused by a client action, such as using an action +// or resource on behalf of a user that doesn't have permissions to use the +// action or resource, or specifying an identifier that is not valid. +// +// * InvalidParameterException +// The specified parameter is invalid. Review the available parameters for the +// API request. +// +// * AccessDeniedException +// You do not have authorization to perform the requested action. +// +// * ClusterNotFoundException +// The specified cluster could not be found. You can view your available clusters +// with ListClusters. Amazon ECS clusters are Region-specific. +// +// * TargetNotConnectedException +// The target container is not properly configured with the execute command +// agent or the container is no longer active or running. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ExecuteCommand +func (c *ECS) ExecuteCommand(input *ExecuteCommandInput) (*ExecuteCommandOutput, error) { + req, out := c.ExecuteCommandRequest(input) + return out, req.Send() +} + +// ExecuteCommandWithContext is the same as ExecuteCommand with the addition of +// the ability to pass a context and additional request options. +// +// See ExecuteCommand for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ECS) ExecuteCommandWithContext(ctx aws.Context, input *ExecuteCommandInput, opts ...request.Option) (*ExecuteCommandOutput, error) { + req, out := c.ExecuteCommandRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opListAccountSettings = "ListAccountSettings" // ListAccountSettingsRequest generates a "aws/request.Request" representing the @@ -4935,6 +5034,98 @@ func (c *ECS) UpdateCapacityProviderWithContext(ctx aws.Context, input *UpdateCa return out, req.Send() } +const opUpdateCluster = "UpdateCluster" + +// UpdateClusterRequest generates a "aws/request.Request" representing the +// client's request for the UpdateCluster operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See UpdateCluster for more information on using the UpdateCluster +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the UpdateClusterRequest method. +// req, resp := client.UpdateClusterRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateCluster +func (c *ECS) UpdateClusterRequest(input *UpdateClusterInput) (req *request.Request, output *UpdateClusterOutput) { + op := &request.Operation{ + Name: opUpdateCluster, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateClusterInput{} + } + + output = &UpdateClusterOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateCluster API operation for Amazon EC2 Container Service. +// +// Updates the cluster. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon EC2 Container Service's +// API operation UpdateCluster for usage and error information. +// +// Returned Error Types: +// * ServerException +// These errors are usually caused by a server issue. +// +// * ClientException +// These errors are usually caused by a client action, such as using an action +// or resource on behalf of a user that doesn't have permissions to use the +// action or resource, or specifying an identifier that is not valid. +// +// * ClusterNotFoundException +// The specified cluster could not be found. You can view your available clusters +// with ListClusters. Amazon ECS clusters are Region-specific. +// +// * InvalidParameterException +// The specified parameter is invalid. Review the available parameters for the +// API request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateCluster +func (c *ECS) UpdateCluster(input *UpdateClusterInput) (*UpdateClusterOutput, error) { + req, out := c.UpdateClusterRequest(input) + return out, req.Send() +} + +// UpdateClusterWithContext is the same as UpdateCluster with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateCluster for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *ECS) UpdateClusterWithContext(ctx aws.Context, input *UpdateClusterInput, opts ...request.Option) (*UpdateClusterOutput, error) { + req, out := c.UpdateClusterRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opUpdateClusterSettings = "UpdateClusterSettings" // UpdateClusterSettingsRequest generates a "aws/request.Request" representing the @@ -6412,13 +6603,30 @@ func (s *CapacityProvider) SetUpdateStatusReason(v string) *CapacityProvider { return s } -// The details of a capacity provider strategy. +// The details of a capacity provider strategy. A capacity provider strategy +// can be set when using the RunTask or CreateCluster APIs or as the default +// capacity provider strategy for a cluster with the CreateCluster API. +// +// Only capacity providers that are already associated with a cluster and have +// an ACTIVE or UPDATING status can be used in a capacity provider strategy. +// The PutClusterCapacityProviders API is used to associate a capacity provider +// with a cluster. +// +// If specifying a capacity provider that uses an Auto Scaling group, the capacity +// provider must already be created. New Auto Scaling group capacity providers +// can be created with the CreateCapacityProvider API operation. +// +// To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT +// capacity providers. The AWS Fargate capacity providers are available to all +// accounts and only need to be associated with a cluster to be used in a capacity +// provider strategy. type CapacityProviderStrategyItem struct { _ struct{} `type:"structure"` // The base value designates how many tasks, at a minimum, to run on the specified // capacity provider. Only one capacity provider in a capacity provider strategy - // can have a base defined. + // can have a base defined. If no value is specified, the default value of 0 + // is used. Base *int64 `locationName:"base" type:"integer"` // The short name of the capacity provider. @@ -6427,14 +6635,23 @@ type CapacityProviderStrategyItem struct { CapacityProvider *string `locationName:"capacityProvider" type:"string" required:"true"` // The weight value designates the relative percentage of the total number of - // tasks launched that should use the specified capacity provider. - // - // For example, if you have a strategy that contains two capacity providers - // and both have a weight of 1, then when the base is satisfied, the tasks will - // be split evenly across the two capacity providers. Using that same logic, - // if you specify a weight of 1 for capacityProviderA and a weight of 4 for - // capacityProviderB, then for every one task that is run using capacityProviderA, - // four tasks would use capacityProviderB. + // tasks launched that should use the specified capacity provider. The weight + // value is taken into consideration after the base value, if defined, is satisfied. + // + // If no weight value is specified, the default value of 0 is used. When multiple + // capacity providers are specified within a capacity provider strategy, at + // least one of the capacity providers must have a weight value greater than + // zero and any capacity providers with a weight of 0 will not be used to place + // tasks. If you specify multiple capacity providers in a strategy that all + // have a weight of 0, any RunTask or CreateService actions using the capacity + // provider strategy will fail. + // + // An example scenario for using weights is defining a strategy that contains + // two capacity providers and both have a weight of 1, then when the base is + // satisfied, the tasks will be split evenly across the two capacity providers. + // Using that same logic, if you specify a weight of 1 for capacityProviderA + // and a weight of 4 for capacityProviderB, then for every one task that is + // run using capacityProviderA, four tasks would use capacityProviderB. Weight *int64 `locationName:"weight" type:"integer"` } @@ -6582,6 +6799,9 @@ type Cluster struct { // A user-generated string that you use to identify your cluster. ClusterName *string `locationName:"clusterName" type:"string"` + // The execute command configuration for the cluster. + Configuration *ClusterConfiguration `locationName:"configuration" type:"structure"` + // The default capacity provider strategy for the cluster. When services or // tasks are run in the cluster with no launch type or capacity provider strategy // specified, the default capacity provider strategy is used. @@ -6727,6 +6947,12 @@ func (s *Cluster) SetClusterName(v string) *Cluster { return s } +// SetConfiguration sets the Configuration field's value. +func (s *Cluster) SetConfiguration(v *ClusterConfiguration) *Cluster { + s.Configuration = v + return s +} + // SetDefaultCapacityProviderStrategy sets the DefaultCapacityProviderStrategy field's value. func (s *Cluster) SetDefaultCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *Cluster { s.DefaultCapacityProviderStrategy = v @@ -6775,6 +7001,30 @@ func (s *Cluster) SetTags(v []*Tag) *Cluster { return s } +// The execute command configuration for the cluster. +type ClusterConfiguration struct { + _ struct{} `type:"structure"` + + // The details of the execute command configuration. + ExecuteCommandConfiguration *ExecuteCommandConfiguration `locationName:"executeCommandConfiguration" type:"structure"` +} + +// String returns the string representation +func (s ClusterConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ClusterConfiguration) GoString() string { + return s.String() +} + +// SetExecuteCommandConfiguration sets the ExecuteCommandConfiguration field's value. +func (s *ClusterConfiguration) SetExecuteCommandConfiguration(v *ExecuteCommandConfiguration) *ClusterConfiguration { + s.ExecuteCommandConfiguration = v + return s +} + // You cannot delete a cluster that has registered container instances. First, // deregister the container instances before you can delete the cluster. For // more information, see DeregisterContainerInstance. @@ -7077,6 +7327,9 @@ type Container struct { // The last known status of the container. LastStatus *string `locationName:"lastStatus" type:"string"` + // The details of any Amazon ECS managed agents associated with the container. + ManagedAgents []*ManagedAgent `locationName:"managedAgents" type:"list"` + // The hard limit (in MiB) of memory set for the container. Memory *string `locationName:"memory" type:"string"` @@ -7161,6 +7414,12 @@ func (s *Container) SetLastStatus(v string) *Container { return s } +// SetManagedAgents sets the ManagedAgents field's value. +func (s *Container) SetManagedAgents(v []*ManagedAgent) *Container { + s.ManagedAgents = v + return s +} + // SetMemory sets the Memory field's value. func (s *Container) SetMemory(v string) *Container { s.Memory = &v @@ -7635,8 +7894,8 @@ type ContainerDefinition struct { // section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) // and the --privileged option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration). // - // This parameter is not supported for Windows containers or tasks using the - // Fargate launch type. + // This parameter is not supported for Windows containers or tasks run on AWS + // Fargate. Privileged *bool `locationName:"privileged" type:"boolean"` // When this parameter is true, a TTY is allocated. This parameter maps to Tty @@ -8800,11 +9059,15 @@ type CreateClusterInput struct { _ struct{} `type:"structure"` // The short name of one or more capacity providers to associate with the cluster. + // A capacity provider must be associated with a cluster before it can be included + // as part of the default capacity provider strategy of the cluster or used + // in a capacity provider strategy when calling the CreateService or RunTask + // actions. // // If specifying a capacity provider that uses an Auto Scaling group, the capacity // provider must already be created and not already associated with another - // cluster. New capacity providers can be created with the CreateCapacityProvider - // API operation. + // cluster. New Auto Scaling group capacity providers can be created with the + // CreateCapacityProvider API operation. // // To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT // capacity providers. The AWS Fargate capacity providers are available to all @@ -8819,25 +9082,14 @@ type CreateClusterInput struct { // numbers, and hyphens are allowed. ClusterName *string `locationName:"clusterName" type:"string"` - // The capacity provider strategy to use by default for the cluster. - // - // When creating a service or running a task on a cluster, if no capacity provider - // or launch type is specified then the default capacity provider strategy for - // the cluster is used. - // - // A capacity provider strategy consists of one or more capacity providers along - // with the base and weight to assign to them. A capacity provider must be associated - // with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders - // API is used to associate a capacity provider with a cluster. Only capacity - // providers with an ACTIVE or UPDATING status can be used. - // - // If specifying a capacity provider that uses an Auto Scaling group, the capacity - // provider must already be created. New capacity providers can be created with - // the CreateCapacityProvider API operation. - // - // To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT - // capacity providers. The AWS Fargate capacity providers are available to all - // accounts and only need to be associated with a cluster to be used. + // The execute command configuration for the cluster. + Configuration *ClusterConfiguration `locationName:"configuration" type:"structure"` + + // The capacity provider strategy to set as the default for the cluster. When + // a default capacity provider strategy is set for a cluster, when calling the + // RunTask or CreateService APIs wtih no capacity provider strategy or launch + // type specified, the default capacity provider strategy for the cluster is + // used. // // If a default capacity provider strategy is not defined for a cluster during // creation, it can be defined later with the PutClusterCapacityProviders API @@ -8931,6 +9183,12 @@ func (s *CreateClusterInput) SetClusterName(v string) *CreateClusterInput { return s } +// SetConfiguration sets the Configuration field's value. +func (s *CreateClusterInput) SetConfiguration(v *ClusterConfiguration) *CreateClusterInput { + s.Configuration = v + return s +} + // SetDefaultCapacityProviderStrategy sets the DefaultCapacityProviderStrategy field's value. func (s *CreateClusterInput) SetDefaultCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *CreateClusterInput { s.DefaultCapacityProviderStrategy = v @@ -8977,26 +9235,9 @@ type CreateServiceInput struct { // The capacity provider strategy to use for the service. // - // A capacity provider strategy consists of one or more capacity providers along - // with the base and weight to assign to them. A capacity provider must be associated - // with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders - // API is used to associate a capacity provider with a cluster. Only capacity - // providers with an ACTIVE or UPDATING status can be used. - // // If a capacityProviderStrategy is specified, the launchType parameter must // be omitted. If no capacityProviderStrategy or launchType is specified, the // defaultCapacityProviderStrategy for the cluster is used. - // - // If specifying a capacity provider that uses an Auto Scaling group, the capacity - // provider must already be created. New capacity providers can be created with - // the CreateCapacityProvider API operation. - // - // To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT - // capacity providers. The AWS Fargate capacity providers are available to all - // accounts and only need to be associated with a cluster to be used. - // - // The PutClusterCapacityProviders API operation is used to update the list - // of available capacity providers for a cluster after the cluster is created. CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"` // Unique, case-sensitive identifier that you provide to ensure the idempotency @@ -9028,6 +9269,11 @@ type CreateServiceInput struct { // in the Amazon Elastic Container Service Developer Guide. EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"` + // Whether or not the execute command functionality is enabled for the service. + // If true, this enables execute command functionality on all containers in + // the service tasks. + EnableExecuteCommand *bool `locationName:"enableExecuteCommand" type:"boolean"` + // The period of time, in seconds, that the Amazon ECS service scheduler should // ignore unhealthy Elastic Load Balancing target health checks after a task // has first started. This is only used when your service is configured to use @@ -9042,10 +9288,17 @@ type CreateServiceInput struct { // come up. HealthCheckGracePeriodSeconds *int64 `locationName:"healthCheckGracePeriodSeconds" type:"integer"` - // The launch type on which to run your service. For more information, see Amazon - // ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) + // The launch type on which to run your service. The accepted values are FARGATE + // and EC2. For more information, see Amazon ECS launch types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) // in the Amazon Elastic Container Service Developer Guide. // + // When a value of FARGATE is specified, your tasks are launched on AWS Fargate + // On-Demand infrastructure. To use Fargate Spot, you must use a capacity provider + // strategy with the FARGATE_SPOT capacity provider. + // + // When a value of EC2 is specified, your tasks are launched on Amazon EC2 instances + // registered to your cluster. + // // If a launchType is specified, the capacityProviderStrategy parameter must // be omitted. LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"` @@ -9058,7 +9311,7 @@ type CreateServiceInput struct { // using either an Application Load Balancer or Network Load Balancer, you must // specify one or more target group ARNs to attach to the service. The service-linked // role is required for services that make use of multiple target groups. For - // more information, see Using Service-Linked Roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html) + // more information, see Using service-linked roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html) // in the Amazon Elastic Container Service Developer Guide. // // If the service is using the CODE_DEPLOY deployment controller, the service @@ -9102,7 +9355,7 @@ type CreateServiceInput struct { // The network configuration for the service. This parameter is required for // task definitions that use the awsvpc network mode to receive their own elastic // network interface, and it is not supported for other network modes. For more - // information, see Task Networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) + // information, see Task networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) // in the Amazon Elastic Container Service Developer Guide. NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"` @@ -9118,7 +9371,7 @@ type CreateServiceInput struct { // The platform version that your tasks in the service are running on. A platform // version is specified only for tasks using the Fargate launch type. If one // isn't specified, the LATEST platform version is used by default. For more - // information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) + // information, see AWS Fargate platform versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) // in the Amazon Elastic Container Service Developer Guide. PlatformVersion *string `locationName:"platformVersion" type:"string"` @@ -9142,14 +9395,14 @@ type CreateServiceInput struct { // network mode or if the service is configured to use service discovery, an // external deployment controller, multiple target groups, or Elastic Inference // accelerators in which case you should not specify a role here. For more information, - // see Using Service-Linked Roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html) + // see Using service-linked roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html) // in the Amazon Elastic Container Service Developer Guide. // // If your specified role has a path other than /, then you must either specify // the full role ARN (this is recommended) or prefix the role name with the // path. For example, if a role with the name bar has a path of /foo/ then you // would specify /foo/bar as the role name. For more information, see Friendly - // Names and Paths (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names) + // names and paths (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names) // in the IAM User Guide. Role *string `locationName:"role" type:"string"` @@ -9185,10 +9438,10 @@ type CreateServiceInput struct { ServiceName *string `locationName:"serviceName" type:"string" required:"true"` // The details of the service discovery registries to assign to this service. - // For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html). + // For more information, see Service discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html). // // Service discovery is supported for Fargate tasks if you are using platform - // version v1.1.0 or later. For more information, see AWS Fargate Platform Versions + // version v1.1.0 or later. For more information, see AWS Fargate platform versions // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"` @@ -9329,6 +9582,12 @@ func (s *CreateServiceInput) SetEnableECSManagedTags(v bool) *CreateServiceInput return s } +// SetEnableExecuteCommand sets the EnableExecuteCommand field's value. +func (s *CreateServiceInput) SetEnableExecuteCommand(v bool) *CreateServiceInput { + s.EnableExecuteCommand = &v + return s +} + // SetHealthCheckGracePeriodSeconds sets the HealthCheckGracePeriodSeconds field's value. func (s *CreateServiceInput) SetHealthCheckGracePeriodSeconds(v int64) *CreateServiceInput { s.HealthCheckGracePeriodSeconds = &v @@ -11820,12 +12079,12 @@ func (s *EFSVolumeConfiguration) SetTransitEncryptionPort(v int64) *EFSVolumeCon // in a container definition, they take precedence over the variables contained // within an environment file. If multiple environment files are specified that // contain the same variable, they are processed from the top down. It is recommended -// to use unique variable names. For more information, see Specifying Environment -// Variables (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) +// to use unique variable names. For more information, see Specifying environment +// variables (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) // in the Amazon Elastic Container Service Developer Guide. // -// This field is not valid for containers in tasks using the Fargate launch -// type. +// This field is only valid for containers in Fargate tasks that use platform +// version 1.4.0 or later. type EnvironmentFile struct { _ struct{} `type:"structure"` @@ -11879,49 +12138,325 @@ func (s *EnvironmentFile) SetValue(v string) *EnvironmentFile { return s } -// The authorization configuration details for Amazon FSx for Windows File Server -// file system. See FSxWindowsFileServerVolumeConfiguration (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_FSxWindowsFileServerVolumeConfiguration.html) -// in the Amazon Elastic Container Service API Reference. -// -// For more information and the input format, see Amazon FSx for Windows File -// Server Volumes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/wfsx-volumes.html) -// in the Amazon Elastic Container Service Developer Guide. -type FSxWindowsFileServerAuthorizationConfig struct { +// The details of the execute command configuration. +type ExecuteCommandConfiguration struct { _ struct{} `type:"structure"` - // The authorization credential option to use. The authorization credential - // options can be provided using either the Amazon Resource Name (ARN) of an - // AWS Secrets Manager secret or AWS Systems Manager Parameter Store parameter. - // The ARNs refer to the stored credentials. - // - // CredentialsParameter is a required field - CredentialsParameter *string `locationName:"credentialsParameter" type:"string" required:"true"` + // Specify an AWS Key Management Service key ID to encrypt the data between + // the local client and the container. + KmsKeyId *string `locationName:"kmsKeyId" type:"string"` - // A fully qualified domain name hosted by an AWS Directory Service (https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) - // Managed Microsoft AD (Active Directory) or self-hosted AD on Amazon EC2. + // The log configuration for the results of the execute command actions. The + // logs can be sent to CloudWatch Logs or an Amazon S3 bucket. When logging=OVERRIDE + // is specified, a logConfiguration must be provided. + LogConfiguration *ExecuteCommandLogConfiguration `locationName:"logConfiguration" type:"structure"` + + // The log setting to use for redirecting logs for your execute command results. + // The following log settings are available. // - // Domain is a required field - Domain *string `locationName:"domain" type:"string" required:"true"` + // * NONE: The execute command session is not logged. + // + // * DEFAULT: The awslogs configuration in the task definition is used. If + // no logging parameter is specified, it defaults to this value. If no awslogs + // log driver is configured in the task definition, the output won't be logged. + // + // * OVERRIDE: Specify the logging details as a part of logConfiguration. + // If the OVERRIDE logging option is specified, the logConfiguration is required. + Logging *string `locationName:"logging" type:"string" enum:"ExecuteCommandLogging"` } // String returns the string representation -func (s FSxWindowsFileServerAuthorizationConfig) String() string { +func (s ExecuteCommandConfiguration) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s FSxWindowsFileServerAuthorizationConfig) GoString() string { +func (s ExecuteCommandConfiguration) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *FSxWindowsFileServerAuthorizationConfig) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "FSxWindowsFileServerAuthorizationConfig"} - if s.CredentialsParameter == nil { - invalidParams.Add(request.NewErrParamRequired("CredentialsParameter")) - } - if s.Domain == nil { - invalidParams.Add(request.NewErrParamRequired("Domain")) +// SetKmsKeyId sets the KmsKeyId field's value. +func (s *ExecuteCommandConfiguration) SetKmsKeyId(v string) *ExecuteCommandConfiguration { + s.KmsKeyId = &v + return s +} + +// SetLogConfiguration sets the LogConfiguration field's value. +func (s *ExecuteCommandConfiguration) SetLogConfiguration(v *ExecuteCommandLogConfiguration) *ExecuteCommandConfiguration { + s.LogConfiguration = v + return s +} + +// SetLogging sets the Logging field's value. +func (s *ExecuteCommandConfiguration) SetLogging(v string) *ExecuteCommandConfiguration { + s.Logging = &v + return s +} + +type ExecuteCommandInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) or short name of the cluster the task is running + // in. If you do not specify a cluster, the default cluster is assumed. + Cluster *string `locationName:"cluster" type:"string"` + + // The command to run on the container. + // + // Command is a required field + Command *string `locationName:"command" type:"string" required:"true"` + + // The name of the container to execute the command on. A container name only + // needs to be specified for tasks containing multiple containers. + Container *string `locationName:"container" type:"string"` + + // Use this flag to run your command in interactive mode. + // + // Interactive is a required field + Interactive *bool `locationName:"interactive" type:"boolean" required:"true"` + + // The Amazon Resource Name (ARN) or ID of the task the container is part of. + // + // Task is a required field + Task *string `locationName:"task" type:"string" required:"true"` +} + +// String returns the string representation +func (s ExecuteCommandInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ExecuteCommandInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ExecuteCommandInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ExecuteCommandInput"} + if s.Command == nil { + invalidParams.Add(request.NewErrParamRequired("Command")) + } + if s.Interactive == nil { + invalidParams.Add(request.NewErrParamRequired("Interactive")) + } + if s.Task == nil { + invalidParams.Add(request.NewErrParamRequired("Task")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCluster sets the Cluster field's value. +func (s *ExecuteCommandInput) SetCluster(v string) *ExecuteCommandInput { + s.Cluster = &v + return s +} + +// SetCommand sets the Command field's value. +func (s *ExecuteCommandInput) SetCommand(v string) *ExecuteCommandInput { + s.Command = &v + return s +} + +// SetContainer sets the Container field's value. +func (s *ExecuteCommandInput) SetContainer(v string) *ExecuteCommandInput { + s.Container = &v + return s +} + +// SetInteractive sets the Interactive field's value. +func (s *ExecuteCommandInput) SetInteractive(v bool) *ExecuteCommandInput { + s.Interactive = &v + return s +} + +// SetTask sets the Task field's value. +func (s *ExecuteCommandInput) SetTask(v string) *ExecuteCommandInput { + s.Task = &v + return s +} + +// The log configuration for the results of the execute command actions. The +// logs can be sent to CloudWatch Logs or an Amazon S3 bucket. +type ExecuteCommandLogConfiguration struct { + _ struct{} `type:"structure"` + + // Whether or not to enable encryption on the CloudWatch logs. If not specified, + // encryption will be disabled. + CloudWatchEncryptionEnabled *bool `locationName:"cloudWatchEncryptionEnabled" type:"boolean"` + + // The name of the CloudWatch log group to send logs to. + // + // The CloudWatch log group must already be created. + CloudWatchLogGroupName *string `locationName:"cloudWatchLogGroupName" type:"string"` + + // The name of the S3 bucket to send logs to. + // + // The S3 bucket must already be created. + S3BucketName *string `locationName:"s3BucketName" type:"string"` + + // Whether or not to enable encryption on the CloudWatch logs. If not specified, + // encryption will be disabled. + S3EncryptionEnabled *bool `locationName:"s3EncryptionEnabled" type:"boolean"` + + // An optional folder in the S3 bucket to place logs in. + S3KeyPrefix *string `locationName:"s3KeyPrefix" type:"string"` +} + +// String returns the string representation +func (s ExecuteCommandLogConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ExecuteCommandLogConfiguration) GoString() string { + return s.String() +} + +// SetCloudWatchEncryptionEnabled sets the CloudWatchEncryptionEnabled field's value. +func (s *ExecuteCommandLogConfiguration) SetCloudWatchEncryptionEnabled(v bool) *ExecuteCommandLogConfiguration { + s.CloudWatchEncryptionEnabled = &v + return s +} + +// SetCloudWatchLogGroupName sets the CloudWatchLogGroupName field's value. +func (s *ExecuteCommandLogConfiguration) SetCloudWatchLogGroupName(v string) *ExecuteCommandLogConfiguration { + s.CloudWatchLogGroupName = &v + return s +} + +// SetS3BucketName sets the S3BucketName field's value. +func (s *ExecuteCommandLogConfiguration) SetS3BucketName(v string) *ExecuteCommandLogConfiguration { + s.S3BucketName = &v + return s +} + +// SetS3EncryptionEnabled sets the S3EncryptionEnabled field's value. +func (s *ExecuteCommandLogConfiguration) SetS3EncryptionEnabled(v bool) *ExecuteCommandLogConfiguration { + s.S3EncryptionEnabled = &v + return s +} + +// SetS3KeyPrefix sets the S3KeyPrefix field's value. +func (s *ExecuteCommandLogConfiguration) SetS3KeyPrefix(v string) *ExecuteCommandLogConfiguration { + s.S3KeyPrefix = &v + return s +} + +type ExecuteCommandOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the cluster. + ClusterArn *string `locationName:"clusterArn" type:"string"` + + // The Amazon Resource Name (ARN) of the container. + ContainerArn *string `locationName:"containerArn" type:"string"` + + // The name of the container. + ContainerName *string `locationName:"containerName" type:"string"` + + // Whether or not the execute command session is running in interactive mode. + Interactive *bool `locationName:"interactive" type:"boolean"` + + // The details of the SSM session that was created for this instance of execute-command. + Session *Session `locationName:"session" type:"structure"` + + // The Amazon Resource Name (ARN) of the task. + TaskArn *string `locationName:"taskArn" type:"string"` +} + +// String returns the string representation +func (s ExecuteCommandOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ExecuteCommandOutput) GoString() string { + return s.String() +} + +// SetClusterArn sets the ClusterArn field's value. +func (s *ExecuteCommandOutput) SetClusterArn(v string) *ExecuteCommandOutput { + s.ClusterArn = &v + return s +} + +// SetContainerArn sets the ContainerArn field's value. +func (s *ExecuteCommandOutput) SetContainerArn(v string) *ExecuteCommandOutput { + s.ContainerArn = &v + return s +} + +// SetContainerName sets the ContainerName field's value. +func (s *ExecuteCommandOutput) SetContainerName(v string) *ExecuteCommandOutput { + s.ContainerName = &v + return s +} + +// SetInteractive sets the Interactive field's value. +func (s *ExecuteCommandOutput) SetInteractive(v bool) *ExecuteCommandOutput { + s.Interactive = &v + return s +} + +// SetSession sets the Session field's value. +func (s *ExecuteCommandOutput) SetSession(v *Session) *ExecuteCommandOutput { + s.Session = v + return s +} + +// SetTaskArn sets the TaskArn field's value. +func (s *ExecuteCommandOutput) SetTaskArn(v string) *ExecuteCommandOutput { + s.TaskArn = &v + return s +} + +// The authorization configuration details for Amazon FSx for Windows File Server +// file system. See FSxWindowsFileServerVolumeConfiguration (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_FSxWindowsFileServerVolumeConfiguration.html) +// in the Amazon Elastic Container Service API Reference. +// +// For more information and the input format, see Amazon FSx for Windows File +// Server Volumes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/wfsx-volumes.html) +// in the Amazon Elastic Container Service Developer Guide. +type FSxWindowsFileServerAuthorizationConfig struct { + _ struct{} `type:"structure"` + + // The authorization credential option to use. The authorization credential + // options can be provided using either the Amazon Resource Name (ARN) of an + // AWS Secrets Manager secret or AWS Systems Manager Parameter Store parameter. + // The ARNs refer to the stored credentials. + // + // CredentialsParameter is a required field + CredentialsParameter *string `locationName:"credentialsParameter" type:"string" required:"true"` + + // A fully qualified domain name hosted by an AWS Directory Service (https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) + // Managed Microsoft AD (Active Directory) or self-hosted AD on Amazon EC2. + // + // Domain is a required field + Domain *string `locationName:"domain" type:"string" required:"true"` +} + +// String returns the string representation +func (s FSxWindowsFileServerAuthorizationConfig) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s FSxWindowsFileServerAuthorizationConfig) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *FSxWindowsFileServerAuthorizationConfig) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "FSxWindowsFileServerAuthorizationConfig"} + if s.CredentialsParameter == nil { + invalidParams.Add(request.NewErrParamRequired("CredentialsParameter")) + } + if s.Domain == nil { + invalidParams.Add(request.NewErrParamRequired("Domain")) } if invalidParams.Len() > 0 { @@ -12079,6 +12614,8 @@ type FirelensConfiguration struct { // For more information, see Creating a Task Definition that Uses a FireLens // Configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html#firelens-taskdef) // in the Amazon Elastic Container Service Developer Guide. + // + // Tasks hosted on AWS Fargate only support the file configuration file type. Options map[string]*string `locationName:"options" type:"map"` // The log router to use. The valid values are fluentd or fluentbit. @@ -13996,15 +14533,137 @@ func (s *LogConfiguration) Validate() error { if s.LogDriver == nil { invalidParams.Add(request.NewErrParamRequired("LogDriver")) } - if s.SecretOptions != nil { - for i, v := range s.SecretOptions { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SecretOptions", i), err.(request.ErrInvalidParams)) - } - } + if s.SecretOptions != nil { + for i, v := range s.SecretOptions { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SecretOptions", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetLogDriver sets the LogDriver field's value. +func (s *LogConfiguration) SetLogDriver(v string) *LogConfiguration { + s.LogDriver = &v + return s +} + +// SetOptions sets the Options field's value. +func (s *LogConfiguration) SetOptions(v map[string]*string) *LogConfiguration { + s.Options = v + return s +} + +// SetSecretOptions sets the SecretOptions field's value. +func (s *LogConfiguration) SetSecretOptions(v []*Secret) *LogConfiguration { + s.SecretOptions = v + return s +} + +// Details about the managed agent status for the container. +type ManagedAgent struct { + _ struct{} `type:"structure"` + + // The Unix timestamp for when the managed agent was last started. + LastStartedAt *time.Time `locationName:"lastStartedAt" type:"timestamp"` + + // The last known status of the managed agent. + LastStatus *string `locationName:"lastStatus" type:"string"` + + // The name of the managed agent. When the execute command feature is enabled, + // the managed agent name is ExecuteCommandAgent. + Name *string `locationName:"name" type:"string" enum:"ManagedAgentName"` + + // The reason for why the managed agent is in the state it is in. + Reason *string `locationName:"reason" type:"string"` +} + +// String returns the string representation +func (s ManagedAgent) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ManagedAgent) GoString() string { + return s.String() +} + +// SetLastStartedAt sets the LastStartedAt field's value. +func (s *ManagedAgent) SetLastStartedAt(v time.Time) *ManagedAgent { + s.LastStartedAt = &v + return s +} + +// SetLastStatus sets the LastStatus field's value. +func (s *ManagedAgent) SetLastStatus(v string) *ManagedAgent { + s.LastStatus = &v + return s +} + +// SetName sets the Name field's value. +func (s *ManagedAgent) SetName(v string) *ManagedAgent { + s.Name = &v + return s +} + +// SetReason sets the Reason field's value. +func (s *ManagedAgent) SetReason(v string) *ManagedAgent { + s.Reason = &v + return s +} + +// An object representing a change in state for a managed agent. +type ManagedAgentStateChange struct { + _ struct{} `type:"structure"` + + // The name of the container associated with the managed agent. + // + // ContainerName is a required field + ContainerName *string `locationName:"containerName" type:"string" required:"true"` + + // The name of the managed agent. + // + // ManagedAgentName is a required field + ManagedAgentName *string `locationName:"managedAgentName" type:"string" required:"true" enum:"ManagedAgentName"` + + // The reason for the status of the managed agent. + Reason *string `locationName:"reason" type:"string"` + + // The status of the managed agent. + // + // Status is a required field + Status *string `locationName:"status" type:"string" required:"true"` +} + +// String returns the string representation +func (s ManagedAgentStateChange) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ManagedAgentStateChange) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ManagedAgentStateChange) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ManagedAgentStateChange"} + if s.ContainerName == nil { + invalidParams.Add(request.NewErrParamRequired("ContainerName")) + } + if s.ManagedAgentName == nil { + invalidParams.Add(request.NewErrParamRequired("ManagedAgentName")) + } + if s.Status == nil { + invalidParams.Add(request.NewErrParamRequired("Status")) } if invalidParams.Len() > 0 { @@ -14013,21 +14672,27 @@ func (s *LogConfiguration) Validate() error { return nil } -// SetLogDriver sets the LogDriver field's value. -func (s *LogConfiguration) SetLogDriver(v string) *LogConfiguration { - s.LogDriver = &v +// SetContainerName sets the ContainerName field's value. +func (s *ManagedAgentStateChange) SetContainerName(v string) *ManagedAgentStateChange { + s.ContainerName = &v return s } -// SetOptions sets the Options field's value. -func (s *LogConfiguration) SetOptions(v map[string]*string) *LogConfiguration { - s.Options = v +// SetManagedAgentName sets the ManagedAgentName field's value. +func (s *ManagedAgentStateChange) SetManagedAgentName(v string) *ManagedAgentStateChange { + s.ManagedAgentName = &v return s } -// SetSecretOptions sets the SecretOptions field's value. -func (s *LogConfiguration) SetSecretOptions(v []*Secret) *LogConfiguration { - s.SecretOptions = v +// SetReason sets the Reason field's value. +func (s *ManagedAgentStateChange) SetReason(v string) *ManagedAgentStateChange { + s.Reason = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *ManagedAgentStateChange) SetStatus(v string) *ManagedAgentStateChange { + s.Status = &v return s } @@ -15540,8 +16205,8 @@ type RegisterTaskDefinitionInput struct { // * For tasks that use the task IPC mode, IPC namespace related systemControls // will apply to all containers within a task. // - // This parameter is not supported for Windows containers or tasks using the - // Fargate launch type. + // This parameter is not supported for Windows containers or tasks run on AWS + // Fargate. IpcMode *string `locationName:"ipcMode" type:"string" enum:"IpcMode"` // The amount of memory (in MiB) used by the task. It can be expressed as an @@ -15629,8 +16294,8 @@ type RegisterTaskDefinitionInput struct { // undesired process namespace expose. For more information, see Docker security // (https://docs.docker.com/engine/security/security/). // - // This parameter is not supported for Windows containers or tasks using the - // Fargate launch type. + // This parameter is not supported for Windows containers or tasks run on AWS + // Fargate. PidMode *string `locationName:"pidMode" type:"string" enum:"PidMode"` // An array of placement constraint objects to use for the task. You can specify @@ -15649,9 +16314,9 @@ type RegisterTaskDefinitionInput struct { ProxyConfiguration *ProxyConfiguration `locationName:"proxyConfiguration" type:"structure"` // The task launch type that Amazon ECS should validate the task definition - // against. This ensures that the task definition parameters are compatible - // with the specified launch type. If no value is specified, it defaults to - // EC2. + // against. A client exception is returned if the task definition doesn't validate + // against the compatibilities specified. If no value is specified, the parameter + // is omitted from the response. RequiresCompatibilities []*string `locationName:"requiresCompatibilities" type:"list"` // The metadata that you apply to the task definition to help you categorize @@ -16188,26 +16853,9 @@ type RunTaskInput struct { // The capacity provider strategy to use for the task. // - // A capacity provider strategy consists of one or more capacity providers along - // with the base and weight to assign to them. A capacity provider must be associated - // with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders - // API is used to associate a capacity provider with a cluster. Only capacity - // providers with an ACTIVE or UPDATING status can be used. - // // If a capacityProviderStrategy is specified, the launchType parameter must // be omitted. If no capacityProviderStrategy or launchType is specified, the // defaultCapacityProviderStrategy for the cluster is used. - // - // If specifying a capacity provider that uses an Auto Scaling group, the capacity - // provider must already be created. New capacity providers can be created with - // the CreateCapacityProvider API operation. - // - // To use a AWS Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT - // capacity providers. The AWS Fargate capacity providers are available to all - // accounts and only need to be associated with a cluster to be used. - // - // The PutClusterCapacityProviders API operation is used to update the list - // of available capacity providers for a cluster after the cluster is created. CapacityProviderStrategy []*CapacityProviderStrategyItem `locationName:"capacityProviderStrategy" type:"list"` // The short name or full Amazon Resource Name (ARN) of the cluster on which @@ -16224,14 +16872,26 @@ type RunTaskInput struct { // in the Amazon Elastic Container Service Developer Guide. EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"` + // Whether or not to enable the execute command functionality for the containers + // in this task. If true, this enables execute command functionality on all + // containers in the task. + EnableExecuteCommand *bool `locationName:"enableExecuteCommand" type:"boolean"` + // The name of the task group to associate with the task. The default value // is the family name of the task definition (for example, family:my-family-name). Group *string `locationName:"group" type:"string"` - // The launch type on which to run your task. For more information, see Amazon - // ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) + // The launch type on which to run your task. The accepted values are FARGATE + // and EC2. For more information, see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) // in the Amazon Elastic Container Service Developer Guide. // + // When a value of FARGATE is specified, your tasks are launched on AWS Fargate + // On-Demand infrastructure. To use Fargate Spot, you must use a capacity provider + // strategy with the FARGATE_SPOT capacity provider. + // + // When a value of EC2 is specified, your tasks are launched on Amazon EC2 instances + // registered to your cluster. + // // If a launchType is specified, the capacityProviderStrategy parameter must // be omitted. LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"` @@ -16406,6 +17066,12 @@ func (s *RunTaskInput) SetEnableECSManagedTags(v bool) *RunTaskInput { return s } +// SetEnableExecuteCommand sets the EnableExecuteCommand field's value. +func (s *RunTaskInput) SetEnableExecuteCommand(v bool) *RunTaskInput { + s.EnableExecuteCommand = &v + return s +} + // SetGroup sets the Group field's value. func (s *RunTaskInput) SetGroup(v string) *RunTaskInput { s.Group = &v @@ -16710,6 +17376,11 @@ type Service struct { // in the Amazon Elastic Container Service Developer Guide. EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"` + // Whether or not the execute command functionality is enabled for the service. + // If true, the execute command functionality is enabled for all containers + // in tasks as part of the service. + EnableExecuteCommand *bool `locationName:"enableExecuteCommand" type:"boolean"` + // The event stream for your service. A maximum of 100 of the latest events // are displayed. Events []*ServiceEvent `locationName:"events" type:"list"` @@ -16902,6 +17573,12 @@ func (s *Service) SetEnableECSManagedTags(v bool) *Service { return s } +// SetEnableExecuteCommand sets the EnableExecuteCommand field's value. +func (s *Service) SetEnableExecuteCommand(v bool) *Service { + s.EnableExecuteCommand = &v + return s +} + // SetEvents sets the Events field's value. func (s *Service) SetEvents(v []*ServiceEvent) *Service { s.Events = v @@ -17245,6 +17922,50 @@ func (s *ServiceRegistry) SetRegistryArn(v string) *ServiceRegistry { return s } +// The details of the execute command session. +type Session struct { + _ struct{} `type:"structure"` + + // The ID of the execute command session. + SessionId *string `locationName:"sessionId" type:"string"` + + // A URL back to managed agent on the container that the SSM Session Manager + // client uses to send commands and receive output from the container. + StreamUrl *string `locationName:"streamUrl" type:"string"` + + // An encrypted token value containing session and caller information. Used + // to authenticate the connection to the container. + TokenValue *string `locationName:"tokenValue" type:"string" sensitive:"true"` +} + +// String returns the string representation +func (s Session) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Session) GoString() string { + return s.String() +} + +// SetSessionId sets the SessionId field's value. +func (s *Session) SetSessionId(v string) *Session { + s.SessionId = &v + return s +} + +// SetStreamUrl sets the StreamUrl field's value. +func (s *Session) SetStreamUrl(v string) *Session { + s.StreamUrl = &v + return s +} + +// SetTokenValue sets the TokenValue field's value. +func (s *Session) SetTokenValue(v string) *Session { + s.TokenValue = &v + return s +} + // The current account setting for a resource. type Setting struct { _ struct{} `type:"structure"` @@ -17308,6 +18029,11 @@ type StartTaskInput struct { // in the Amazon Elastic Container Service Developer Guide. EnableECSManagedTags *bool `locationName:"enableECSManagedTags" type:"boolean"` + // Whether or not the execute command functionality is enabled for the task. + // If true, this enables execute command functionality on all containers in + // the task. + EnableExecuteCommand *bool `locationName:"enableExecuteCommand" type:"boolean"` + // The name of the task group to associate with the task. The default value // is the family name of the task definition (for example, family:my-family-name). Group *string `locationName:"group" type:"string"` @@ -17445,6 +18171,12 @@ func (s *StartTaskInput) SetEnableECSManagedTags(v bool) *StartTaskInput { return s } +// SetEnableExecuteCommand sets the EnableExecuteCommand field's value. +func (s *StartTaskInput) SetEnableExecuteCommand(v bool) *StartTaskInput { + s.EnableExecuteCommand = &v + return s +} + // SetGroup sets the Group field's value. func (s *StartTaskInput) SetGroup(v string) *StartTaskInput { s.Group = &v @@ -17817,6 +18549,9 @@ type SubmitTaskStateChangeInput struct { // The Unix timestamp for when the task execution stopped. ExecutionStoppedAt *time.Time `locationName:"executionStoppedAt" type:"timestamp"` + // The details for the managed agent associated with the task. + ManagedAgents []*ManagedAgentStateChange `locationName:"managedAgents" type:"list"` + // The Unix timestamp for when the container image pull began. PullStartedAt *time.Time `locationName:"pullStartedAt" type:"timestamp"` @@ -17856,6 +18591,16 @@ func (s *SubmitTaskStateChangeInput) Validate() error { } } } + if s.ManagedAgents != nil { + for i, v := range s.ManagedAgents { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ManagedAgents", i), err.(request.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -17887,6 +18632,12 @@ func (s *SubmitTaskStateChangeInput) SetExecutionStoppedAt(v time.Time) *SubmitT return s } +// SetManagedAgents sets the ManagedAgents field's value. +func (s *SubmitTaskStateChangeInput) SetManagedAgents(v []*ManagedAgentStateChange) *SubmitTaskStateChangeInput { + s.ManagedAgents = v + return s +} + // SetPullStartedAt sets the PullStartedAt field's value. func (s *SubmitTaskStateChangeInput) SetPullStartedAt(v time.Time) *SubmitTaskStateChangeInput { s.PullStartedAt = &v @@ -18163,6 +18914,63 @@ func (s TagResourceOutput) GoString() string { return s.String() } +// The target container is not properly configured with the execute command +// agent or the container is no longer active or running. +type TargetNotConnectedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation +func (s TargetNotConnectedException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s TargetNotConnectedException) GoString() string { + return s.String() +} + +func newErrorTargetNotConnectedException(v protocol.ResponseMetadata) error { + return &TargetNotConnectedException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *TargetNotConnectedException) Code() string { + return "TargetNotConnectedException" +} + +// Message returns the exception's message. +func (s *TargetNotConnectedException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *TargetNotConnectedException) OrigErr() error { + return nil +} + +func (s *TargetNotConnectedException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *TargetNotConnectedException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *TargetNotConnectedException) RequestID() string { + return s.RespMetadata.RequestID +} + // The specified target could not be found. You can view your available container // instances with ListContainerInstances. Amazon ECS container instances are // cluster-specific and Region-specific. @@ -18290,6 +19098,11 @@ type Task struct { // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-lifecycle.html). DesiredStatus *string `locationName:"desiredStatus" type:"string"` + // Whether or not execute command functionality is enabled for this task. If + // true, this enables execute command functionality on all containers in the + // task. + EnableExecuteCommand *bool `locationName:"enableExecuteCommand" type:"boolean"` + // The Unix timestamp for when the task execution stopped. ExecutionStoppedAt *time.Time `locationName:"executionStoppedAt" type:"timestamp"` @@ -18514,6 +19327,12 @@ func (s *Task) SetDesiredStatus(v string) *Task { return s } +// SetEnableExecuteCommand sets the EnableExecuteCommand field's value. +func (s *Task) SetEnableExecuteCommand(v bool) *Task { + s.EnableExecuteCommand = &v + return s +} + // SetExecutionStoppedAt sets the ExecutionStoppedAt field's value. func (s *Task) SetExecutionStoppedAt(v time.Time) *Task { s.ExecutionStoppedAt = &v @@ -18648,8 +19467,8 @@ func (s *Task) SetVersion(v int64) *Task { type TaskDefinition struct { _ struct{} `type:"structure"` - // The launch type to use with your task. For more information, see Amazon ECS - // Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) + // The task launch types the task definition validated against during task definition + // registration. For more information, see Amazon ECS launch types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) // in the Amazon Elastic Container Service Developer Guide. Compatibilities []*string `locationName:"compatibilities" type:"list"` @@ -18731,21 +19550,21 @@ type TaskDefinition struct { // * For tasks that use the task IPC mode, IPC namespace related systemControls // will apply to all containers within a task. // - // This parameter is not supported for Windows containers or tasks using the - // Fargate launch type. + // This parameter is not supported for Windows containers or tasks run on AWS + // Fargate. IpcMode *string `locationName:"ipcMode" type:"string" enum:"IpcMode"` // The amount (in MiB) of memory used by the task. // - // If using the EC2 launch type, you must specify either a task-level memory - // value or a container-level memory value. This field is optional and any value - // can be used. If a task-level memory value is specified then the container-level - // memory value is optional. For more information regarding container-level - // memory and memory reservation, see ContainerDefinition (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html). + // If your tasks will be run on Amazon EC2 instances, you must specify either + // a task-level memory value or a container-level memory value. This field is + // optional and any value can be used. If a task-level memory value is specified + // then the container-level memory value is optional. For more information regarding + // container-level memory and memory reservation, see ContainerDefinition (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html). // - // If using the Fargate launch type, this field is required and you must use - // one of the following values, which determines your range of valid values - // for the cpu parameter: + // If your tasks will be run on AWS Fargate, this field is required and you + // must use one of the following values, which determines your range of valid + // values for the cpu parameter: // // * 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 // vCPU) @@ -18818,12 +19637,13 @@ type TaskDefinition struct { // undesired process namespace expose. For more information, see Docker security // (https://docs.docker.com/engine/security/security/). // - // This parameter is not supported for Windows containers or tasks using the - // Fargate launch type. + // This parameter is not supported for Windows containers or tasks run on AWS + // Fargate. PidMode *string `locationName:"pidMode" type:"string" enum:"PidMode"` - // An array of placement constraint objects to use for tasks. This field is - // not valid if you are using the Fargate launch type for your task. + // An array of placement constraint objects to use for tasks. + // + // This parameter is not supported for tasks run on AWS Fargate. PlacementConstraints []*TaskDefinitionPlacementConstraint `locationName:"placementConstraints" type:"list"` // The configuration details for the App Mesh proxy. @@ -18843,12 +19663,20 @@ type TaskDefinition struct { // The principal that registered the task definition. RegisteredBy *string `locationName:"registeredBy" type:"string"` - // The container instance attributes required by your task. This field is not - // valid if you are using the Fargate launch type for your task. + // The container instance attributes required by your task. When an Amazon EC2 + // instance is registered to your cluster, the Amazon ECS container agent assigns + // some standard attributes to the instance. You can apply custom attributes, + // specified as key-value pairs using the Amazon ECS console or the PutAttributes + // API. These attributes are used when considering task placement for tasks + // hosted on Amazon EC2 instances. For more information, see Attributes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes) + // in the Amazon Elastic Container Service Developer Guide. + // + // This parameter is not supported for tasks run on AWS Fargate. RequiresAttributes []*Attribute `locationName:"requiresAttributes" type:"list"` - // The launch type the task requires. If no value is specified, it will default - // to EC2. Valid values include EC2 and FARGATE. + // The task launch types the task definition was validated against. To determine + // which task launch types the task definition is validated for, see the TaskDefinition$compatibilities + // parameter. RequiresCompatibilities []*string `locationName:"requiresCompatibilities" type:"list"` // The revision of the task in a particular family. The revision is a version @@ -18874,18 +19702,16 @@ type TaskDefinition struct { // IAM roles for tasks on Windows require that the -EnableTaskIAMRole option // is set when you launch the Amazon ECS-optimized Windows AMI. Your containers // must also run some configuration code in order to take advantage of the feature. - // For more information, see Windows IAM Roles for Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html) + // For more information, see Windows IAM roles for tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html) // in the Amazon Elastic Container Service Developer Guide. TaskRoleArn *string `locationName:"taskRoleArn" type:"string"` - // The list of volume definitions for the task. - // - // If your tasks are using the Fargate launch type, the host and sourcePath - // parameters are not supported. - // - // For more information about volume definition parameters and defaults, see - // Amazon ECS Task Definitions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html) + // The list of data volume definitions for the task. For more information, see + // Using data volumes in tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html) // in the Amazon Elastic Container Service Developer Guide. + // + // The host and sourcePath parameters are not supported for tasks run on AWS + // Fargate. Volumes []*Volume `locationName:"volumes" type:"list"` } @@ -19032,16 +19858,15 @@ func (s *TaskDefinition) SetVolumes(v []*Volume) *TaskDefinition { } // An object representing a constraint on task placement in the task definition. -// For more information, see Task Placement Constraints (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html) +// For more information, see Task placement constraints (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html) // in the Amazon Elastic Container Service Developer Guide. // -// If you are using the Fargate launch type, task placement constraints are -// not supported. +// Task placement constraints are not supported for tasks run on AWS Fargate. type TaskDefinitionPlacementConstraint struct { _ struct{} `type:"structure"` // A cluster query language expression to apply to the constraint. For more - // information, see Cluster Query Language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html) + // information, see Cluster query language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html) // in the Amazon Elastic Container Service Developer Guide. Expression *string `locationName:"expression" type:"string"` @@ -19201,7 +20026,7 @@ type TaskSet struct { Id *string `locationName:"id" type:"string"` // The launch type the tasks in the task set are using. For more information, - // see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) + // see Amazon ECS launch types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) // in the Amazon Elastic Container Service Developer Guide. LaunchType *string `locationName:"launchType" type:"string" enum:"LaunchType"` @@ -19217,10 +20042,9 @@ type TaskSet struct { // time or when it is restarted after being in the STOPPED state. PendingCount *int64 `locationName:"pendingCount" type:"integer"` - // The platform version on which the tasks in the task set are running. A platform - // version is only specified for tasks using the Fargate launch type. If one - // is not specified, the LATEST platform version is used by default. For more - // information, see AWS Fargate Platform Versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) + // The AWS Fargate platform version on which the tasks in the task set are running. + // A platform version is only specified for tasks run on AWS Fargate. For more + // information, see AWS Fargate platform versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) // in the Amazon Elastic Container Service Developer Guide. PlatformVersion *string `locationName:"platformVersion" type:"string"` @@ -19236,7 +20060,7 @@ type TaskSet struct { ServiceArn *string `locationName:"serviceArn" type:"string"` // The details of the service discovery registries to assign to this task set. - // For more information, see Service Discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html). + // For more information, see Service discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html). ServiceRegistries []*ServiceRegistry `locationName:"serviceRegistries" type:"list"` // The stability status, which indicates whether the task set has reached a @@ -19865,6 +20689,88 @@ func (s *UpdateCapacityProviderOutput) SetCapacityProvider(v *CapacityProvider) return s } +type UpdateClusterInput struct { + _ struct{} `type:"structure"` + + // The name of the cluster to modify the settings for. + // + // Cluster is a required field + Cluster *string `locationName:"cluster" type:"string" required:"true"` + + // The execute command configuration for the cluster. + Configuration *ClusterConfiguration `locationName:"configuration" type:"structure"` + + // The cluster settings for your cluster. + Settings []*ClusterSetting `locationName:"settings" type:"list"` +} + +// String returns the string representation +func (s UpdateClusterInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateClusterInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateClusterInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateClusterInput"} + if s.Cluster == nil { + invalidParams.Add(request.NewErrParamRequired("Cluster")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCluster sets the Cluster field's value. +func (s *UpdateClusterInput) SetCluster(v string) *UpdateClusterInput { + s.Cluster = &v + return s +} + +// SetConfiguration sets the Configuration field's value. +func (s *UpdateClusterInput) SetConfiguration(v *ClusterConfiguration) *UpdateClusterInput { + s.Configuration = v + return s +} + +// SetSettings sets the Settings field's value. +func (s *UpdateClusterInput) SetSettings(v []*ClusterSetting) *UpdateClusterInput { + s.Settings = v + return s +} + +type UpdateClusterOutput struct { + _ struct{} `type:"structure"` + + // A regional grouping of one or more container instances on which you can run + // task requests. Each account receives a default cluster the first time you + // use the Amazon ECS service, but you may also create other clusters. Clusters + // may contain more than one instance type simultaneously. + Cluster *Cluster `locationName:"cluster" type:"structure"` +} + +// String returns the string representation +func (s UpdateClusterOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateClusterOutput) GoString() string { + return s.String() +} + +// SetCluster sets the Cluster field's value. +func (s *UpdateClusterOutput) SetCluster(v *Cluster) *UpdateClusterOutput { + s.Cluster = v + return s +} + type UpdateClusterSettingsInput struct { _ struct{} `type:"structure"` @@ -20222,6 +21128,12 @@ type UpdateServiceInput struct { // service. DesiredCount *int64 `locationName:"desiredCount" type:"integer"` + // If true, this enables execute command functionality on all task containers. + // + // If you do not want to override the value that was set when the service was + // created, you can set this to null when performing this action. + EnableExecuteCommand *bool `locationName:"enableExecuteCommand" type:"boolean"` + // Whether to force a new deployment of the service. Deployments are not forced // by default. You can use this option to trigger a new deployment with no service // definition changes. For example, you can update a service's tasks to use @@ -20349,6 +21261,12 @@ func (s *UpdateServiceInput) SetDesiredCount(v int64) *UpdateServiceInput { return s } +// SetEnableExecuteCommand sets the EnableExecuteCommand field's value. +func (s *UpdateServiceInput) SetEnableExecuteCommand(v bool) *UpdateServiceInput { + s.EnableExecuteCommand = &v + return s +} + // SetForceNewDeployment sets the ForceNewDeployment field's value. func (s *UpdateServiceInput) SetForceNewDeployment(v bool) *UpdateServiceInput { s.ForceNewDeployment = &v @@ -20678,10 +21596,12 @@ func (s *VersionInfo) SetDockerVersion(v string) *VersionInfo { type Volume struct { _ struct{} `type:"structure"` - // This parameter is specified when you are using Docker volumes. Docker volumes - // are only supported when you are using the EC2 launch type. Windows containers - // only support the use of the local driver. To use bind mounts, specify the - // host parameter instead. + // This parameter is specified when you are using Docker volumes. + // + // Windows containers only support the use of the local driver. To use bind + // mounts, specify the host parameter instead. + // + // Docker volumes are not supported by tasks run on AWS Fargate. DockerVolumeConfiguration *DockerVolumeConfiguration `locationName:"dockerVolumeConfiguration" type:"structure"` // This parameter is specified when you are using an Amazon Elastic File System @@ -20919,6 +21839,9 @@ const ( // ClusterFieldAttachments is a ClusterField enum value ClusterFieldAttachments = "ATTACHMENTS" + // ClusterFieldConfigurations is a ClusterField enum value + ClusterFieldConfigurations = "CONFIGURATIONS" + // ClusterFieldSettings is a ClusterField enum value ClusterFieldSettings = "SETTINGS" @@ -20933,6 +21856,7 @@ const ( func ClusterField_Values() []string { return []string{ ClusterFieldAttachments, + ClusterFieldConfigurations, ClusterFieldSettings, ClusterFieldStatistics, ClusterFieldTags, @@ -21171,6 +22095,26 @@ func EnvironmentFileType_Values() []string { } } +const ( + // ExecuteCommandLoggingNone is a ExecuteCommandLogging enum value + ExecuteCommandLoggingNone = "NONE" + + // ExecuteCommandLoggingDefault is a ExecuteCommandLogging enum value + ExecuteCommandLoggingDefault = "DEFAULT" + + // ExecuteCommandLoggingOverride is a ExecuteCommandLogging enum value + ExecuteCommandLoggingOverride = "OVERRIDE" +) + +// ExecuteCommandLogging_Values returns all elements of the ExecuteCommandLogging enum +func ExecuteCommandLogging_Values() []string { + return []string{ + ExecuteCommandLoggingNone, + ExecuteCommandLoggingDefault, + ExecuteCommandLoggingOverride, + } +} + const ( // FirelensConfigurationTypeFluentd is a FirelensConfigurationType enum value FirelensConfigurationTypeFluentd = "fluentd" @@ -21283,6 +22227,18 @@ func LogDriver_Values() []string { } } +const ( + // ManagedAgentNameExecuteCommandAgent is a ManagedAgentName enum value + ManagedAgentNameExecuteCommandAgent = "ExecuteCommandAgent" +) + +// ManagedAgentName_Values returns all elements of the ManagedAgentName enum +func ManagedAgentName_Values() []string { + return []string{ + ManagedAgentNameExecuteCommandAgent, + } +} + const ( // ManagedScalingStatusEnabled is a ManagedScalingStatus enum value ManagedScalingStatusEnabled = "ENABLED" diff --git a/service/ecs/doc.go b/service/ecs/doc.go index 5582142122a..4128b3e5112 100644 --- a/service/ecs/doc.go +++ b/service/ecs/doc.go @@ -7,14 +7,12 @@ // container management service that makes it easy to run, stop, and manage // Docker containers on a cluster. You can host your cluster on a serverless // infrastructure that is managed by Amazon ECS by launching your services or -// tasks using the Fargate launch type. For more control, you can host your -// tasks on a cluster of Amazon Elastic Compute Cloud (Amazon EC2) instances -// that you manage by using the EC2 launch type. For more information about -// launch types, see Amazon ECS Launch Types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html). -// -// Amazon ECS lets you launch and stop container-based applications with simple -// API calls, allows you to get the state of your cluster from a centralized -// service, and gives you access to many familiar Amazon EC2 features. +// tasks on AWS Fargate. For more control, you can host your tasks on a cluster +// of Amazon Elastic Compute Cloud (Amazon EC2) instances that you manage. +// +// Amazon ECS makes it easy to launch and stop container-based applications +// with simple API calls, allows you to get the state of your cluster from a +// centralized service, and gives you access to many familiar Amazon EC2 features. // // You can use Amazon ECS to schedule the placement of containers across your // cluster based on your resource needs, isolation policies, and availability diff --git a/service/ecs/ecsiface/interface.go b/service/ecs/ecsiface/interface.go index d0371fd17f0..921a84ccf3b 100644 --- a/service/ecs/ecsiface/interface.go +++ b/service/ecs/ecsiface/interface.go @@ -140,6 +140,10 @@ type ECSAPI interface { DiscoverPollEndpointWithContext(aws.Context, *ecs.DiscoverPollEndpointInput, ...request.Option) (*ecs.DiscoverPollEndpointOutput, error) DiscoverPollEndpointRequest(*ecs.DiscoverPollEndpointInput) (*request.Request, *ecs.DiscoverPollEndpointOutput) + ExecuteCommand(*ecs.ExecuteCommandInput) (*ecs.ExecuteCommandOutput, error) + ExecuteCommandWithContext(aws.Context, *ecs.ExecuteCommandInput, ...request.Option) (*ecs.ExecuteCommandOutput, error) + ExecuteCommandRequest(*ecs.ExecuteCommandInput) (*request.Request, *ecs.ExecuteCommandOutput) + ListAccountSettings(*ecs.ListAccountSettingsInput) (*ecs.ListAccountSettingsOutput, error) ListAccountSettingsWithContext(aws.Context, *ecs.ListAccountSettingsInput, ...request.Option) (*ecs.ListAccountSettingsOutput, error) ListAccountSettingsRequest(*ecs.ListAccountSettingsInput) (*request.Request, *ecs.ListAccountSettingsOutput) @@ -260,6 +264,10 @@ type ECSAPI interface { UpdateCapacityProviderWithContext(aws.Context, *ecs.UpdateCapacityProviderInput, ...request.Option) (*ecs.UpdateCapacityProviderOutput, error) UpdateCapacityProviderRequest(*ecs.UpdateCapacityProviderInput) (*request.Request, *ecs.UpdateCapacityProviderOutput) + UpdateCluster(*ecs.UpdateClusterInput) (*ecs.UpdateClusterOutput, error) + UpdateClusterWithContext(aws.Context, *ecs.UpdateClusterInput, ...request.Option) (*ecs.UpdateClusterOutput, error) + UpdateClusterRequest(*ecs.UpdateClusterInput) (*request.Request, *ecs.UpdateClusterOutput) + UpdateClusterSettings(*ecs.UpdateClusterSettingsInput) (*ecs.UpdateClusterSettingsOutput, error) UpdateClusterSettingsWithContext(aws.Context, *ecs.UpdateClusterSettingsInput, ...request.Option) (*ecs.UpdateClusterSettingsOutput, error) UpdateClusterSettingsRequest(*ecs.UpdateClusterSettingsInput) (*request.Request, *ecs.UpdateClusterSettingsOutput) diff --git a/service/ecs/errors.go b/service/ecs/errors.go index 736a07682ab..514bafc74cf 100644 --- a/service/ecs/errors.go +++ b/service/ecs/errors.go @@ -141,6 +141,13 @@ const ( // with ListServices. Amazon ECS services are cluster-specific and Region-specific. ErrCodeServiceNotFoundException = "ServiceNotFoundException" + // ErrCodeTargetNotConnectedException for service response error code + // "TargetNotConnectedException". + // + // The target container is not properly configured with the execute command + // agent or the container is no longer active or running. + ErrCodeTargetNotConnectedException = "TargetNotConnectedException" + // ErrCodeTargetNotFoundException for service response error code // "TargetNotFoundException". // @@ -194,6 +201,7 @@ var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ "ServerException": newErrorServerException, "ServiceNotActiveException": newErrorServiceNotActiveException, "ServiceNotFoundException": newErrorServiceNotFoundException, + "TargetNotConnectedException": newErrorTargetNotConnectedException, "TargetNotFoundException": newErrorTargetNotFoundException, "TaskSetNotFoundException": newErrorTaskSetNotFoundException, "UnsupportedFeatureException": newErrorUnsupportedFeatureException, diff --git a/service/emr/api.go b/service/emr/api.go index af920b876e8..5ea540fcd6c 100644 --- a/service/emr/api.go +++ b/service/emr/api.go @@ -6517,9 +6517,8 @@ type CreateStudioInput struct { // AuthMode is a required field AuthMode *string `type:"string" required:"true" enum:"AuthMode"` - // The default Amazon S3 location to back up Amazon EMR Studio Workspaces and - // notebook files. A Studio user can select an alternative Amazon S3 location - // when creating a Workspace. + // The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook + // files. // // DefaultS3Location is a required field DefaultS3Location *string `type:"string" required:"true"` @@ -12320,6 +12319,9 @@ type OnDemandCapacityReservationOptions struct { // one is available. The instance runs as an On-Demand Instance. CapacityReservationPreference *string `type:"string" enum:"OnDemandCapacityReservationPreference"` + // The ARN of the Capacity Reservation resource group in which to run the instance. + CapacityReservationResourceGroupArn *string `type:"string"` + // Indicates whether to use unused Capacity Reservations for fulfilling On-Demand // capacity. // @@ -12352,6 +12354,12 @@ func (s *OnDemandCapacityReservationOptions) SetCapacityReservationPreference(v return s } +// SetCapacityReservationResourceGroupArn sets the CapacityReservationResourceGroupArn field's value. +func (s *OnDemandCapacityReservationOptions) SetCapacityReservationResourceGroupArn(v string) *OnDemandCapacityReservationOptions { + s.CapacityReservationResourceGroupArn = &v + return s +} + // SetUsageStrategy sets the UsageStrategy field's value. func (s *OnDemandCapacityReservationOptions) SetUsageStrategy(v string) *OnDemandCapacityReservationOptions { s.UsageStrategy = &v @@ -14952,8 +14960,8 @@ type Studio struct { // The time the Amazon EMR Studio was created. CreationTime *time.Time `type:"timestamp"` - // The default Amazon S3 location to back up Amazon EMR Studio Workspaces and - // notebook files. + // The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook + // files. DefaultS3Location *string `type:"string"` // The detailed description of the Amazon EMR Studio. @@ -15298,9 +15306,8 @@ func (s TerminateJobFlowsOutput) GoString() string { type UpdateStudioInput struct { _ struct{} `type:"structure"` - // A default Amazon S3 location to back up Workspaces and notebook files for - // the Amazon EMR Studio. A Studio user can select an alternative Amazon S3 - // location when creating a Workspace. + // The Amazon S3 location to back up Workspaces and notebook files for the Amazon + // EMR Studio. DefaultS3Location *string `type:"string"` // A detailed description to assign to the Amazon EMR Studio. diff --git a/service/fis/api.go b/service/fis/api.go new file mode 100644 index 00000000000..c102d87b0ef --- /dev/null +++ b/service/fis/api.go @@ -0,0 +1,4238 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package fis + +import ( + "fmt" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awsutil" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +const opCreateExperimentTemplate = "CreateExperimentTemplate" + +// CreateExperimentTemplateRequest generates a "aws/request.Request" representing the +// client's request for the CreateExperimentTemplate operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See CreateExperimentTemplate for more information on using the CreateExperimentTemplate +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the CreateExperimentTemplateRequest method. +// req, resp := client.CreateExperimentTemplateRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/CreateExperimentTemplate +func (c *FIS) CreateExperimentTemplateRequest(input *CreateExperimentTemplateInput) (req *request.Request, output *CreateExperimentTemplateOutput) { + op := &request.Operation{ + Name: opCreateExperimentTemplate, + HTTPMethod: "POST", + HTTPPath: "/experimentTemplates", + } + + if input == nil { + input = &CreateExperimentTemplateInput{} + } + + output = &CreateExperimentTemplateOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateExperimentTemplate API operation for AWS Fault Injection Simulator. +// +// 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 (https://docs.aws.amazon.com/fis/latest/userguide/). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Fault Injection Simulator's +// API operation CreateExperimentTemplate for usage and error information. +// +// Returned Error Types: +// * ValidationException +// The specified input is not valid, or fails to satisfy the constraints for +// the request. +// +// * ConflictException +// The request could not be processed because of a conflict. +// +// * ResourceNotFoundException +// The specified resource cannot be found. +// +// * ServiceQuotaExceededException +// You have exceeded your service quota. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/CreateExperimentTemplate +func (c *FIS) CreateExperimentTemplate(input *CreateExperimentTemplateInput) (*CreateExperimentTemplateOutput, error) { + req, out := c.CreateExperimentTemplateRequest(input) + return out, req.Send() +} + +// CreateExperimentTemplateWithContext is the same as CreateExperimentTemplate with the addition of +// the ability to pass a context and additional request options. +// +// See CreateExperimentTemplate for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *FIS) CreateExperimentTemplateWithContext(ctx aws.Context, input *CreateExperimentTemplateInput, opts ...request.Option) (*CreateExperimentTemplateOutput, error) { + req, out := c.CreateExperimentTemplateRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteExperimentTemplate = "DeleteExperimentTemplate" + +// DeleteExperimentTemplateRequest generates a "aws/request.Request" representing the +// client's request for the DeleteExperimentTemplate operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteExperimentTemplate for more information on using the DeleteExperimentTemplate +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DeleteExperimentTemplateRequest method. +// req, resp := client.DeleteExperimentTemplateRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/DeleteExperimentTemplate +func (c *FIS) DeleteExperimentTemplateRequest(input *DeleteExperimentTemplateInput) (req *request.Request, output *DeleteExperimentTemplateOutput) { + op := &request.Operation{ + Name: opDeleteExperimentTemplate, + HTTPMethod: "DELETE", + HTTPPath: "/experimentTemplates/{id}", + } + + if input == nil { + input = &DeleteExperimentTemplateInput{} + } + + output = &DeleteExperimentTemplateOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteExperimentTemplate API operation for AWS Fault Injection Simulator. +// +// Deletes the specified experiment template. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Fault Injection Simulator's +// API operation DeleteExperimentTemplate for usage and error information. +// +// Returned Error Types: +// * ValidationException +// The specified input is not valid, or fails to satisfy the constraints for +// the request. +// +// * ResourceNotFoundException +// The specified resource cannot be found. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/DeleteExperimentTemplate +func (c *FIS) DeleteExperimentTemplate(input *DeleteExperimentTemplateInput) (*DeleteExperimentTemplateOutput, error) { + req, out := c.DeleteExperimentTemplateRequest(input) + return out, req.Send() +} + +// DeleteExperimentTemplateWithContext is the same as DeleteExperimentTemplate with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteExperimentTemplate for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *FIS) DeleteExperimentTemplateWithContext(ctx aws.Context, input *DeleteExperimentTemplateInput, opts ...request.Option) (*DeleteExperimentTemplateOutput, error) { + req, out := c.DeleteExperimentTemplateRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetAction = "GetAction" + +// GetActionRequest generates a "aws/request.Request" representing the +// client's request for the GetAction operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See GetAction for more information on using the GetAction +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the GetActionRequest method. +// req, resp := client.GetActionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/GetAction +func (c *FIS) GetActionRequest(input *GetActionInput) (req *request.Request, output *GetActionOutput) { + op := &request.Operation{ + Name: opGetAction, + HTTPMethod: "GET", + HTTPPath: "/actions/{id}", + } + + if input == nil { + input = &GetActionInput{} + } + + output = &GetActionOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetAction API operation for AWS Fault Injection Simulator. +// +// Gets information about the specified AWS FIS action. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Fault Injection Simulator's +// API operation GetAction for usage and error information. +// +// Returned Error Types: +// * ValidationException +// The specified input is not valid, or fails to satisfy the constraints for +// the request. +// +// * ResourceNotFoundException +// The specified resource cannot be found. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/GetAction +func (c *FIS) GetAction(input *GetActionInput) (*GetActionOutput, error) { + req, out := c.GetActionRequest(input) + return out, req.Send() +} + +// GetActionWithContext is the same as GetAction with the addition of +// the ability to pass a context and additional request options. +// +// See GetAction for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *FIS) GetActionWithContext(ctx aws.Context, input *GetActionInput, opts ...request.Option) (*GetActionOutput, error) { + req, out := c.GetActionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetExperiment = "GetExperiment" + +// GetExperimentRequest generates a "aws/request.Request" representing the +// client's request for the GetExperiment operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See GetExperiment for more information on using the GetExperiment +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the GetExperimentRequest method. +// req, resp := client.GetExperimentRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/GetExperiment +func (c *FIS) GetExperimentRequest(input *GetExperimentInput) (req *request.Request, output *GetExperimentOutput) { + op := &request.Operation{ + Name: opGetExperiment, + HTTPMethod: "GET", + HTTPPath: "/experiments/{id}", + } + + if input == nil { + input = &GetExperimentInput{} + } + + output = &GetExperimentOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetExperiment API operation for AWS Fault Injection Simulator. +// +// Gets information about the specified experiment. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Fault Injection Simulator's +// API operation GetExperiment for usage and error information. +// +// Returned Error Types: +// * ValidationException +// The specified input is not valid, or fails to satisfy the constraints for +// the request. +// +// * ResourceNotFoundException +// The specified resource cannot be found. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/GetExperiment +func (c *FIS) GetExperiment(input *GetExperimentInput) (*GetExperimentOutput, error) { + req, out := c.GetExperimentRequest(input) + return out, req.Send() +} + +// GetExperimentWithContext is the same as GetExperiment with the addition of +// the ability to pass a context and additional request options. +// +// See GetExperiment for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *FIS) GetExperimentWithContext(ctx aws.Context, input *GetExperimentInput, opts ...request.Option) (*GetExperimentOutput, error) { + req, out := c.GetExperimentRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetExperimentTemplate = "GetExperimentTemplate" + +// GetExperimentTemplateRequest generates a "aws/request.Request" representing the +// client's request for the GetExperimentTemplate operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See GetExperimentTemplate for more information on using the GetExperimentTemplate +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the GetExperimentTemplateRequest method. +// req, resp := client.GetExperimentTemplateRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/GetExperimentTemplate +func (c *FIS) GetExperimentTemplateRequest(input *GetExperimentTemplateInput) (req *request.Request, output *GetExperimentTemplateOutput) { + op := &request.Operation{ + Name: opGetExperimentTemplate, + HTTPMethod: "GET", + HTTPPath: "/experimentTemplates/{id}", + } + + if input == nil { + input = &GetExperimentTemplateInput{} + } + + output = &GetExperimentTemplateOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetExperimentTemplate API operation for AWS Fault Injection Simulator. +// +// Gets information about the specified experiment template. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Fault Injection Simulator's +// API operation GetExperimentTemplate for usage and error information. +// +// Returned Error Types: +// * ValidationException +// The specified input is not valid, or fails to satisfy the constraints for +// the request. +// +// * ResourceNotFoundException +// The specified resource cannot be found. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/GetExperimentTemplate +func (c *FIS) GetExperimentTemplate(input *GetExperimentTemplateInput) (*GetExperimentTemplateOutput, error) { + req, out := c.GetExperimentTemplateRequest(input) + return out, req.Send() +} + +// GetExperimentTemplateWithContext is the same as GetExperimentTemplate with the addition of +// the ability to pass a context and additional request options. +// +// See GetExperimentTemplate for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *FIS) GetExperimentTemplateWithContext(ctx aws.Context, input *GetExperimentTemplateInput, opts ...request.Option) (*GetExperimentTemplateOutput, error) { + req, out := c.GetExperimentTemplateRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListActions = "ListActions" + +// ListActionsRequest generates a "aws/request.Request" representing the +// client's request for the ListActions operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListActions for more information on using the ListActions +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ListActionsRequest method. +// req, resp := client.ListActionsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/ListActions +func (c *FIS) ListActionsRequest(input *ListActionsInput) (req *request.Request, output *ListActionsOutput) { + op := &request.Operation{ + Name: opListActions, + HTTPMethod: "GET", + HTTPPath: "/actions", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListActionsInput{} + } + + output = &ListActionsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListActions API operation for AWS Fault Injection Simulator. +// +// Lists the available AWS FIS actions. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Fault Injection Simulator's +// API operation ListActions for usage and error information. +// +// Returned Error Types: +// * ValidationException +// The specified input is not valid, or fails to satisfy the constraints for +// the request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/ListActions +func (c *FIS) ListActions(input *ListActionsInput) (*ListActionsOutput, error) { + req, out := c.ListActionsRequest(input) + return out, req.Send() +} + +// ListActionsWithContext is the same as ListActions with the addition of +// the ability to pass a context and additional request options. +// +// See ListActions for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *FIS) ListActionsWithContext(ctx aws.Context, input *ListActionsInput, opts ...request.Option) (*ListActionsOutput, error) { + req, out := c.ListActionsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListActionsPages iterates over the pages of a ListActions operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListActions method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListActions operation. +// pageNum := 0 +// err := client.ListActionsPages(params, +// func(page *fis.ListActionsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *FIS) ListActionsPages(input *ListActionsInput, fn func(*ListActionsOutput, bool) bool) error { + return c.ListActionsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListActionsPagesWithContext same as ListActionsPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *FIS) ListActionsPagesWithContext(ctx aws.Context, input *ListActionsInput, fn func(*ListActionsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListActionsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListActionsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListActionsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListExperimentTemplates = "ListExperimentTemplates" + +// ListExperimentTemplatesRequest generates a "aws/request.Request" representing the +// client's request for the ListExperimentTemplates operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListExperimentTemplates for more information on using the ListExperimentTemplates +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ListExperimentTemplatesRequest method. +// req, resp := client.ListExperimentTemplatesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/ListExperimentTemplates +func (c *FIS) ListExperimentTemplatesRequest(input *ListExperimentTemplatesInput) (req *request.Request, output *ListExperimentTemplatesOutput) { + op := &request.Operation{ + Name: opListExperimentTemplates, + HTTPMethod: "GET", + HTTPPath: "/experimentTemplates", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListExperimentTemplatesInput{} + } + + output = &ListExperimentTemplatesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListExperimentTemplates API operation for AWS Fault Injection Simulator. +// +// Lists your experiment templates. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Fault Injection Simulator's +// API operation ListExperimentTemplates for usage and error information. +// +// Returned Error Types: +// * ValidationException +// The specified input is not valid, or fails to satisfy the constraints for +// the request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/ListExperimentTemplates +func (c *FIS) ListExperimentTemplates(input *ListExperimentTemplatesInput) (*ListExperimentTemplatesOutput, error) { + req, out := c.ListExperimentTemplatesRequest(input) + return out, req.Send() +} + +// ListExperimentTemplatesWithContext is the same as ListExperimentTemplates with the addition of +// the ability to pass a context and additional request options. +// +// See ListExperimentTemplates for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *FIS) ListExperimentTemplatesWithContext(ctx aws.Context, input *ListExperimentTemplatesInput, opts ...request.Option) (*ListExperimentTemplatesOutput, error) { + req, out := c.ListExperimentTemplatesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListExperimentTemplatesPages iterates over the pages of a ListExperimentTemplates operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListExperimentTemplates method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListExperimentTemplates operation. +// pageNum := 0 +// err := client.ListExperimentTemplatesPages(params, +// func(page *fis.ListExperimentTemplatesOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *FIS) ListExperimentTemplatesPages(input *ListExperimentTemplatesInput, fn func(*ListExperimentTemplatesOutput, bool) bool) error { + return c.ListExperimentTemplatesPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListExperimentTemplatesPagesWithContext same as ListExperimentTemplatesPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *FIS) ListExperimentTemplatesPagesWithContext(ctx aws.Context, input *ListExperimentTemplatesInput, fn func(*ListExperimentTemplatesOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListExperimentTemplatesInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListExperimentTemplatesRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListExperimentTemplatesOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListExperiments = "ListExperiments" + +// ListExperimentsRequest generates a "aws/request.Request" representing the +// client's request for the ListExperiments operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListExperiments for more information on using the ListExperiments +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ListExperimentsRequest method. +// req, resp := client.ListExperimentsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/ListExperiments +func (c *FIS) ListExperimentsRequest(input *ListExperimentsInput) (req *request.Request, output *ListExperimentsOutput) { + op := &request.Operation{ + Name: opListExperiments, + HTTPMethod: "GET", + HTTPPath: "/experiments", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListExperimentsInput{} + } + + output = &ListExperimentsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListExperiments API operation for AWS Fault Injection Simulator. +// +// Lists your experiments. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Fault Injection Simulator's +// API operation ListExperiments for usage and error information. +// +// Returned Error Types: +// * ValidationException +// The specified input is not valid, or fails to satisfy the constraints for +// the request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/ListExperiments +func (c *FIS) ListExperiments(input *ListExperimentsInput) (*ListExperimentsOutput, error) { + req, out := c.ListExperimentsRequest(input) + return out, req.Send() +} + +// ListExperimentsWithContext is the same as ListExperiments with the addition of +// the ability to pass a context and additional request options. +// +// See ListExperiments for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *FIS) ListExperimentsWithContext(ctx aws.Context, input *ListExperimentsInput, opts ...request.Option) (*ListExperimentsOutput, error) { + req, out := c.ListExperimentsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListExperimentsPages iterates over the pages of a ListExperiments operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListExperiments method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListExperiments operation. +// pageNum := 0 +// err := client.ListExperimentsPages(params, +// func(page *fis.ListExperimentsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *FIS) ListExperimentsPages(input *ListExperimentsInput, fn func(*ListExperimentsOutput, bool) bool) error { + return c.ListExperimentsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListExperimentsPagesWithContext same as ListExperimentsPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *FIS) ListExperimentsPagesWithContext(ctx aws.Context, input *ListExperimentsInput, fn func(*ListExperimentsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListExperimentsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListExperimentsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListExperimentsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListTagsForResource = "ListTagsForResource" + +// ListTagsForResourceRequest generates a "aws/request.Request" representing the +// client's request for the ListTagsForResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListTagsForResource for more information on using the ListTagsForResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ListTagsForResourceRequest method. +// req, resp := client.ListTagsForResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/ListTagsForResource +func (c *FIS) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { + op := &request.Operation{ + Name: opListTagsForResource, + HTTPMethod: "GET", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + output = &ListTagsForResourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListTagsForResource API operation for AWS Fault Injection Simulator. +// +// Lists the tags for the specified resource. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Fault Injection Simulator's +// API operation ListTagsForResource for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/ListTagsForResource +func (c *FIS) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + return out, req.Send() +} + +// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of +// the ability to pass a context and additional request options. +// +// See ListTagsForResource for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *FIS) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opStartExperiment = "StartExperiment" + +// StartExperimentRequest generates a "aws/request.Request" representing the +// client's request for the StartExperiment operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See StartExperiment for more information on using the StartExperiment +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the StartExperimentRequest method. +// req, resp := client.StartExperimentRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/StartExperiment +func (c *FIS) StartExperimentRequest(input *StartExperimentInput) (req *request.Request, output *StartExperimentOutput) { + op := &request.Operation{ + Name: opStartExperiment, + HTTPMethod: "POST", + HTTPPath: "/experiments", + } + + if input == nil { + input = &StartExperimentInput{} + } + + output = &StartExperimentOutput{} + req = c.newRequest(op, input, output) + return +} + +// StartExperiment API operation for AWS Fault Injection Simulator. +// +// Starts running an experiment from the specified experiment template. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Fault Injection Simulator's +// API operation StartExperiment for usage and error information. +// +// Returned Error Types: +// * ValidationException +// The specified input is not valid, or fails to satisfy the constraints for +// the request. +// +// * ConflictException +// The request could not be processed because of a conflict. +// +// * ResourceNotFoundException +// The specified resource cannot be found. +// +// * ServiceQuotaExceededException +// You have exceeded your service quota. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/StartExperiment +func (c *FIS) StartExperiment(input *StartExperimentInput) (*StartExperimentOutput, error) { + req, out := c.StartExperimentRequest(input) + return out, req.Send() +} + +// StartExperimentWithContext is the same as StartExperiment with the addition of +// the ability to pass a context and additional request options. +// +// See StartExperiment for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *FIS) StartExperimentWithContext(ctx aws.Context, input *StartExperimentInput, opts ...request.Option) (*StartExperimentOutput, error) { + req, out := c.StartExperimentRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opStopExperiment = "StopExperiment" + +// StopExperimentRequest generates a "aws/request.Request" representing the +// client's request for the StopExperiment operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See StopExperiment for more information on using the StopExperiment +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the StopExperimentRequest method. +// req, resp := client.StopExperimentRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/StopExperiment +func (c *FIS) StopExperimentRequest(input *StopExperimentInput) (req *request.Request, output *StopExperimentOutput) { + op := &request.Operation{ + Name: opStopExperiment, + HTTPMethod: "DELETE", + HTTPPath: "/experiments/{id}", + } + + if input == nil { + input = &StopExperimentInput{} + } + + output = &StopExperimentOutput{} + req = c.newRequest(op, input, output) + return +} + +// StopExperiment API operation for AWS Fault Injection Simulator. +// +// Stops the specified experiment. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Fault Injection Simulator's +// API operation StopExperiment for usage and error information. +// +// Returned Error Types: +// * ValidationException +// The specified input is not valid, or fails to satisfy the constraints for +// the request. +// +// * ResourceNotFoundException +// The specified resource cannot be found. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/StopExperiment +func (c *FIS) StopExperiment(input *StopExperimentInput) (*StopExperimentOutput, error) { + req, out := c.StopExperimentRequest(input) + return out, req.Send() +} + +// StopExperimentWithContext is the same as StopExperiment with the addition of +// the ability to pass a context and additional request options. +// +// See StopExperiment for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *FIS) StopExperimentWithContext(ctx aws.Context, input *StopExperimentInput, opts ...request.Option) (*StopExperimentOutput, error) { + req, out := c.StopExperimentRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opTagResource = "TagResource" + +// TagResourceRequest generates a "aws/request.Request" representing the +// client's request for the TagResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See TagResource for more information on using the TagResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the TagResourceRequest method. +// req, resp := client.TagResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/TagResource +func (c *FIS) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) { + op := &request.Operation{ + Name: opTagResource, + HTTPMethod: "POST", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &TagResourceInput{} + } + + output = &TagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// TagResource API operation for AWS Fault Injection Simulator. +// +// Applies the specified tags to the specified resource. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Fault Injection Simulator's +// API operation TagResource for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/TagResource +func (c *FIS) TagResource(input *TagResourceInput) (*TagResourceOutput, error) { + req, out := c.TagResourceRequest(input) + return out, req.Send() +} + +// TagResourceWithContext is the same as TagResource with the addition of +// the ability to pass a context and additional request options. +// +// See TagResource for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *FIS) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) { + req, out := c.TagResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUntagResource = "UntagResource" + +// UntagResourceRequest generates a "aws/request.Request" representing the +// client's request for the UntagResource operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See UntagResource for more information on using the UntagResource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the UntagResourceRequest method. +// req, resp := client.UntagResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/UntagResource +func (c *FIS) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) { + op := &request.Operation{ + Name: opUntagResource, + HTTPMethod: "DELETE", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &UntagResourceInput{} + } + + output = &UntagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UntagResource API operation for AWS Fault Injection Simulator. +// +// Removes the specified tags from the specified resource. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Fault Injection Simulator's +// API operation UntagResource for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/UntagResource +func (c *FIS) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) { + req, out := c.UntagResourceRequest(input) + return out, req.Send() +} + +// UntagResourceWithContext is the same as UntagResource with the addition of +// the ability to pass a context and additional request options. +// +// See UntagResource for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *FIS) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) { + req, out := c.UntagResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateExperimentTemplate = "UpdateExperimentTemplate" + +// UpdateExperimentTemplateRequest generates a "aws/request.Request" representing the +// client's request for the UpdateExperimentTemplate operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See UpdateExperimentTemplate for more information on using the UpdateExperimentTemplate +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the UpdateExperimentTemplateRequest method. +// req, resp := client.UpdateExperimentTemplateRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/UpdateExperimentTemplate +func (c *FIS) UpdateExperimentTemplateRequest(input *UpdateExperimentTemplateInput) (req *request.Request, output *UpdateExperimentTemplateOutput) { + op := &request.Operation{ + Name: opUpdateExperimentTemplate, + HTTPMethod: "PATCH", + HTTPPath: "/experimentTemplates/{id}", + } + + if input == nil { + input = &UpdateExperimentTemplateInput{} + } + + output = &UpdateExperimentTemplateOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateExperimentTemplate API operation for AWS Fault Injection Simulator. +// +// Updates the specified experiment template. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Fault Injection Simulator's +// API operation UpdateExperimentTemplate for usage and error information. +// +// Returned Error Types: +// * ValidationException +// The specified input is not valid, or fails to satisfy the constraints for +// the request. +// +// * ResourceNotFoundException +// The specified resource cannot be found. +// +// * ServiceQuotaExceededException +// You have exceeded your service quota. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/UpdateExperimentTemplate +func (c *FIS) UpdateExperimentTemplate(input *UpdateExperimentTemplateInput) (*UpdateExperimentTemplateOutput, error) { + req, out := c.UpdateExperimentTemplateRequest(input) + return out, req.Send() +} + +// UpdateExperimentTemplateWithContext is the same as UpdateExperimentTemplate with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateExperimentTemplate for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *FIS) UpdateExperimentTemplateWithContext(ctx aws.Context, input *UpdateExperimentTemplateInput, opts ...request.Option) (*UpdateExperimentTemplateOutput, error) { + req, out := c.UpdateExperimentTemplateRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// Describes an action. For more information, see AWS FIS actions (https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html) +// in the AWS Fault Injection Simulator User Guide. +type Action struct { + _ struct{} `type:"structure"` + + // The description for the action. + Description *string `locationName:"description" type:"string"` + + // The ID of the action. + Id *string `locationName:"id" type:"string"` + + // The action parameters, if applicable. + Parameters map[string]*ActionParameter `locationName:"parameters" type:"map"` + + // The tags for the action. + Tags map[string]*string `locationName:"tags" type:"map"` + + // The supported targets for the action. + Targets map[string]*ActionTarget `locationName:"targets" type:"map"` +} + +// String returns the string representation +func (s Action) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Action) GoString() string { + return s.String() +} + +// SetDescription sets the Description field's value. +func (s *Action) SetDescription(v string) *Action { + s.Description = &v + return s +} + +// SetId sets the Id field's value. +func (s *Action) SetId(v string) *Action { + s.Id = &v + return s +} + +// SetParameters sets the Parameters field's value. +func (s *Action) SetParameters(v map[string]*ActionParameter) *Action { + s.Parameters = v + return s +} + +// SetTags sets the Tags field's value. +func (s *Action) SetTags(v map[string]*string) *Action { + s.Tags = v + return s +} + +// SetTargets sets the Targets field's value. +func (s *Action) SetTargets(v map[string]*ActionTarget) *Action { + s.Targets = v + return s +} + +// Describes a parameter for an action. +type ActionParameter struct { + _ struct{} `type:"structure"` + + // The parameter description. + Description *string `locationName:"description" type:"string"` + + // Indicates whether the parameter is required. + Required *bool `locationName:"required" type:"boolean"` +} + +// String returns the string representation +func (s ActionParameter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ActionParameter) GoString() string { + return s.String() +} + +// SetDescription sets the Description field's value. +func (s *ActionParameter) SetDescription(v string) *ActionParameter { + s.Description = &v + return s +} + +// SetRequired sets the Required field's value. +func (s *ActionParameter) SetRequired(v bool) *ActionParameter { + s.Required = &v + return s +} + +// Provides a summary of an action. +type ActionSummary struct { + _ struct{} `type:"structure"` + + // The description for the action. + Description *string `locationName:"description" type:"string"` + + // The ID of the action. + Id *string `locationName:"id" type:"string"` + + // The tags for the action. + Tags map[string]*string `locationName:"tags" type:"map"` + + // The targets for the action. + Targets map[string]*ActionTarget `locationName:"targets" type:"map"` +} + +// String returns the string representation +func (s ActionSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ActionSummary) GoString() string { + return s.String() +} + +// SetDescription sets the Description field's value. +func (s *ActionSummary) SetDescription(v string) *ActionSummary { + s.Description = &v + return s +} + +// SetId sets the Id field's value. +func (s *ActionSummary) SetId(v string) *ActionSummary { + s.Id = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *ActionSummary) SetTags(v map[string]*string) *ActionSummary { + s.Tags = v + return s +} + +// SetTargets sets the Targets field's value. +func (s *ActionSummary) SetTargets(v map[string]*ActionTarget) *ActionSummary { + s.Targets = v + return s +} + +// Describes a target for an action. +type ActionTarget struct { + _ struct{} `type:"structure"` + + // The resource type of the target. + ResourceType *string `locationName:"resourceType" type:"string"` +} + +// String returns the string representation +func (s ActionTarget) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ActionTarget) GoString() string { + return s.String() +} + +// SetResourceType sets the ResourceType field's value. +func (s *ActionTarget) SetResourceType(v string) *ActionTarget { + s.ResourceType = &v + return s +} + +// The request could not be processed because of a conflict. +type ConflictException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation +func (s ConflictException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ConflictException) GoString() string { + return s.String() +} + +func newErrorConflictException(v protocol.ResponseMetadata) error { + return &ConflictException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ConflictException) Code() string { + return "ConflictException" +} + +// Message returns the exception's message. +func (s *ConflictException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ConflictException) OrigErr() error { + return nil +} + +func (s *ConflictException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ConflictException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ConflictException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Specifies an action for an experiment template. +type CreateExperimentTemplateActionInput struct { + _ struct{} `type:"structure"` + + // The ID of the action. + // + // ActionId is a required field + ActionId *string `locationName:"actionId" type:"string" required:"true"` + + // A description for the action. + Description *string `locationName:"description" type:"string"` + + // The parameters for the action, if applicable. + Parameters map[string]*string `locationName:"parameters" type:"map"` + + // 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. + StartAfter []*string `locationName:"startAfter" type:"list"` + + // The targets for the action. + Targets map[string]*string `locationName:"targets" type:"map"` +} + +// String returns the string representation +func (s CreateExperimentTemplateActionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateExperimentTemplateActionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateExperimentTemplateActionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateExperimentTemplateActionInput"} + if s.ActionId == nil { + invalidParams.Add(request.NewErrParamRequired("ActionId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetActionId sets the ActionId field's value. +func (s *CreateExperimentTemplateActionInput) SetActionId(v string) *CreateExperimentTemplateActionInput { + s.ActionId = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *CreateExperimentTemplateActionInput) SetDescription(v string) *CreateExperimentTemplateActionInput { + s.Description = &v + return s +} + +// SetParameters sets the Parameters field's value. +func (s *CreateExperimentTemplateActionInput) SetParameters(v map[string]*string) *CreateExperimentTemplateActionInput { + s.Parameters = v + return s +} + +// SetStartAfter sets the StartAfter field's value. +func (s *CreateExperimentTemplateActionInput) SetStartAfter(v []*string) *CreateExperimentTemplateActionInput { + s.StartAfter = v + return s +} + +// SetTargets sets the Targets field's value. +func (s *CreateExperimentTemplateActionInput) SetTargets(v map[string]*string) *CreateExperimentTemplateActionInput { + s.Targets = v + return s +} + +type CreateExperimentTemplateInput struct { + _ struct{} `type:"structure"` + + // The actions for the experiment. + // + // Actions is a required field + Actions map[string]*CreateExperimentTemplateActionInput `locationName:"actions" type:"map" required:"true"` + + // Unique, case-sensitive identifier that you provide to ensure the idempotency + // of the request. + ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` + + // A description for the experiment template. Can contain up to 64 letters (A-Z + // and a-z). + // + // Description is a required field + Description *string `locationName:"description" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service + // permission to perform service actions on your behalf. + // + // RoleArn is a required field + RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"` + + // The stop conditions. + // + // StopConditions is a required field + StopConditions []*CreateExperimentTemplateStopConditionInput `locationName:"stopConditions" type:"list" required:"true"` + + // The tags to apply to the experiment template. + Tags map[string]*string `locationName:"tags" type:"map"` + + // The targets for the experiment. + Targets map[string]*CreateExperimentTemplateTargetInput `locationName:"targets" type:"map"` +} + +// String returns the string representation +func (s CreateExperimentTemplateInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateExperimentTemplateInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateExperimentTemplateInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateExperimentTemplateInput"} + if s.Actions == nil { + invalidParams.Add(request.NewErrParamRequired("Actions")) + } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } + if s.Description == nil { + invalidParams.Add(request.NewErrParamRequired("Description")) + } + if s.RoleArn == nil { + invalidParams.Add(request.NewErrParamRequired("RoleArn")) + } + if s.RoleArn != nil && len(*s.RoleArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20)) + } + if s.StopConditions == nil { + invalidParams.Add(request.NewErrParamRequired("StopConditions")) + } + if s.Actions != nil { + for i, v := range s.Actions { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Actions", i), err.(request.ErrInvalidParams)) + } + } + } + if s.StopConditions != nil { + for i, v := range s.StopConditions { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "StopConditions", i), err.(request.ErrInvalidParams)) + } + } + } + if s.Targets != nil { + for i, v := range s.Targets { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Targets", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetActions sets the Actions field's value. +func (s *CreateExperimentTemplateInput) SetActions(v map[string]*CreateExperimentTemplateActionInput) *CreateExperimentTemplateInput { + s.Actions = v + return s +} + +// SetClientToken sets the ClientToken field's value. +func (s *CreateExperimentTemplateInput) SetClientToken(v string) *CreateExperimentTemplateInput { + s.ClientToken = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *CreateExperimentTemplateInput) SetDescription(v string) *CreateExperimentTemplateInput { + s.Description = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *CreateExperimentTemplateInput) SetRoleArn(v string) *CreateExperimentTemplateInput { + s.RoleArn = &v + return s +} + +// SetStopConditions sets the StopConditions field's value. +func (s *CreateExperimentTemplateInput) SetStopConditions(v []*CreateExperimentTemplateStopConditionInput) *CreateExperimentTemplateInput { + s.StopConditions = v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateExperimentTemplateInput) SetTags(v map[string]*string) *CreateExperimentTemplateInput { + s.Tags = v + return s +} + +// SetTargets sets the Targets field's value. +func (s *CreateExperimentTemplateInput) SetTargets(v map[string]*CreateExperimentTemplateTargetInput) *CreateExperimentTemplateInput { + s.Targets = v + return s +} + +type CreateExperimentTemplateOutput struct { + _ struct{} `type:"structure"` + + // Information about the experiment template. + ExperimentTemplate *ExperimentTemplate `locationName:"experimentTemplate" type:"structure"` +} + +// String returns the string representation +func (s CreateExperimentTemplateOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateExperimentTemplateOutput) GoString() string { + return s.String() +} + +// SetExperimentTemplate sets the ExperimentTemplate field's value. +func (s *CreateExperimentTemplateOutput) SetExperimentTemplate(v *ExperimentTemplate) *CreateExperimentTemplateOutput { + s.ExperimentTemplate = v + return s +} + +// Specifies a stop condition for an experiment template. +type CreateExperimentTemplateStopConditionInput struct { + _ struct{} `type:"structure"` + + // 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. + // + // Source is a required field + Source *string `locationName:"source" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the CloudWatch alarm. This is required + // if the source is a CloudWatch alarm. + Value *string `locationName:"value" min:"20" type:"string"` +} + +// String returns the string representation +func (s CreateExperimentTemplateStopConditionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateExperimentTemplateStopConditionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateExperimentTemplateStopConditionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateExperimentTemplateStopConditionInput"} + if s.Source == nil { + invalidParams.Add(request.NewErrParamRequired("Source")) + } + if s.Value != nil && len(*s.Value) < 20 { + invalidParams.Add(request.NewErrParamMinLen("Value", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetSource sets the Source field's value. +func (s *CreateExperimentTemplateStopConditionInput) SetSource(v string) *CreateExperimentTemplateStopConditionInput { + s.Source = &v + return s +} + +// SetValue sets the Value field's value. +func (s *CreateExperimentTemplateStopConditionInput) SetValue(v string) *CreateExperimentTemplateStopConditionInput { + s.Value = &v + return s +} + +// 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. +type CreateExperimentTemplateTargetInput struct { + _ struct{} `type:"structure"` + + // The filters to apply to identify target resources using specific attributes. + Filters []*ExperimentTemplateTargetInputFilter `locationName:"filters" type:"list"` + + // The Amazon Resource Names (ARNs) of the resources. + ResourceArns []*string `locationName:"resourceArns" type:"list"` + + // The tags for the target resources. + ResourceTags map[string]*string `locationName:"resourceTags" type:"map"` + + // The AWS resource type. The resource type must be supported for the specified + // action. + // + // ResourceType is a required field + ResourceType *string `locationName:"resourceType" type:"string" required:"true"` + + // 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. + // + // SelectionMode is a required field + SelectionMode *string `locationName:"selectionMode" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateExperimentTemplateTargetInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateExperimentTemplateTargetInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateExperimentTemplateTargetInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateExperimentTemplateTargetInput"} + if s.ResourceType == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceType")) + } + if s.SelectionMode == nil { + invalidParams.Add(request.NewErrParamRequired("SelectionMode")) + } + if s.Filters != nil { + for i, v := range s.Filters { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFilters sets the Filters field's value. +func (s *CreateExperimentTemplateTargetInput) SetFilters(v []*ExperimentTemplateTargetInputFilter) *CreateExperimentTemplateTargetInput { + s.Filters = v + return s +} + +// SetResourceArns sets the ResourceArns field's value. +func (s *CreateExperimentTemplateTargetInput) SetResourceArns(v []*string) *CreateExperimentTemplateTargetInput { + s.ResourceArns = v + return s +} + +// SetResourceTags sets the ResourceTags field's value. +func (s *CreateExperimentTemplateTargetInput) SetResourceTags(v map[string]*string) *CreateExperimentTemplateTargetInput { + s.ResourceTags = v + return s +} + +// SetResourceType sets the ResourceType field's value. +func (s *CreateExperimentTemplateTargetInput) SetResourceType(v string) *CreateExperimentTemplateTargetInput { + s.ResourceType = &v + return s +} + +// SetSelectionMode sets the SelectionMode field's value. +func (s *CreateExperimentTemplateTargetInput) SetSelectionMode(v string) *CreateExperimentTemplateTargetInput { + s.SelectionMode = &v + return s +} + +type DeleteExperimentTemplateInput struct { + _ struct{} `type:"structure"` + + // The ID of the experiment template. + // + // Id is a required field + Id *string `location:"uri" locationName:"id" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteExperimentTemplateInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteExperimentTemplateInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteExperimentTemplateInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteExperimentTemplateInput"} + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetId sets the Id field's value. +func (s *DeleteExperimentTemplateInput) SetId(v string) *DeleteExperimentTemplateInput { + s.Id = &v + return s +} + +type DeleteExperimentTemplateOutput struct { + _ struct{} `type:"structure"` + + // Information about the experiment template. + ExperimentTemplate *ExperimentTemplate `locationName:"experimentTemplate" type:"structure"` +} + +// String returns the string representation +func (s DeleteExperimentTemplateOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteExperimentTemplateOutput) GoString() string { + return s.String() +} + +// SetExperimentTemplate sets the ExperimentTemplate field's value. +func (s *DeleteExperimentTemplateOutput) SetExperimentTemplate(v *ExperimentTemplate) *DeleteExperimentTemplateOutput { + s.ExperimentTemplate = v + return s +} + +// Describes an experiment. +type Experiment struct { + _ struct{} `type:"structure"` + + // The actions for the experiment. + Actions map[string]*ExperimentAction `locationName:"actions" type:"map"` + + // The time the experiment was created. + CreationTime *time.Time `locationName:"creationTime" type:"timestamp"` + + // The time that the experiment ended. + EndTime *time.Time `locationName:"endTime" type:"timestamp"` + + // The ID of the experiment template. + ExperimentTemplateId *string `locationName:"experimentTemplateId" type:"string"` + + // The ID of the experiment. + Id *string `locationName:"id" type:"string"` + + // The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service + // permission to perform service actions on your behalf. + RoleArn *string `locationName:"roleArn" min:"20" type:"string"` + + // The time that the experiment was started. + StartTime *time.Time `locationName:"startTime" type:"timestamp"` + + // The state of the experiment. + State *ExperimentState `locationName:"state" type:"structure"` + + // The stop conditions for the experiment. + StopConditions []*ExperimentStopCondition `locationName:"stopConditions" type:"list"` + + // The tags for the experiment. + Tags map[string]*string `locationName:"tags" type:"map"` + + // The targets for the experiment. + Targets map[string]*ExperimentTarget `locationName:"targets" type:"map"` +} + +// String returns the string representation +func (s Experiment) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Experiment) GoString() string { + return s.String() +} + +// SetActions sets the Actions field's value. +func (s *Experiment) SetActions(v map[string]*ExperimentAction) *Experiment { + s.Actions = v + return s +} + +// SetCreationTime sets the CreationTime field's value. +func (s *Experiment) SetCreationTime(v time.Time) *Experiment { + s.CreationTime = &v + return s +} + +// SetEndTime sets the EndTime field's value. +func (s *Experiment) SetEndTime(v time.Time) *Experiment { + s.EndTime = &v + return s +} + +// SetExperimentTemplateId sets the ExperimentTemplateId field's value. +func (s *Experiment) SetExperimentTemplateId(v string) *Experiment { + s.ExperimentTemplateId = &v + return s +} + +// SetId sets the Id field's value. +func (s *Experiment) SetId(v string) *Experiment { + s.Id = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *Experiment) SetRoleArn(v string) *Experiment { + s.RoleArn = &v + return s +} + +// SetStartTime sets the StartTime field's value. +func (s *Experiment) SetStartTime(v time.Time) *Experiment { + s.StartTime = &v + return s +} + +// SetState sets the State field's value. +func (s *Experiment) SetState(v *ExperimentState) *Experiment { + s.State = v + return s +} + +// SetStopConditions sets the StopConditions field's value. +func (s *Experiment) SetStopConditions(v []*ExperimentStopCondition) *Experiment { + s.StopConditions = v + return s +} + +// SetTags sets the Tags field's value. +func (s *Experiment) SetTags(v map[string]*string) *Experiment { + s.Tags = v + return s +} + +// SetTargets sets the Targets field's value. +func (s *Experiment) SetTargets(v map[string]*ExperimentTarget) *Experiment { + s.Targets = v + return s +} + +// Describes the action for an experiment. +type ExperimentAction struct { + _ struct{} `type:"structure"` + + // The ID of the action. + ActionId *string `locationName:"actionId" type:"string"` + + // The description for the action. + Description *string `locationName:"description" type:"string"` + + // The parameters for the action. + Parameters map[string]*string `locationName:"parameters" type:"map"` + + // The name of the action that must be completed before this action starts. + StartAfter []*string `locationName:"startAfter" type:"list"` + + // The state of the action. + State *ExperimentActionState `locationName:"state" type:"structure"` + + // The targets for the action. + Targets map[string]*string `locationName:"targets" type:"map"` +} + +// String returns the string representation +func (s ExperimentAction) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ExperimentAction) GoString() string { + return s.String() +} + +// SetActionId sets the ActionId field's value. +func (s *ExperimentAction) SetActionId(v string) *ExperimentAction { + s.ActionId = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *ExperimentAction) SetDescription(v string) *ExperimentAction { + s.Description = &v + return s +} + +// SetParameters sets the Parameters field's value. +func (s *ExperimentAction) SetParameters(v map[string]*string) *ExperimentAction { + s.Parameters = v + return s +} + +// SetStartAfter sets the StartAfter field's value. +func (s *ExperimentAction) SetStartAfter(v []*string) *ExperimentAction { + s.StartAfter = v + return s +} + +// SetState sets the State field's value. +func (s *ExperimentAction) SetState(v *ExperimentActionState) *ExperimentAction { + s.State = v + return s +} + +// SetTargets sets the Targets field's value. +func (s *ExperimentAction) SetTargets(v map[string]*string) *ExperimentAction { + s.Targets = v + return s +} + +// Describes the state of an action. +type ExperimentActionState struct { + _ struct{} `type:"structure"` + + // The reason for the state. + Reason *string `locationName:"reason" type:"string"` + + // The state of the action. + Status *string `locationName:"status" type:"string" enum:"ExperimentActionStatus"` +} + +// String returns the string representation +func (s ExperimentActionState) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ExperimentActionState) GoString() string { + return s.String() +} + +// SetReason sets the Reason field's value. +func (s *ExperimentActionState) SetReason(v string) *ExperimentActionState { + s.Reason = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *ExperimentActionState) SetStatus(v string) *ExperimentActionState { + s.Status = &v + return s +} + +// Describes the state of an experiment. +type ExperimentState struct { + _ struct{} `type:"structure"` + + // The reason for the state. + Reason *string `locationName:"reason" type:"string"` + + // The state of the experiment. + Status *string `locationName:"status" type:"string" enum:"ExperimentStatus"` +} + +// String returns the string representation +func (s ExperimentState) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ExperimentState) GoString() string { + return s.String() +} + +// SetReason sets the Reason field's value. +func (s *ExperimentState) SetReason(v string) *ExperimentState { + s.Reason = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *ExperimentState) SetStatus(v string) *ExperimentState { + s.Status = &v + return s +} + +// Describes the stop condition for an experiment. +type ExperimentStopCondition struct { + _ struct{} `type:"structure"` + + // The source for the stop condition. + Source *string `locationName:"source" type:"string"` + + // The Amazon Resource Name (ARN) of the CloudWatch alarm, if applicable. + Value *string `locationName:"value" min:"20" type:"string"` +} + +// String returns the string representation +func (s ExperimentStopCondition) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ExperimentStopCondition) GoString() string { + return s.String() +} + +// SetSource sets the Source field's value. +func (s *ExperimentStopCondition) SetSource(v string) *ExperimentStopCondition { + s.Source = &v + return s +} + +// SetValue sets the Value field's value. +func (s *ExperimentStopCondition) SetValue(v string) *ExperimentStopCondition { + s.Value = &v + return s +} + +// Provides a summary of an experiment. +type ExperimentSummary struct { + _ struct{} `type:"structure"` + + // The time that the experiment was created. + CreationTime *time.Time `locationName:"creationTime" type:"timestamp"` + + // The ID of the experiment template. + ExperimentTemplateId *string `locationName:"experimentTemplateId" type:"string"` + + // The ID of the experiment. + Id *string `locationName:"id" type:"string"` + + // The state of the experiment. + State *ExperimentState `locationName:"state" type:"structure"` + + // The tags for the experiment. + Tags map[string]*string `locationName:"tags" type:"map"` +} + +// String returns the string representation +func (s ExperimentSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ExperimentSummary) GoString() string { + return s.String() +} + +// SetCreationTime sets the CreationTime field's value. +func (s *ExperimentSummary) SetCreationTime(v time.Time) *ExperimentSummary { + s.CreationTime = &v + return s +} + +// SetExperimentTemplateId sets the ExperimentTemplateId field's value. +func (s *ExperimentSummary) SetExperimentTemplateId(v string) *ExperimentSummary { + s.ExperimentTemplateId = &v + return s +} + +// SetId sets the Id field's value. +func (s *ExperimentSummary) SetId(v string) *ExperimentSummary { + s.Id = &v + return s +} + +// SetState sets the State field's value. +func (s *ExperimentSummary) SetState(v *ExperimentState) *ExperimentSummary { + s.State = v + return s +} + +// SetTags sets the Tags field's value. +func (s *ExperimentSummary) SetTags(v map[string]*string) *ExperimentSummary { + s.Tags = v + return s +} + +// Describes a target for an experiment. +type ExperimentTarget struct { + _ struct{} `type:"structure"` + + // The filters to apply to identify target resources using specific attributes. + Filters []*ExperimentTargetFilter `locationName:"filters" type:"list"` + + // The Amazon Resource Names (ARNs) of the resources. + ResourceArns []*string `locationName:"resourceArns" type:"list"` + + // The tags for the target resources. + ResourceTags map[string]*string `locationName:"resourceTags" type:"map"` + + // The resource type. + ResourceType *string `locationName:"resourceType" type:"string"` + + // Scopes the identified resources to a specific count or percentage. + SelectionMode *string `locationName:"selectionMode" type:"string"` +} + +// String returns the string representation +func (s ExperimentTarget) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ExperimentTarget) GoString() string { + return s.String() +} + +// SetFilters sets the Filters field's value. +func (s *ExperimentTarget) SetFilters(v []*ExperimentTargetFilter) *ExperimentTarget { + s.Filters = v + return s +} + +// SetResourceArns sets the ResourceArns field's value. +func (s *ExperimentTarget) SetResourceArns(v []*string) *ExperimentTarget { + s.ResourceArns = v + return s +} + +// SetResourceTags sets the ResourceTags field's value. +func (s *ExperimentTarget) SetResourceTags(v map[string]*string) *ExperimentTarget { + s.ResourceTags = v + return s +} + +// SetResourceType sets the ResourceType field's value. +func (s *ExperimentTarget) SetResourceType(v string) *ExperimentTarget { + s.ResourceType = &v + return s +} + +// SetSelectionMode sets the SelectionMode field's value. +func (s *ExperimentTarget) SetSelectionMode(v string) *ExperimentTarget { + s.SelectionMode = &v + return s +} + +// Describes a filter used for the target resources in an experiment. +type ExperimentTargetFilter struct { + _ struct{} `type:"structure"` + + // The attribute path for the filter. + Path *string `locationName:"path" type:"string"` + + // The attribute values for the filter. + Values []*string `locationName:"values" type:"list"` +} + +// String returns the string representation +func (s ExperimentTargetFilter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ExperimentTargetFilter) GoString() string { + return s.String() +} + +// SetPath sets the Path field's value. +func (s *ExperimentTargetFilter) SetPath(v string) *ExperimentTargetFilter { + s.Path = &v + return s +} + +// SetValues sets the Values field's value. +func (s *ExperimentTargetFilter) SetValues(v []*string) *ExperimentTargetFilter { + s.Values = v + return s +} + +// Describes an experiment template. +type ExperimentTemplate struct { + _ struct{} `type:"structure"` + + // The actions for the experiment. + Actions map[string]*ExperimentTemplateAction `locationName:"actions" type:"map"` + + // The time the experiment template was created. + CreationTime *time.Time `locationName:"creationTime" type:"timestamp"` + + // The description for the experiment template. + Description *string `locationName:"description" type:"string"` + + // The ID of the experiment template. + Id *string `locationName:"id" type:"string"` + + // The time the experiment template was last updated. + LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp"` + + // The Amazon Resource Name (ARN) of an IAM role. + RoleArn *string `locationName:"roleArn" min:"20" type:"string"` + + // The stop conditions for the experiment. + StopConditions []*ExperimentTemplateStopCondition `locationName:"stopConditions" type:"list"` + + // The tags for the experiment template. + Tags map[string]*string `locationName:"tags" type:"map"` + + // The targets for the experiment. + Targets map[string]*ExperimentTemplateTarget `locationName:"targets" type:"map"` +} + +// String returns the string representation +func (s ExperimentTemplate) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ExperimentTemplate) GoString() string { + return s.String() +} + +// SetActions sets the Actions field's value. +func (s *ExperimentTemplate) SetActions(v map[string]*ExperimentTemplateAction) *ExperimentTemplate { + s.Actions = v + return s +} + +// SetCreationTime sets the CreationTime field's value. +func (s *ExperimentTemplate) SetCreationTime(v time.Time) *ExperimentTemplate { + s.CreationTime = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *ExperimentTemplate) SetDescription(v string) *ExperimentTemplate { + s.Description = &v + return s +} + +// SetId sets the Id field's value. +func (s *ExperimentTemplate) SetId(v string) *ExperimentTemplate { + s.Id = &v + return s +} + +// SetLastUpdateTime sets the LastUpdateTime field's value. +func (s *ExperimentTemplate) SetLastUpdateTime(v time.Time) *ExperimentTemplate { + s.LastUpdateTime = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *ExperimentTemplate) SetRoleArn(v string) *ExperimentTemplate { + s.RoleArn = &v + return s +} + +// SetStopConditions sets the StopConditions field's value. +func (s *ExperimentTemplate) SetStopConditions(v []*ExperimentTemplateStopCondition) *ExperimentTemplate { + s.StopConditions = v + return s +} + +// SetTags sets the Tags field's value. +func (s *ExperimentTemplate) SetTags(v map[string]*string) *ExperimentTemplate { + s.Tags = v + return s +} + +// SetTargets sets the Targets field's value. +func (s *ExperimentTemplate) SetTargets(v map[string]*ExperimentTemplateTarget) *ExperimentTemplate { + s.Targets = v + return s +} + +// Describes an action for an experiment template. +type ExperimentTemplateAction struct { + _ struct{} `type:"structure"` + + // The ID of the action. + ActionId *string `locationName:"actionId" type:"string"` + + // A description for the action. + Description *string `locationName:"description" type:"string"` + + // The parameters for the action. + Parameters map[string]*string `locationName:"parameters" type:"map"` + + // The name of the action that must be completed before the current action starts. + StartAfter []*string `locationName:"startAfter" type:"list"` + + // The targets for the action. + Targets map[string]*string `locationName:"targets" type:"map"` +} + +// String returns the string representation +func (s ExperimentTemplateAction) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ExperimentTemplateAction) GoString() string { + return s.String() +} + +// SetActionId sets the ActionId field's value. +func (s *ExperimentTemplateAction) SetActionId(v string) *ExperimentTemplateAction { + s.ActionId = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *ExperimentTemplateAction) SetDescription(v string) *ExperimentTemplateAction { + s.Description = &v + return s +} + +// SetParameters sets the Parameters field's value. +func (s *ExperimentTemplateAction) SetParameters(v map[string]*string) *ExperimentTemplateAction { + s.Parameters = v + return s +} + +// SetStartAfter sets the StartAfter field's value. +func (s *ExperimentTemplateAction) SetStartAfter(v []*string) *ExperimentTemplateAction { + s.StartAfter = v + return s +} + +// SetTargets sets the Targets field's value. +func (s *ExperimentTemplateAction) SetTargets(v map[string]*string) *ExperimentTemplateAction { + s.Targets = v + return s +} + +// Describes a stop condition for an experiment template. +type ExperimentTemplateStopCondition struct { + _ struct{} `type:"structure"` + + // The source for the stop condition. + Source *string `locationName:"source" type:"string"` + + // The Amazon Resource Name (ARN) of the CloudWatch alarm, if applicable. + Value *string `locationName:"value" min:"20" type:"string"` +} + +// String returns the string representation +func (s ExperimentTemplateStopCondition) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ExperimentTemplateStopCondition) GoString() string { + return s.String() +} + +// SetSource sets the Source field's value. +func (s *ExperimentTemplateStopCondition) SetSource(v string) *ExperimentTemplateStopCondition { + s.Source = &v + return s +} + +// SetValue sets the Value field's value. +func (s *ExperimentTemplateStopCondition) SetValue(v string) *ExperimentTemplateStopCondition { + s.Value = &v + return s +} + +// Provides a summary of an experiment template. +type ExperimentTemplateSummary struct { + _ struct{} `type:"structure"` + + // The time that the experiment template was created. + CreationTime *time.Time `locationName:"creationTime" type:"timestamp"` + + // The description of the experiment template. + Description *string `locationName:"description" type:"string"` + + // The ID of the experiment template. + Id *string `locationName:"id" type:"string"` + + // The time that the experiment template was last updated. + LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp"` + + // The tags for the experiment template. + Tags map[string]*string `locationName:"tags" type:"map"` +} + +// String returns the string representation +func (s ExperimentTemplateSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ExperimentTemplateSummary) GoString() string { + return s.String() +} + +// SetCreationTime sets the CreationTime field's value. +func (s *ExperimentTemplateSummary) SetCreationTime(v time.Time) *ExperimentTemplateSummary { + s.CreationTime = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *ExperimentTemplateSummary) SetDescription(v string) *ExperimentTemplateSummary { + s.Description = &v + return s +} + +// SetId sets the Id field's value. +func (s *ExperimentTemplateSummary) SetId(v string) *ExperimentTemplateSummary { + s.Id = &v + return s +} + +// SetLastUpdateTime sets the LastUpdateTime field's value. +func (s *ExperimentTemplateSummary) SetLastUpdateTime(v time.Time) *ExperimentTemplateSummary { + s.LastUpdateTime = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *ExperimentTemplateSummary) SetTags(v map[string]*string) *ExperimentTemplateSummary { + s.Tags = v + return s +} + +// Describes a target for an experiment template. +type ExperimentTemplateTarget struct { + _ struct{} `type:"structure"` + + // The filters to apply to identify target resources using specific attributes. + Filters []*ExperimentTemplateTargetFilter `locationName:"filters" type:"list"` + + // The Amazon Resource Names (ARNs) of the targets. + ResourceArns []*string `locationName:"resourceArns" type:"list"` + + // The tags for the target resources. + ResourceTags map[string]*string `locationName:"resourceTags" type:"map"` + + // The resource type. + ResourceType *string `locationName:"resourceType" type:"string"` + + // Scopes the identified resources to a specific count or percentage. + SelectionMode *string `locationName:"selectionMode" type:"string"` +} + +// String returns the string representation +func (s ExperimentTemplateTarget) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ExperimentTemplateTarget) GoString() string { + return s.String() +} + +// SetFilters sets the Filters field's value. +func (s *ExperimentTemplateTarget) SetFilters(v []*ExperimentTemplateTargetFilter) *ExperimentTemplateTarget { + s.Filters = v + return s +} + +// SetResourceArns sets the ResourceArns field's value. +func (s *ExperimentTemplateTarget) SetResourceArns(v []*string) *ExperimentTemplateTarget { + s.ResourceArns = v + return s +} + +// SetResourceTags sets the ResourceTags field's value. +func (s *ExperimentTemplateTarget) SetResourceTags(v map[string]*string) *ExperimentTemplateTarget { + s.ResourceTags = v + return s +} + +// SetResourceType sets the ResourceType field's value. +func (s *ExperimentTemplateTarget) SetResourceType(v string) *ExperimentTemplateTarget { + s.ResourceType = &v + return s +} + +// SetSelectionMode sets the SelectionMode field's value. +func (s *ExperimentTemplateTarget) SetSelectionMode(v string) *ExperimentTemplateTarget { + s.SelectionMode = &v + return s +} + +// Describes a filter used for the target resources in an experiment template. +type ExperimentTemplateTargetFilter struct { + _ struct{} `type:"structure"` + + // The attribute path for the filter. + Path *string `locationName:"path" type:"string"` + + // The attribute values for the filter. + Values []*string `locationName:"values" type:"list"` +} + +// String returns the string representation +func (s ExperimentTemplateTargetFilter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ExperimentTemplateTargetFilter) GoString() string { + return s.String() +} + +// SetPath sets the Path field's value. +func (s *ExperimentTemplateTargetFilter) SetPath(v string) *ExperimentTemplateTargetFilter { + s.Path = &v + return s +} + +// SetValues sets the Values field's value. +func (s *ExperimentTemplateTargetFilter) SetValues(v []*string) *ExperimentTemplateTargetFilter { + s.Values = v + return s +} + +// Describes a filter used for the target resource input in an experiment template. +type ExperimentTemplateTargetInputFilter struct { + _ struct{} `type:"structure"` + + // The attribute path for the filter. + // + // Path is a required field + Path *string `locationName:"path" type:"string" required:"true"` + + // The attribute values for the filter. + // + // Values is a required field + Values []*string `locationName:"values" type:"list" required:"true"` +} + +// String returns the string representation +func (s ExperimentTemplateTargetInputFilter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ExperimentTemplateTargetInputFilter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ExperimentTemplateTargetInputFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ExperimentTemplateTargetInputFilter"} + if s.Path == nil { + invalidParams.Add(request.NewErrParamRequired("Path")) + } + if s.Values == nil { + invalidParams.Add(request.NewErrParamRequired("Values")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetPath sets the Path field's value. +func (s *ExperimentTemplateTargetInputFilter) SetPath(v string) *ExperimentTemplateTargetInputFilter { + s.Path = &v + return s +} + +// SetValues sets the Values field's value. +func (s *ExperimentTemplateTargetInputFilter) SetValues(v []*string) *ExperimentTemplateTargetInputFilter { + s.Values = v + return s +} + +type GetActionInput struct { + _ struct{} `type:"structure"` + + // The ID of the action. + // + // Id is a required field + Id *string `location:"uri" locationName:"id" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetActionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetActionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetActionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetActionInput"} + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetId sets the Id field's value. +func (s *GetActionInput) SetId(v string) *GetActionInput { + s.Id = &v + return s +} + +type GetActionOutput struct { + _ struct{} `type:"structure"` + + // Information about the action. + Action *Action `locationName:"action" type:"structure"` +} + +// String returns the string representation +func (s GetActionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetActionOutput) GoString() string { + return s.String() +} + +// SetAction sets the Action field's value. +func (s *GetActionOutput) SetAction(v *Action) *GetActionOutput { + s.Action = v + return s +} + +type GetExperimentInput struct { + _ struct{} `type:"structure"` + + // The ID of the experiment. + // + // Id is a required field + Id *string `location:"uri" locationName:"id" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetExperimentInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetExperimentInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetExperimentInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetExperimentInput"} + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetId sets the Id field's value. +func (s *GetExperimentInput) SetId(v string) *GetExperimentInput { + s.Id = &v + return s +} + +type GetExperimentOutput struct { + _ struct{} `type:"structure"` + + // Information about the experiment. + Experiment *Experiment `locationName:"experiment" type:"structure"` +} + +// String returns the string representation +func (s GetExperimentOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetExperimentOutput) GoString() string { + return s.String() +} + +// SetExperiment sets the Experiment field's value. +func (s *GetExperimentOutput) SetExperiment(v *Experiment) *GetExperimentOutput { + s.Experiment = v + return s +} + +type GetExperimentTemplateInput struct { + _ struct{} `type:"structure"` + + // The ID of the experiment template. + // + // Id is a required field + Id *string `location:"uri" locationName:"id" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetExperimentTemplateInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetExperimentTemplateInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetExperimentTemplateInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetExperimentTemplateInput"} + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetId sets the Id field's value. +func (s *GetExperimentTemplateInput) SetId(v string) *GetExperimentTemplateInput { + s.Id = &v + return s +} + +type GetExperimentTemplateOutput struct { + _ struct{} `type:"structure"` + + // Information about the experiment template. + ExperimentTemplate *ExperimentTemplate `locationName:"experimentTemplate" type:"structure"` +} + +// String returns the string representation +func (s GetExperimentTemplateOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetExperimentTemplateOutput) GoString() string { + return s.String() +} + +// SetExperimentTemplate sets the ExperimentTemplate field's value. +func (s *GetExperimentTemplateOutput) SetExperimentTemplate(v *ExperimentTemplate) *GetExperimentTemplateOutput { + s.ExperimentTemplate = v + return s +} + +type ListActionsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results to return with a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // The token for the next page of results. + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListActionsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListActionsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListActionsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListActionsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListActionsInput) SetMaxResults(v int64) *ListActionsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListActionsInput) SetNextToken(v string) *ListActionsInput { + s.NextToken = &v + return s +} + +type ListActionsOutput struct { + _ struct{} `type:"structure"` + + // The actions. + Actions []*ActionSummary `locationName:"actions" type:"list"` + + // The token to use to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListActionsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListActionsOutput) GoString() string { + return s.String() +} + +// SetActions sets the Actions field's value. +func (s *ListActionsOutput) SetActions(v []*ActionSummary) *ListActionsOutput { + s.Actions = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListActionsOutput) SetNextToken(v string) *ListActionsOutput { + s.NextToken = &v + return s +} + +type ListExperimentTemplatesInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results to return with a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // The token for the next page of results. + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListExperimentTemplatesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListExperimentTemplatesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListExperimentTemplatesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListExperimentTemplatesInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListExperimentTemplatesInput) SetMaxResults(v int64) *ListExperimentTemplatesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListExperimentTemplatesInput) SetNextToken(v string) *ListExperimentTemplatesInput { + s.NextToken = &v + return s +} + +type ListExperimentTemplatesOutput struct { + _ struct{} `type:"structure"` + + // The experiment templates. + ExperimentTemplates []*ExperimentTemplateSummary `locationName:"experimentTemplates" type:"list"` + + // The token to use to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListExperimentTemplatesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListExperimentTemplatesOutput) GoString() string { + return s.String() +} + +// SetExperimentTemplates sets the ExperimentTemplates field's value. +func (s *ListExperimentTemplatesOutput) SetExperimentTemplates(v []*ExperimentTemplateSummary) *ListExperimentTemplatesOutput { + s.ExperimentTemplates = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListExperimentTemplatesOutput) SetNextToken(v string) *ListExperimentTemplatesOutput { + s.NextToken = &v + return s +} + +type ListExperimentsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results to return with a single call. To retrieve the + // remaining results, make another call with the returned nextToken value. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // The token for the next page of results. + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListExperimentsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListExperimentsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListExperimentsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListExperimentsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListExperimentsInput) SetMaxResults(v int64) *ListExperimentsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListExperimentsInput) SetNextToken(v string) *ListExperimentsInput { + s.NextToken = &v + return s +} + +type ListExperimentsOutput struct { + _ struct{} `type:"structure"` + + // The experiments. + Experiments []*ExperimentSummary `locationName:"experiments" type:"list"` + + // The token to use to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListExperimentsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListExperimentsOutput) GoString() string { + return s.String() +} + +// SetExperiments sets the Experiments field's value. +func (s *ListExperimentsOutput) SetExperiments(v []*ExperimentSummary) *ListExperimentsOutput { + s.Experiments = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListExperimentsOutput) SetNextToken(v string) *ListExperimentsOutput { + s.NextToken = &v + return s +} + +type ListTagsForResourceInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the resource. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" min:"20" type:"string" required:"true"` +} + +// String returns the string representation +func (s ListTagsForResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListTagsForResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTagsForResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput { + s.ResourceArn = &v + return s +} + +type ListTagsForResourceOutput struct { + _ struct{} `type:"structure"` + + // The tags for the resource. + Tags map[string]*string `locationName:"tags" type:"map"` +} + +// String returns the string representation +func (s ListTagsForResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListTagsForResourceOutput) GoString() string { + return s.String() +} + +// SetTags sets the Tags field's value. +func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput { + s.Tags = v + return s +} + +// The specified resource cannot be found. +type ResourceNotFoundException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation +func (s ResourceNotFoundException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ResourceNotFoundException) GoString() string { + return s.String() +} + +func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { + return &ResourceNotFoundException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ResourceNotFoundException) Code() string { + return "ResourceNotFoundException" +} + +// Message returns the exception's message. +func (s *ResourceNotFoundException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ResourceNotFoundException) OrigErr() error { + return nil +} + +func (s *ResourceNotFoundException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ResourceNotFoundException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ResourceNotFoundException) RequestID() string { + return s.RespMetadata.RequestID +} + +// You have exceeded your service quota. +type ServiceQuotaExceededException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation +func (s ServiceQuotaExceededException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ServiceQuotaExceededException) GoString() string { + return s.String() +} + +func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error { + return &ServiceQuotaExceededException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ServiceQuotaExceededException) Code() string { + return "ServiceQuotaExceededException" +} + +// Message returns the exception's message. +func (s *ServiceQuotaExceededException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ServiceQuotaExceededException) OrigErr() error { + return nil +} + +func (s *ServiceQuotaExceededException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ServiceQuotaExceededException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ServiceQuotaExceededException) RequestID() string { + return s.RespMetadata.RequestID +} + +type StartExperimentInput struct { + _ struct{} `type:"structure"` + + // Unique, case-sensitive identifier that you provide to ensure the idempotency + // of the request. + ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` + + // The ID of the experiment template. + // + // ExperimentTemplateId is a required field + ExperimentTemplateId *string `locationName:"experimentTemplateId" type:"string" required:"true"` + + // The tags to apply to the experiment. + Tags map[string]*string `locationName:"tags" type:"map"` +} + +// String returns the string representation +func (s StartExperimentInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StartExperimentInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StartExperimentInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StartExperimentInput"} + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } + if s.ExperimentTemplateId == nil { + invalidParams.Add(request.NewErrParamRequired("ExperimentTemplateId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientToken sets the ClientToken field's value. +func (s *StartExperimentInput) SetClientToken(v string) *StartExperimentInput { + s.ClientToken = &v + return s +} + +// SetExperimentTemplateId sets the ExperimentTemplateId field's value. +func (s *StartExperimentInput) SetExperimentTemplateId(v string) *StartExperimentInput { + s.ExperimentTemplateId = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *StartExperimentInput) SetTags(v map[string]*string) *StartExperimentInput { + s.Tags = v + return s +} + +type StartExperimentOutput struct { + _ struct{} `type:"structure"` + + // Information about the experiment. + Experiment *Experiment `locationName:"experiment" type:"structure"` +} + +// String returns the string representation +func (s StartExperimentOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StartExperimentOutput) GoString() string { + return s.String() +} + +// SetExperiment sets the Experiment field's value. +func (s *StartExperimentOutput) SetExperiment(v *Experiment) *StartExperimentOutput { + s.Experiment = v + return s +} + +type StopExperimentInput struct { + _ struct{} `type:"structure"` + + // The ID of the experiment. + // + // Id is a required field + Id *string `location:"uri" locationName:"id" type:"string" required:"true"` +} + +// String returns the string representation +func (s StopExperimentInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StopExperimentInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StopExperimentInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StopExperimentInput"} + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetId sets the Id field's value. +func (s *StopExperimentInput) SetId(v string) *StopExperimentInput { + s.Id = &v + return s +} + +type StopExperimentOutput struct { + _ struct{} `type:"structure"` + + // Information about the experiment. + Experiment *Experiment `locationName:"experiment" type:"structure"` +} + +// String returns the string representation +func (s StopExperimentOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StopExperimentOutput) GoString() string { + return s.String() +} + +// SetExperiment sets the Experiment field's value. +func (s *StopExperimentOutput) SetExperiment(v *Experiment) *StopExperimentOutput { + s.Experiment = v + return s +} + +type TagResourceInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the resource. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" min:"20" type:"string" required:"true"` + + // The tags for the resource. + // + // Tags is a required field + Tags map[string]*string `locationName:"tags" type:"map" required:"true"` +} + +// String returns the string representation +func (s TagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s TagResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TagResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) + } + if s.Tags == nil { + invalidParams.Add(request.NewErrParamRequired("Tags")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput { + s.ResourceArn = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput { + s.Tags = v + return s +} + +type TagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s TagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s TagResourceOutput) GoString() string { + return s.String() +} + +type UntagResourceInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the resource. + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" min:"20" type:"string" required:"true"` + + // The tag keys to remove. + TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list"` +} + +// String returns the string representation +func (s UntagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UntagResourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UntagResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceArn sets the ResourceArn field's value. +func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput { + s.ResourceArn = &v + return s +} + +// SetTagKeys sets the TagKeys field's value. +func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput { + s.TagKeys = v + return s +} + +type UntagResourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UntagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UntagResourceOutput) GoString() string { + return s.String() +} + +// Specifies an action for an experiment template. +type UpdateExperimentTemplateActionInputItem struct { + _ struct{} `type:"structure"` + + // The ID of the action. + ActionId *string `locationName:"actionId" type:"string"` + + // A description for the action. + Description *string `locationName:"description" type:"string"` + + // The parameters for the action, if applicable. + Parameters map[string]*string `locationName:"parameters" type:"map"` + + // 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. + StartAfter []*string `locationName:"startAfter" type:"list"` + + // The targets for the action. + Targets map[string]*string `locationName:"targets" type:"map"` +} + +// String returns the string representation +func (s UpdateExperimentTemplateActionInputItem) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateExperimentTemplateActionInputItem) GoString() string { + return s.String() +} + +// SetActionId sets the ActionId field's value. +func (s *UpdateExperimentTemplateActionInputItem) SetActionId(v string) *UpdateExperimentTemplateActionInputItem { + s.ActionId = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *UpdateExperimentTemplateActionInputItem) SetDescription(v string) *UpdateExperimentTemplateActionInputItem { + s.Description = &v + return s +} + +// SetParameters sets the Parameters field's value. +func (s *UpdateExperimentTemplateActionInputItem) SetParameters(v map[string]*string) *UpdateExperimentTemplateActionInputItem { + s.Parameters = v + return s +} + +// SetStartAfter sets the StartAfter field's value. +func (s *UpdateExperimentTemplateActionInputItem) SetStartAfter(v []*string) *UpdateExperimentTemplateActionInputItem { + s.StartAfter = v + return s +} + +// SetTargets sets the Targets field's value. +func (s *UpdateExperimentTemplateActionInputItem) SetTargets(v map[string]*string) *UpdateExperimentTemplateActionInputItem { + s.Targets = v + return s +} + +type UpdateExperimentTemplateInput struct { + _ struct{} `type:"structure"` + + // The actions for the experiment. + Actions map[string]*UpdateExperimentTemplateActionInputItem `locationName:"actions" type:"map"` + + // A description for the template. + Description *string `locationName:"description" type:"string"` + + // The ID of the experiment template. + // + // Id is a required field + Id *string `location:"uri" locationName:"id" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service + // permission to perform service actions on your behalf. + RoleArn *string `locationName:"roleArn" min:"20" type:"string"` + + // The stop conditions for the experiment. + StopConditions []*UpdateExperimentTemplateStopConditionInput `locationName:"stopConditions" type:"list"` + + // The targets for the experiment. + Targets map[string]*UpdateExperimentTemplateTargetInput `locationName:"targets" type:"map"` +} + +// String returns the string representation +func (s UpdateExperimentTemplateInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateExperimentTemplateInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateExperimentTemplateInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateExperimentTemplateInput"} + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + if s.RoleArn != nil && len(*s.RoleArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20)) + } + if s.StopConditions != nil { + for i, v := range s.StopConditions { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "StopConditions", i), err.(request.ErrInvalidParams)) + } + } + } + if s.Targets != nil { + for i, v := range s.Targets { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Targets", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetActions sets the Actions field's value. +func (s *UpdateExperimentTemplateInput) SetActions(v map[string]*UpdateExperimentTemplateActionInputItem) *UpdateExperimentTemplateInput { + s.Actions = v + return s +} + +// SetDescription sets the Description field's value. +func (s *UpdateExperimentTemplateInput) SetDescription(v string) *UpdateExperimentTemplateInput { + s.Description = &v + return s +} + +// SetId sets the Id field's value. +func (s *UpdateExperimentTemplateInput) SetId(v string) *UpdateExperimentTemplateInput { + s.Id = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *UpdateExperimentTemplateInput) SetRoleArn(v string) *UpdateExperimentTemplateInput { + s.RoleArn = &v + return s +} + +// SetStopConditions sets the StopConditions field's value. +func (s *UpdateExperimentTemplateInput) SetStopConditions(v []*UpdateExperimentTemplateStopConditionInput) *UpdateExperimentTemplateInput { + s.StopConditions = v + return s +} + +// SetTargets sets the Targets field's value. +func (s *UpdateExperimentTemplateInput) SetTargets(v map[string]*UpdateExperimentTemplateTargetInput) *UpdateExperimentTemplateInput { + s.Targets = v + return s +} + +type UpdateExperimentTemplateOutput struct { + _ struct{} `type:"structure"` + + // Information about the experiment template. + ExperimentTemplate *ExperimentTemplate `locationName:"experimentTemplate" type:"structure"` +} + +// String returns the string representation +func (s UpdateExperimentTemplateOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateExperimentTemplateOutput) GoString() string { + return s.String() +} + +// SetExperimentTemplate sets the ExperimentTemplate field's value. +func (s *UpdateExperimentTemplateOutput) SetExperimentTemplate(v *ExperimentTemplate) *UpdateExperimentTemplateOutput { + s.ExperimentTemplate = v + return s +} + +// Specifies a stop condition for an experiment. You can define a stop condition +// as a CloudWatch alarm. +type UpdateExperimentTemplateStopConditionInput struct { + _ struct{} `type:"structure"` + + // 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. + // + // Source is a required field + Source *string `locationName:"source" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the CloudWatch alarm. + Value *string `locationName:"value" min:"20" type:"string"` +} + +// String returns the string representation +func (s UpdateExperimentTemplateStopConditionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateExperimentTemplateStopConditionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateExperimentTemplateStopConditionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateExperimentTemplateStopConditionInput"} + if s.Source == nil { + invalidParams.Add(request.NewErrParamRequired("Source")) + } + if s.Value != nil && len(*s.Value) < 20 { + invalidParams.Add(request.NewErrParamMinLen("Value", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetSource sets the Source field's value. +func (s *UpdateExperimentTemplateStopConditionInput) SetSource(v string) *UpdateExperimentTemplateStopConditionInput { + s.Source = &v + return s +} + +// SetValue sets the Value field's value. +func (s *UpdateExperimentTemplateStopConditionInput) SetValue(v string) *UpdateExperimentTemplateStopConditionInput { + s.Value = &v + return s +} + +// 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. +type UpdateExperimentTemplateTargetInput struct { + _ struct{} `type:"structure"` + + // The filters to apply to identify target resources using specific attributes. + Filters []*ExperimentTemplateTargetInputFilter `locationName:"filters" type:"list"` + + // The Amazon Resource Names (ARNs) of the targets. + ResourceArns []*string `locationName:"resourceArns" type:"list"` + + // The tags for the target resources. + ResourceTags map[string]*string `locationName:"resourceTags" type:"map"` + + // The AWS resource type. The resource type must be supported for the specified + // action. + // + // ResourceType is a required field + ResourceType *string `locationName:"resourceType" type:"string" required:"true"` + + // Scopes the identified resources to a specific count or percentage. + // + // SelectionMode is a required field + SelectionMode *string `locationName:"selectionMode" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateExperimentTemplateTargetInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateExperimentTemplateTargetInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateExperimentTemplateTargetInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateExperimentTemplateTargetInput"} + if s.ResourceType == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceType")) + } + if s.SelectionMode == nil { + invalidParams.Add(request.NewErrParamRequired("SelectionMode")) + } + if s.Filters != nil { + for i, v := range s.Filters { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFilters sets the Filters field's value. +func (s *UpdateExperimentTemplateTargetInput) SetFilters(v []*ExperimentTemplateTargetInputFilter) *UpdateExperimentTemplateTargetInput { + s.Filters = v + return s +} + +// SetResourceArns sets the ResourceArns field's value. +func (s *UpdateExperimentTemplateTargetInput) SetResourceArns(v []*string) *UpdateExperimentTemplateTargetInput { + s.ResourceArns = v + return s +} + +// SetResourceTags sets the ResourceTags field's value. +func (s *UpdateExperimentTemplateTargetInput) SetResourceTags(v map[string]*string) *UpdateExperimentTemplateTargetInput { + s.ResourceTags = v + return s +} + +// SetResourceType sets the ResourceType field's value. +func (s *UpdateExperimentTemplateTargetInput) SetResourceType(v string) *UpdateExperimentTemplateTargetInput { + s.ResourceType = &v + return s +} + +// SetSelectionMode sets the SelectionMode field's value. +func (s *UpdateExperimentTemplateTargetInput) SetSelectionMode(v string) *UpdateExperimentTemplateTargetInput { + s.SelectionMode = &v + return s +} + +// The specified input is not valid, or fails to satisfy the constraints for +// the request. +type ValidationException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation +func (s ValidationException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ValidationException) GoString() string { + return s.String() +} + +func newErrorValidationException(v protocol.ResponseMetadata) error { + return &ValidationException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ValidationException) Code() string { + return "ValidationException" +} + +// Message returns the exception's message. +func (s *ValidationException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ValidationException) OrigErr() error { + return nil +} + +func (s *ValidationException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ValidationException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ValidationException) RequestID() string { + return s.RespMetadata.RequestID +} + +const ( + // ExperimentActionStatusPending is a ExperimentActionStatus enum value + ExperimentActionStatusPending = "pending" + + // ExperimentActionStatusInitiating is a ExperimentActionStatus enum value + ExperimentActionStatusInitiating = "initiating" + + // ExperimentActionStatusRunning is a ExperimentActionStatus enum value + ExperimentActionStatusRunning = "running" + + // ExperimentActionStatusCompleted is a ExperimentActionStatus enum value + ExperimentActionStatusCompleted = "completed" + + // ExperimentActionStatusCancelled is a ExperimentActionStatus enum value + ExperimentActionStatusCancelled = "cancelled" + + // ExperimentActionStatusStopping is a ExperimentActionStatus enum value + ExperimentActionStatusStopping = "stopping" + + // ExperimentActionStatusStopped is a ExperimentActionStatus enum value + ExperimentActionStatusStopped = "stopped" + + // ExperimentActionStatusFailed is a ExperimentActionStatus enum value + ExperimentActionStatusFailed = "failed" +) + +// ExperimentActionStatus_Values returns all elements of the ExperimentActionStatus enum +func ExperimentActionStatus_Values() []string { + return []string{ + ExperimentActionStatusPending, + ExperimentActionStatusInitiating, + ExperimentActionStatusRunning, + ExperimentActionStatusCompleted, + ExperimentActionStatusCancelled, + ExperimentActionStatusStopping, + ExperimentActionStatusStopped, + ExperimentActionStatusFailed, + } +} + +const ( + // ExperimentStatusPending is a ExperimentStatus enum value + ExperimentStatusPending = "pending" + + // ExperimentStatusInitiating is a ExperimentStatus enum value + ExperimentStatusInitiating = "initiating" + + // ExperimentStatusRunning is a ExperimentStatus enum value + ExperimentStatusRunning = "running" + + // ExperimentStatusCompleted is a ExperimentStatus enum value + ExperimentStatusCompleted = "completed" + + // ExperimentStatusStopping is a ExperimentStatus enum value + ExperimentStatusStopping = "stopping" + + // ExperimentStatusStopped is a ExperimentStatus enum value + ExperimentStatusStopped = "stopped" + + // ExperimentStatusFailed is a ExperimentStatus enum value + ExperimentStatusFailed = "failed" +) + +// ExperimentStatus_Values returns all elements of the ExperimentStatus enum +func ExperimentStatus_Values() []string { + return []string{ + ExperimentStatusPending, + ExperimentStatusInitiating, + ExperimentStatusRunning, + ExperimentStatusCompleted, + ExperimentStatusStopping, + ExperimentStatusStopped, + ExperimentStatusFailed, + } +} diff --git a/service/fis/doc.go b/service/fis/doc.go new file mode 100644 index 00000000000..39f0eb21395 --- /dev/null +++ b/service/fis/doc.go @@ -0,0 +1,30 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package fis provides the client and types for making API +// requests to AWS Fault Injection Simulator. +// +// 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 (https://docs.aws.amazon.com/fis/latest/userguide/). +// +// See https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01 for more information on this service. +// +// See fis package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/fis/ +// +// Using the Client +// +// To contact AWS Fault Injection Simulator with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the AWS Fault Injection Simulator client FIS for more +// information on creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/fis/#New +package fis diff --git a/service/fis/errors.go b/service/fis/errors.go new file mode 100644 index 00000000000..75b40247aa1 --- /dev/null +++ b/service/fis/errors.go @@ -0,0 +1,42 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package fis + +import ( + "github.com/aws/aws-sdk-go/private/protocol" +) + +const ( + + // ErrCodeConflictException for service response error code + // "ConflictException". + // + // The request could not be processed because of a conflict. + ErrCodeConflictException = "ConflictException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // The specified resource cannot be found. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeServiceQuotaExceededException for service response error code + // "ServiceQuotaExceededException". + // + // You have exceeded your service quota. + ErrCodeServiceQuotaExceededException = "ServiceQuotaExceededException" + + // ErrCodeValidationException for service response error code + // "ValidationException". + // + // The specified input is not valid, or fails to satisfy the constraints for + // the request. + ErrCodeValidationException = "ValidationException" +) + +var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ + "ConflictException": newErrorConflictException, + "ResourceNotFoundException": newErrorResourceNotFoundException, + "ServiceQuotaExceededException": newErrorServiceQuotaExceededException, + "ValidationException": newErrorValidationException, +} diff --git a/service/fis/fisiface/interface.go b/service/fis/fisiface/interface.go new file mode 100644 index 00000000000..9a7a78183e9 --- /dev/null +++ b/service/fis/fisiface/interface.go @@ -0,0 +1,129 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package fisiface provides an interface to enable mocking the AWS Fault Injection Simulator service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package fisiface + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/service/fis" +) + +// FISAPI provides an interface to enable mocking the +// fis.FIS service client's API operation, +// paginators, and waiters. This make unit testing your code that calls out +// to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // AWS Fault Injection Simulator. +// func myFunc(svc fisiface.FISAPI) bool { +// // Make svc.CreateExperimentTemplate request +// } +// +// func main() { +// sess := session.New() +// svc := fis.New(sess) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockFISClient struct { +// fisiface.FISAPI +// } +// func (m *mockFISClient) CreateExperimentTemplate(input *fis.CreateExperimentTemplateInput) (*fis.CreateExperimentTemplateOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockFISClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type FISAPI interface { + CreateExperimentTemplate(*fis.CreateExperimentTemplateInput) (*fis.CreateExperimentTemplateOutput, error) + CreateExperimentTemplateWithContext(aws.Context, *fis.CreateExperimentTemplateInput, ...request.Option) (*fis.CreateExperimentTemplateOutput, error) + CreateExperimentTemplateRequest(*fis.CreateExperimentTemplateInput) (*request.Request, *fis.CreateExperimentTemplateOutput) + + DeleteExperimentTemplate(*fis.DeleteExperimentTemplateInput) (*fis.DeleteExperimentTemplateOutput, error) + DeleteExperimentTemplateWithContext(aws.Context, *fis.DeleteExperimentTemplateInput, ...request.Option) (*fis.DeleteExperimentTemplateOutput, error) + DeleteExperimentTemplateRequest(*fis.DeleteExperimentTemplateInput) (*request.Request, *fis.DeleteExperimentTemplateOutput) + + GetAction(*fis.GetActionInput) (*fis.GetActionOutput, error) + GetActionWithContext(aws.Context, *fis.GetActionInput, ...request.Option) (*fis.GetActionOutput, error) + GetActionRequest(*fis.GetActionInput) (*request.Request, *fis.GetActionOutput) + + GetExperiment(*fis.GetExperimentInput) (*fis.GetExperimentOutput, error) + GetExperimentWithContext(aws.Context, *fis.GetExperimentInput, ...request.Option) (*fis.GetExperimentOutput, error) + GetExperimentRequest(*fis.GetExperimentInput) (*request.Request, *fis.GetExperimentOutput) + + GetExperimentTemplate(*fis.GetExperimentTemplateInput) (*fis.GetExperimentTemplateOutput, error) + GetExperimentTemplateWithContext(aws.Context, *fis.GetExperimentTemplateInput, ...request.Option) (*fis.GetExperimentTemplateOutput, error) + GetExperimentTemplateRequest(*fis.GetExperimentTemplateInput) (*request.Request, *fis.GetExperimentTemplateOutput) + + ListActions(*fis.ListActionsInput) (*fis.ListActionsOutput, error) + ListActionsWithContext(aws.Context, *fis.ListActionsInput, ...request.Option) (*fis.ListActionsOutput, error) + ListActionsRequest(*fis.ListActionsInput) (*request.Request, *fis.ListActionsOutput) + + ListActionsPages(*fis.ListActionsInput, func(*fis.ListActionsOutput, bool) bool) error + ListActionsPagesWithContext(aws.Context, *fis.ListActionsInput, func(*fis.ListActionsOutput, bool) bool, ...request.Option) error + + ListExperimentTemplates(*fis.ListExperimentTemplatesInput) (*fis.ListExperimentTemplatesOutput, error) + ListExperimentTemplatesWithContext(aws.Context, *fis.ListExperimentTemplatesInput, ...request.Option) (*fis.ListExperimentTemplatesOutput, error) + ListExperimentTemplatesRequest(*fis.ListExperimentTemplatesInput) (*request.Request, *fis.ListExperimentTemplatesOutput) + + ListExperimentTemplatesPages(*fis.ListExperimentTemplatesInput, func(*fis.ListExperimentTemplatesOutput, bool) bool) error + ListExperimentTemplatesPagesWithContext(aws.Context, *fis.ListExperimentTemplatesInput, func(*fis.ListExperimentTemplatesOutput, bool) bool, ...request.Option) error + + ListExperiments(*fis.ListExperimentsInput) (*fis.ListExperimentsOutput, error) + ListExperimentsWithContext(aws.Context, *fis.ListExperimentsInput, ...request.Option) (*fis.ListExperimentsOutput, error) + ListExperimentsRequest(*fis.ListExperimentsInput) (*request.Request, *fis.ListExperimentsOutput) + + ListExperimentsPages(*fis.ListExperimentsInput, func(*fis.ListExperimentsOutput, bool) bool) error + ListExperimentsPagesWithContext(aws.Context, *fis.ListExperimentsInput, func(*fis.ListExperimentsOutput, bool) bool, ...request.Option) error + + ListTagsForResource(*fis.ListTagsForResourceInput) (*fis.ListTagsForResourceOutput, error) + ListTagsForResourceWithContext(aws.Context, *fis.ListTagsForResourceInput, ...request.Option) (*fis.ListTagsForResourceOutput, error) + ListTagsForResourceRequest(*fis.ListTagsForResourceInput) (*request.Request, *fis.ListTagsForResourceOutput) + + StartExperiment(*fis.StartExperimentInput) (*fis.StartExperimentOutput, error) + StartExperimentWithContext(aws.Context, *fis.StartExperimentInput, ...request.Option) (*fis.StartExperimentOutput, error) + StartExperimentRequest(*fis.StartExperimentInput) (*request.Request, *fis.StartExperimentOutput) + + StopExperiment(*fis.StopExperimentInput) (*fis.StopExperimentOutput, error) + StopExperimentWithContext(aws.Context, *fis.StopExperimentInput, ...request.Option) (*fis.StopExperimentOutput, error) + StopExperimentRequest(*fis.StopExperimentInput) (*request.Request, *fis.StopExperimentOutput) + + TagResource(*fis.TagResourceInput) (*fis.TagResourceOutput, error) + TagResourceWithContext(aws.Context, *fis.TagResourceInput, ...request.Option) (*fis.TagResourceOutput, error) + TagResourceRequest(*fis.TagResourceInput) (*request.Request, *fis.TagResourceOutput) + + UntagResource(*fis.UntagResourceInput) (*fis.UntagResourceOutput, error) + UntagResourceWithContext(aws.Context, *fis.UntagResourceInput, ...request.Option) (*fis.UntagResourceOutput, error) + UntagResourceRequest(*fis.UntagResourceInput) (*request.Request, *fis.UntagResourceOutput) + + UpdateExperimentTemplate(*fis.UpdateExperimentTemplateInput) (*fis.UpdateExperimentTemplateOutput, error) + UpdateExperimentTemplateWithContext(aws.Context, *fis.UpdateExperimentTemplateInput, ...request.Option) (*fis.UpdateExperimentTemplateOutput, error) + UpdateExperimentTemplateRequest(*fis.UpdateExperimentTemplateInput) (*request.Request, *fis.UpdateExperimentTemplateOutput) +} + +var _ FISAPI = (*fis.FIS)(nil) diff --git a/service/fis/service.go b/service/fis/service.go new file mode 100644 index 00000000000..b4a6a4c1ce6 --- /dev/null +++ b/service/fis/service.go @@ -0,0 +1,104 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package fis + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/client/metadata" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/aws/signer/v4" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +// FIS provides the API operation methods for making requests to +// AWS Fault Injection Simulator. See this package's package overview docs +// for details on the service. +// +// FIS methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type FIS struct { + *client.Client +} + +// Used for custom client initialization logic +var initClient func(*client.Client) + +// Used for custom request initialization logic +var initRequest func(*request.Request) + +// Service information constants +const ( + ServiceName = "fis" // Name of service. + EndpointsID = ServiceName // ID to lookup a service endpoint with. + ServiceID = "fis" // ServiceID is a unique identifier of a specific service. +) + +// New creates a new instance of the FIS client with a session. +// If additional configuration is needed for the client instance use the optional +// aws.Config parameter to add your extra config. +// +// Example: +// mySession := session.Must(session.NewSession()) +// +// // Create a FIS client from just a session. +// svc := fis.New(mySession) +// +// // Create a FIS client with additional configuration +// svc := fis.New(mySession, aws.NewConfig().WithRegion("us-west-2")) +func New(p client.ConfigProvider, cfgs ...*aws.Config) *FIS { + c := p.ClientConfig(EndpointsID, cfgs...) + if c.SigningNameDerived || len(c.SigningName) == 0 { + c.SigningName = "fis" + } + return newClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName) +} + +// newClient creates, initializes and returns a new service client instance. +func newClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *FIS { + svc := &FIS{ + Client: client.New( + cfg, + metadata.ClientInfo{ + ServiceName: ServiceName, + ServiceID: ServiceID, + SigningName: signingName, + SigningRegion: signingRegion, + PartitionID: partitionID, + Endpoint: endpoint, + APIVersion: "2020-12-01", + }, + handlers, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed( + protocol.NewUnmarshalErrorHandler(restjson.NewUnmarshalTypedError(exceptionFromCode)).NamedHandler(), + ) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc.Client) + } + + return svc +} + +// newRequest creates a new request for a FIS operation and runs any +// custom request initialization. +func (c *FIS) newRequest(op *request.Operation, params, data interface{}) *request.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(req) + } + + return req +} diff --git a/service/transcribestreamingservice/api.go b/service/transcribestreamingservice/api.go index 31e8a5f558b..0d9bba80bc5 100644 --- a/service/transcribestreamingservice/api.go +++ b/service/transcribestreamingservice/api.go @@ -790,6 +790,9 @@ func (s *Alternative) SetTranscript(v string) *Alternative { } // Provides a wrapper for the audio chunks that you are sending. +// +// For information on audio encoding in Amazon Transcribe, see input. For information +// on audio encoding formats in Amazon Transcribe Medical, see input-med. type AudioEvent struct { _ struct{} `type:"structure" payload:"AudioChunk"` @@ -1161,10 +1164,14 @@ func (s *InternalFailureException) RequestID() string { return s.RespMetadata.RequestID } -// A word or phrase transcribed from the input audio. +// A word, phrase, or punctuation mark that is transcribed from the input audio. type Item struct { _ struct{} `type:"structure"` + // A value between 0 and 1 for an item that is a confidence score that Amazon + // Transcribe assigns to each word or phrase that it transcribes. + Confidence *float64 `type:"double"` + // The word or punctuation that was recognized in the input audio. Content *string `type:"string"` @@ -1201,6 +1208,12 @@ func (s Item) GoString() string { return s.String() } +// SetConfidence sets the Confidence field's value. +func (s *Item) SetConfidence(v float64) *Item { + s.Confidence = &v + return s +} + // SetContent sets the Content field's value. func (s *Item) SetContent(v string) *Item { s.Content = &v @@ -1436,7 +1449,7 @@ func (s *MedicalEntity) SetStartTime(v float64) *MedicalEntity { return s } -// A word or punctuation that is transcribed from the input audio. +// A word, phrase, or punctuation mark that is transcribed from the input audio. type MedicalItem struct { _ struct{} `type:"structure"` @@ -2889,6 +2902,9 @@ const ( // LanguageCodeKoKr is a LanguageCode enum value LanguageCodeKoKr = "ko-KR" + + // LanguageCodeZhCn is a LanguageCode enum value + LanguageCodeZhCn = "zh-CN" ) // LanguageCode_Values returns all elements of the LanguageCode enum @@ -2905,6 +2921,7 @@ func LanguageCode_Values() []string { LanguageCodePtBr, LanguageCodeJaJp, LanguageCodeKoKr, + LanguageCodeZhCn, } } diff --git a/service/transcribestreamingservice/eventstream_test.go b/service/transcribestreamingservice/eventstream_test.go index dc2495c4ed9..1bbd1c1a17c 100644 --- a/service/transcribestreamingservice/eventstream_test.go +++ b/service/transcribestreamingservice/eventstream_test.go @@ -1028,6 +1028,7 @@ func mockStartStreamTranscriptionReadEvents() ( { Items: []*Item{ { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1036,6 +1037,7 @@ func mockStartStreamTranscriptionReadEvents() ( VocabularyFilterMatch: aws.Bool(true), }, { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1044,6 +1046,7 @@ func mockStartStreamTranscriptionReadEvents() ( VocabularyFilterMatch: aws.Bool(true), }, { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1057,6 +1060,7 @@ func mockStartStreamTranscriptionReadEvents() ( { Items: []*Item{ { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1065,6 +1069,7 @@ func mockStartStreamTranscriptionReadEvents() ( VocabularyFilterMatch: aws.Bool(true), }, { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1073,6 +1078,7 @@ func mockStartStreamTranscriptionReadEvents() ( VocabularyFilterMatch: aws.Bool(true), }, { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1086,6 +1092,7 @@ func mockStartStreamTranscriptionReadEvents() ( { Items: []*Item{ { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1094,6 +1101,7 @@ func mockStartStreamTranscriptionReadEvents() ( VocabularyFilterMatch: aws.Bool(true), }, { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1102,6 +1110,7 @@ func mockStartStreamTranscriptionReadEvents() ( VocabularyFilterMatch: aws.Bool(true), }, { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1124,6 +1133,7 @@ func mockStartStreamTranscriptionReadEvents() ( { Items: []*Item{ { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1132,6 +1142,7 @@ func mockStartStreamTranscriptionReadEvents() ( VocabularyFilterMatch: aws.Bool(true), }, { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1140,6 +1151,7 @@ func mockStartStreamTranscriptionReadEvents() ( VocabularyFilterMatch: aws.Bool(true), }, { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1153,6 +1165,7 @@ func mockStartStreamTranscriptionReadEvents() ( { Items: []*Item{ { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1161,6 +1174,7 @@ func mockStartStreamTranscriptionReadEvents() ( VocabularyFilterMatch: aws.Bool(true), }, { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1169,6 +1183,7 @@ func mockStartStreamTranscriptionReadEvents() ( VocabularyFilterMatch: aws.Bool(true), }, { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1182,6 +1197,7 @@ func mockStartStreamTranscriptionReadEvents() ( { Items: []*Item{ { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1190,6 +1206,7 @@ func mockStartStreamTranscriptionReadEvents() ( VocabularyFilterMatch: aws.Bool(true), }, { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1198,6 +1215,7 @@ func mockStartStreamTranscriptionReadEvents() ( VocabularyFilterMatch: aws.Bool(true), }, { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1220,6 +1238,7 @@ func mockStartStreamTranscriptionReadEvents() ( { Items: []*Item{ { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1228,6 +1247,7 @@ func mockStartStreamTranscriptionReadEvents() ( VocabularyFilterMatch: aws.Bool(true), }, { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1236,6 +1256,7 @@ func mockStartStreamTranscriptionReadEvents() ( VocabularyFilterMatch: aws.Bool(true), }, { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1249,6 +1270,7 @@ func mockStartStreamTranscriptionReadEvents() ( { Items: []*Item{ { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1257,6 +1279,7 @@ func mockStartStreamTranscriptionReadEvents() ( VocabularyFilterMatch: aws.Bool(true), }, { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1265,6 +1288,7 @@ func mockStartStreamTranscriptionReadEvents() ( VocabularyFilterMatch: aws.Bool(true), }, { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1278,6 +1302,7 @@ func mockStartStreamTranscriptionReadEvents() ( { Items: []*Item{ { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1286,6 +1311,7 @@ func mockStartStreamTranscriptionReadEvents() ( VocabularyFilterMatch: aws.Bool(true), }, { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"), @@ -1294,6 +1320,7 @@ func mockStartStreamTranscriptionReadEvents() ( VocabularyFilterMatch: aws.Bool(true), }, { + Confidence: aws.Float64(123.45), Content: aws.String("string value goes here"), EndTime: aws.Float64(123.45), Speaker: aws.String("string value goes here"),